decocms 4.0.3 → 4.0.4

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 (218) hide show
  1. package/dist/client/assets/{AlertCircle-BKxp7smf.js → AlertCircle-PFqtG5ZH.js} +1 -1
  2. package/dist/client/assets/{ArrowUpRight-B5wbRLW3.js → ArrowUpRight-JRa8K1Zq.js} +1 -1
  3. package/dist/client/assets/{CheckCircle-BbwRgZxR.js → CheckCircle-CyWE8F0T.js} +1 -1
  4. package/dist/client/assets/{ChevronDown-CrmmT6sD.js → ChevronDown-BCtRA66U.js} +1 -1
  5. package/dist/client/assets/{ChevronLeft-CInzXcWQ.js → ChevronLeft-C_HoWf1U.js} +1 -1
  6. package/dist/client/assets/{ChevronRight-CtnW3pq4.js → ChevronRight-BMk-MkAt.js} +1 -1
  7. package/dist/client/assets/{ChevronUp-BZZRbFDi.js → ChevronUp-BJRNdlVx.js} +1 -1
  8. package/dist/client/assets/{DotsVertical-7v77GKef.js → DotsVertical-BHmShHDW.js} +1 -1
  9. package/dist/client/assets/{Eye-BwHfAI2P.js → Eye-RJTNPGM7.js} +1 -1
  10. package/dist/client/assets/{FilterLines-DJT-gR1b.js → FilterLines-F-37lELf.js} +1 -1
  11. package/dist/client/assets/{Globe01-18prQOtE.js → Globe01-DAu1mUKg.js} +1 -1
  12. package/dist/client/assets/{Globe04-CqGVHFO1.js → Globe04-Cu3JQB8i.js} +1 -1
  13. package/dist/client/assets/{HardDrive-w8U4c6zX.js → HardDrive-BLxj36P8.js} +1 -1
  14. package/dist/client/assets/{Key01-BUmqNfJ6.js → Key01-BdE18FaI.js} +1 -1
  15. package/dist/client/assets/{LayoutLeft-CjFJnx0E.js → LayoutLeft-Bl8aVvJU.js} +1 -1
  16. package/dist/client/assets/{LinkExternal01-DheY97S_.js → LinkExternal01-D3-UGP2m.js} +1 -1
  17. package/dist/client/assets/{Monitor01-8_Vs8xcA.js → Monitor01-BftniqM0.js} +1 -1
  18. package/dist/client/assets/{Palette-aa8tH8x1.js → Palette-D5qZOf7y.js} +1 -1
  19. package/dist/client/assets/{Play-Cl3-_Gp1.js → Play-BcYYdgTy.js} +1 -1
  20. package/dist/client/assets/{Plus-DpnAcM12.js → Plus-TQvQZzaH.js} +1 -1
  21. package/dist/client/assets/{SearchLg-OvZOh4Uy.js → SearchLg-D2lr8wC3.js} +1 -1
  22. package/dist/client/assets/{SearchMd-B-myFkjh.js → SearchMd-BIBVu0wR.js} +1 -1
  23. package/dist/client/assets/{Settings02-DrkRa4rS.js → Settings02-BiNyB-vC.js} +1 -1
  24. package/dist/client/assets/{Shield01-MZXRT-hv.js → Shield01-WDYxAXHi.js} +1 -1
  25. package/dist/client/assets/{Star01-CebEeCIo.js → Star01-IYnaiSiL.js} +1 -1
  26. package/dist/client/assets/{Stars01-CetPZIRh.js → Stars01-rCaJ9HNA.js} +1 -1
  27. package/dist/client/assets/{Stars02-a2bjNxN8.js → Stars02-Bm_knLi8.js} +1 -1
  28. package/dist/client/assets/{Sun-DZDWFgCY.js → Sun-Bzg2qXN0.js} +1 -1
  29. package/dist/client/assets/{SwitchHorizontal01-C6D1iqTK.js → SwitchHorizontal01-DfGq2YYY.js} +1 -1
  30. package/dist/client/assets/{Tool01-BvyEKsVJ.js → Tool01-DIWL78-8.js} +1 -1
  31. package/dist/client/assets/{Trash01-DH7kPW1_.js → Trash01-U_Sy2kwB.js} +1 -1
  32. package/dist/client/assets/{Upload01-D7MIkJXL.js → Upload01-CymXVj3x.js} +1 -1
  33. package/dist/client/assets/{User01-Duaji1Gf.js → User01-b9jhuv9P.js} +1 -1
  34. package/dist/client/assets/{Users01-hT6_785D.js → Users01-m0i8puc1.js} +1 -1
  35. package/dist/client/assets/{Users03-Nr-K8u6w.js → Users03-BTULrIgV.js} +1 -1
  36. package/dist/client/assets/{X-rPI5iE9a.js → X-CkT4FzU2.js} +1 -1
  37. package/dist/client/assets/{XCircle-BrhsrRwS.js → XCircle-Di8yNE57.js} +1 -1
  38. package/dist/client/assets/{XClose-CGY22F3d.js → XClose-BGz5FBd2.js} +1 -1
  39. package/dist/client/assets/{Zap-CfeaItjU.js → Zap-CUY-AD-2.js} +1 -1
  40. package/dist/client/assets/{ZapSquare-Mp_JytIu.js → ZapSquare-l9YtCjoP.js} +1 -1
  41. package/dist/client/assets/{ZoomOut-DMtRzssn.js → ZoomOut-B95bj65o.js} +1 -1
  42. package/dist/client/assets/{access-gate-DkqltSV5.js → access-gate-B5UeDDfJ.js} +1 -1
  43. package/dist/client/assets/{add-section-modal-BSi6Z5mZ.js → add-section-modal-CpDYgCVv.js} +1 -1
  44. package/dist/client/assets/{agent-icon-EbwPRS5Q.js → agent-icon-V1r5dIwq.js} +1 -1
  45. package/dist/client/assets/{agents-list-DkVk9MVV.js → agents-list-Co1RFMSc.js} +1 -1
  46. package/dist/client/assets/{ai-providers-tnG1ahnh.js → ai-providers-CUjhRFSM.js} +1 -1
  47. package/dist/client/assets/{alert-DD_BaGAQ.js → alert-9c2yALlG.js} +1 -1
  48. package/dist/client/assets/{alert-dialog-DfqRLNEM.js → alert-dialog-Bo3W54fN.js} +1 -1
  49. package/dist/client/assets/{app-editor-Bw1KMbyg.js → app-editor-DYIScMAN.js} +1 -1
  50. package/dist/client/assets/{auth-D4uC84QV.js → auth-CcOhYQ7M.js} +1 -1
  51. package/dist/client/assets/{auth-catchall-D5Y1jJKZ.js → auth-catchall-lJ6lgT71.js} +1 -1
  52. package/dist/client/assets/{auth-entry-Ce2OJq0y.js → auth-entry-D27sXbQ4.js} +1 -1
  53. package/dist/client/assets/{auth-split-layout-C6aFj7OK.js → auth-split-layout-BZZiTMHw.js} +1 -1
  54. package/dist/client/assets/{authenticate-and-persist-oauth-1z9JDlL8.js → authenticate-and-persist-oauth-B1kzcJlX.js} +1 -1
  55. package/dist/client/assets/{automation-list-row-kAAV5MB1.js → automation-list-row-CRJxITyI.js} +1 -1
  56. package/dist/client/assets/{automation-runs-C6dZiSXN.js → automation-runs-KfW9C8Sd.js} +1 -1
  57. package/dist/client/assets/{automations-L0IxSr4c.js → automations-DGIlJzpq.js} +1 -1
  58. package/dist/client/assets/{avatar-DK57QYmS.js → avatar-BIQz8lMw.js} +1 -1
  59. package/dist/client/assets/{badge-BeTQmOHP.js → badge-BZcpXNTj.js} +1 -1
  60. package/dist/client/assets/{block-document-BSJZg49x.js → block-document-sU51qz6z.js} +1 -1
  61. package/dist/client/assets/{brand-context-Bbt7KW8G.js → brand-context-D_ADJD-j.js} +1 -1
  62. package/dist/client/assets/{buckets-D79Dq8ck.js → buckets-Ds5C35KQ.js} +1 -1
  63. package/dist/client/assets/{bulk-category-panel-2Etk9irV.js → bulk-category-panel-CQLZrjG6.js} +1 -1
  64. package/dist/client/assets/{capability-load-error-CZjf1azp.js → capability-load-error-C8NOBRcv.js} +1 -1
  65. package/dist/client/assets/{card-D3XjB26E.js → card-BbFsvKOS.js} +1 -1
  66. package/dist/client/assets/{category-editor-CQy6tigm.js → category-editor-DwpJA5qR.js} +1 -1
  67. package/dist/client/assets/{chat-context-CZCR1Byt.js → chat-context-DbHaEJRs.js} +1 -1
  68. package/dist/client/assets/{checkbox-CvfBlRQk.js → checkbox-D3ssEM2_.js} +1 -1
  69. package/dist/client/assets/{cli-auth-success-6InzD-kA.js → cli-auth-success-CO4qO8P9.js} +1 -1
  70. package/dist/client/assets/{collection-detail-wyMbp1Rl.js → collection-detail-CcWhnp7v.js} +1 -1
  71. package/dist/client/assets/{collection-display-button-F2FaCpak.js → collection-display-button-DcBzRyX3.js} +1 -1
  72. package/dist/client/assets/{collection-search-CbrtrSVF.js → collection-search-BGbKPBT5.js} +1 -1
  73. package/dist/client/assets/{collection-tabs-CdcQsoQY.js → collection-tabs-BNgvJxRr.js} +1 -1
  74. package/dist/client/assets/{command-D1DtkPeR.js → command-D3D4wWpb.js} +1 -1
  75. package/dist/client/assets/{commerce-onboarding-CleN24We.js → commerce-onboarding-rWg79fgH.js} +1 -1
  76. package/dist/client/assets/{connect-desktop-dialog-794euWau.js → connect-desktop-dialog-CAuLO1Hw.js} +1 -1
  77. package/dist/client/assets/{connection-card-CCHp8KUo.js → connection-card-BLBEA3D0.js} +1 -1
  78. package/dist/client/assets/{connection-detail-BOdatdmb.js → connection-detail-DP52Uuf7.js} +1 -1
  79. package/dist/client/assets/{connection-form-helpers-DLKRhdTN.js → connection-form-helpers-BKKvRH6i.js} +1 -1
  80. package/dist/client/assets/{connections-Dg6DR4EO.js → connections-C-FviEZC.js} +1 -1
  81. package/dist/client/assets/{context-menu-XfZaU5E1.js → context-menu-ZV5YSNjW.js} +1 -1
  82. package/dist/client/assets/{decopilot-hbA9P5ye.js → decopilot-C2CKUIsG.js} +1 -1
  83. package/dist/client/assets/{decopilot-sse-pool-BDhjtAaJ.js → decopilot-sse-pool-BeaOHKC9.js} +1 -1
  84. package/dist/client/assets/{dialog-BFTRVaPw.js → dialog-C3eyXKr2.js} +1 -1
  85. package/dist/client/assets/{domain-settings-CBkBeu_z.js → domain-settings-Bl1jHEi_.js} +1 -1
  86. package/dist/client/assets/{drawer-BSp_Qb9D.js → drawer-CaJ9RSEr.js} +1 -1
  87. package/dist/client/assets/{dropdown-menu-CA6IwFg0.js → dropdown-menu-BQRK_84j.js} +1 -1
  88. package/dist/client/assets/{empty-state-B6EzD1hc.js → empty-state-Codn-KBw.js} +1 -1
  89. package/dist/client/assets/{extract-connection-data-BR-L-U8A.js → extract-connection-data-CTe9qPGu.js} +1 -1
  90. package/dist/client/assets/{file-explorer-Dtj6Igqr.js → file-explorer-DcyqgJ89.js} +1 -1
  91. package/dist/client/assets/{file-type-icon-BahUB0u1.js → file-type-icon-ClzHNv7M.js} +1 -1
  92. package/dist/client/assets/{files-DdwoV8dv.js → files-Cp6dtrG5.js} +1 -1
  93. package/dist/client/assets/{form-IA5mInDT.js → form-qQQZZ0bg.js} +1 -1
  94. package/dist/client/assets/{general-KXZQH9Xq.js → general-f1C5low1.js} +1 -1
  95. package/dist/client/assets/{github-repo-picker-QQWvr5NA.js → github-repo-picker-LeGIFwfq.js} +1 -1
  96. package/dist/client/assets/{hooks-CiYUxZPK.js → hooks-DXSvM6i_.js} +1 -1
  97. package/dist/client/assets/{import-from-deco-dialog-BwAOvFtS.js → import-from-deco-dialog-BiRWzAEy.js} +1 -1
  98. package/dist/client/assets/{index-Bj3ORK4L.js → index-B01ktAms.js} +1 -1
  99. package/dist/client/assets/{index-BpYmvhM_.js → index-Bs5c1BHn.js} +1 -1
  100. package/dist/client/assets/{index-CKyPIa5R.js → index-Bv8Bucgp.js} +1 -1
  101. package/dist/client/assets/{index-Gfivd9Uq.js → index-CMehFgzp.js} +1 -1
  102. package/dist/client/assets/{index-e95IAJkv.js → index-CTIfwPir.js} +1 -1
  103. package/dist/client/assets/{index-BRv2H8y1.js → index-Ch-D8PUe.js} +1 -1
  104. package/dist/client/assets/{index-BD2KvhrF.js → index-Cql-FIPD.js} +1 -1
  105. package/dist/client/assets/{index-CKsZUR9n.js → index-D0BG6huy.js} +1 -1
  106. package/dist/client/assets/{index-yMfnYXN-.js → index-DGz6e9XH.js} +1 -1
  107. package/dist/client/assets/{index-DiC-yZ0b.js → index-DU8ma9YC.js} +1 -1
  108. package/dist/client/assets/{index-BzmbX17E.js → index-DfLXouLn.js} +5 -5
  109. package/dist/client/assets/{index-C0h0zt1I.js → index-DwA0s3Ar.js} +1 -1
  110. package/dist/client/assets/{index-Bhyd1sax.js → index-fU8qkHBD.js} +3 -3
  111. package/dist/client/assets/{index-redirect-x3BzlQH8.js → index-redirect-ButFq0Ei.js} +1 -1
  112. package/dist/client/assets/{index-BDK0RbB9.js → index-s4x6yXkA.js} +1 -1
  113. package/dist/client/assets/{input-BiJnGsTS.js → input-B4Od9I-H.js} +1 -1
  114. package/dist/client/assets/{integration-icon-CG7aAMrw.js → integration-icon-BMIPoS1Z.js} +1 -1
  115. package/dist/client/assets/{label-EFzZ8UsU.js → label-DndLbTFQ.js} +1 -1
  116. package/dist/client/assets/{login-BahsDksP.js → login-5uE6trPc.js} +1 -1
  117. package/dist/client/assets/{mcp-oauth-CX6n5J2H.js → mcp-oauth-D5kveiDt.js} +1 -1
  118. package/dist/client/assets/{members-DD7_7KvS.js → members-CgGbg5R2.js} +1 -1
  119. package/dist/client/assets/{monaco-editor-CiiWY0IM.js → monaco-editor-_m1K9Qor.js} +1 -1
  120. package/dist/client/assets/{monitoring-stats-row-LndrMtxa.js → monitoring-stats-row-CnuJeWW2.js} +1 -1
  121. package/dist/client/assets/{oauth-callback-CwqdSqdp.js → oauth-callback-E_YhOBvk.js} +1 -1
  122. package/dist/client/assets/{oauth-callback-ai-provider-Dp0kxpw9.js → oauth-callback-ai-provider-C_ajyUGg.js} +1 -1
  123. package/dist/client/assets/{onboarding-D-BzDwCH.js → onboarding-DqgRR_Dv.js} +1 -1
  124. package/dist/client/assets/{org-install-B3LufHcy.js → org-install-f-RGHP6-.js} +1 -1
  125. package/dist/client/assets/{org-layout-CUFsLoL2.js → org-layout-BK6d5F8h.js} +1 -1
  126. package/dist/client/assets/{organization-choice-1bOr0KOy.js → organization-choice-Ohu0cceP.js} +1 -1
  127. package/dist/client/assets/{page-seo-form-BqS6Kuz2.js → page-seo-form-DN0N5Syc.js} +1 -1
  128. package/dist/client/assets/page-seo-sheet-vvHwtwAv.js +1 -0
  129. package/dist/client/assets/{popover-B3Tg7upI.js → popover-BAKVfDcM.js} +1 -1
  130. package/dist/client/assets/{post-editor-DumeEqpy.js → post-editor-BEZnMiIz.js} +1 -1
  131. package/dist/client/assets/{preview-dialog-C0663HIF.js → preview-dialog-DByPX0B3.js} +1 -1
  132. package/dist/client/assets/{primitives-D3lQNrcw.js → primitives-0GptfD8a.js} +1 -1
  133. package/dist/client/assets/{profile-maxJN8aM.js → profile-WHx6IjAW.js} +1 -1
  134. package/dist/client/assets/project-app-view-DotUJ_Hy.js +1 -0
  135. package/dist/client/assets/record-editor-CCnRURCm.js +1 -0
  136. package/dist/client/assets/registry-DnqjOj4t.js +2 -0
  137. package/dist/client/assets/{registry-layout-C6l-1u05.js → registry-layout-d-l3wL-L.js} +1 -1
  138. package/dist/client/assets/{require-capability-Bl_PzS4t.js → require-capability-CCAJW64h.js} +1 -1
  139. package/dist/client/assets/{required-auth-layout-BeA3VAH1.js → required-auth-layout-C6cFom9R.js} +1 -1
  140. package/dist/client/assets/{reset-password-BI3KaTpW.js → reset-password-BaF2nJwP.js} +1 -1
  141. package/dist/client/assets/{roles-TWlsvRcB.js → roles-8z7C9jCY.js} +1 -1
  142. package/dist/client/assets/{scroll-area-mNhTK8lp.js → scroll-area-CNdGQ1jT.js} +1 -1
  143. package/dist/client/assets/{search-input-C5iv1Swf.js → search-input-CCZFMk6Z.js} +1 -1
  144. package/dist/client/assets/{secrets-CLDXJuzL.js → secrets-5CL1V78P.js} +1 -1
  145. package/dist/client/assets/{sections-editor-BffZh0qv.js → sections-editor-AfoRnv8p.js} +1 -1
  146. package/dist/client/assets/{select-Ch3GRhiG.js → select-BjJvwa6X.js} +1 -1
  147. package/dist/client/assets/{select-model-D9_CeWkd.js → select-model-rnntPo-M.js} +1 -1
  148. package/dist/client/assets/{seo-editor-CCoLGCJy.js → seo-editor-hilJhS12.js} +1 -1
  149. package/dist/client/assets/{settings-layout-e6GplXNA.js → settings-layout-CzN62-cM.js} +1 -1
  150. package/dist/client/assets/{settings-section-CCmM0F7T.js → settings-section-CqtrtZMl.js} +1 -1
  151. package/dist/client/assets/{sheet-DgfqS43m.js → sheet-DR8moRi5.js} +1 -1
  152. package/dist/client/assets/{shell-controls-C3ktxMUZ.js → shell-controls-Cljq-5zJ.js} +1 -1
  153. package/dist/client/assets/{shell-layout-8XZf-cnh.js → shell-layout-FEZBzcOq.js} +1 -1
  154. package/dist/client/assets/{shell-route-loading-DP5t8n40.js → shell-route-loading-DRjs12ym.js} +1 -1
  155. package/dist/client/assets/{sidebar-DgcFcAZN.js → sidebar-D5o9jDwG.js} +1 -1
  156. package/dist/client/assets/{skeleton-D7BDtlMD.js → skeleton-rLWTvH4F.js} +1 -1
  157. package/dist/client/assets/{sortable.esm-CGTvL6ow.js → sortable.esm-BfgKZ0pF.js} +1 -1
  158. package/dist/client/assets/{sso-CRrKxxqG.js → sso-BOSJVSrx.js} +1 -1
  159. package/dist/client/assets/{store-C2--s2U3.js → store-CKLXbExl.js} +1 -1
  160. package/dist/client/assets/store-registry-DOqsBL_g.js +2 -0
  161. package/dist/client/assets/{studio-tools-DptAwl8H.js → studio-tools-TtWi4GcA.js} +1 -1
  162. package/dist/client/assets/{switch-D5jm3wFB.js → switch-BOsyPDmg.js} +1 -1
  163. package/dist/client/assets/{table-CHwwFax9.js → table-BVT6YJU9.js} +1 -1
  164. package/dist/client/assets/{tabs-B7rpM3JH.js → tabs-C3CKwsJX.js} +1 -1
  165. package/dist/client/assets/{task-status-BUeS03Hk.js → task-status-blhXxYxP.js} +1 -1
  166. package/dist/client/assets/{textarea-BcsxsQay.js → textarea-CIBm6IXz.js} +1 -1
  167. package/dist/client/assets/{toggle-group-Ddbycveh.js → toggle-group-CceYppKq.js} +1 -1
  168. package/dist/client/assets/{toolbar-BkLQPy1c.js → toolbar-Do9XcH34.js} +1 -1
  169. package/dist/client/assets/{tools-list-CxwJn6Gr.js → tools-list-m5A5eLnZ.js} +1 -1
  170. package/dist/client/assets/{tooltip-LAaWy5R3.js → tooltip-BGqS6PeK.js} +1 -1
  171. package/dist/client/assets/{types-kmtgElu4.js → types-Z7yVORi-.js} +1 -1
  172. package/dist/client/assets/{use-ai-providers-CA1uLznt.js → use-ai-providers--YmjlfBQ.js} +1 -1
  173. package/dist/client/assets/{use-automations-B6TBgkY5.js → use-automations-2dWNyHsz.js} +1 -1
  174. package/dist/client/assets/{use-capability-DYAztaal.js → use-capability-DVLJAsjf.js} +1 -1
  175. package/dist/client/assets/{use-clock-tick-s5SkNa9u.js → use-clock-tick-DpHZFAog.js} +1 -1
  176. package/dist/client/assets/{use-collections-DpQ073j2.js → use-collections-KsDUHUAN.js} +1 -1
  177. package/dist/client/assets/{use-connection-dnLtOpPp.js → use-connection-Cv8gTfne.js} +1 -1
  178. package/dist/client/assets/{use-copy-Dk8SAYzm.js → use-copy-D2gkWguH.js} +1 -1
  179. package/dist/client/assets/{use-create-virtual-mcp-BJsM0miA.js → use-create-virtual-mcp-B8Yyp1fR.js} +1 -1
  180. package/dist/client/assets/{use-debounced-autosave-PfZIQW63.js → use-debounced-autosave-DVt2zHOJ.js} +1 -1
  181. package/dist/client/assets/{use-debounced-value-UvsP9YKO.js → use-debounced-value-DjWsP9Hj.js} +1 -1
  182. package/dist/client/assets/{use-decopilot-events-YtfbsxVX.js → use-decopilot-events-BCSjNngL.js} +1 -1
  183. package/dist/client/assets/{use-delete-connection-DlWJEndh.js → use-delete-connection-J96v3kjz.js} +1 -1
  184. package/dist/client/assets/{use-file-configs-CP2hndiY.js → use-file-configs-BYW5JaMQ.js} +1 -1
  185. package/dist/client/assets/{use-infinite-scroll-Bdj5V_AI.js → use-infinite-scroll-r7m6Z_Be.js} +1 -1
  186. package/dist/client/assets/{use-join-requests-D0NyhY5y.js → use-join-requests-IkdbtSFd.js} +1 -1
  187. package/dist/client/assets/{use-mcp-client-dfTAajy3.js → use-mcp-client-B0hy5V7D.js} +1 -1
  188. package/dist/client/assets/{use-mcp-prompts-Bk-9WKZ0.js → use-mcp-prompts-Bln5EAZM.js} +1 -1
  189. package/dist/client/assets/{use-mcp-tools-B3pFwx7U.js → use-mcp-tools-BCsOGlSX.js} +1 -1
  190. package/dist/client/assets/{use-members-C3LvX8r6.js → use-members-B7MZAKoo.js} +1 -1
  191. package/dist/client/assets/{use-mobile-DSi7eA8N.js → use-mobile-DFd-Pz6l.js} +1 -1
  192. package/dist/client/assets/{use-navigate-to-agent-Bfhk0vTw.js → use-navigate-to-agent-BJeOgnu1.js} +1 -1
  193. package/dist/client/assets/{use-org-auth-client-DV89mEKo.js → use-org-auth-client-BmaNh1kZ.js} +1 -1
  194. package/dist/client/assets/{use-org-fs-BQDrpMzd.js → use-org-fs-Dps-w-7N.js} +1 -1
  195. package/dist/client/assets/{use-org-sso-B-rfF0hw.js → use-org-sso-DJccZWzK.js} +1 -1
  196. package/dist/client/assets/{use-organization-roles-DylO2_lI.js → use-organization-roles-Dkgf6KZE.js} +1 -1
  197. package/dist/client/assets/{use-organization-settings-CWJs8i9e.js → use-organization-settings-BUxJmxMx.js} +1 -1
  198. package/dist/client/assets/{use-registry-connections-CzLe5-ZU.js → use-registry-connections-CAkcLsK-.js} +1 -1
  199. package/dist/client/assets/{use-secrets-htdqnBYU.js → use-secrets-Cb2oZE_A.js} +1 -1
  200. package/dist/client/assets/{use-status-sounds-BBghWlXy.js → use-status-sounds-DHO_hnrz.js} +1 -1
  201. package/dist/client/assets/{use-view-mode-DBKiFT2P.js → use-view-mode-BWRU3sX2.js} +1 -1
  202. package/dist/client/assets/{use-virtual-mcp-wPj3U3bP.js → use-virtual-mcp-CEVUoztY.js} +1 -1
  203. package/dist/client/assets/useInfiniteQuery-BfE963e3.js +1 -0
  204. package/dist/client/assets/useSuspenseInfiniteQuery-DFr6gOVI.js +1 -0
  205. package/dist/client/assets/{useSuspenseQueries-hH8EDnyA.js → useSuspenseQueries-BAAJUN-c.js} +1 -1
  206. package/dist/client/assets/{variant-calendar-DsAwmfcn.js → variant-calendar-D5dc-Gv9.js} +1 -1
  207. package/dist/client/assets/{view-mode-toggle-DjRrY4r9.js → view-mode-toggle-DWiS3R3D.js} +1 -1
  208. package/dist/client/index.html +1 -1
  209. package/dist/server/cli.js +2 -2
  210. package/dist/server/server.js +1 -1
  211. package/package.json +1 -1
  212. package/dist/client/assets/page-seo-sheet-CH71iUJS.js +0 -1
  213. package/dist/client/assets/project-app-view-BGa2myYu.js +0 -1
  214. package/dist/client/assets/record-editor-D8erZJ0W.js +0 -1
  215. package/dist/client/assets/registry-Bc1h1wpu.js +0 -2
  216. package/dist/client/assets/store-registry-Fh3MYBxu.js +0 -2
  217. package/dist/client/assets/useInfiniteQuery-DyEtCjLP.js +0 -1
  218. package/dist/client/assets/useSuspenseInfiniteQuery-BkZVukyP.js +0 -1
@@ -1025,7 +1025,7 @@ conversation.
1025
1025
  </skills-usage>`;var no1=()=>{};function hp8($){let Z={};for(let G of $.split(`
1026
1026
  `)){let X=G.match(/^([A-Za-z][\w-]*):\s*(.*)$/);if(X?.[1]&&X[2]!==void 0)Z[X[1].toLowerCase()]=X[2].trim()}return Z}function po1($){for(let Z of $.split(/\n\s*\n/)){let G=Z.trim();if(!G||G.startsWith("#"))continue;return G.replace(/\n/g," ")}return null}function to1($){let Z=$.match(/^---\n([\s\S]*?)\n---\n?/);if(!Z||Z[1]===void 0)return{name:null,description:po1($),body:$};let G=hp8(Z[1]),X=$.slice(Z[0].length);return{name:G.name||null,description:G.description||po1(X),body:X}}function dp8($){let Z=$.lastIndexOf("/");return Z===-1?$:$.slice(Z+1)}async function fc0($,Z,G,X){try{let Y=(await $.listDir(Z,G)).filter((W)=>W.kind==="dir");if(Y.length===0)return[];let Q=await $.filesExist(Z,Y.map((W)=>`${W.path}/SKILL.md`)),J=[];for(let W of Y){if(X.remaining<=0)break;if(!Q.has(`${W.path}/SKILL.md`))continue;X.remaining-=1;try{let K=await $.read(Z,`${W.path}/SKILL.md`),U=to1(new TextDecoder().decode(K));J.push({dirPath:W.path,name:U.name??dp8(W.path),description:U.description})}catch{}}return J}catch(Y){return console.warn(`[skill-catalog] scan failed (${Z}:${G||"/"})`,Y),[]}}async function lp8($,Z){if(j40&&j40.expires>Date.now())return j40.entries;let G=Zc($),X=[];for(let{set:Y}of iY()){let Q=UF(Y),J=await fc0(G,Q,"",Z);for(let W of J)X.push({id:`${Y}/${W.dirPath}`,name:W.name,description:W.description,source:`public:${Y}`,sandboxPath:pE(Q,W.dirPath),volume:Q,path:W.dirPath})}if(X.length>0)j40={entries:X,expires:Date.now()+up8};return X}function mp8($,Z){let G=rX(),X=G?YJ(G,Z):new x3(Z,$.baseUrl);return new y3(X,$.storage.orgFsEntries,Z)}async function ip8($,Z,G){let X=mp8($,Z),[Y,Q]=await Promise.all([fc0(X,z40,"",G),fc0(X,z40,"skills",G)]);return[...Y,...Q].map((J)=>({id:`home/${J.dirPath}`,name:J.name,description:J.description,source:"home",sandboxPath:pE(z40,J.dirPath),volume:z40,path:J.dirPath}))}async function P40($,Z){let G={remaining:cp8},[X,Y]=await Promise.all([lp8($,G),ip8($,Z,G)]);return[...X,...Y].sort((Q,J)=>Q.source.localeCompare(J.source)||Q.id.localeCompare(J.id))}var cp8=200,up8=300000,z40="home",j40=null;var xc0=O(()=>{ah();WO();z_();Ix();j_()});async function ro1($,Z){let G=$.organization?.id;if(!G)return null;try{let X=await P40($,G);if(X.length===0)return null;let Y=new Set((Z.metadata?.knowledge??[]).filter((J)=>J.kind==="skill").map((J)=>pE(J.volume,J.path))),Q=X.filter((J)=>Y.has(J.sandboxPath)).map((J)=>J.id);return io1(X.map((J)=>({id:J.id,description:J.description,source:J.source})),Q)}catch(X){return console.warn("[skill-catalog] failed to render skills block",X),null}}var oo1=O(()=>{no1();xc0();Ix()});import{SpanStatusCode as ao1}from"@opentelemetry/api";function np8($,Z){if($.connection_type!=="VIRTUAL")return!1;if(!Z||i3(Z))return!1;return $.id===Z}async function so1($,Z,G=!1){let X=$.id,Y=await Z.storage.virtualMcps.findById(X);if(!Y)throw Error(`Virtual MCP not found: ${X}`);return MU(Y,Z,"passthrough",G)}async function MU($,Z,G,X=!1,Y){let Q=$.connections.map((w)=>w.connection_id),W=(await Z.tracer.startActiveSpan("studio.virtual_mcp.load_connections",{attributes:{"virtual_mcp.id":$.id??"decopilot","virtual_mcp.connection_count":Q.length}},async(w)=>{try{let F=await Promise.all(Q.map((H)=>Z.storage.connections.findById(H)));return w.setStatus({code:ao1.OK}),F}catch(F){throw w.setStatus({code:ao1.ERROR,message:F.message}),w.recordException(F),F}finally{w.end()}})).filter((w)=>w!==null&&w.status==="active"&&!np8(w,$.id));if(Y?.additionalConnections?.length)W.unshift(...Y.additionalConnections);let K=Y?.includeSkillsCatalog?await ro1(Z,$)??void 0:void 0,U={connections:W,virtualMcp:$,superUser:X,mcpListCache:J9()??void 0,listTimeoutMs:Y?.listTimeoutMs,skillsBlock:K};return new bc0(U,Z)}var Rx=O(()=>{$6();GY();lo1();oo1()});var Po1={};e8(Po1,{clientFromConnection:()=>oZ});async function oZ($,Z,G=!1){if($.connection_type==="VIRTUAL")return so1($,Z,G);return vo1($,Z,G)}var Dl=O(()=>{yo1();Rx()});async function vc0($,Z,G){let X=new AbortController,Y,Q=new Promise((W,K)=>{Y=setTimeout(()=>{X.abort(),K(new eo1($.id,G))},G)}),J=(async()=>{let W=await oZ($,Z,!0);try{return(await W.listTools(void 0,{timeout:G,signal:X.signal})).tools}finally{await W.close().catch(()=>{})}})();J.catch(()=>{});try{return await Promise.race([J,Q])}finally{if(Y)clearTimeout(Y)}}var eo1;var $a1=O(()=>{Dl();eo1=class eo1 extends Error{constructor($,Z){super(`listTools timed out after ${Z}ms for connection ${$}`);this.name="ListToolsTimeoutError"}}});function A40($){return(Z)=>{if(Z instanceof k1&&Z.code===v1.MethodNotFound)return $;throw Z}}var Za1=O(()=>{l5()});function T40($,Z,G){let X=jH($,Z,G,J9()??void 0),Y=ZU(X,{name:"mcp-mesh-enhanced",version:"1.0.0"},{capabilities:pp8,toolCallTimeoutMs:Eb});Y.server.setRequestHandler(BF,async()=>{return await X.listResources().catch(A40({resources:[]}))}),Y.server.setRequestHandler(OF,async()=>{return await X.listResourceTemplates().catch(A40({resourceTemplates:[]}))}),Y.server.setRequestHandler(EF,async()=>{return await X.listPrompts().catch(A40({prompts:[]}))});let Q=Y.close.bind(Y);return Y.close=async()=>{await Q(),await X.close().catch(()=>{})},Y}var pp8;var Ga1=O(()=>{$6();l5();El();GY();Za1();pp8={tools:{},resources:{},prompts:{}}});var tE=O(()=>{Dl();$a1();Ga1()});function $i($,Z,G){if(Z.some((X)=>X!=="*"&&X.startsWith("SELF::"))&&$.SELF===void 0)$.SELF={value:`${G}_self`}}function Zi($,Z){let G=new Map;for(let X of Z){if(X==="*")continue;let[Y,Q]=P$0(X);if(!tp8.has(Q))continue;let J=ou(Y,$);if(typeof J!=="object"||J===null||!("value"in J))continue;let W=J.value;if(typeof W!=="string")continue;G.set(`${W}:${Q}`,{targetConnectionId:W,scope:Q})}return[...G.values()]}async function Gi($,Z,G,X){for(let Q of Z){if(Q==="*")continue;let[J]=P$0(Q),W=ou(J,$);if(W===void 0||W===null)throw Error(`Scope references key "${J}" but it's not present in state`)}let Y=Ag1($,Z);for(let Q of Y){if(Q.endsWith("_self"))continue;let J=await X.storage.connections.findById(Q);if(!J||J.organization_id!==G)throw Error(`Referenced connection not found: ${Q}`);try{await X.access.check(Q)}catch(W){throw Error(`Access denied to referenced connection: ${Q}. ${W.message}`)}}}var tp8;var yc0=O(()=>{pf0();I$0();tp8=new Set([A$0,T$0])});import{z as Xa1}from"zod";var rp8,op8,gc0;var Ya1=O(()=>{x4();J1();q8();GY();tE();yc0();cu();a3();rp8=Xa1.object({data:ic.describe("Data for the new connection (id is auto-generated if not provided)")}),op8=Xa1.object({item:iZ.describe("The created connection entity")}),gc0=X0({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:rp8,outputSchema:op8,handler:async($,Z)=>{S0(Z);let G=O0(Z);await Z.access.check();let X=l1(Z);if(!X)throw Error("User ID required to create connection");let Y={...$.data,organization_id:G.id,created_by:X};if(Y.id){if((await Z.storage.connections.findById(Y.id))?.organization_id===G.id)throw Error("Connection already exists in organization")}if(Y.connection_type==="VIRTUAL"){let F=IO(Y.connection_url);if(!F)throw Error("VIRTUAL connection requires connection_url in format: virtual://$virtual_mcp_id");let H=await Z.storage.virtualMcps.findById(F);if(!H)throw Error(`Virtual MCP not found: ${F}`);if(H.organization_id!==G.id)throw Error("Virtual MCP does not belong to the current organization");Y.connection_url=RO(F)}if(Y.connection_type==="STDIO"&&!L1().localMode)throw Error("STDIO connections are only available in local mode (--local-mode).");let Q=await cF({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=Q?.tools?.length?Q.tools:null,W=Q?.scopes?.length?Q.scopes:Y.configuration_scopes??null,K=Y.configuration_state??null;if(K&&W?.length)$i(K,W,G.id),await Gi(K,W,G.id,Z);let U=await Z.storage.connections.createNew({...Y,tools:null,configuration_state:K,configuration_scopes:W}),w=K&&W?.length?Zi(K,W):[];if(w.length>0){let F;try{await Z.storage.connectionCredentialVault.replaceGrantsForSubject({organizationId:G.id,subjectConnectionId:U.id,createdBy:X,grants:w});let{plaintextToken:H,record:N}=await Z.storage.connectionCredentialVault.createOrRotateWorkloadToken({organizationId:G.id,subjectConnectionId:U.id});F=N.id,await(await oZ(U,Z,!1)).callTool({name:"ON_MCP_CONFIGURATION",arguments:{state:K,scopes:W,firstRun:!0,vault:{baseUrl:Z.baseUrl,org:G.slug??G.id,subjectConnectionId:U.id,token:H}}})}catch(H){if(F)await Z.storage.connectionCredentialVault.revokeWorkloadToken({organizationId:G.id,subjectConnectionId:U.id,tokenId:F});throw await Z.storage.connections.delete(U.id),H}}if(J)J9()?.set("tools",U.id,J).catch(()=>{});return r1.capture({distinctId:X,event:"connection_created",groups:{organization:G.id},properties:{connection_id:U.id,connection_type:U.connection_type,app_name:U.app_name??null,organization_id:G.id,tools_count:J?.length??0}}),{item:U}}})});import{z as EQ}from"zod/v4";import{z as Qa1}from"zod/v4";import{z as I40}from"zod/v4";import{z as AW}from"zod/v4";import{z as $t8}from"zod/v4";import{z as rE}from"zod/v4";import{z as TW}from"zod/v4";import{z as AZ}from"zod/v4";import{z as Ja1}from"zod/v4";import{z as M40}from"zod/v4";import{z as Tt8}from"zod/v4";import{z as Wa1}from"zod/v4";import{z as R40}from"zod/v4";import{z as _t8}from"zod/v4";function Xi($,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((G,X)=>Xi(G,Z[X]))}if(typeof $==="object"&&typeof Z==="object"){let G=Object.keys($),X=Object.keys(Z);if(G.length!==X.length)return!1;return G.every((Y)=>X.includes(Y)&&Xi($[Y],Z[Y]))}return!1}function jt8(){return($)=>{if(!Array.isArray($))return!0;let Z=[];return $.every((G)=>{if(Z.some((Y)=>Xi(G,Y)))return!1;return Z.push(G),!0})}}function q40($,Z){return $.safeParse(Z).success}function GG($){if(typeof $==="boolean")return $?EQ.any():EQ.never();let Z={};for(let Y of vt8)Y.apply(Z,$);let G=[];if(Z.string!==!1)G.push(Z.string||EQ.string());if(Z.number!==!1)G.push(Z.number||EQ.number());if(Z.boolean!==!1)G.push(Z.boolean||EQ.boolean());if(Z.null!==!1)G.push(Z.null||EQ.null());if(Z.array!==!1)G.push(Z.array||EQ.array(EQ.any()));if(Z.tuple!==!1&&Z.tuple!==void 0)G.push(Z.tuple);if(Z.object!==!1)if(Z.object)G.push(Z.object);else{let Y=EQ.custom((Q)=>{return typeof Q==="object"&&Q!==null&&!Array.isArray(Q)},"Must be an object, not an array");G.push(Y)}if(Z.file!==!1&&Z.file!==void 0)G.push(Z.file);let X;if(G.length===0)X=EQ.never();else if(G.length===1)X=G[0];else if(!Object.keys($).some((Q)=>Q!=="$schema"&&Q!=="title"&&Q!=="description"))X=EQ.any();else X=EQ.union(G);for(let Y of yt8)X=Y.apply(X,$);return X}var ap8=class{apply($,Z){if(!Z.type)return;let G=Array.isArray(Z.type)?Z.type:[Z.type],X=new Set(G);if(!X.has("string"))$.string=!1;if(!X.has("number")&&!X.has("integer"))$.number=!1;if(!X.has("boolean"))$.boolean=!1;if(!X.has("null"))$.null=!1;if(!X.has("array"))$.array=!1;if(!X.has("object"))$.object=!1;if(X.has("integer")&&$.number!==!1){let Y=$.number||Qa1.number();if(Y instanceof Qa1.ZodNumber)$.number=Y.int()}}},sp8=class{apply($,Z){if(Z.const===void 0)return;let G=Z.const;if($.string=!1,$.number=!1,$.boolean=!1,$.null=!1,$.array=!1,$.object=!1,typeof G==="string")$.string=I40.literal(G);else if(typeof G==="number")$.number=I40.literal(G);else if(typeof G==="boolean")$.boolean=I40.literal(G);else if(G===null)$.null=I40.null();else if(Array.isArray(G))$.array=void 0;else if(typeof G==="object")$.object=void 0}},ep8=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 G={string:Z.enum.filter((X)=>typeof X==="string"),number:Z.enum.filter((X)=>typeof X==="number"),boolean:Z.enum.filter((X)=>typeof X==="boolean"),null:Z.enum.filter((X)=>X===null),array:Z.enum.filter((X)=>Array.isArray(X)),object:Z.enum.filter((X)=>typeof X==="object"&&X!==null&&!Array.isArray(X))};$.string=this.createTypeSchema(G.string,"string"),$.number=this.createTypeSchema(G.number,"number"),$.boolean=this.createTypeSchema(G.boolean,"boolean"),$.null=G.null.length>0?AW.null():!1,$.array=G.array.length>0?void 0:!1,$.object=G.object.length>0?void 0:!1}createTypeSchema($,Z){if($.length===0)return!1;if($.length===1)return AW.literal($[0]);if(Z==="string")return AW.enum($);if(Z==="number"){let[G,X,...Y]=$;return AW.union([AW.literal(G),AW.literal(X),...Y.map((Q)=>AW.literal(Q))])}if(Z==="boolean")return AW.union([AW.literal(!0),AW.literal(!1)]);return!1}},Zt8=class{apply($,Z){let G=Z;if(G.type==="string"&&G.format==="binary"&&G.contentEncoding==="binary"){let X=$t8.file();if(G.minLength!==void 0)X=X.min(G.minLength);if(G.maxLength!==void 0)X=X.max(G.maxLength);if(G.contentMediaType!==void 0)X=X.mime(G.contentMediaType);$.file=X,$.string=!1}}},Gt8=class{apply($,Z){let G=Z;if(Z.type===void 0&&(G.minLength!==void 0||G.maxLength!==void 0||G.pattern!==void 0)){if($.string===void 0)$.string=rE.string()}}},Xt8=class{apply($,Z){let G=Z;if(G.minLength===void 0)return;if($.string!==!1){let X=$.string||rE.string();if(X instanceof rE.ZodString)$.string=X.refine((Y)=>{return Array.from(Y).length>=G.minLength},{message:`String must be at least ${G.minLength} characters long`})}}},Yt8=class{apply($,Z){let G=Z;if(G.maxLength===void 0)return;if($.string!==!1){let X=$.string||rE.string();if(X instanceof rE.ZodString)$.string=X.refine((Y)=>{return Array.from(Y).length<=G.maxLength},{message:`String must be at most ${G.maxLength} characters long`})}}},Qt8=class{apply($,Z){let G=Z;if(!G.pattern)return;if($.string!==!1){let X=$.string||rE.string();if(X instanceof rE.ZodString){let Y=new RegExp(G.pattern);$.string=X.regex(Y)}}}},Jt8=class{apply($,Z){let G=Z;if(G.minimum===void 0)return;if($.number!==!1){let X=$.number||TW.number();if(X instanceof TW.ZodNumber)$.number=X.min(G.minimum)}}},Wt8=class{apply($,Z){let G=Z;if(G.maximum===void 0)return;if($.number!==!1){let X=$.number||TW.number();if(X instanceof TW.ZodNumber)$.number=X.max(G.maximum)}}},Kt8=class{apply($,Z){let G=Z;if(G.exclusiveMinimum===void 0)return;if($.number!==!1){let X=$.number||TW.number();if(X instanceof TW.ZodNumber)if(typeof G.exclusiveMinimum==="number")$.number=X.gt(G.exclusiveMinimum);else $.number=!1}}},Ut8=class{apply($,Z){let G=Z;if(G.exclusiveMaximum===void 0)return;if($.number!==!1){let X=$.number||TW.number();if(X instanceof TW.ZodNumber)if(typeof G.exclusiveMaximum==="number")$.number=X.lt(G.exclusiveMaximum);else $.number=!1}}},wt8=class{apply($,Z){let G=Z;if(G.multipleOf===void 0)return;if($.number!==!1){let X=$.number||TW.number();if(X instanceof TW.ZodNumber)$.number=X.refine((Y)=>{if(G.multipleOf===0)return!1;let Q=Y/G.multipleOf,J=Math.round(Q),W=Math.min(Math.abs(Y)*Number.EPSILON*10,Math.abs(G.multipleOf)*Number.EPSILON*10);return Math.abs(Q-J)<=W/Math.abs(G.multipleOf)},{message:`Must be a multiple of ${G.multipleOf}`})}}},Ft8=class{apply($,Z){let G=Z;if(Z.type===void 0&&(G.minItems!==void 0||G.maxItems!==void 0||G.items!==void 0||G.prefixItems!==void 0)){if($.array===void 0)$.array=AZ.array(AZ.any())}}},Ht8=class{apply($,Z){let G=Z;if(G.minItems===void 0)return;if($.array!==!1)$.array=($.array||AZ.array(AZ.any())).min(G.minItems)}},Nt8=class{apply($,Z){let G=Z;if(G.maxItems===void 0)return;if($.array!==!1)$.array=($.array||AZ.array(AZ.any())).max(G.maxItems)}},Bt8=class{apply($,Z){let G=Z;if($.array===!1)return;if(Array.isArray(G.items))$.array=$.array||AZ.array(AZ.any());else if(G.items&&typeof G.items!=="boolean"&&!G.prefixItems){let X=GG(G.items),Y=AZ.array(X);if($.array&&$.array instanceof AZ.ZodArray){let Q=$.array._def;if(Q.checks)Q.checks.forEach((J)=>{if(J._zod&&J._zod.def){let W=J._zod.def;if(W.check==="min_length"&&W.minimum!==void 0)Y=Y.min(W.minimum);else if(W.check==="max_length"&&W.maximum!==void 0)Y=Y.max(W.maximum)}})}$.array=Y}else if(typeof G.items==="boolean"&&G.items===!1)if(!G.prefixItems)$.array=AZ.array(AZ.any()).max(0);else $.array=$.array||AZ.array(AZ.any());else if(typeof G.items==="boolean"&&G.items===!0)$.array=$.array||AZ.array(AZ.any());else if(G.prefixItems)$.array=$.array||AZ.array(AZ.any())}},Ot8=class{apply($,Z){if(Z.type!=="array")return;let G=Z;if(!Array.isArray(G.items))return;if($.array===!1)return;let X=G.items.map((Q)=>GG(Q)),Y;if(X.length===0)Y=Ja1.tuple([]);else Y=Ja1.tuple(X);if(G.minItems!==void 0&&G.minItems>X.length)Y=!1;if(G.maxItems!==void 0&&G.maxItems<X.length)Y=!1;$.tuple=Y,$.array=!1}},Et8=class{apply($,Z){let G=Z;if($.object===!1)return;if(G.properties||G.required||G.additionalProperties!==void 0)$.object=$.object||M40.object({}).passthrough()}},Dt8=class{apply($,Z){let G=Z;if(Z.type===void 0&&(G.maxProperties!==void 0||G.minProperties!==void 0)){if($.object===void 0)$.object=M40.object({}).passthrough()}}},Lt8=class{apply($,Z){let G=Z;if(G.maxProperties===void 0)return;if($.object!==!1){let X=$.object||M40.object({}).passthrough();$.object=X.refine((Y)=>Object.keys(Y).length<=G.maxProperties,{message:`Object must have at most ${G.maxProperties} properties`})}}},zt8=class{apply($,Z){let G=Z;if(G.minProperties===void 0)return;if($.object!==!1){let X=$.object||M40.object({}).passthrough();$.object=X.refine((Y)=>Object.keys(Y).length>=G.minProperties,{message:`Object must have at least ${G.minProperties} properties`})}}},Pt8=class{apply($,Z){if(!Z.not)return $;let G=GG(Z.not);return $.refine((X)=>!q40(G,X),{message:"Value must not match the 'not' schema"})}},At8=class{apply($,Z){if(Z.uniqueItems!==!0)return $;return $.refine(jt8(),{message:"Array items must be unique"})}},It8=class{apply($,Z){if(!Z.allOf||Z.allOf.length===0)return $;return Z.allOf.map((X)=>GG(X)).reduce((X,Y)=>Tt8.intersection(X,Y),$)}},Rt8=class{apply($,Z){if(!Z.anyOf||Z.anyOf.length===0)return $;let G=Z.anyOf.length===1?GG(Z.anyOf[0]):Wa1.union([GG(Z.anyOf[0]),GG(Z.anyOf[1]),...Z.anyOf.slice(2).map((X)=>GG(X))]);return Wa1.intersection($,G)}},qt8=class{apply($,Z){if(!Z.oneOf||Z.oneOf.length===0)return $;let G=Z.oneOf.map((X)=>GG(X));return $.refine((X)=>{let Y=0;for(let Q of G)if(Q.safeParse(X).success){if(Y++,Y>1)return!1}return Y===1},{message:"Value must match exactly one of the oneOf schemas"})}},Mt8=class{apply($,Z){let G=Z;if(G.prefixItems&&Array.isArray(G.prefixItems)){let Y=G.prefixItems.map((Q)=>GG(Q));return $.refine((Q)=>{if(!Array.isArray(Q))return!0;for(let J=0;J<Math.min(Q.length,Y.length);J++)if(!q40(Y[J],Q[J]))return!1;if(Q.length>Y.length){if(typeof G.items==="boolean"&&G.items===!1)return!1;else if(G.items&&typeof G.items==="object"&&!Array.isArray(G.items)){let J=GG(G.items);for(let W=Y.length;W<Q.length;W++)if(!q40(J,Q[W]))return!1}}return!0},{message:"Array does not match prefixItems schema"})}return $}},kt8=class{apply($,Z){let G=Z;if(!G.properties&&!G.required&&G.additionalProperties!==!1)return $;if($ instanceof R40.ZodObject||$ instanceof R40.ZodRecord){let X={};if(G.properties){for(let[Y,Q]of Object.entries(G.properties))if(Q!==void 0)X[Y]=GG(Q)}if(G.required&&Array.isArray(G.required)){let Y=new Set(G.required);for(let Q of Object.keys(X))if(!Y.has(Q))X[Q]=X[Q].optional()}else for(let Y of Object.keys(X))X[Y]=X[Y].optional();if(G.additionalProperties===!1)return R40.object(X);else return R40.object(X).passthrough()}return $.refine((X)=>{if(typeof X!=="object"||X===null||Array.isArray(X))return!0;if(G.properties){for(let[Y,Q]of Object.entries(G.properties))if(Q!==void 0){if(Object.getOwnPropertyDescriptor(X,Y)!==void 0){if(!GG(Q).safeParse(X[Y]).success)return!1}}}if(G.required&&Array.isArray(G.required)){for(let Y of G.required)if(Object.getOwnPropertyDescriptor(X,Y)===void 0)return!1}if(G.additionalProperties===!1&&G.properties){let Y=new Set(Object.keys(G.properties));for(let Q in X)if(!Y.has(Q))return!1}return!0},{message:"Object constraints validation failed"})}},St8=class{apply($,Z){if(!Z.enum||Z.enum.length===0)return $;let G=Z.enum.filter((X)=>Array.isArray(X)||typeof X==="object"&&X!==null);if(G.length===0)return $;return $.refine((X)=>{if(typeof X!=="object"||X===null)return!0;return G.some((Y)=>Xi(X,Y))},{message:"Value must match one of the enum values"})}},Vt8=class{apply($,Z){if(Z.const===void 0)return $;let G=Z.const;if(typeof G!=="object"||G===null)return $;return $.refine((X)=>Xi(X,G),{message:"Value must equal the const value"})}},Ct8=class{apply($,Z){if(Z.description)$=$.describe(Z.description);return $}},bt8=class{apply($,Z){var G;let X=Z;if(!((G=X.required)==null?void 0:G.includes("__proto__"))||Z.type!==void 0)return $;return _t8.any().refine((Y)=>this.validateRequired(Y,X.required),{message:"Missing required properties"})}validateRequired($,Z){if(typeof $!=="object"||$===null||Array.isArray($))return!0;return Z.every((G)=>Object.prototype.hasOwnProperty.call($,G))}},ft8=class{apply($,Z){var G;let X=Z;if(X.contains===void 0)return $;let Y=GG(X.contains),Q=(G=X.minContains)!=null?G:1,J=X.maxContains;return $.refine((W)=>{if(!Array.isArray(W))return!0;let K=0;for(let U of W)if(q40(Y,U))K++;if(K<Q)return!1;if(J!==void 0&&K>J)return!1;return!0},{message:"Array must contain required items matching the schema"})}},xt8=class{apply($,Z){let{default:G}=Z;if(G===void 0)return $;if(!$.safeParse(G).success)return $;return $.default(G)}},vt8,yt8;var Ka1=O(()=>{vt8=[new sp8,new ep8,new ap8,new Zt8,new Gt8,new Ft8,new Dt8,new Xt8,new Yt8,new Qt8,new Jt8,new Wt8,new Kt8,new Ut8,new wt8,new Ot8,new Ht8,new Nt8,new Bt8,new Lt8,new zt8,new Et8],yt8=[new bt8,new St8,new Vt8,new It8,new Rt8,new qt8,new Mt8,new kt8,new ft8,new Pt8,new At8,new xt8,new Ct8]});class hc0{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,gt8),this._socket.onerror=(G)=>{let X="error"in G?G.error:Error(`WebSocket error: ${JSON.stringify(G)}`);Z(X),this.onerror?.(X)},this._socket.onopen=()=>{$()},this._socket.onclose=()=>{this.onclose?.()},this._socket.onmessage=(G)=>{let X;try{X=aX.parse(JSON.parse(G.data))}catch(Y){this.onerror?.(Y);return}this.onmessage?.(X)}})}async close(){this._socket?.close()}send($){return new Promise((Z,G)=>{if(!this._socket){G(Error("Not connected"));return}this._socket?.send(JSON.stringify($)),Z()})}}var gt8="mcp";var Ua1=O(()=>{l5()});function ht8($){let Z=$;if(!Z||typeof Z!=="object"||!("method"in Z))return null;switch(Z.method){case"initialize":{let G=Z?.params?.protocolVersion;if(!G)return null;return{type:"emit",message:{result:{protocolVersion:G,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 k40;var cc0=O(()=>{TO();k40=class k40 extends LJ{constructor($,Z){super($,Z)}send($,Z){let G=ht8($);if(G?.type==="emit")return this.onmessage?.(G.message),Promise.resolve();if(G?.type==="suppress")return Promise.resolve();return super.send($,Z)}}});var wa1,Fa1=async($,Z,G)=>{let X=ct8($.connection,Z,G);if(!X)throw Error("Unknown MCP connection type");let Y=new wa1({name:$?.name??"MCP Client",version:"1.0.0"});return await Y.connect(X),{client:Y}},ct8=($,Z,G)=>{if($.type==="Websocket")return new hc0(new URL($.url));if($.type!=="SSE"&&$.type!=="HTTP")return null;let Y={...$.token?{authorization:`Bearer ${$.token}`}:{},...G??{},..."headers"in $?$.headers||{}:{}};if($.type==="SSE"){let Q={requestInit:{headers:Y,signal:Z}};if($.token)Q.eventSourceInit={fetch:(J,W)=>{return fetch(J,{...W,headers:{...Y,Accept:"text/event-stream"},signal:Z})}};return new UU(new URL($.url),Q)}return new k40(new URL($.url),{requestInit:{headers:Y,signal:Z,credentials:"include"}})};var Ha1=O(()=>{DJ();gu();Ua1();l5();N7();cc0();wa1=class wa1 extends Y9{constructor($,Z){super($,{jsonSchemaValidator:O5,...Z})}async listTools($,Z){return await this.request({method:"tools/list",params:$},Hc,Z)}}});function Oa1($){let Z=(G)=>{if("connection"in $)return Fa1({connection:$.connection},void 0,G);return $.client};return new Proxy({},{get(G,X){if(X==="toJSON")return null;if(typeof X!=="string")throw Error("Name must be a string");if(X==="listTools")return W;async function Y(K,U=X){let w=$?.debugId?.(),F=w?{"x-trace-debug-id":w}:void 0,{client:H}=await Z(F),{structuredContent:N,isError:B,content:E}=await H.callTool({name:String(U),arguments:K});if(B){let L=E?.[0]?.text,z=typeof L==="string"?Na1(L):null,j=z?.code&&typeof $?.getErrorByStatusCode==="function"?$.getErrorByStatusCode(z.code,z.message,z.traceId):null;if(j)throw j;throw Error(`Tool ${String(U)} returned an error: ${JSON.stringify(N??E)}`)}if(N!==void 0)return N;let D=E?.[0]?.text;return typeof D==="string"?Na1(D):void 0}async function Q(){let{client:K}=await Z(),{tools:U}=await K.listTools();return U}async function J(){if(!("connection"in $))return Q();let K=$.connection,U=JSON.stringify(K);try{if(!S40.has(U))S40.set(U,Q());return await S40.get(U)}catch(w){console.error("Failed to list tools",w),S40.delete(U);return}}async function W(){return(await J()??[]).map((U)=>Ba1(U,Y))}return Y.asTool=async()=>{let U=(await J()??[]).find((w)=>w.name===X);if(!U)throw Error(`Tool ${X} not found`);return Ba1(U,Y)},Y}})}var Na1=($)=>{try{return JSON.parse($)}catch{return $}},S40,Ba1=($,Z)=>{return{...$,id:$.name,inputSchema:$.inputSchema?GG($.inputSchema):void 0,outputSchema:$.outputSchema?GG($.outputSchema):void 0,execute:(G)=>{return Z(G.context,$.name)}}};var Ea1=O(()=>{Ka1();Ha1();S40=new Map});function oE($){return Oa1($)}var qx;var uc0=O(()=>{Ea1();qx=new Proxy({},{get($,Z){if(Z==="toJSON")return null;if(Z==="forConnection")return(G)=>oE({connection:G});return global[Z]}})});function V40($){return{isImplementedBy:(Z)=>{for(let G of $){let X=typeof G.name==="string"?new RegExp(`^${G.name}$`):G.name,Y=Z.find((Q)=>X.test(Q.name));if(!Y&&G.opt)continue;if(!Y)return!1}return!0}}}var IW=($)=>{return{...V40($),forClient:(Z)=>{return oE({client:Z})},forConnection:(Z)=>{return oE({connection:Z})}}};var aE=O(()=>{uc0()});import{z as O8}from"zod";function kU($){return O8.object({items:O8.array($).describe("Array of collection items"),totalCount:O8.number().int().min(0).optional().describe("Total number of matching items (if available)"),hasMore:O8.boolean().optional().describe("Whether there are more items available")})}function Qi($){return O8.object({item:$.nullable().describe("The retrieved item, or null if not found")})}function lt8($){return O8.object({data:$.partial().describe("Data for the new entity (id may be auto-generated)")})}function mt8($){return O8.object({item:$.describe("The created entity with generated id")})}function it8($){return O8.object({id:O8.string().describe("ID of the entity to update"),data:$.partial().describe("Partial entity data to update")})}function nt8($){return O8.object({item:$.describe("The updated entity")})}function Wi($){return O8.object({item:$.describe("The deleted entity")})}function kx($,Z,G){let X=$.toUpperCase(),Y=G?.readOnly??!1,Q=[{name:`COLLECTION_${X}_LIST`,inputSchema:nJ,outputSchema:kU(Z)},{name:`COLLECTION_${X}_GET`,inputSchema:Yi,outputSchema:Qi(Z)}];if(!Y)Q.push({name:`COLLECTION_${X}_CREATE`,inputSchema:lt8(Z),outputSchema:mt8(Z),opt:!0},{name:`COLLECTION_${X}_UPDATE`,inputSchema:it8(Z),outputSchema:nt8(Z),opt:!0},{name:`COLLECTION_${X}_DELETE`,inputSchema:Ji,outputSchema:Wi(Z),opt:!0});return Q}var Mx,ut8,Da1,dt8,nJ,Yi,Ji;var OY=O(()=>{Mx=O8.object({id:O8.string().describe("Unique identifier for the entity"),title:O8.string().describe("Human-readable title for the entity"),description:O8.string().nullish().describe("Description of the entity"),created_at:O8.string().datetime(),updated_at:O8.string().datetime(),created_by:O8.string().optional(),updated_by:O8.string().optional()}),ut8=O8.object({field:O8.array(O8.string()),operator:O8.enum(["eq","gt","gte","lt","lte","in","like","contains"]),value:O8.unknown()}),Da1=O8.lazy(()=>O8.union([ut8,O8.object({operator:O8.enum(["and","or","not"]),conditions:O8.array(Da1)})])),dt8=O8.object({field:O8.array(O8.string()),direction:O8.enum(["asc","desc"]),nulls:O8.enum(["first","last"]).optional()}),nJ=O8.object({where:Da1.optional().describe("Filter expression"),orderBy:O8.array(dt8).optional().describe("Sort expressions"),limit:O8.number().int().min(1).max(1000).optional().describe("Maximum number of items to return"),offset:O8.number().int().min(0).optional().describe("Number of items to skip")});Yi=O8.object({id:O8.string().describe("ID of the entity to retrieve")});Ji=O8.object({id:O8.string().describe("ID of the entity to delete")})});import{z as S$}from"zod";var pt8,La1,iZ5;var za1=O(()=>{OY();pt8=S$.object({id:S$.string(),name:S$.string(),description:S$.string().optional(),inputSchema:S$.record(S$.string(),S$.unknown()),outputSchema:S$.record(S$.string(),S$.unknown()).optional()}),La1=Mx.extend({_meta:S$.object({"io.decocms":S$.object({id:S$.string(),verified:S$.boolean(),scopeName:S$.string(),appName:S$.string(),friendlyName:S$.string().nullable().optional(),metadata:S$.record(S$.string(),S$.unknown()).nullable().optional(),publishedAt:S$.string().datetime().optional(),updatedAt:S$.string().datetime().optional(),tools:S$.array(pt8).nullable().optional().describe("Available tools exposed by this app")}).optional()}).optional(),server:S$.object({$schema:S$.string().optional(),_meta:S$.record(S$.string(),S$.unknown()).optional(),name:S$.string().describe("The server name (scope/app)"),title:S$.string().optional().describe("User-friendly title"),description:S$.string().optional().describe("Server description"),icons:S$.array(S$.object({src:S$.string(),mimeType:S$.string().optional(),sizes:S$.array(S$.string()).optional(),theme:S$.enum(["light","dark"]).optional()})).optional(),remotes:S$.array(S$.object({type:S$.enum(["http","stdio","sse"]),url:S$.string().optional(),headers:S$.array(S$.unknown()).optional()})).optional(),packages:S$.array(S$.unknown()).optional(),repository:S$.object({url:S$.string(),source:S$.string().optional(),subfolder:S$.string().optional()}).optional(),version:S$.string().optional(),websiteUrl:S$.string().optional()})}),iZ5=kx("registry_app",La1,{readOnly:!0})});import{z as C5}from"zod";var ja1,C40,Pa1,_40,Aa1,tt8;var Ta1=O(()=>{aE();ja1=C5.object({specversion:C5.literal("1.0").describe("CloudEvents specification version"),id:C5.string().describe("Unique identifier for this event (UUID recommended)"),source:C5.string().describe("Connection ID of the event publisher"),type:C5.string().describe("Event type (e.g., 'order.created', 'user.signup')"),time:C5.string().datetime().optional().describe("Timestamp of when the event occurred (ISO 8601)"),subject:C5.string().optional().describe("Subject/resource identifier (e.g., order ID, user ID)"),datacontenttype:C5.string().optional().default("application/json").describe("Content type of the data attribute"),dataschema:C5.string().url().optional().describe("URI to the schema for the data attribute"),data:C5.unknown().optional().describe("Event payload (any JSON value)")}),C40=C5.object({events:C5.array(ja1).min(1).describe("Batch of CloudEvents to process")}),Pa1=C5.object({success:C5.boolean().optional().describe("Whether this event was processed successfully"),error:C5.string().optional().describe("Error message for this event"),retryAfter:C5.number().int().positive().optional().describe("Re-deliver this event after this many ms")}),_40=C5.object({success:C5.boolean().optional().describe("Batch success - applies to events not in results"),error:C5.string().optional().describe("Batch error message - applies to events not in results"),processedCount:C5.number().int().min(0).optional().describe("Number of events successfully processed"),retryAfter:C5.number().int().positive().optional().describe("Batch retryAfter - applies to events not in results"),results:C5.record(C5.string(),Pa1).optional().describe("Per-event results keyed by event ID")}),Aa1=[{name:"ON_EVENTS",inputSchema:C40,outputSchema:_40}],tt8=IW(Aa1)});import{z as _5}from"zod";var Ia1,Ra1,qa1,Ma1,ka1,Sa1,b40,dc0;var lc0=O(()=>{aE();Ia1=_5.object({type:_5.literal("string"),enum:_5.array(_5.string()).optional(),description:_5.string().optional()}),Ra1=_5.object({type:_5.string(),description:_5.string(),paramsSchema:_5.record(_5.string(),Ia1)}),qa1=_5.object({}),Ma1=_5.object({triggers:_5.array(Ra1)}),ka1=_5.object({type:_5.string(),params:_5.record(_5.string(),_5.string()),enabled:_5.boolean(),callbackUrl:_5.url().optional(),callbackToken:_5.string().min(1).optional()}),Sa1=_5.object({success:_5.boolean()}),b40=[{name:"TRIGGER_LIST",inputSchema:qa1,outputSchema:Ma1},{name:"TRIGGER_CONFIGURE",inputSchema:ka1,outputSchema:Sa1}],dc0=IW(b40)});import{z as E4}from"zod";var Va1,Ca1,_a1,Ki,f40,x40,v40,y40,rt8;var mc0=O(()=>{aE();Va1=E4.object({primary:E4.string().optional().describe("Primary brand color (hex)"),secondary:E4.string().optional().describe("Secondary brand color (hex)"),accent:E4.string().optional().describe("Accent / highlight color (hex)"),background:E4.string().optional().describe("Background color (hex)"),foreground:E4.string().optional().describe("Foreground / text color (hex)")}),Ca1=E4.object({heading:E4.string().optional().describe("Font family for headings"),body:E4.string().optional().describe("Font family for body text"),code:E4.string().optional().describe("Font family for code / monospace")}),_a1=E4.object({logo:E4.string().optional().describe("Logo URL"),favicon:E4.string().optional().describe("Favicon URL"),ogImage:E4.string().optional().describe("Open Graph image URL")}),Ki=E4.object({id:E4.string(),name:E4.string().describe("Brand / company name"),domain:E4.string().optional().describe("Company domain (e.g. example.com)"),colors:Va1.optional().describe("Semantic color palette"),fonts:Ca1.optional().describe("Font families by role"),assets:_a1.optional().describe("Visual identity assets"),overview:E4.string().optional().describe("Company overview / description"),tagline:E4.string().optional().describe("Brand tagline"),tone:E4.string().optional().describe("Tone of voice description"),metadata:E4.record(E4.string(),E4.unknown()).optional().describe("Extra design tokens and metadata")}),f40=E4.object({id:E4.string().optional().describe("Brand ID. Omit to get the default brand.")}),x40=E4.object({}),v40=E4.object({items:E4.array(Ki)}),y40=[{name:"BRAND_GET",inputSchema:f40,outputSchema:Ki},{name:"BRAND_LIST",inputSchema:x40,outputSchema:v40,opt:!0}],rt8=IW(y40)});var ic0=O(()=>{aE();za1();Ta1();lc0();Yc();mc0()});import{z as Sx}from"zod";var ot8,at8,ba1;var fa1=O(()=>{OY();ot8=Mx.extend({avatar:Sx.string().describe("URL or data URI to the assistant's avatar image"),system_prompt:Sx.string().describe("System prompt that defines the assistant's behavior"),virtual_mcp_id:Sx.string().describe("Virtual MCP ID to use for this assistant"),model:Sx.object({id:Sx.string().describe("Model ID"),connectionId:Sx.string().describe("Connection ID that provides the model")}).describe("Selected model reference for this assistant")}),at8=kx("assistant",ot8),ba1=[...at8]});import{z as A0}from"zod";var Ui,SU,va1,st8,et8,ya1,$r8,Zr8,Gr8,Xr8,Yr8,Qr8,ga1,Jr8,Wr8,Kr8,Ur8,wr8,Fr8,Hr8,Nr8,Br8,Or8,DG5,Er8,LG5,xa1,Dr8,Lr8,g40,zG5;var ha1=O(()=>{aE();OY();Ui=A0.lazy(()=>A0.union([A0.null(),A0.string(),A0.number(),A0.boolean(),A0.record(A0.string(),Ui),A0.array(Ui)])),SU=A0.record(A0.string(),A0.record(A0.string(),Ui)).optional().describe("Additional provider-specific options. Outer record keyed by provider name, inner by option key"),va1=A0.object({type:A0.literal("text"),text:A0.string().describe("The text content"),providerOptions:SU}),st8=A0.object({type:A0.literal("text"),text:A0.string().describe("The text content"),providerMetadata:A0.any().optional().describe("Additional provider-specific metadata")}),et8=A0.string().describe("File data as URL string"),ya1=A0.object({type:A0.literal("file"),filename:A0.string().optional().describe("Optional filename of the file"),data:et8,mediaType:A0.string().describe("IANA media type of the file (e.g., image/png, audio/mp3)"),providerOptions:SU}),$r8=A0.object({type:A0.literal("file"),mediaType:A0.string().describe("IANA media type of the file (e.g., image/png, audio/mp3)"),data:A0.string().describe("Generated file data as base64 encoded string")}),Zr8=A0.object({type:A0.literal("reasoning"),text:A0.string().describe("The reasoning text"),providerOptions:SU}),Gr8=A0.object({type:A0.literal("reasoning"),text:A0.string().describe("The reasoning text"),providerMetadata:A0.any().optional().describe("Additional provider-specific metadata")}),Xr8=A0.object({type:A0.literal("tool-call"),toolCallId:A0.string().describe("ID of the tool call, used to match with tool result"),toolName:A0.string().describe("Name of the tool being called"),input:A0.string().describe("Arguments of the tool call (JSON-serializable object matching tool input schema)"),providerExecuted:A0.boolean().optional().describe("Whether the tool call will be executed by the provider"),providerOptions:SU}),Yr8=A0.object({type:A0.literal("tool-call"),toolCallId:A0.string().describe("ID of the tool call"),toolName:A0.string().describe("Name of the tool being called"),input:A0.string().describe("Stringified JSON object with the tool call arguments"),providerExecuted:A0.boolean().optional().describe("Whether the tool call will be executed by the provider"),providerMetadata:A0.any().optional().describe("Additional provider-specific metadata")}),Qr8=A0.union([A0.object({type:A0.literal("text"),value:A0.string()}),A0.object({type:A0.literal("json"),value:Ui}),A0.object({type:A0.literal("error-text"),value:A0.string()}),A0.object({type:A0.literal("error-json"),value:Ui}),A0.object({type:A0.literal("content"),value:A0.array(A0.union([A0.object({type:A0.literal("text"),text:A0.string().describe("Text content")}),A0.object({type:A0.literal("media"),data:A0.string().describe("Base-64 encoded media data"),mediaType:A0.string().describe("IANA media type")})]))}),A0.object({type:A0.literal("execution-denied"),reason:A0.string().optional()}),A0.string().describe("Raw or JSON-serialized output (e.g. from AI SDK mapToolResultOutput)")]),ga1=A0.object({type:A0.literal("tool-result"),toolCallId:A0.string().describe("ID of the tool call that this result is associated with"),toolName:A0.string().describe("Name of the tool that generated this result"),output:Qr8.describe("Result of the tool call"),result:A0.unknown().describe("Unknown result of the tool call"),providerOptions:SU}),Jr8=A0.object({type:A0.literal("tool-result"),toolCallId:A0.string().describe("ID of the tool call that this result is associated with"),toolName:A0.string().describe("Name of the tool that generated this result"),result:A0.any().describe("Result of the tool call (JSON-serializable)"),isError:A0.boolean().optional().describe("Whether the result is an error or error message"),providerExecuted:A0.boolean().optional().describe("Whether the tool result was generated by the provider"),providerMetadata:A0.any().optional().describe("Additional provider-specific metadata")}),Wr8=A0.union([A0.object({type:A0.literal("source"),sourceType:A0.literal("url"),id:A0.string().describe("The ID of the source"),url:A0.string().describe("The URL of the source"),title:A0.string().optional().describe("The title of the source"),providerMetadata:A0.any().optional().describe("Additional provider-specific metadata")}),A0.object({type:A0.literal("source"),sourceType:A0.literal("document"),id:A0.string().describe("The ID of the source"),mediaType:A0.string().describe("IANA media type of the document (e.g., application/pdf)"),title:A0.string().describe("The title of the document"),filename:A0.string().optional().describe("Optional filename of the document"),providerMetadata:A0.any().optional().describe("Additional provider-specific metadata")})]),Kr8=A0.object({role:A0.literal("system"),content:A0.string().describe("System message content"),providerOptions:SU}),Ur8=A0.object({role:A0.literal("user"),content:A0.array(A0.union([va1,ya1])).describe("User message content parts (text or file)"),providerOptions:SU}),wr8=A0.object({role:A0.literal("assistant"),content:A0.array(A0.union([va1,ya1,Zr8,Xr8,ga1])).describe("Assistant message content parts (text, file, reasoning, tool-call, or tool-result)"),providerOptions:SU}),Fr8=A0.object({role:A0.literal("tool"),content:A0.array(ga1).describe("Tool message content (tool results)"),providerOptions:SU}),Hr8=A0.union([Kr8,Ur8,wr8,Fr8]),Nr8=A0.array(Hr8).describe("A list of messages forming the prompt"),Br8=A0.object({prompt:Nr8.describe("A language model prompt is a standardized prompt type (array of messages with roles: system, user, assistant, tool)"),maxOutputTokens:A0.number().optional().describe("Maximum number of tokens to generate"),temperature:A0.number().optional().describe("Temperature setting. The range depends on the provider and model"),topP:A0.number().optional().describe("Nucleus sampling parameter"),topK:A0.number().optional().describe("Only sample from the top K options for each subsequent token. Used to remove long tail low probability responses"),presencePenalty:A0.number().optional().describe("Presence penalty setting. It affects the likelihood of the model to repeat information that is already in the prompt"),frequencyPenalty:A0.number().optional().describe("Frequency penalty setting. It affects the likelihood of the model to repeatedly use the same words or phrases"),seed:A0.number().optional().describe("The seed (integer) to use for random sampling. If set and supported by the model, calls will generate deterministic results"),stopSequences:A0.array(A0.string()).optional().describe("Stop sequences. If set, the model will stop generating text when one of the stop sequences is generated"),responseFormat:A0.union([A0.object({type:A0.literal("text")}),A0.object({type:A0.literal("json"),schema:A0.any().optional().describe("JSON schema that the generated output should conform to"),name:A0.string().optional().describe("Name of output that should be generated"),description:A0.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:A0.array(A0.any()).optional().describe("The tools that are available for the model"),toolChoice:A0.any().optional().describe("Specifies how the tool should be selected. Defaults to 'auto'"),includeRawChunks:A0.boolean().optional().describe("Include raw chunks in the stream. Only applicable for streaming calls"),abortSignal:A0.any().optional().describe("Abort signal for cancelling the operation"),providerOptions:A0.any().optional().describe("Additional provider-specific options")}),Or8=A0.object({content:A0.array(A0.union([st8,$r8,Gr8,Yr8,Jr8,Wr8])).describe("Ordered content that the model has generated (text, tool-calls, reasoning, files, sources)"),finishReason:A0.enum(["stop","length","content-filter","tool-calls","error","other","unknown"]).describe("Reason why generation stopped"),usage:A0.looseObject({inputTokens:A0.number().optional(),outputTokens:A0.number().optional(),totalTokens:A0.number().optional(),reasoningTokens:A0.number().optional()}).describe("Usage information for the language model call"),providerMetadata:A0.any().optional().describe("Additional provider-specific metadata"),request:A0.object({body:A0.any().optional().describe("Request HTTP body sent to the provider API")}).optional().describe("Optional request information for telemetry and debugging"),response:A0.object({id:A0.string().optional().describe("ID for the generated response"),timestamp:A0.iso.datetime().optional().describe("Timestamp for the start of the generated response"),modelId:A0.string().optional().describe("The ID of the response model that was used"),headers:A0.record(A0.string(),A0.string()).optional().describe("Response headers"),body:A0.any().optional().describe("Response HTTP body")}).optional().describe("Optional response information for telemetry and debugging"),warnings:A0.array(A0.any()).describe("Warnings for the call, e.g. unsupported settings")}),DG5=A0.object({stream:A0.any().describe("ReadableStream of LanguageModelV2StreamPart"),request:A0.object({body:A0.any().optional().describe("Request HTTP body sent to the provider API")}).optional().describe("Optional request information for telemetry and debugging"),response:A0.object({headers:A0.record(A0.string(),A0.string()).optional().describe("Response headers")}).optional().describe("Optional response data")}),Er8=A0.object({supportedUrls:A0.record(A0.string(),A0.array(A0.string())).describe("Supported URL patterns by media type for the provider")}),LG5=A0.object({modelId:A0.string().describe("The ID of the model"),logo:A0.string().nullable(),description:A0.string().nullable(),capabilities:A0.array(A0.string()),limits:A0.object({contextWindow:A0.number(),maxOutputTokens:A0.number()}).nullable(),costs:A0.object({input:A0.number(),output:A0.number()}).nullable(),provider:A0.enum(["openai","anthropic","google","x-ai","deepseek","openai-compatible","openrouter"]).nullable()}),xa1=A0.object({modelId:A0.string().describe("The ID of the model"),callOptions:Br8}),Dr8=Mx.extend({logo:A0.string().nullable(),description:A0.string().nullable(),capabilities:A0.array(A0.string()),limits:A0.object({contextWindow:A0.number(),maxOutputTokens:A0.number()}).nullable(),costs:A0.object({input:A0.number(),output:A0.number()}).nullable(),provider:A0.enum(["openai","anthropic","google","xai","deepseek","openai-compatible","openrouter"]).nullable()}),Lr8=kx("llm",Dr8,{readOnly:!0}),g40=[{name:"LLM_METADATA",inputSchema:A0.object({modelId:A0.string().describe("The ID of the model")}),outputSchema:Er8},{name:"LLM_DO_STREAM",inputSchema:xa1},{name:"LLM_DO_GENERATE",inputSchema:xa1,outputSchema:Or8},...Lr8],zG5=IW(g40)});import{z as sE}from"zod";var zr8,ca1;var ua1=O(()=>{zr8=sE.object({scopes:sE.array(sE.string()).describe("List of scopes available"),stateSchema:sE.record(sE.string(),sE.unknown()).describe("JSON Schema (draft-07) defining the state structure")}),ca1=[{name:"MCP_CONFIGURATION",inputSchema:sE.object({}),outputSchema:zr8}]});import{z as b5}from"zod";var jr8,Pr8,da1;var la1=O(()=>{jr8=b5.object({}).strict(),Pr8=b5.object({billing:b5.object({mode:b5.enum(["prepaid","postpaid"]),limitPeriod:b5.enum(["daily","weekly","monthly"]).nullable()}),limit:b5.object({total:b5.number().nullable(),remaining:b5.number().nullable(),reset:b5.string().nullable()}),usage:b5.object({total:b5.number(),daily:b5.number(),weekly:b5.number(),monthly:b5.number()}),alert:b5.object({enabled:b5.boolean(),threshold_usd:b5.number(),email:b5.string().nullable()}),connectionId:b5.string()}),da1=[{name:"GATEWAY_USAGE",inputSchema:jr8,outputSchema:Pr8},{name:"GATEWAY_SET_LIMIT",inputSchema:b5.object({}),outputSchema:b5.object({}),opt:!0},{name:"GATEWAY_SET_ALERT",inputSchema:b5.object({}),outputSchema:b5.object({}),opt:!0}]});function Ar8($,Z){if(Z.length===0)return;let[G,...X]=Z,Y=G==="slug"?gF($):$[G];for(let Q of X){if(Y===null||typeof Y!=="object")return;Y=Y[Q]}return Y}function Tr8($){let G=$.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/%/g,".*").replace(/_/g,".");return new RegExp(`^${G}$`,"i")}function Ir8($,Z,G){if($===void 0)return!0;switch(Z){case"eq":return G===null?$===null:$===G;case"gt":return $>G;case"gte":return $>=G;case"lt":return $<G;case"lte":return $<=G;case"in":return Array.isArray(G)&&G.includes($);case"like":return typeof $==="string"&&Tr8(String(G)).test($);case"contains":return String($).toLowerCase().includes(String(G).toLowerCase());default:return!0}}function wi($,Z){if(!Z)return!0;if("conditions"in Z){let{operator:X,conditions:Y}=Z;if(Y.length===0)return!0;switch(X){case"and":return Y.every((Q)=>wi($,Q));case"or":return Y.some((Q)=>wi($,Q));case"not":return!Y.every((Q)=>wi($,Q));default:return!0}}let G=Ar8($,Z.field);return Ir8(G,Z.operator,Z.value)}var ma1=O(()=>{X$0()});async function ia1($,Z,G){if($.length===0)return;let X=0;async function Y(){while(X<$.length){let Q=X++;await G($[Q])}}await Promise.all(Array.from({length:Math.min(Z,$.length)},()=>Y()))}import{z as iH}from"zod";var Rr8=8,qr8,Mr8,kr8,Sr8,nc0;var na1=O(()=>{ic0();fa1();OY();ha1();ua1();Yc();la1();$6();J1();m7();GY();tE();Gb();a3();X$0();ma1();qr8=[{name:/^(COLLECTION_REGISTRY_APP_LIST|REGISTRY_ITEM_LIST)$/,inputSchema:iH.object({})}],Mr8={LLM:g40,LLMS:g40,ASSISTANTS:ba1,MCP:ca1,OBJECT_STORAGE:FO,AI_GATEWAY_BILLING:da1,TRIGGER:b40,REGISTRY:qr8,BRAND:y40},kr8=nJ.extend({binding:iH.union([iH.array(iH.object({}).passthrough()),iH.object({}).passthrough(),iH.string()]).optional(),include_virtual:iH.boolean().optional().describe("Whether to include VIRTUAL connections in the results. Defaults to false."),slug:iH.string().optional().describe("Filter by connection slug. Matches against app_name, or a slug derived from connection_url or title.")}),Sr8=kU(iZ),nc0=X0({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:kr8,outputSchema:Sr8,handler:async($,Z)=>{await Z.access.check();let G=O0(Z),X=$.binding?typeof $.binding==="string"?(()=>{let F=Mr8[$.binding.toUpperCase()];if(!F)throw Error(`Unknown binding: ${$.binding}`);return F})():$.binding:void 0,Y=X?V40(X):void 0,Q=!!Y,J=$.limit??100,W=$.offset??0,{items:K,totalCount:U}=await Z.storage.connections.list(G.id,{includeVirtual:$.include_virtual??!1,slug:$.slug,where:$.where,orderBy:$.orderBy,limit:Q?void 0:J,offset:Q?void 0:W});if(Y){let F=J9(),H=w4.SELF(G.id);await ia1(K,Rr8,async(N)=>{if(N.tools!==null)return;let B=N.id===H?async()=>{let{listManagementTools:D}=await Promise.resolve().then(() => (eE(),h40));return D(Z)}:()=>vc0(N,Z,Xv1),E=await nF("tools",N.id,B,F,(D)=>Z.pendingRevalidations.push(D),iF);if(E!==null)N.tools=E})}if(jJ()){let F=OZ(),H=w4.DEV_ASSETS(G.id);if(!K.some((N)=>N.id===H)){let N=Zb(G.id,F),B=!$.slug||gF(N)===$.slug,E=wi(N,$.where);if(B&&E)K.unshift(N)}}if(Q){let F=(await Promise.all(K.map(async(E)=>{if(!E.tools||E.tools.length===0)return null;return Y.isImplementedBy(E.tools.map((L)=>({name:L.name,inputSchema:L.inputSchema,outputSchema:L.outputSchema})))?E:null}))).filter((E)=>E!==null),H=F.length,N=F.slice(W,W+J),B=W+J<H;return{items:N,totalCount:H,hasMore:B}}let w=W+J<U;return{items:K,totalCount:U,hasMore:w}}})});var Vr8,pc0;var pa1=O(()=>{OY();$6();J1();m7();GY();tE();Gb();a3();Vr8=Qi(iZ),pc0=X0({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:Yi,outputSchema:Vr8,handler:async($,Z)=>{let G=O0(Z);if(await Z.access.check(),jJ()&&G10($.id,G.id))return{item:Zb(G.id,OZ())};let X=await Z.storage.connections.findById($.id);if(!X||X.organization_id!==G.id)return{item:null};if(X.tools===null){let Y=w4.SELF(G.id),Q=X.id===Y?async()=>{let{listManagementTools:W}=await Promise.resolve().then(() => (eE(),h40));return W(Z)}:async()=>{let W=await oZ(X,Z,!0);try{return(await W.listTools()).tools}finally{await W.close().catch(()=>{})}},J=await nF("tools",X.id,Q,J9(),(W)=>Z.pendingRevalidations.push(W),iF);if(J!==null)X.tools=J}return{item:X}}})});import{z as tc0}from"zod";function br8($,Z){return $.length===Z.length&&$.every((G,X)=>G===Z[X])}var Cr8,_r8,rc0;var ta1=O(()=>{tE();iJ();J1();q8();GY();Ol();yc0();cu();a3();Cr8=tc0.object({id:tc0.string().describe("ID of the connection to update"),data:nc.describe("Partial connection data to update")}),_r8=tc0.object({item:iZ.describe("The updated connection entity")});rc0=X0({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:Cr8,outputSchema:_r8,handler:async($,Z)=>{S0(Z);let G=O0(Z);await Z.access.check();let X=l1(Z);if(!X)throw Error("User ID required to update connection");let{id:Y,data:Q}=$,J=Q.configuration_state!==void 0||Q.configuration_scopes!==void 0,W=await Z.storage.connections.findById(Y);if(!W||W.organization_id!==G.id)throw Error("Connection not found in organization");let K=Q.connection_type??W.connection_type,U=Q.connection_url??W.connection_url;if(K==="VIRTUAL"){let f=IO(U);if(!f)throw Error("VIRTUAL connection requires connection_url in format: virtual://$virtual_mcp_id");let v=await Z.storage.virtualMcps.findById(f);if(!v)throw Error(`Virtual MCP not found: ${f}`);if(v.organization_id!==G.id)throw Error("Virtual MCP does not belong to the current organization");U=RO(f)}let w=Q.configuration_state??W.configuration_state??{},F=Q.configuration_scopes??W.configuration_scopes??[];if(J){if(Q.configuration_state!==void 0)w=Q.configuration_state??{};else if(w===null||w===void 0)w={};if(Q.configuration_scopes!==void 0)F=Q.configuration_scopes??[];if(F.length>0){let f=w;$i(f,F,G.id),await Gi(f,F,G.id,Z)}}if(K==="STDIO"&&!L1().localMode)throw Error("STDIO connections are only available in local mode (--local-mode).");let H=Q.connection_token??W.connection_token;if(!H)try{let v=await new V5(Z.db,Z.vault).get(Y);if(v?.accessToken)H=v.accessToken}catch{}let N=await cF({id:W.id,title:Q.title??W.title,connection_type:K,connection_url:U,connection_token:H,connection_headers:Q.connection_headers??W.connection_headers}).catch(()=>null),B=N?.tools?.length?N.tools:null,E=!1;if(Q.configuration_scopes===void 0&&N?.scopes?.length)E=!br8(F,N.scopes),F=N.scopes;if($i(w,F,G.id),E&&F.length>0)await Gi(w,F,G.id,Z);let D=J||E,L=D?Zi(w,F):[],z=D?Zi(W.configuration_state??{},W.configuration_scopes??[]):[],j=W.configuration_state,P=j==null||Object.keys(j).length===0,A,M,V=async()=>{try{await Z.storage.connectionCredentialVault.replaceGrantsForSubject({organizationId:G.id,subjectConnectionId:Y,createdBy:X,grants:z})}catch(f){console.error("Failed to restore credential grants after credential vault mutation failed",f)}},q={...Q,connection_url:U,tools:null,configuration_state:w,configuration_scopes:F,updated_by:X},S={...W,...q};if(D)try{if(await Z.storage.connectionCredentialVault.replaceGrantsForSubject({organizationId:G.id,subjectConnectionId:Y,createdBy:X,grants:L}),L.length>0){if(!await Z.storage.connectionCredentialVault.findActiveWorkloadToken({organizationId:G.id,subjectConnectionId:Y})){let{plaintextToken:v,record:e}=await Z.storage.connectionCredentialVault.createOrRotateWorkloadToken({organizationId:G.id,subjectConnectionId:Y});M=e.id,A={baseUrl:Z.baseUrl,org:G.slug??G.id,subjectConnectionId:Y,token:v}}}}catch(f){if(M)await Z.storage.connectionCredentialVault.revokeWorkloadToken({organizationId:G.id,subjectConnectionId:Y,tokenId:M});throw await V(),f}if(D&&w&&F)try{await(await oZ(S,Z,!1)).callTool({name:"ON_MCP_CONFIGURATION",arguments:{state:w,scopes:F,firstRun:P,...A?{vault:A}:{}}})}catch(f){if(console.error("Failed to invoke ON_MCP_CONFIGURATION callback",f),M)throw await Z.storage.connectionCredentialVault.revokeWorkloadToken({organizationId:G.id,subjectConnectionId:Y,tokenId:M}),await V(),f}let t;try{t=await Z.storage.connections.update(Y,q)}catch(f){if(D){if(M)await Z.storage.connectionCredentialVault.revokeWorkloadToken({organizationId:G.id,subjectConnectionId:Y,tokenId:M});await V()}throw f}if(B)J9()?.set("tools",Y,B).catch(()=>{});return _f(Y),{item:t}}})});import{z as fr8}from"zod";var xr8,oc0;var ra1=O(()=>{OY();x4();J1();GY();Ol();a3();xr8=Ji.extend({force:fr8.boolean().optional().describe("If true, removes this connection from all agents that reference it before deleting")}),oc0=X0({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:xr8,outputSchema:Wi(iZ),handler:async($,Z)=>{S0(Z);let G=O0(Z);await Z.access.check();let X=await Z.storage.connections.findById($.id);if(!X)throw Error(`Connection not found: ${$.id}`);if(X.organization_id!==G.id)throw Error("Connection not found in organization");if(X.metadata?.isFixed===!0)throw Error("This connection is a fixed system connection and cannot be deleted");let Q=await Z.storage.virtualMcps.listByConnectionId(G.id,$.id);if(Q.length>0)if($.force)await Z.storage.virtualMcps.removeConnectionReferences($.id);else throw Error(JSON.stringify({code:"CONNECTION_IN_USE",agentNames:Q.map((K)=>K.title)}));await Z.storage.connections.delete($.id);let J=await Z.storage.organizationSettings.get(G.id);if(J?.registry_config){let{registries:K,blockedMcps:U}=J.registry_config;if($.id in K){let{[$.id]:w,...F}=K;await Z.storage.organizationSettings.upsert(G.id,{registry_config:{registries:F,blockedMcps:U}})}}J9()?.invalidate($.id).catch(()=>{}),_f($.id);let W=l1(Z);if(W)r1.capture({distinctId:W,event:"connection_deleted",groups:{organization:G.id},properties:{connection_id:X.id,connection_type:X.connection_type,app_name:X.app_name??null,organization_id:G.id,forced:$.force??!1}});return{item:X}}})});import{z as Vx}from"zod";var ac0;var oa1=O(()=>{J1();ac0=X0({name:"CONNECTION_TEST",description:"Test connection health and latency",annotations:{title:"Test Connection",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!0},inputSchema:Vx.object({id:Vx.string()}),outputSchema:Vx.object({id:Vx.string(),healthy:Vx.boolean(),latencyMs:Vx.number()}),handler:async($,Z)=>{let G=O0(Z);await Z.access.check();let X=await Z.storage.connections.findById($.id);if(!X||X.organization_id!==G.id)throw Error("Connection not found");let Y=await Z.storage.connections.testConnection($.id);return{id:$.id,...Y}}})});var aa1=O(()=>{Ya1();na1();pa1();ta1();ra1();oa1()});import{sql as _6}from"kysely";import{z as RW}from"zod";function sa1($){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 gr8($,Z){let G=$;for(let Y=Z.length;Y>=1;Y--){let Q=`$${Y}`;if(G.includes(Q))G=G.replaceAll(Q,sa1(Z[Y-1]))}let X=[];for(let Y=0;Y<G.length;Y++)if(G[Y]==="?")X.push(Y);for(let Y=Math.min(X.length,Z.length)-1;Y>=0;Y--){let Q=X[Y],J=sa1(Z[Y]);G=G.slice(0,Q)+J+G.slice(Q+1)}return G}function ea1($){return $.replace(/-/g,"_")}function cr8($){return`app_${ea1($)}`}function ur8($){return`app_role_${ea1($)}`}function dr8($){if($ instanceof Error){let Z=$.message.toLowerCase(),G=$.code;return G==="3F000"||G==="42704"||G==="22023"||Z.includes("schema")&&Z.includes("does not exist")||Z.includes("role")&&Z.includes("does not exist")}return!1}async function lr8($,Z,G){if(await _6`CREATE SCHEMA IF NOT EXISTS ${_6.id(Z)}`.execute($),!(await _6`
1027
1027
  SELECT EXISTS (SELECT 1 FROM pg_roles WHERE rolname = ${G}) as exists
1028
- `.execute($)).rows[0]?.exists)await _6`CREATE ROLE ${_6.id(G)} NOLOGIN`.execute($);await _6`GRANT ${_6.id(G)} TO CURRENT_USER`.execute($),await _6`GRANT USAGE, CREATE ON SCHEMA ${_6.id(Z)} TO ${_6.id(G)}`.execute($),await _6`GRANT ALL ON ALL TABLES IN SCHEMA ${_6.id(Z)} TO ${_6.id(G)}`.execute($),await _6`GRANT ALL ON ALL SEQUENCES IN SCHEMA ${_6.id(Z)} TO ${_6.id(G)}`.execute($),await _6`ALTER DEFAULT PRIVILEGES IN SCHEMA ${_6.id(Z)} GRANT ALL ON TABLES TO ${_6.id(G)}`.execute($),await _6`ALTER DEFAULT PRIVILEGES IN SCHEMA ${_6.id(Z)} GRANT ALL ON SEQUENCES TO ${_6.id(G)}`.execute($),await _6`REVOKE ALL ON SCHEMA public FROM ${_6.id(G)}`.execute($)}async function mr8($,Z,G,X){try{return await $.transaction().execute(async(Y)=>{return await _6`SET LOCAL ROLE ${_6.id(G)}`.execute(Y),await _6`SET LOCAL search_path TO ${_6.id(Z)}`.execute(Y),await _6.raw(X).execute(Y)})}catch(Y){if(dr8(Y))return await lr8($,Z,G),await $.transaction().execute(async(Q)=>{return await _6`SET LOCAL ROLE ${_6.id(G)}`.execute(Q),await _6`SET LOCAL search_path TO ${_6.id(Z)}`.execute(Q),await _6.raw(X).execute(Q)});throw Y}}var yr8,hr8,$s1;var Zs1=O(()=>{J1();yr8=RW.object({results:RW.array(RW.unknown()).optional(),success:RW.boolean().optional()});hr8=RW.object({sql:RW.string().describe("The SQL query to run"),params:RW.array(RW.any()).describe("The parameters to pass to the SQL query").optional()});$s1=X0({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:hr8,outputSchema:RW.object({result:RW.array(yr8)}),handler:async($,Z)=>{S0(Z),await Z.access.check();let G=gr8($.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 X=cr8(Z.connectionId),Y=ur8(Z.connectionId);return{result:[{results:(await mr8(Z.db,X,Y,G)).rows,success:!0}]}}})});function c40($){let Z=$.access.getRole();if(!Z||!QQ.includes(Z))throw new BU("Only organization owners and admins can change org-wide pin status")}var sc0=O(()=>{JW();EE()});import{z as Ys1}from"zod";function nr8(){let $=Gs1[Math.floor(Math.random()*Gs1.length)];return`icon://${Xs1[Math.floor(Math.random()*Xs1.length)]}?color=${$}`}var Gs1,Xs1,pr8,tr8,ec0;var Qs1=O(()=>{J1();lF();sc0();Gs1=["red","orange","amber","yellow","lime","green","emerald","cyan","sky","blue","indigo","violet","purple","fuchsia","pink","rose"],Xs1=["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"];pr8=Ys1.object({data:oc.describe("Data for the new virtual MCP")}),tr8=Ys1.object({item:nZ.describe("The created virtual MCP entity")}),ec0=X0({name:"COLLECTION_VIRTUAL_MCP_CREATE",description:"Create a Virtual MCP that aggregates tools from multiple connections into one endpoint.",annotations:{title:"Create Virtual MCP",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!1},inputSchema:pr8,outputSchema:tr8,handler:async($,Z)=>{S0(Z);let G=O0(Z);await Z.access.check();let X=l1(Z);if(!X)throw Error("User ID required to create virtual MCP");if($.data.pinned===!0)c40(Z);let Y={...$.data,icon:$.data.icon??nr8()};return{item:await Z.storage.virtualMcps.create(G.id,X,Y)}}})});function rr8($){let Z=[],G=0;while(G<$.length){let X=$[G];if(X==="%")Z.push(".*");else if(X==="_")Z.push(".");else if(/[.*+?^${}()|[\]\\]/.test(X))Z.push("\\"+X);else Z.push(X);G++}return Z.join("")}function nH($){return typeof $==="string"||typeof $==="number"}function $u0($,Z){let G=Z.split("."),X=$;for(let Y of G){if(X==null||typeof X!=="object")return;X=X[Y]}return X}function or8($,Z){return $.connections.some((G)=>G.connection_id===Z)}function u40($,Z){if("conditions"in Z){let{operator:W,conditions:K}=Z;switch(W){case"and":return K.every((U)=>u40($,U));case"or":return K.some((U)=>u40($,U));case"not":return!K.every((U)=>u40($,U));default:return!0}}let{field:G,operator:X,value:Y}=Z,Q=G.join(".");if(Q==="connection_id"){if(X!=="eq"||typeof Y!=="string")return!1;return or8($,Y)}let J=$u0($,Q);switch(X){case"eq":return J===Y;case"gt":return nH(J)&&nH(Y)&&J>Y;case"gte":return nH(J)&&nH(Y)&&J>=Y;case"lt":return nH(J)&&nH(Y)&&J<Y;case"lte":return nH(J)&&nH(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 W=rr8(Y);return new RegExp(`^${W}$`,"i").test(J);case"contains":if(typeof J!=="string"||typeof Y!=="string")return!1;return J.toLowerCase().includes(Y.toLowerCase());default:return!0}}function ar8($,Z){return[...$].sort((G,X)=>{for(let Y of Z){let Q=Y.field.join("."),J=$u0(G,Q),W=$u0(X,Q),K=0;if(J==null&&W==null)continue;if(J==null)K=Y.nulls==="first"?-1:1;else if(W==null)K=Y.nulls==="first"?1:-1;else if(typeof J==="string"&&typeof W==="string")K=J.localeCompare(W);else if(typeof J==="number"&&typeof W==="number")K=J-W;else K=String(J).localeCompare(String(W));if(K!==0)return Y.direction==="desc"?-K:K}return 0})}var sr8,er8,Zu0;var Js1=O(()=>{OY();J1();lF();sr8=nJ,er8=kU(nZ),Zu0=X0({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:sr8,outputSchema:er8,handler:async($,Z)=>{await Z.access.check();let G=O0(Z),X=$.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=X?await Z.storage.virtualMcps.listByConnectionId(G.id,X):await Z.storage.virtualMcps.list(G.id,Y!==void 0?{pinnedOnly:Y}:void 0);if($.where)J=J.filter((H)=>u40(H,$.where));if($.orderBy&&$.orderBy.length>0)J=ar8(J,$.orderBy);let W=J.length,K=$.offset??0,U=$.limit??100,w=J.slice(K,K+U),F=K+U<W;return{items:w,totalCount:W,hasMore:F}}})});import{z as Gu0}from"zod";var $o8,Zo8,Xu0;var Ws1=O(()=>{J1();lF();$o8=Gu0.object({id:Gu0.string().describe("ID of the virtual MCP to retrieve")}),Zo8=Gu0.object({item:nZ.nullable().describe("The retrieved virtual MCP, or null if not found")}),Xu0=X0({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:$o8,outputSchema:Zo8,handler:async($,Z)=>{S0(Z);let G=O0(Z);await Z.access.check();let X=await Z.storage.virtualMcps.findById($.id);if(X&&X.organization_id!==G.id)return{item:null};if(!X)return{item:null};return{item:X}}})});import{z as Yu0}from"zod";var Go8,Xo8,Qu0;var Ks1=O(()=>{J1();lF();sc0();Go8=Yu0.object({id:Yu0.string().describe("ID of the virtual MCP to update"),data:ac.describe("Partial virtual MCP data to update")}),Xo8=Yu0.object({item:nZ.describe("The updated virtual MCP entity")}),Qu0=X0({name:"COLLECTION_VIRTUAL_MCP_UPDATE",description:"Update a Virtual MCP's name, slug, or connection list.",annotations:{title:"Update Virtual MCP",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:Go8,outputSchema:Xo8,handler:async($,Z)=>{S0(Z);let G=O0(Z);await Z.access.check();let X=l1(Z);if(!X)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!==G.id)throw Error(`Virtual MCP not found: ${$.id}`);let Q={...$.data};if(Q.metadata&&Y.metadata)Q.metadata={...Y.metadata,...Q.metadata};if(Q.pinned!==void 0&&Q.pinned!==Y.pinned)c40(Z);return{item:await Z.storage.virtualMcps.update($.id,X,Q)}}})});import{z as Ju0}from"zod";var Yo8,Qo8,Wu0;var Us1=O(()=>{jx();iJ();J1();lF();Yo8=Ju0.object({id:Ju0.string().describe("ID of the virtual MCP to delete")}),Qo8=Ju0.object({item:nZ.describe("The deleted virtual MCP entity")}),Wu0=X0({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:Yo8,outputSchema:Qo8,handler:async($,Z)=>{S0(Z);let G=O0(Z);await Z.access.check();let X=await Z.storage.virtualMcps.findById($.id);if(!X)throw Error(`Virtual MCP not found: ${$.id}`);if(X.organization_id!==G.id)throw Error(`Virtual MCP not found: ${$.id}`);await Z.storage.virtualMcps.delete($.id);let Y=X.metadata?.githubRepo?.connectionId;if(Y)try{let Q=await Z.storage.connections.findById(Y,G.id);if(Q&&PW(Q)){let W=await new V5(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(Q){console.error("[VIRTUAL_MCP_DELETE] failed to tear down repo-scoped connection",{childConnectionId:Y,error:Q.message})}return{item:X}}})});import{z as NX}from"zod";var Jo8,Ku0;var ws1=O(()=>{J1();Jo8=NX.object({id:NX.string(),virtualMcpId:NX.string(),pluginId:NX.string(),connectionId:NX.string().nullable(),settings:NX.record(NX.string(),NX.unknown()).nullable(),createdAt:NX.string(),updatedAt:NX.string()}),Ku0=X0({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:NX.object({virtualMcpId:NX.string().describe("Virtual MCP ID"),pluginId:NX.string().describe("Plugin ID")}),outputSchema:NX.object({config:Jo8.nullable()}),handler:async($,Z)=>{S0(Z),await Z.access.check();let{virtualMcpId:G,pluginId:X}=$,Y=await Z.storage.virtualMcpPluginConfigs.get(G,X);if(!Y)return{config:null};return{config:{id:Y.id,virtualMcpId:Y.virtualMcpId,pluginId:Y.pluginId,connectionId:Y.connectionId,settings:Y.settings,createdAt:Y.createdAt instanceof Date?Y.createdAt.toISOString():Y.createdAt,updatedAt:Y.updatedAt instanceof Date?Y.updatedAt.toISOString():Y.updatedAt}}}})});import{z as TZ}from"zod";var Wo8,Uu0;var Fs1=O(()=>{J1();Gb();m7();Wo8=TZ.object({id:TZ.string(),virtualMcpId:TZ.string(),pluginId:TZ.string(),connectionId:TZ.string().nullable(),settings:TZ.record(TZ.string(),TZ.unknown()).nullable(),createdAt:TZ.string(),updatedAt:TZ.string()}),Uu0=X0({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:TZ.object({virtualMcpId:TZ.string().describe("Virtual MCP ID"),pluginId:TZ.string().describe("Plugin ID"),connectionId:TZ.string().nullable().optional().describe("MCP connection to bind"),settings:TZ.record(TZ.string(),TZ.unknown()).nullable().optional().describe("Plugin-specific settings")}),outputSchema:TZ.object({config:Wo8}),handler:async($,Z)=>{S0(Z),await Z.access.check();let{virtualMcpId:G,pluginId:X,connectionId:Y,settings:Q}=$,J=l1(Z),W=await Z.storage.connections.findById(G);if(!W)throw Error(`Connection not found: ${G}`);let K=Y?await Z.storage.connections.findById(Y):null;if(Y&&W.organization_id&&!K&&jJ()){if(G10(Y,W.organization_id)){if(!J)throw Error("User ID required to create dev-assets connection");let w=Zb(W.organization_id,OZ());await Z.storage.connections.create({...w,organization_id:W.organization_id,created_by:J})}}let U=await Z.storage.virtualMcpPluginConfigs.upsert(G,X,{connectionId:Y,settings:Q});return{config:{id:U.id,virtualMcpId:U.virtualMcpId,pluginId:U.pluginId,connectionId:U.connectionId,settings:U.settings,createdAt:U.createdAt instanceof Date?U.createdAt.toISOString():U.createdAt,updatedAt:U.updatedAt instanceof Date?U.updatedAt.toISOString():U.updatedAt}}}})});import{z as T7}from"zod";var Ko8,wu0;var Hs1=O(()=>{J1();lF();Ko8=T7.object({connectionId:T7.string(),toolName:T7.string(),label:T7.string(),icon:T7.string().nullable().optional()}),wu0=X0({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:T7.object({virtualMcpId:T7.string().describe("Virtual MCP ID"),pinnedViews:T7.array(Ko8).describe("Pinned views to set for the virtual MCP sidebar"),layout:T7.object({defaultMainView:T7.object({type:T7.string(),id:T7.string().optional(),toolName:T7.string().optional()}).nullable().optional(),chatDefaultOpen:T7.boolean().nullable().optional()}).optional()}),outputSchema:T7.object({item:nZ.nullable()}),handler:async($,Z)=>{S0(Z);let G=O0(Z);await Z.access.check();let{virtualMcpId:X,pinnedViews:Y,layout:Q}=$,J=l1(Z),W=await Z.storage.virtualMcps.findById(X);if(!W)throw Error(`Virtual MCP not found: ${X}`);if(W.organization_id!==G.id)throw Error(`Virtual MCP not found: ${X}`);let K=W.metadata?.ui??{},U={...K,pinnedViews:Y.length>0?Y:null,layout:Q??K.layout??null};return{item:await Z.storage.virtualMcps.update(X,J??"system",{metadata:{...W.metadata,ui:U}})}}})});import{z as VU}from"zod";var Uo8,wo8,Fu0;var Ns1=O(()=>{J1();Uo8=VU.object({ids:VU.array(VU.string()).describe("Virtual MCP ids to look up")}),wo8=VU.object({items:VU.array(VU.object({id:VU.string(),last_used_at:VU.string().optional(),last_used_by:VU.string().optional()}))}),Fu0=X0({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:Uo8,outputSchema:wo8,handler:async($,Z)=>{S0(Z),O0(Z),await Z.access.check();let G=await Z.storage.threads.findLastUsedByVirtualMcpIds($.ids);return{items:$.ids.map((X)=>({id:X,last_used_at:G.get(X)?.last_used_at,last_used_by:G.get(X)?.last_used_by}))}}})});var Bs1=O(()=>{Qs1();Js1();Ws1();Ks1();Us1();ws1();Fs1();Hs1();Ns1()});import{z as W5}from"zod";var Hu0;var Os1=O(()=>{I5();J1();Hu0=X0({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:W5.object({id:W5.string().describe("Log ID to fetch")}),outputSchema:W5.object({log:W5.object({id:W5.string().optional(),organizationId:W5.string(),connectionId:W5.string(),toolName:W5.string(),input:W5.record(W5.string(),W5.unknown()),output:W5.record(W5.string(),W5.unknown()),isError:W5.boolean(),errorMessage:W5.string().nullish(),durationMs:W5.number(),timestamp:W5.string(),userId:W5.string().nullish(),requestId:W5.string(),userAgent:W5.string().nullish(),virtualMcpId:W5.string().nullish(),properties:W5.record(W5.string(),W5.string()).nullish()}).nullable().describe("The monitoring log, or null if not found")}),handler:async($,Z)=>{await Z.access.check(),await fY();let G=O0(Z),X=await Z.storage.monitoring.getById(G.id,$.id);if(!X)return{log:null};return{log:{...X,timestamp:X.timestamp instanceof Date?X.timestamp.toISOString():X.timestamp}}}})});import{z as F8}from"zod";var Ho8,Nu0;var Es1=O(()=>{I5();J1();Ho8=F8.object({id:F8.string().optional().describe("Unique log identifier"),organizationId:F8.string().describe("Organization ID"),connectionId:F8.string().describe("Connection ID"),toolName:F8.string().describe("Name of the tool that was called"),isError:F8.boolean().describe("Whether the call resulted in an error"),errorMessage:F8.string().nullish().describe("Error message if applicable"),durationMs:F8.number().describe("Call duration in milliseconds"),timestamp:F8.string().describe("ISO 8601 timestamp of the call"),userId:F8.string().nullish().describe("User who triggered the call"),requestId:F8.string().describe("Unique request identifier"),userAgent:F8.string().nullish().describe("Client identifier (x-mesh-client header)"),virtualMcpId:F8.string().nullish().describe("Virtual MCP (Agent) ID if routed through an agent"),properties:F8.record(F8.string(),F8.string()).nullish().describe("Custom key-value metadata attached to the log")}),Nu0=X0({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:F8.object({connectionId:F8.string().optional().describe("Filter by connection ID"),excludeConnectionIds:F8.array(F8.string()).optional().describe("Exclude logs from these connection IDs (e.g. system connections)"),virtualMcpId:F8.string().optional().describe("Filter by Virtual MCP (Agent) ID"),toolName:F8.string().optional().describe("Filter by tool name"),isError:F8.boolean().optional().describe("Filter by error status"),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)"),limit:F8.number().default(20).describe("Maximum number of results"),offset:F8.number().default(0).describe("Offset for pagination"),properties:F8.record(F8.string(),F8.string()).optional().describe("Filter by exact property key=value matches"),propertyKeys:F8.array(F8.string()).optional().describe("Filter by logs that have these property keys"),propertyPatterns:F8.record(F8.string(),F8.string()).optional().describe("Filter by property value patterns (SQL LIKE, use % as wildcard)"),propertyInValues:F8.record(F8.string(),F8.string()).optional().describe("Filter by exact match within comma-separated values (e.g., user_tags in 'Engineering')")}),outputSchema:F8.object({logs:F8.array(Ho8).describe("Array of monitoring logs"),total:F8.number().describe("Total number of logs matching filters"),offset:F8.number().describe("Current offset for pagination"),limit:F8.number().describe("Current limit for pagination")}),handler:async($,Z)=>{await fY();let G=O0(Z),Y=$.properties||$.propertyKeys||$.propertyPatterns||$.propertyInValues?{properties:$.properties,propertyKeys:$.propertyKeys,propertyPatterns:$.propertyPatterns,propertyInValues:$.propertyInValues}:void 0,Q={organizationId:G.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(Q);return{logs:J.logs.map(({input:W,output:K,...U})=>({...U,timestamp:U.timestamp instanceof Date?U.timestamp.toISOString():U.timestamp})),total:J.total,offset:$.offset,limit:$.limit}}})});import{z as K$}from"zod";var Bu0;var Ds1=O(()=>{I5();J1();Bu0=X0({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:K$.object({startDate:K$.string().datetime().optional().describe("Filter by start date (ISO 8601 datetime string)"),endDate:K$.string().datetime().optional().describe("Filter by end date (ISO 8601 datetime string)"),interval:K$.string().regex(/^\d+[mhd]$/).optional().describe("Bucket interval for timeseries data (e.g. 1m, 5m, 2h, 1d). When provided, returns timeseries array."),connectionIds:K$.array(K$.string()).max(100).optional().describe("Filter by specific connection IDs (max 100)"),excludeConnectionIds:K$.array(K$.string()).max(100).optional().describe("Exclude specific connection IDs (max 100)"),toolNames:K$.array(K$.string()).max(100).optional().describe("Filter by specific tool names (max 100)"),status:K$.enum(["success","error"]).optional().describe("Filter metrics by execution status"),topN:K$.number().int().min(1).max(20).optional().describe("When provided with interval, also return top tools and their timeseries"),userIds:K$.array(K$.string()).max(100).optional().describe("Filter LLM usage by user IDs (only applied when llmUsage is true)"),llmUsage:K$.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:K$.object({totalCalls:K$.number().describe("Total number of tool calls"),errorRate:K$.number().optional().describe("Error rate as a decimal (0 to 1)"),avgDurationMs:K$.number().describe("Average call duration in milliseconds"),errorRatePercent:K$.string().optional().describe("Error rate as a percentage string"),totalErrors:K$.number().optional().describe("Total number of errors"),p50DurationMs:K$.number().optional().describe("50th percentile duration in milliseconds"),p95DurationMs:K$.number().optional().describe("95th percentile duration in milliseconds"),connectionBreakdown:K$.array(K$.object({connectionId:K$.string(),calls:K$.number(),errors:K$.number(),errorRate:K$.number(),avgDurationMs:K$.number()})).optional().describe("Per-connection metric breakdown"),totalInputTokens:K$.number().optional().describe("Total input tokens (LLM usage mode)"),totalOutputTokens:K$.number().optional().describe("Total output tokens (LLM usage mode)"),totalTokens:K$.number().optional().describe("Total tokens (LLM usage mode)"),totalCostUsd:K$.number().optional().describe("Total USD cost (LLM usage mode; only non-zero for providers that report cost)"),topTools:K$.array(K$.object({toolName:K$.string(),connectionId:K$.string().nullable(),calls:K$.number(),inputTokens:K$.number().optional(),outputTokens:K$.number().optional(),costUsd:K$.number().optional()})).optional().describe("Top tools ranked by calls"),topToolsTimeseries:K$.array(K$.object({timestamp:K$.string(),toolName:K$.string(),calls:K$.number(),errors:K$.number(),avg:K$.number(),p95:K$.number()})).optional().describe("Per-tool metric timeseries for the top tools"),timeseries:K$.array(K$.object({timestamp:K$.string(),calls:K$.number(),errors:K$.number(),errorRate:K$.number(),avg:K$.number(),p50:K$.number(),p95:K$.number(),inputTokens:K$.number().optional(),outputTokens:K$.number().optional(),totalTokens:K$.number().optional(),costUsd:K$.number().optional()})).optional().describe("Timeseries data points bucketed by interval")}),handler:async($,Z)=>{let G=O0(Z);if(await Z.access.check(),await fY(),$.interval&&$.llmUsage)return Z.storage.monitoring.queryLlmUsageStats({organizationId:G.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:G.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 Q=await Z.storage.monitoring.queryMetricTopToolsTimeseries({organizationId:G.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:Q.topTools,topToolsTimeseries:Q.timeseries}}let X=await Z.storage.monitoring.getStats({organizationId:G.id,startDate:$.startDate?new Date($.startDate):void 0,endDate:$.endDate?new Date($.endDate):void 0});return{...X,errorRatePercent:(X.errorRate*100).toFixed(2)}}})});import{z as I7}from"zod";var Ou0;var Ls1=O(()=>{I5();J1();Ou0=X0({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:I7.object({threadIds:I7.array(I7.string()).min(1).max(500).describe("Thread IDs to aggregate usage for (max 500)"),connectionId:I7.string().optional().describe("LLM connection ID (defaults to 'decopilot')"),startDate:I7.string().datetime().optional().describe("Filter by start date (ISO 8601 datetime string)"),endDate:I7.string().datetime().optional().describe("Filter by end date (ISO 8601 datetime string)")}),outputSchema:I7.object({items:I7.array(I7.object({threadId:I7.string(),calls:I7.number(),inputTokens:I7.number(),outputTokens:I7.number(),totalTokens:I7.number(),costUsd:I7.number()}))}),handler:async($,Z)=>{let G=O0(Z);return await Z.access.check(),await fY(),{items:await Z.storage.monitoring.queryThreadUsage({organizationId:G.id,connectionId:$.connectionId??"decopilot",threadIds:$.threadIds,startDate:$.startDate?new Date($.startDate):void 0,endDate:$.endDate?new Date($.endDate):void 0})}}})});var zs1=O(()=>{Os1();Es1();Ds1();Ls1()});import{z as EY}from"zod";var Eu0;var js1=O(()=>{J1();Eu0=X0({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:EY.object({slug:EY.string().min(1).max(50).regex(/^[a-z0-9-]+$/,"Slug must be lowercase alphanumeric with hyphens"),name:EY.string().min(1).max(255),description:EY.string().optional()}),outputSchema:EY.object({id:EY.string(),name:EY.string(),slug:EY.string(),logo:EY.string().nullable().optional(),metadata:EY.any().optional(),createdAt:EY.string().datetime().describe("ISO 8601 timestamp"),members:EY.array(EY.any()).optional()}),handler:async($,Z)=>{S0(Z),await Z.access.check();let G=l1(Z);if(!G)throw Error("User ID required to create organization");let X=await Z.boundAuth.organization.create({name:$.name,slug:$.slug,metadata:$.description?{description:$.description}:void 0,userId:G});if(!X)throw Error("Failed to create organization");return{...X,createdAt:X.createdAt instanceof Date?X.createdAt.toISOString():X.createdAt}}})});import{z as pJ}from"zod";var Du0;var Ps1=O(()=>{J1();Du0=X0({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:pJ.object({userId:pJ.string().optional()}),outputSchema:pJ.object({organizations:pJ.array(pJ.object({id:pJ.string(),name:pJ.string(),slug:pJ.string(),logo:pJ.string().nullable().optional(),metadata:pJ.any().optional(),createdAt:pJ.string().datetime().describe("ISO 8601 timestamp")}))}),handler:async($,Z)=>{S0(Z),await Z.access.check();let G=l1(Z),X=$.userId||G;if(!X)throw Error("User ID required to list organizations");return{organizations:(await Z.boundAuth.organization.list(X)).map((Q)=>({...Q,createdAt:Q.createdAt instanceof Date?Q.createdAt.toISOString():Q.createdAt}))}}})});import{z as DQ}from"zod";var Lu0;var As1=O(()=>{J1();Lu0=X0({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:DQ.object({}),outputSchema:DQ.object({id:DQ.string(),name:DQ.string(),slug:DQ.string(),logo:DQ.string().nullable().optional(),metadata:DQ.any().optional(),createdAt:DQ.string().datetime().describe("ISO 8601 timestamp"),members:DQ.array(DQ.any()).optional(),invitations:DQ.array(DQ.any()).optional()}),handler:async($,Z)=>{S0(Z),await Z.access.check();let G=Z.organization?.id;if(!G)throw Error("Organization ID required (no active organization in context)");let X=await Z.boundAuth.organization.get(G);if(!X)throw Error("No active organization found");let Y=new Date,Q=X.invitations?.filter((J)=>new Date(J.expiresAt)>Y);return{...X,invitations:Q,createdAt:X.createdAt instanceof Date?X.createdAt.toISOString():X.createdAt}}})});import{z as tJ}from"zod";var zu0;var Ts1=O(()=>{J1();zu0=X0({name:"ORGANIZATION_UPDATE",description:"Update an organization's name or description.",annotations:{title:"Update Organization",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:tJ.object({id:tJ.string(),name:tJ.string().min(1).max(255).optional(),description:tJ.string().optional()}),outputSchema:tJ.object({id:tJ.string(),name:tJ.string(),slug:tJ.string(),logo:tJ.string().nullable().optional(),metadata:tJ.any().optional(),createdAt:tJ.string().datetime().describe("ISO 8601 timestamp")}),handler:async($,Z)=>{S0(Z),await Z.access.check();let G={};if($.name)G.name=$.name;if($.description)G.metadata={description:$.description};let X=await Z.boundAuth.organization.update({organizationId:$.id,data:G});if(!X)throw Error("Failed to update organization");return{...X,createdAt:X.createdAt instanceof Date?X.createdAt.toISOString():X.createdAt}}})});import{z as Fi}from"zod";var ju0;var Is1=O(()=>{J1();ju0=X0({name:"ORGANIZATION_DELETE",description:"Archive an organization (soft delete).",annotations:{title:"Delete Organization",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:Fi.object({id:Fi.string()}),outputSchema:Fi.object({success:Fi.boolean(),id:Fi.string()}),handler:async($,Z)=>{return S0(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 v$}from"zod";var Hi,Ni,Cx,Rs1,d40,Bi,Oi,pH;var CU=O(()=>{Hi=v$.object({title:v$.string(),url:v$.string(),icon:v$.string()}),Ni=v$.object({registries:v$.record(v$.string(),v$.object({enabled:v$.boolean()})).describe("Per-registry enabled/disabled state. Key is connection ID. Absent registries are treated as enabled."),blockedMcps:v$.array(v$.string()).describe("List of MCP app_name or app_id values to hide from the store.")}),Cx=v$.object({keyId:v$.string(),modelId:v$.string(),title:v$.string().optional()}).nullable(),Rs1=v$.enum(["fast","smart","thinking","image","web_search","deep_research"]),d40=v$.enum(["fast","smart","thinking"]),Bi=v$.object({tiers:v$.object({fast:Cx,smart:Cx,thinking:Cx,image:Cx,web_search:Cx,deep_research:Cx})}),Oi=v$.object({ids:v$.array(v$.string()).describe("Ordered list of custom virtual MCP agent ids to show on the home view.")}),pH=v$.object({id:v$.string().describe("Brand context ID"),name:v$.string().describe("Company name"),domain:v$.string().describe("Company domain (e.g. example.com)"),overview:v$.string().describe("Company overview / description"),logo:v$.string().nullable().optional().describe("Logo URL"),favicon:v$.string().nullable().optional().describe("Favicon URL"),ogImage:v$.string().nullable().optional().describe("OG image URL"),fonts:v$.object({heading:v$.string().optional().describe("Font family for headings"),body:v$.string().optional().describe("Font family for body text"),code:v$.string().optional().describe("Font family for code / monospace")}).nullable().optional().describe("Font families by semantic role"),colors:v$.object({primary:v$.string().optional().describe("Primary brand color (hex)"),secondary:v$.string().optional().describe("Secondary brand color (hex)"),accent:v$.string().optional().describe("Accent / highlight color (hex)"),background:v$.string().optional().describe("Background color (hex)"),foreground:v$.string().optional().describe("Foreground / text color (hex)")}).nullable().optional().describe("Semantic color palette"),images:v$.array(v$.record(v$.string(),v$.unknown())).nullable().optional().describe("Brand images"),metadata:v$.record(v$.string(),v$.unknown()).nullable().optional().describe("Extra design tokens (typography, components, spacing, layout, tone, etc.)"),archivedAt:v$.string().nullable().optional().describe("Archive timestamp (null to unarchive)"),isDefault:v$.boolean().optional().describe("Whether this is the default brand for the organization")})});import{z as tH}from"zod";var Pu0;var qs1=O(()=>{J1();CU();Pu0=X0({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:tH.object({}),outputSchema:tH.object({organizationId:tH.string(),sidebar_items:tH.array(Hi).nullable().optional(),enabled_plugins:tH.array(tH.string()).nullable().optional(),registry_config:Ni.nullable().optional(),simple_mode:Bi.nullable().optional(),default_home_agents:Oi.nullable().optional(),createdAt:tH.string().datetime().optional().describe("ISO 8601 timestamp"),updatedAt:tH.string().datetime().optional().describe("ISO 8601 timestamp")}),handler:async($,Z)=>{S0(Z),await Z.access.check();let G=Z.organization?.id;if(!G)throw Error("Organization ID required (no active organization in context)");let X=await Z.storage.organizationSettings.get(G);if(!X)return{organizationId:G};return{...X,createdAt:X.createdAt instanceof Date?X.createdAt.toISOString():X.createdAt,updatedAt:X.updatedAt instanceof Date?X.updatedAt.toISOString():X.updatedAt}}})});import{z as LQ}from"zod";var Au0;var Ms1=O(()=>{J1();CU();Au0=X0({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:LQ.object({organizationId:LQ.string(),sidebar_items:LQ.array(Hi).optional(),enabled_plugins:LQ.array(LQ.string()).optional(),registry_config:Ni.optional(),simple_mode:Bi.optional(),default_home_agents:Oi.optional()}),outputSchema:LQ.object({organizationId:LQ.string(),sidebar_items:LQ.array(Hi).nullable().optional(),enabled_plugins:LQ.array(LQ.string()).nullable().optional(),registry_config:Ni.nullable().optional(),simple_mode:Bi.nullable().optional(),default_home_agents:Oi.nullable().optional(),createdAt:LQ.string().datetime().describe("ISO 8601 timestamp"),updatedAt:LQ.string().datetime().describe("ISO 8601 timestamp")}),handler:async($,Z)=>{if(S0(Z),await Z.access.check(),Z.organization&&Z.organization.id!==$.organizationId)throw Error("Cannot update settings for a different organization");let G=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});return{...G,createdAt:G.createdAt instanceof Date?G.createdAt.toISOString():G.createdAt,updatedAt:G.updatedAt instanceof Date?G.updatedAt.toISOString():G.updatedAt}}})});import{z as rJ}from"zod";var ks1,Tu0,Iu0;var Ss1=O(()=>{J1();CU();ks1=pH.extend({organizationId:rJ.string(),archivedAt:rJ.string().nullable().optional().describe("ISO 8601 timestamp"),createdAt:rJ.string().describe("ISO 8601 timestamp"),updatedAt:rJ.string().describe("ISO 8601 timestamp")}),Tu0=X0({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:rJ.object({includeArchived:rJ.boolean().optional().describe("Include archived brands in the list")}),outputSchema:rJ.object({items:rJ.array(ks1)}),handler:async($,Z)=>{S0(Z),await Z.access.check();let G=Z.organization?.id;if(!G)throw Error("Organization ID required (no active organization in context)");return{items:(await Z.storage.brandContext.list(G,{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}))}}}),Iu0=X0({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:rJ.object({id:rJ.string().describe("Brand context ID")}),outputSchema:ks1.extend({organizationId:rJ.string()}),handler:async($,Z)=>{S0(Z),await Z.access.check();let G=Z.organization?.id;if(!G)throw Error("Organization ID required (no active organization in context)");let X=await Z.storage.brandContext.get($.id,G);if(!X)throw Error("Brand context not found");return{...X,archivedAt:X.archivedAt instanceof Date?X.archivedAt.toISOString():X.archivedAt,createdAt:X.createdAt instanceof Date?X.createdAt.toISOString():X.createdAt,updatedAt:X.updatedAt instanceof Date?X.updatedAt.toISOString():X.updatedAt}}})});import{z as $D}from"zod";var Vs1,Ru0,qu0,Mu0;var Cs1=O(()=>{J1();CU();Vs1=pH.extend({organizationId:$D.string(),createdAt:$D.string().describe("ISO 8601 timestamp"),updatedAt:$D.string().describe("ISO 8601 timestamp")}),Ru0=X0({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:pH.omit({id:!0}),outputSchema:Vs1,handler:async($,Z)=>{S0(Z),await Z.access.check();let G=Z.organization?.id;if(!G)throw Error("Organization ID required (no active organization in context)");let X=await Z.storage.brandContext.create(G,{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{...X,archivedAt:X.archivedAt instanceof Date?X.archivedAt.toISOString():X.archivedAt,createdAt:X.createdAt instanceof Date?X.createdAt.toISOString():X.createdAt,updatedAt:X.updatedAt instanceof Date?X.updatedAt.toISOString():X.updatedAt}}}),qu0=X0({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:pH.partial().required({id:!0}),outputSchema:Vs1,handler:async($,Z)=>{S0(Z),await Z.access.check();let G=Z.organization?.id;if(!G)throw Error("Organization ID required (no active organization in context)");if(!await Z.storage.brandContext.get($.id,G))throw Error("Brand context not found");let{id:Y,...Q}=$;if(Q.isDefault===!0)await Z.storage.brandContext.setDefault(Y,G);let J=await Z.storage.brandContext.update(Y,G,{name:Q.name,domain:Q.domain,overview:Q.overview,logo:Q.logo!==void 0?Q.logo??null:void 0,favicon:Q.favicon!==void 0?Q.favicon??null:void 0,ogImage:Q.ogImage!==void 0?Q.ogImage??null:void 0,fonts:Q.fonts!==void 0?Q.fonts??null:void 0,colors:Q.colors!==void 0?Q.colors??null:void 0,images:Q.images!==void 0?Q.images??null:void 0,metadata:Q.metadata!==void 0?Q.metadata??null:void 0,archivedAt:Q.archivedAt!==void 0?Q.archivedAt??null:void 0,isDefault:Q.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}}}),Mu0=X0({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:$D.object({id:$D.string().describe("Brand context ID")}),outputSchema:$D.object({success:$D.boolean()}),handler:async($,Z)=>{S0(Z),await Z.access.check();let G=Z.organization?.id;if(!G)throw Error("Organization ID required (no active organization in context)");if(!await Z.storage.brandContext.get($.id,G))throw Error("Brand context not found");return await Z.storage.brandContext.update($.id,G,{archivedAt:new Date().toISOString(),isDefault:!1}),{success:!0}}})});async function l40($,Z,G){let X=$.trim();if(!X.startsWith("http"))X=`https://${X}`;let Y=await fetch("https://api.firecrawl.dev/v1/scrape",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${Z}`},body:JSON.stringify({url:X,formats:["branding"]})});if(!Y.ok){let H=await Y.text().catch(()=>"");throw Error(`Firecrawl API error: ${Y.status} ${H.slice(0,200)}`)}let Q=await Y.json();if(!Q.success||!Q.data?.branding)return null;let J=Q.data.branding,W=Q.data.metadata??{},K=Eo8(J,W);return{name:W.title?.split(/[|\u2013\u2014]|\s+-\s+/).map((H)=>H.trim()).filter(Boolean)?.slice().sort((H,N)=>H.length-N.length)[0]??W.ogSiteName??G??$,domain:$,overview:W.description??"",logo:K.logo,favicon:K.favicon,ogImage:K.ogImage,fonts:K.fonts,colors:K.colors,images:null,metadata:Object.keys(K.metadata).length>0?K.metadata:null}}function Eo8($,Z){let G=$.images??{},X=$.colors??{},Y={};for(let[w,F]of Object.entries(X))if(typeof F==="string"&&F&&Bo8.has(w))Y[w]=F;let Q={},W=($.typography??{}).fontFamilies??{};for(let[w,F]of Object.entries(W))if(typeof F==="string"&&F){let H=Oo8[w.toLowerCase()];if(H&&!Q[H])Q[H]=F}let K=$.fonts;if(Array.isArray(K))for(let w of K){let F=w.family;if(typeof F==="string"&&F&&!Q.body)Q.body=F}let U={};for(let w of["typography","components","spacing","layout","animations","icons","tone","personality","colorScheme"])if($[w]!==void 0)U[w]=$[w];return{logo:G.logo??null,favicon:G.favicon??null,ogImage:G.ogImage??Z.ogImage??null,fonts:Object.keys(Q).length>0?Q:null,colors:Object.keys(Y).length>0?Y:null,metadata:U}}var Bo8,Oo8;var ku0=O(()=>{Bo8=new Set(["primary","secondary","accent","background","foreground"]),Oo8={heading:"heading",headings:"heading",head:"heading",title:"heading",body:"body",primary:"body",text:"body",code:"code",monospace:"code",mono:"code"}});import{z as m40}from"zod";var Do8,Su0;var _s1=O(()=>{J1();ku0();CU();Do8=pH.pick({id:!0,name:!0,domain:!0,overview:!0,logo:!0,favicon:!0,ogImage:!0,fonts:!0,colors:!0}).extend({success:m40.boolean()}),Su0=X0({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:m40.object({domain:m40.string().describe("Website domain to extract brand from"),brandId:m40.string().optional().describe("Existing brand context ID to update (creates new if omitted)")}),outputSchema:Do8,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)=>{S0(Z),await Z.access.check();let G=Z.organization?.id;if(!G)throw Error("Organization ID required (no active organization in context)");let X=Z.firecrawlApiKey;if(!X)throw Error("FIRECRAWL_API_KEY is not configured. Set the environment variable to enable brand extraction.");let Y=await l40($.domain,X,$.domain);if(!Y)throw Error("Firecrawl did not return branding data for this URL");let Q={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,G))throw Error("Brand context not found");return Z.storage.brandContext.update($.brandId,G,Q)})():await Z.storage.brandContext.create(G,Q);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 bs1($){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 G=Object.fromEntries(Object.entries(Z).filter(([X])=>X!=="tagline"&&X!=="tone"));return Object.keys(G).length>0?G:void 0})()}}var Vu0,Cu0;var fs1=O(()=>{mc0();J1();Vu0=X0({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:f40,outputSchema:Ki,handler:async($,Z)=>{S0(Z),await Z.access.check();let G=Z.organization?.id;if(!G)throw Error("Organization ID required (no active organization in context)");let X=$.id?await Z.storage.brandContext.get($.id,G):await Z.storage.brandContext.getDefault(G);if(!X)throw Error($.id?"Brand not found":"No default brand configured");return bs1(X)}}),Cu0=X0({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:x40,outputSchema:v40,handler:async($,Z)=>{S0(Z),await Z.access.check();let G=Z.organization?.id;if(!G)throw Error("Organization ID required (no active organization in context)");return{items:(await Z.storage.brandContext.list(G)).map(bs1)}}})});import{resolveTxt as Lo8}from"dns/promises";function _u0($){return`${zo8}.${$.toLowerCase()}`}function xs1(){return`deco-verify-${crypto.randomUUID().replace(/-/g,"")}`}async function vs1($,Z,G=Lo8){if(!Z)return!1;try{return(await G(_u0($))).some((Y)=>Y.join("").trim()===Z)}catch{return!1}}var zo8="_deco-verify";var ys1=()=>{};import{z as z5}from"zod";function rH($){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?_u0($.domain):null,recordValue:Z?$.verificationToken:null}}function Po8($){let Z=$.toLowerCase().trim();if(!jo8.test(Z))throw Error(`Invalid domain format: "${Z}". Must be a valid domain like "acme.com"`);if(oJ.has(Z))throw Error(`Cannot claim generic email domain "${Z}". Only corporate domains are allowed.`);return Z}var jo8,bu0,i40,fu0,xu0,vu0,yu0,gu0;var gs1=O(()=>{_U();ys1();J1();jo8=/^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)+$/,bu0=z5.enum(["off","auto","request"]),i40=z5.object({id:z5.string(),domain:z5.string(),joinMode:bu0,verificationStatus:z5.enum(["pending","verified"]),verificationMethod:z5.enum(["email","dns"]).nullable(),verifiedAt:z5.string().nullable(),recordName:z5.string().nullable(),recordValue:z5.string().nullable()});fu0=X0({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:z5.object({}),outputSchema:z5.object({domains:z5.array(i40)}),handler:async($,Z)=>{S0(Z),await Z.access.check();let G=O0(Z);return{domains:(await Z.storage.organizationDomains.listByOrganizationId(G.id)).map(rH)}}}),xu0=X0({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:z5.object({domain:z5.string().min(1).max(255).describe("Domain to claim, e.g. acme.com"),joinMode:bu0.optional().describe("Initial join mode (only applied when the domain is trusted immediately via email match).")}),outputSchema:i40,handler:async($,Z)=>{S0(Z),await Z.access.check();let G=O0(Z),X=Po8($.domain),Q=Z.auth.user?.email?.split("@")[1]?.toLowerCase(),J=Boolean(Z.auth.user?.emailVerified)&&Q===X,W=await Z.storage.organizationDomains.getByOrgAndDomain(G.id,X);if(W){if(W.verificationStatus!=="verified"&&J){let U=await Z.storage.organizationDomains.markVerified(W.id,"email");return rH(U)}return rH(W)}let K=J?await Z.storage.organizationDomains.add(G.id,X,{joinMode:$.joinMode??"off",verificationStatus:"verified",verificationMethod:"email"}):await Z.storage.organizationDomains.add(G.id,X,{joinMode:"off",verificationStatus:"pending",verificationToken:xs1()});return rH(K)}}),vu0=X0({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:z5.object({id:z5.string(),joinMode:bu0}),outputSchema:i40,handler:async($,Z)=>{S0(Z),await Z.access.check();let G=O0(Z),X=await Z.storage.organizationDomains.getById($.id);if(!X||X.organizationId!==G.id)throw Error("Domain not found");if($.joinMode!=="off"&&X.verificationStatus!=="verified")throw Error("Verify the domain before enabling auto-join or requests.");let Y=await Z.storage.organizationDomains.updateJoinMode($.id,$.joinMode);return rH(Y)}}),yu0=X0({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:z5.object({id:z5.string()}),outputSchema:z5.object({verified:z5.boolean(),domain:i40}),handler:async($,Z)=>{S0(Z),await Z.access.check();let G=O0(Z),X=await Z.storage.organizationDomains.getById($.id);if(!X||X.organizationId!==G.id)throw Error("Domain not found");if(X.verificationStatus==="verified")return{verified:!0,domain:rH(X)};if(!X.verificationToken)throw Error("Domain has no pending DNS verification.");if(!await vs1(X.domain,X.verificationToken))return{verified:!1,domain:rH(X)};let Q=await Z.storage.organizationDomains.markVerified($.id,"dns");return{verified:!0,domain:rH(Q)}}}),gu0=X0({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:z5.object({id:z5.string()}),outputSchema:z5.object({success:z5.boolean()}),handler:async($,Z)=>{S0(Z),await Z.access.check();let G=O0(Z),X=await Z.storage.organizationDomains.getById($.id);if(!X||X.organizationId!==G.id)throw Error("Domain not found");return await Z.storage.organizationDomains.removeById($.id),{success:!0}}})});import{z as H9}from"zod";var Ao8,hu0,cu0,uu0;var hs1=O(()=>{J1();x4();Ao8=H9.object({id:H9.string(),userId:H9.string(),status:H9.enum(["pending","approved","denied"]),createdAt:H9.string(),user:H9.object({id:H9.string(),name:H9.string(),email:H9.string(),image:H9.string().nullable()}).nullable()}),hu0=X0({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:H9.object({}),outputSchema:H9.object({requests:H9.array(Ao8)}),handler:async($,Z)=>{S0(Z),await Z.access.check();let G=O0(Z);return{requests:(await Z.storage.organizationJoinRequests.listPendingWithUser(G.id)).map((Y)=>({id:Y.id,userId:Y.userId,status:Y.status,createdAt:new Date(Y.createdAt).toISOString(),user:Y.user}))}}}),cu0=X0({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:H9.object({requestId:H9.string()}),outputSchema:H9.object({success:H9.boolean()}),handler:async($,Z)=>{S0(Z),await Z.access.check();let G=O0(Z),X=await Z.storage.organizationJoinRequests.getById($.requestId);if(!X||X.organizationId!==G.id)throw Error("Join request not found");if(X.status!=="pending")throw Error("Join request has already been decided");let Y=l1(Z);if(!await Z.storage.organizationJoinRequests.decide(X.id,"approved",Y??X.userId))return{success:!0};try{await Z.boundAuth.organization.addMember({organizationId:G.id,userId:X.userId,role:["user"]})}catch(J){if(!(J instanceof Error?J.message.toLowerCase():"").includes("already a member"))throw J}if(Y)r1.capture({distinctId:Y,event:"organization_join_request_approved",groups:{organization:G.id},properties:{organization_id:G.id,user_id:X.userId}});return{success:!0}}}),uu0=X0({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:H9.object({requestId:H9.string()}),outputSchema:H9.object({success:H9.boolean()}),handler:async($,Z)=>{S0(Z),await Z.access.check();let G=O0(Z),X=await Z.storage.organizationJoinRequests.getById($.requestId);if(!X||X.organizationId!==G.id)throw Error("Join request not found");if(X.status!=="pending")throw Error("Join request has already been decided");let Y=l1(Z);if(await Z.storage.organizationJoinRequests.decide(X.id,"denied",Y??X.userId)&&Y)r1.capture({distinctId:Y,event:"organization_join_request_denied",groups:{organization:G.id},properties:{organization_id:G.id,user_id:X.userId}});return{success:!0}}})});import{z as BX}from"zod";var du0;var cs1=O(()=>{x4();J1();JW();du0=X0({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:BX.object({organizationId:BX.string().optional(),userId:BX.string(),role:BX.array(BX.string())}),outputSchema:BX.object({id:BX.string(),organizationId:BX.string(),userId:BX.string(),role:BX.union([BX.string(),BX.array(BX.string())]),createdAt:BX.string().datetime().describe("ISO 8601 timestamp")}),handler:async($,Z)=>{S0(Z),await Z.access.check();let G=$.organizationId||Z.organization?.id;if(!G)throw Error("Organization ID required (no active organization in context)");if(G!==Z.organization?.id)throw Error("Organization ID does not match authenticated organization");let X=Array.isArray($.role)?$.role[0]:$.role;if(X&&!u80(Z.auth.user?.role,X))throw Error(`Insufficient privileges to assign role "${X}"`);let Y=await Z.boundAuth.organization.addMember({organizationId:G,userId:$.userId,role:$.role});if(!Y)throw Error("Failed to add member");let Q=l1(Z);if(Q)r1.capture({distinctId:Q,event:"organization_member_added",groups:{organization:G},properties:{organization_id:G,added_user_id:$.userId,role:$.role}});return{...Y,role:Y.role,createdAt:Y.createdAt instanceof Date?Y.createdAt.toISOString():Y.createdAt}}})});import{z as _x}from"zod";var lu0;var us1=O(()=>{x4();J1();lu0=X0({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:_x.object({organizationId:_x.string().optional(),memberIdOrEmail:_x.string()}),outputSchema:_x.object({success:_x.boolean(),memberIdOrEmail:_x.string()}),handler:async($,Z)=>{S0(Z),await Z.access.check();let G=$.organizationId||Z.organization?.id;if(!G)throw Error("Organization ID required (no active organization in context)");await Z.boundAuth.organization.removeMember({organizationId:G,memberIdOrEmail:$.memberIdOrEmail});let X=l1(Z);if(X)r1.capture({distinctId:X,event:"organization_member_removed",groups:{organization:G},properties:{organization_id:G,member_id_or_email:$.memberIdOrEmail}});return{success:!0,memberIdOrEmail:$.memberIdOrEmail}}})});import{z as uG}from"zod";var mu0;var ds1=O(()=>{J1();mu0=X0({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:uG.object({limit:uG.number().optional(),offset:uG.number().optional()}),outputSchema:uG.object({members:uG.array(uG.object({id:uG.string(),organizationId:uG.string(),userId:uG.string(),role:uG.string(),createdAt:uG.string().datetime().describe("ISO 8601 timestamp"),user:uG.object({id:uG.string(),name:uG.string(),email:uG.string(),image:uG.string().optional()}).optional()}))}),handler:async($,Z)=>{S0(Z),await Z.access.check();let G=Z.organization?.id;if(!G)throw Error("Organization ID required (no active organization in context)");let X=await Z.boundAuth.organization.listMembers({organizationId:G,limit:$.limit,offset:$.offset});return{members:(Array.isArray(X)?X:[]).map((Q)=>({...Q,createdAt:Q.createdAt instanceof Date?Q.createdAt.toISOString():Q.createdAt}))}}})});import{z as IZ}from"zod";var iu0;var ls1=O(()=>{x4();J1();JW();iu0=X0({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:IZ.object({organizationId:IZ.string().optional(),memberId:IZ.string(),role:IZ.array(IZ.string())}),outputSchema:IZ.object({id:IZ.string(),organizationId:IZ.string(),userId:IZ.string(),role:IZ.union([IZ.literal("admin"),IZ.literal("member"),IZ.literal("owner")]),createdAt:IZ.string().datetime().describe("ISO 8601 timestamp"),user:IZ.object({email:IZ.string(),name:IZ.string(),image:IZ.string().optional()})}),handler:async($,Z)=>{S0(Z),await Z.access.check();let G=$.organizationId||Z.organization?.id;if(!G)throw Error("Organization ID required (no active organization in context)");let X=Array.isArray($.role)?$.role[0]:$.role;if(X&&!u80(Z.auth.user?.role,X))throw Error(`Insufficient privileges to assign role "${X}"`);let Y=await Z.boundAuth.organization.updateMemberRole({organizationId:G,memberId:$.memberId,role:$.role});if(!Y)throw Error("Failed to update member role");Z.invalidateMemberRole?.(Y.userId,G);let Q=l1(Z);if(Q)r1.capture({distinctId:Q,event:"organization_member_role_updated",groups:{organization:G},properties:{organization_id:G,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}}})});var ms1=O(()=>{js1();Ps1();As1();Ts1();Is1();qs1();Ms1();Ss1();Cs1();_s1();fs1();gs1();hs1();cs1();us1();ds1();ls1()});import{z as oH}from"zod";var nu0;var is1=O(()=>{J1();nu0=X0({name:"TAGS_LIST",description:"List all tags available in the organization.",annotations:{title:"List Tags",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:oH.object({}),outputSchema:oH.object({tags:oH.array(oH.object({id:oH.string(),organizationId:oH.string(),name:oH.string(),createdAt:oH.string().describe("ISO 8601 timestamp")}))}),handler:async($,Z)=>{S0(Z),await Z.access.check();let G=O0(Z);return{tags:(await Z.storage.tags.listOrgTags(G.id)).map((Y)=>({...Y,createdAt:Y.createdAt instanceof Date?Y.createdAt.toISOString():String(Y.createdAt)}))}}})});import{z as aH}from"zod";var pu0;var ns1=O(()=>{J1();pu0=X0({name:"TAGS_CREATE",description:"Create a new tag that can be assigned to organization members.",annotations:{title:"Create Tag",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!1},inputSchema:aH.object({name:aH.string().min(1).max(50).describe("Tag name")}),outputSchema:aH.object({tag:aH.object({id:aH.string(),organizationId:aH.string(),name:aH.string(),createdAt:aH.string().describe("ISO 8601 timestamp")})}),handler:async($,Z)=>{S0(Z),await Z.access.check();let G=O0(Z),X=await Z.storage.tags.createTag(G.id,$.name);return{tag:{...X,createdAt:X.createdAt instanceof Date?X.createdAt.toISOString():String(X.createdAt)}}}})});import{z as n40}from"zod";var tu0;var ps1=O(()=>{J1();tu0=X0({name:"TAGS_DELETE",description:"Delete a tag and automatically remove it from all assigned members.",annotations:{title:"Delete Tag",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:n40.object({tagId:n40.string().describe("Tag ID to delete")}),outputSchema:n40.object({success:n40.boolean()}),handler:async($,Z)=>{S0(Z),await Z.access.check();let G=O0(Z),X=await Z.storage.tags.getTag($.tagId);if(!X)throw Error("Tag not found");if(X.organizationId!==G.id)throw Error("Tag does not belong to this organization");return await Z.storage.tags.deleteTag($.tagId),{success:!0}}})});import{z as bU}from"zod";var ru0;var ts1=O(()=>{J1();ru0=X0({name:"MEMBER_TAGS_GET",description:"Get all tags currently assigned to a specific member.",annotations:{title:"Get Member Tags",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:bU.object({memberId:bU.string().describe("Member ID")}),outputSchema:bU.object({tags:bU.array(bU.object({id:bU.string(),organizationId:bU.string(),name:bU.string(),createdAt:bU.string().describe("ISO 8601 timestamp")}))}),handler:async($,Z)=>{S0(Z),await Z.access.check();let G=O0(Z);if(!await Z.storage.tags.verifyMemberOrg($.memberId,G.id))throw Error(`Member not found in this organization: ${$.memberId}`);return{tags:(await Z.storage.tags.getMemberTags($.memberId)).map((Q)=>({...Q,createdAt:Q.createdAt instanceof Date?Q.createdAt.toISOString():String(Q.createdAt)}))}}})});import{z as zQ}from"zod";var ou0;var rs1=O(()=>{J1();ou0=X0({name:"MEMBER_TAGS_SET",description:"Replace all tags on a member with the given set. Pass empty array to clear.",annotations:{title:"Set Member Tags",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:zQ.object({memberId:zQ.string().describe("Member ID"),tagIds:zQ.array(zQ.string()).describe("Array of tag IDs to assign")}),outputSchema:zQ.object({success:zQ.boolean(),tags:zQ.array(zQ.object({id:zQ.string(),organizationId:zQ.string(),name:zQ.string(),createdAt:zQ.string().describe("ISO 8601 timestamp")}))}),handler:async($,Z)=>{S0(Z),await Z.access.check();let G=O0(Z);if(!await Z.storage.tags.verifyMemberOrg($.memberId,G.id))throw Error(`Member not found in this organization: ${$.memberId}`);for(let Q of $.tagIds){let J=await Z.storage.tags.getTag(Q);if(!J)throw Error(`Tag not found: ${Q}`);if(J.organizationId!==G.id)throw Error(`Tag does not belong to this organization: ${Q}`)}return await Z.storage.tags.setMemberTags($.memberId,$.tagIds),{success:!0,tags:(await Z.storage.tags.getMemberTags($.memberId)).map((Q)=>({...Q,createdAt:Q.createdAt instanceof Date?Q.createdAt.toISOString():String(Q.createdAt)}))}}})});var os1=O(()=>{is1();ns1();ps1();ts1();rs1()});function qW($,Z=Date.now()){let G=$.status;if(G==="in_progress"){let X=new Date($.updated_at).getTime();if(!Number.isFinite(X)||Z-X>1800000)G="expired"}return{id:$.id,organization_id:$.organization_id,title:$.title,description:$.description,created_at:$.created_at,updated_at:$.updated_at,created_by:$.created_by,updated_by:$.updated_by,hidden:$.hidden??!1,status:G,virtual_mcp_id:$.virtual_mcp_id||void 0,trigger_id:$.trigger_id,branch:$.branch,sandbox_provider_kind:$.sandbox_provider_kind,harness_id:$.harness_id,metadata:$.metadata&&Object.keys($.metadata).length>0?$.metadata:void 0,run_config:$.run_config}}var as1=O(()=>{$6()});import{z as V$}from"zod";var ss1,Ro8,es1,MW,$e1,Ze1;var ZD=O(()=>{as1();ss1=V$.object({id:V$.string().describe("Unique message ID"),thread_id:V$.string().describe("ID of the parent thread"),metadata:V$.unknown().optional().describe("Optional message metadata"),parts:V$.array(V$.record(V$.string(),V$.unknown())).describe("Message content parts (AI SDK UIMessagePart format)"),role:V$.enum(["user","assistant","system"]).describe("Message role"),created_at:V$.string().datetime().describe("Timestamp of creation"),updated_at:V$.string().datetime().describe("Timestamp of last update")}),Ro8=V$.object({toolName:V$.string().describe("Fully qualified tool name"),appId:V$.string().describe("App ID that owns the tool"),args:V$.record(V$.string(),V$.unknown()).describe("Arguments used when expanding the tool"),expandedAt:V$.string().datetime().describe("When the tool was expanded")}),es1=V$.object({expanded_tools:V$.array(Ro8).optional()}).catchall(V$.unknown()),MW=V$.object({id:V$.string().describe("Unique thread ID"),organization_id:V$.string().describe("Organization this thread belongs to"),title:V$.string().describe("Thread title"),description:V$.string().nullable().describe("Thread description"),created_at:V$.string().datetime().describe("Timestamp of creation"),updated_at:V$.string().datetime().describe("Timestamp of last update"),hidden:V$.boolean().optional().describe("Whether the thread is hidden"),status:V$.enum([...t_,"expired"]).describe("Thread execution status. 'expired' is virtual -- computed at read time for stale in_progress threads"),created_by:V$.string().describe("User ID who created the thread"),updated_by:V$.string().optional().describe("User ID who last updated the thread"),virtual_mcp_id:V$.string().optional().describe("Virtual MCP (agent) this thread was initiated with"),trigger_id:V$.string().nullable().optional().describe("Automation trigger that created this thread; null/absent for human-initiated threads."),branch:V$.string().nullable().optional().describe("Git branch this thread is pinned to (GitHub-linked vms only)"),sandbox_provider_kind:V$.string().nullable().optional().describe("Pinned on first message; identifies which sandbox provider to dispatch to (e.g. 'agent-sandbox', 'user-desktop')."),harness_id:V$.string().nullable().optional().describe("Pinned on first message; selects which harness runs the thread (e.g. 'claude-code', 'codex', 'decopilot')."),metadata:es1.optional().describe("Free-form per-thread UI state (e.g. expanded_tools)"),run_config:V$.record(V$.string(),V$.unknown()).nullable().optional().describe("Persisted run configuration (contains agent and model info)")}),$e1=V$.object({id:V$.string().optional().describe("Optional custom ID for the thread"),title:V$.string().optional().describe("Thread title"),description:V$.string().nullish().describe("Thread description"),virtual_mcp_id:V$.string().describe("Virtual MCP (agent) this thread is bound to"),branch:V$.string().min(1).optional().describe("Preferred branch. Used only when the vMCP has a githubRepo; ignored otherwise. When omitted, the server picks the most-recently-touched branch from the user's sandboxMap, falling back to a freshly generated name.")}),Ze1=V$.object({title:V$.string().optional().describe("New thread title"),description:V$.string().nullish().describe("New thread description"),hidden:V$.boolean().optional().describe("Whether the thread is hidden"),status:V$.enum(["requires_action","failed","in_progress","completed"]).optional().describe("New thread status (user-set override). 'expired' is a computed virtual status and cannot be set directly."),metadata:es1.optional().describe("Full replacement of the thread's metadata object"),branch:V$.string().nullish().describe("New git branch for this thread")})});function qo8($){return($??"").normalize("NFKD").replace(/[\u0300-\u036F]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"user"}function p40($){let Z=qo8($),G=Date.now().toString(36).split("").reverse().join("");return`${Z}-${G}`}import{z as Ge1}from"zod";function So8($,Z){let G=$?.[Z];if(!G)return;return Object.entries(G).sort(([,Y],[,Q])=>{let J=Math.max(0,...Object.values(Y).map((K)=>K.createdAt??0));return Math.max(0,...Object.values(Q).map((K)=>K.createdAt??0))-J})[0]?.[0]}var Mo8,ko8,au0;var Xe1=O(()=>{x4();J1();ZD();s7();Mo8=Ge1.object({data:$e1.describe("Data for the new thread (id is auto-generated if not provided)")}),ko8=Ge1.object({item:MW.describe("The created thread entity")});au0=X0({name:"COLLECTION_THREADS_CREATE",description:"Create a new thread for organizing messages and conversations.",annotations:{title:"Create Thread",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:Mo8,outputSchema:ko8,handler:async($,Z)=>{S0(Z);let G=O0(Z);await Z.access.check();let X=l1(Z);if(!X)throw Error("User ID required to create thread");let{data:Y}=$,Q=Y.id??h6("thrd"),J=await Z.storage.virtualMcps.findById(Y.virtual_mcp_id,G.id);if(!J)throw Error(`Virtual MCP not found: ${Y.virtual_mcp_id}`);let W=J.metadata,K=W?.githubRepo,U=null;if(K)U=Y.branch??So8(W?.sandboxMap,X)??p40(Z.auth.user?.name??Z.auth.user?.email?.split("@")[0]);let w=await Z.storage.threads.create({id:Q,organization_id:G.id,title:Y.title,description:Y.description,virtual_mcp_id:Y.virtual_mcp_id,branch:U,created_by:X});return r1.capture({distinctId:X,event:"chat_started",groups:{organization:G.id},properties:{organization_id:G.id,thread_id:Q,has_title:!!$.data.title,created_via:"tool"}}),{item:qW(w)}}})});import{z as DY}from"zod";var Vo8,Co8,su0;var Ye1=O(()=>{OY();J1();ZD();Vo8=nJ.extend({where:DY.object({created_by:DY.string().optional(),trigger_ids:DY.array(DY.string()).optional(),virtual_mcp_id:DY.string().optional(),hidden:DY.boolean().optional(),has_trigger:DY.boolean().optional()}).optional(),startDate:DY.string().datetime().optional().describe("Filter threads updated at or after this ISO timestamp"),endDate:DY.string().datetime().optional().describe("Filter threads updated at or before this ISO timestamp"),search:DY.string().optional().describe("Full-text search on thread title (case-insensitive)"),status:DY.string().optional().describe("Filter by thread status (e.g. completed, failed, in_progress)"),userId:DY.string().optional().describe("Filter by the user who created the thread"),agentId:DY.string().optional().describe("Filter by agent (connection or virtual MCP) ID")}),Co8=kU(MW),su0=X0({name:"COLLECTION_THREADS_LIST",description:"List threads with filtering, sorting, and pagination.",annotations:{title:"List Threads",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:Vo8,outputSchema:Co8,handler:async($,Z)=>{await Z.access.check();let G=Z.auth.user?.id;if(!G)throw Error("User ID required to list threads");O0(Z);let X=$.offset??0,Y=$.limit??100,Q=$.where?.trigger_ids,J=$.where?.virtual_mcp_id,W=$.userId??($.where?.created_by==="me"?G:$.where?.created_by),{threads:K,total:U}=Q?.length?await Z.storage.threads.listByTriggerIds(Q,{limit:Y,offset:X}):await Z.storage.threads.list(W,{limit:Y,offset:X,virtualMcpId:J,startDate:$.startDate,endDate:$.endDate,search:$.search,status:$.status,agentId:$.agentId,includeArchived:$.where?.hidden,hasTrigger:$.where?.has_trigger}),w=X+Y<U,F=Date.now();return{items:K.map((H)=>qW(H,F)),totalCount:U,hasMore:w}}})});var _o8,eu0;var Qe1=O(()=>{OY();J1();ZD();_o8=Qi(MW),eu0=X0({name:"COLLECTION_THREADS_GET",description:"Get a thread's details and metadata by ID.",annotations:{title:"Get Thread",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:Yi,outputSchema:_o8,handler:async($,Z)=>{S0(Z),O0(Z),await Z.access.check();let G=await Z.storage.threads.get($.id);if(!G)return{item:null};return{item:qW(G)}}})});import{z as $d0}from"zod";var bo8,fo8,Zd0;var Je1=O(()=>{x4();J1();ZD();bo8=$d0.object({id:$d0.string().describe("ID of the thread to update"),data:Ze1.describe("Partial thread data to update")}),fo8=$d0.object({item:MW.describe("The updated thread entity")}),Zd0=X0({name:"COLLECTION_THREADS_UPDATE",description:"Update a thread's title, description, or visibility.",annotations:{title:"Update Thread",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:bo8,outputSchema:fo8,handler:async($,Z)=>{S0(Z);let G=O0(Z);await Z.access.check();let X=l1(Z);if(!X)throw Error("User ID required to update thread");let{id:Y,data:Q}=$,J=await Z.storage.threads.get(Y);if(!J)throw Error("Thread not found in organization");if(Q.branch===null&&J.virtual_mcp_id){if((await Z.storage.virtualMcps.findById(J.virtual_mcp_id,O0(Z).id))?.metadata?.githubRepo)throw Error("Cannot set branch=null on a github-linked thread (vMCP has githubRepo)")}let W={title:Q.title,description:Q.description,hidden:Q.hidden,updated_by:X};if(Q.status)W.status=Q.status;if(Q.metadata!==void 0)W.metadata=Q.metadata;if(Q.branch!==void 0)W.branch=Q.branch;let K=await Z.storage.threads.update(Y,W);if(Q.hidden!==void 0&&Q.hidden!==J.hidden)r1.capture({distinctId:X,event:Q.hidden?"chat_archived":"chat_unarchived",groups:{organization:G.id},properties:{organization_id:G.id,thread_id:Y}});return{item:qW(K)}}})});var Gd0;var We1=O(()=>{OY();x4();J1();ZD();Gd0=X0({name:"COLLECTION_THREADS_DELETE",description:"Permanently delete a thread and all its messages.",annotations:{title:"Delete Thread",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:Ji,outputSchema:Wi(MW),handler:async($,Z)=>{S0(Z);let G=O0(Z);await Z.access.check();let X=await Z.storage.threads.get($.id);if(!X)throw Error(`Thread not found: ${$.id}`);await Z.storage.threads.delete($.id);let Y=l1(Z);if(Y)r1.capture({distinctId:Y,event:"chat_deleted",groups:{organization:G.id},properties:{organization_id:G.id,thread_id:$.id}});return{item:qW(X)}}})});import{z as xo8}from"zod";function Ke1($){if(!$)return null;if("field"in $&&$.field[0]==="thread_id"&&$.operator==="eq")return String($.value);if("conditions"in $)for(let Z of $.conditions){let G=Ke1(Z);if(G)return G}return null}var vo8,yo8,Xd0;var Ue1=O(()=>{OY();J1();ZD();vo8=nJ.extend({thread_id:xo8.string().optional().describe("ID of the thread to list messages for (required)")}),yo8=kU(ss1),Xd0=X0({name:"COLLECTION_THREAD_MESSAGES_LIST",description:"List messages in a thread with pagination. Requires thread_id. Returns messages in chronological order.",annotations:{title:"List Thread Messages",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:vo8,outputSchema:yo8,handler:async($,Z)=>{O0(Z),await Z.access.check();let G=$.thread_id??Ke1($.where);if(!G)throw Error("thread_id is required (provide as top-level param or in where clause)");let X=$.offset??0,Y=$.limit??100,Q=$.orderBy?.[0]?.direction??"asc",J=await Z.storage.threads.get(G);if(!J)return{items:[],totalCount:0,hasMore:!1};if(J.message_storage_version===2){let{messages:w,total:F}=await Z.storage.threads.messageParts().loadWindow(G,{limit:Y,offset:X});return{items:w.map((H)=>({id:H.id,thread_id:G,role:H.role,parts:H.parts,metadata:H.metadata??null,created_at:H.created_at,updated_at:H.created_at})),totalCount:F,hasMore:X+Y<F}}let{messages:W,total:K}=await Z.storage.threads.listMessages(G,{limit:Y,offset:X,sort:Q}),U=X+Y<K;return{items:W,totalCount:K,hasMore:U}}})});function we1($){return $!==null}function t40($,Z){if($===null)return!0;return $===Z}function r40($){return $.sandboxProviderKind==="agent-sandbox"&&$.harnessId==="decopilot"}function Fe1($){return $.harnessId==="decopilot"&&($.sandboxProviderKind==null||$.sandboxProviderKind==="agent-sandbox")}function ho8($){return{type:"data-run-status",id:"run-status",data:{stage:$}}}function Yd0($){if(!$||typeof $!=="object")return!1;return $.type==="data-run-status"}async function fU($,Z,G){if(!$)return;try{await $.publishRawChunk(Z,ho8(G))}catch{}}var go8,Ei,f35;var Di=O(()=>{go8=["waiting-runner","starting-run","gathering-context","preparing-tools","starting-assistant","analyzing-scope"],Ei=["gathering-context","preparing-tools","starting-assistant","analyzing-scope"],f35=new Set(go8)});function o40(){return crypto.randomUUID()}var Jd0=_((y35,Be1)=>{var{defineProperty:Qd0,getOwnPropertyDescriptor:co8,getOwnPropertyNames:uo8}=Object,do8=Object.prototype.hasOwnProperty,lo8=($,Z)=>{for(var G in Z)Qd0($,G,{get:Z[G],enumerable:!0})},mo8=($,Z,G,X)=>{if(Z&&typeof Z==="object"||typeof Z==="function"){for(let Y of uo8(Z))if(!do8.call($,Y)&&Y!==G)Qd0($,Y,{get:()=>Z[Y],enumerable:!(X=co8(Z,Y))||X.enumerable})}return $},io8=($)=>mo8(Qd0({},"__esModule",{value:!0}),$),He1={};lo8(He1,{SYMBOL_FOR_REQ_CONTEXT:()=>Ne1,getContext:()=>no8});Be1.exports=io8(He1);var Ne1=Symbol.for("@vercel/request-context");function no8(){return globalThis[Ne1]?.get?.()??{}}});var Li=_((g35,De1)=>{var{defineProperty:Wd0,getOwnPropertyDescriptor:po8,getOwnPropertyNames:to8}=Object,ro8=Object.prototype.hasOwnProperty,oo8=($,Z)=>{for(var G in Z)Wd0($,G,{get:Z[G],enumerable:!0})},ao8=($,Z,G,X)=>{if(Z&&typeof Z==="object"||typeof Z==="function"){for(let Y of to8(Z))if(!ro8.call($,Y)&&Y!==G)Wd0($,Y,{get:()=>Z[Y],enumerable:!(X=po8(Z,Y))||X.enumerable})}return $},so8=($)=>ao8(Wd0({},"__esModule",{value:!0}),$),Oe1={};oo8(Oe1,{VercelOidcTokenError:()=>Ee1});De1.exports=so8(Oe1);class Ee1 extends Error{constructor($,Z){super($);this.name="VercelOidcTokenError",this.cause=Z}toString(){if(this.cause)return`${this.name}: ${this.message}: ${this.cause}`;return`${this.name}: ${this.message}`}}});var Pe1=_((h35,je1)=>{var{create:eo8,defineProperty:a40,getOwnPropertyDescriptor:$a8,getOwnPropertyNames:Za8,getPrototypeOf:Ga8}=Object,Xa8=Object.prototype.hasOwnProperty,Ya8=($,Z)=>{for(var G in Z)a40($,G,{get:Z[G],enumerable:!0})},Le1=($,Z,G,X)=>{if(Z&&typeof Z==="object"||typeof Z==="function"){for(let Y of Za8(Z))if(!Xa8.call($,Y)&&Y!==G)a40($,Y,{get:()=>Z[Y],enumerable:!(X=$a8(Z,Y))||X.enumerable})}return $},Ud0=($,Z,G)=>(G=$!=null?eo8(Ga8($)):{},Le1(Z||!$||!$.__esModule?a40(G,"default",{value:$,enumerable:!0}):G,$)),Qa8=($)=>Le1(a40({},"__esModule",{value:!0}),$),ze1={};Ya8(ze1,{findRootDir:()=>Ka8,getUserDataDir:()=>Ua8});je1.exports=Qa8(ze1);var zi=Ud0(u0("path")),Ja8=Ud0(u0("fs")),Kd0=Ud0(u0("os")),Wa8=Li();function Ka8(){try{let $=process.cwd();while($!==zi.default.dirname($)){let Z=zi.default.join($,".vercel");if(Ja8.default.existsSync(Z))return $;$=zi.default.dirname($)}}catch($){throw new Wa8.VercelOidcTokenError("Token refresh only supported in node server environments")}return null}function Ua8(){if(process.env.XDG_DATA_HOME)return process.env.XDG_DATA_HOME;switch(Kd0.default.platform()){case"darwin":return zi.default.join(Kd0.default.homedir(),"Library/Application Support");case"linux":return zi.default.join(Kd0.default.homedir(),".local/share");case"win32":if(process.env.LOCALAPPDATA)return process.env.LOCALAPPDATA;return null;default:return null}}});var ke1=_((c35,Me1)=>{var{create:wa8,defineProperty:s40,getOwnPropertyDescriptor:Fa8,getOwnPropertyNames:Ha8,getPrototypeOf:Na8}=Object,Ba8=Object.prototype.hasOwnProperty,Oa8=($,Z)=>{for(var G in Z)s40($,G,{get:Z[G],enumerable:!0})},Ae1=($,Z,G,X)=>{if(Z&&typeof Z==="object"||typeof Z==="function"){for(let Y of Ha8(Z))if(!Ba8.call($,Y)&&Y!==G)s40($,Y,{get:()=>Z[Y],enumerable:!(X=Fa8(Z,Y))||X.enumerable})}return $},Te1=($,Z,G)=>(G=$!=null?wa8(Na8($)):{},Ae1(Z||!$||!$.__esModule?s40(G,"default",{value:$,enumerable:!0}):G,$)),Ea8=($)=>Ae1(s40({},"__esModule",{value:!0}),$),Ie1={};Oa8(Ie1,{isValidAccessToken:()=>ja8,readAuthConfig:()=>La8,writeAuthConfig:()=>za8});Me1.exports=Ea8(Ie1);var ji=Te1(u0("fs")),Re1=Te1(u0("path")),Da8=Pi();function qe1(){let $=(0,Da8.getVercelDataDir)();if(!$)throw Error(`Unable to find Vercel CLI data directory. Your platform: ${process.platform}. Supported: darwin, linux, win32.`);return Re1.join($,"auth.json")}function La8(){try{let $=qe1();if(!ji.existsSync($))return null;let Z=ji.readFileSync($,"utf8");if(!Z)return null;return JSON.parse(Z)}catch($){return null}}function za8($){let Z=qe1(),G=Re1.dirname(Z);if(!ji.existsSync(G))ji.mkdirSync(G,{mode:504,recursive:!0});ji.writeFileSync(Z,JSON.stringify($,null,2),{mode:384})}function ja8($,Z=0){if(!$.token)return!1;if(typeof $.expiresAt!=="number")return!0;let G=Math.floor(Date.now()/1000),X=Z/1000;return $.expiresAt>=G+X}});var _e1=_((u35,Ce1)=>{var{defineProperty:Hd0,getOwnPropertyDescriptor:Pa8,getOwnPropertyNames:Aa8}=Object,Ta8=Object.prototype.hasOwnProperty,Ia8=($,Z)=>{for(var G in Z)Hd0($,G,{get:Z[G],enumerable:!0})},Ra8=($,Z,G,X)=>{if(Z&&typeof Z==="object"||typeof Z==="function"){for(let Y of Aa8(Z))if(!Ta8.call($,Y)&&Y!==G)Hd0($,Y,{get:()=>Z[Y],enumerable:!(X=Pa8(Z,Y))||X.enumerable})}return $},qa8=($)=>Ra8(Hd0({},"__esModule",{value:!0}),$),Se1={};Ia8(Se1,{processTokenResponse:()=>Ca8,refreshTokenRequest:()=>Va8});Ce1.exports=qa8(Se1);var wd0=u0("os"),Ma8="https://vercel.com",ka8="cl_HYyOPBNtFMfHhaUn9L4QPfTZz6TP47bp",Ve1=`@vercel/oidc node-${process.version} ${(0,wd0.platform)()} (${(0,wd0.arch)()}) ${(0,wd0.hostname)()}`,Fd0=null;async function Sa8(){if(Fd0)return Fd0;let $=`${Ma8}/.well-known/openid-configuration`,Z=await fetch($,{headers:{"user-agent":Ve1}});if(!Z.ok)throw Error("Failed to discover OAuth endpoints");let G=await Z.json();if(!G||typeof G.token_endpoint!=="string")throw Error("Invalid OAuth discovery response");let X=G.token_endpoint;return Fd0=X,X}async function Va8($){let Z=await Sa8();return await fetch(Z,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded","user-agent":Ve1},body:new URLSearchParams({client_id:ka8,grant_type:"refresh_token",...$})})}async function Ca8($){let Z=await $.json();if(!$.ok){let G=typeof Z==="object"&&Z&&"error"in Z?String(Z.error):"Token refresh failed";return[Error(G)]}if(typeof Z!=="object"||Z===null)return[Error("Invalid token response")];if(typeof Z.access_token!=="string")return[Error("Missing access_token in response")];if(Z.token_type!=="Bearer")return[Error("Invalid token_type in response")];if(typeof Z.expires_in!=="number")return[Error("Missing expires_in in response")];return[null,Z]}});var Bd0=_((d35,ve1)=>{var{defineProperty:Nd0,getOwnPropertyDescriptor:_a8,getOwnPropertyNames:ba8}=Object,fa8=Object.prototype.hasOwnProperty,xa8=($,Z)=>{for(var G in Z)Nd0($,G,{get:Z[G],enumerable:!0})},va8=($,Z,G,X)=>{if(Z&&typeof Z==="object"||typeof Z==="function"){for(let Y of ba8(Z))if(!fa8.call($,Y)&&Y!==G)Nd0($,Y,{get:()=>Z[Y],enumerable:!(X=_a8(Z,Y))||X.enumerable})}return $},ya8=($)=>va8(Nd0({},"__esModule",{value:!0}),$),be1={};xa8(be1,{AccessTokenMissingError:()=>fe1,RefreshAccessTokenFailedError:()=>xe1});ve1.exports=ya8(be1);class fe1 extends Error{constructor(){super("No authentication found. Please log in with the Vercel CLI (vercel login).");this.name="AccessTokenMissingError"}}class xe1 extends Error{constructor($){super("Failed to refresh authentication token.",{cause:$});this.name="RefreshAccessTokenFailedError"}}});var Pi=_((l35,ue1)=>{var{create:ga8,defineProperty:e40,getOwnPropertyDescriptor:ha8,getOwnPropertyNames:ca8,getPrototypeOf:ua8}=Object,da8=Object.prototype.hasOwnProperty,la8=($,Z)=>{for(var G in Z)e40($,G,{get:Z[G],enumerable:!0})},ge1=($,Z,G,X)=>{if(Z&&typeof Z==="object"||typeof Z==="function"){for(let Y of ca8(Z))if(!da8.call($,Y)&&Y!==G)e40($,Y,{get:()=>Z[Y],enumerable:!(X=ha8(Z,Y))||X.enumerable})}return $},he1=($,Z,G)=>(G=$!=null?ga8(ua8($)):{},ge1(Z||!$||!$.__esModule?e40(G,"default",{value:$,enumerable:!0}):G,$)),ma8=($)=>ge1(e40({},"__esModule",{value:!0}),$),ce1={};la8(ce1,{assertVercelOidcTokenResponse:()=>Od0,findProjectInfo:()=>ta8,getTokenPayload:()=>aa8,getVercelDataDir:()=>ia8,getVercelOidcToken:()=>pa8,getVercelToken:()=>na8,isExpired:()=>sa8,loadToken:()=>oa8,saveToken:()=>ra8});ue1.exports=ma8(ce1);var Ai=he1(u0("path")),GD=he1(u0("fs")),xx=Li(),$50=Pe1(),bx=ke1(),ye1=_e1(),fx=Bd0();function ia8(){let Z=(0,$50.getUserDataDir)();if(!Z)return null;return Ai.join(Z,"com.vercel.cli")}async function na8($){let Z=(0,bx.readAuthConfig)();if(!Z?.token)throw new fx.AccessTokenMissingError;if((0,bx.isValidAccessToken)(Z,$?.expirationBufferMs))return Z.token;if(!Z.refreshToken)throw(0,bx.writeAuthConfig)({}),new fx.RefreshAccessTokenFailedError("No refresh token available");try{let G=await(0,ye1.refreshTokenRequest)({refresh_token:Z.refreshToken}),[X,Y]=await(0,ye1.processTokenResponse)(G);if(X||!Y)throw(0,bx.writeAuthConfig)({}),new fx.RefreshAccessTokenFailedError(X);let Q={token:Y.access_token,expiresAt:Math.floor(Date.now()/1000)+Y.expires_in};if(Y.refresh_token)Q.refreshToken=Y.refresh_token;return(0,bx.writeAuthConfig)(Q),Q.token}catch(G){if((0,bx.writeAuthConfig)({}),G instanceof fx.AccessTokenMissingError||G instanceof fx.RefreshAccessTokenFailedError)throw G;throw new fx.RefreshAccessTokenFailedError(G)}}async function pa8($,Z,G){let X=`https://api.vercel.com/v1/projects/${Z}/token?source=vercel-oidc-refresh${G?`&teamId=${G}`:""}`,Y=await fetch(X,{method:"POST",headers:{Authorization:`Bearer ${$}`}});if(!Y.ok)throw new xx.VercelOidcTokenError(`Failed to refresh OIDC token: ${Y.statusText}`);let Q=await Y.json();return Od0(Q),Q}function Od0($){if(!$||typeof $!=="object")throw TypeError("Vercel OIDC token is malformed. Expected an object. Please run `vc env pull` and try again");if(!("token"in $)||typeof $.token!=="string")throw TypeError("Vercel OIDC token is malformed. Expected a string-valued token property. Please run `vc env pull` and try again")}function ta8(){let $=(0,$50.findRootDir)();if(!$)throw new xx.VercelOidcTokenError("Unable to find project root directory. Have you linked your project with `vc link?`");let Z=Ai.join($,".vercel","project.json");if(!GD.existsSync(Z))throw new xx.VercelOidcTokenError("project.json not found, have you linked your project with `vc link?`");let G=JSON.parse(GD.readFileSync(Z,"utf8"));if(typeof G.projectId!=="string"&&typeof G.orgId!=="string")throw TypeError("Expected a string-valued projectId property. Try running `vc link` to re-link your project.");return{projectId:G.projectId,teamId:G.orgId}}function ra8($,Z){let G=(0,$50.getUserDataDir)();if(!G)throw new xx.VercelOidcTokenError("Unable to find user data directory. Please reach out to Vercel support.");let X=Ai.join(G,"com.vercel.token",`${Z}.json`),Y=JSON.stringify($);GD.mkdirSync(Ai.dirname(X),{mode:504,recursive:!0}),GD.writeFileSync(X,Y),GD.chmodSync(X,432);return}function oa8($){let Z=(0,$50.getUserDataDir)();if(!Z)throw new xx.VercelOidcTokenError("Unable to find user data directory. Please reach out to Vercel support.");let G=Ai.join(Z,"com.vercel.token",`${$}.json`);if(!GD.existsSync(G))return null;let X=JSON.parse(GD.readFileSync(G,"utf8"));return Od0(X),X}function aa8($){let Z=$.split(".");if(Z.length!==3)throw new xx.VercelOidcTokenError("Invalid token. Please run `vc env pull` and try again");let G=Z[1].replace(/-/g,"+").replace(/_/g,"/"),X=G.padEnd(G.length+(4-G.length%4)%4,"=");return JSON.parse(Buffer.from(X,"base64").toString("utf8"))}function sa8($,Z=0){return $.exp*1000<Date.now()+Z}});var ie1=_((m35,me1)=>{var{defineProperty:Ed0,getOwnPropertyDescriptor:ea8,getOwnPropertyNames:$s8}=Object,Zs8=Object.prototype.hasOwnProperty,Gs8=($,Z)=>{for(var G in Z)Ed0($,G,{get:Z[G],enumerable:!0})},Xs8=($,Z,G,X)=>{if(Z&&typeof Z==="object"||typeof Z==="function"){for(let Y of $s8(Z))if(!Zs8.call($,Y)&&Y!==G)Ed0($,Y,{get:()=>Z[Y],enumerable:!(X=ea8(Z,Y))||X.enumerable})}return $},Ys8=($)=>Xs8(Ed0({},"__esModule",{value:!0}),$),le1={};Gs8(le1,{refreshToken:()=>Qs8});me1.exports=Ys8(le1);var de1=Li(),sH=Pi();async function Qs8($){let Z=$?.project,G=$?.team;if(!Z&&!G){let Y=(0,sH.findProjectInfo)();Z=Y.projectId,G=Y.teamId}else if(!Z||!G){let Y=(0,sH.findProjectInfo)();Z=Z??Y.projectId,G=G??Y.teamId}if(!Z)throw new de1.VercelOidcTokenError("Failed to refresh OIDC token: No project specified. Try re-linking your project with `vc link`");let X=(0,sH.loadToken)(Z);if(!X||(0,sH.isExpired)((0,sH.getTokenPayload)(X.token),$?.expirationBufferMs)){let Y=await(0,sH.getVercelToken)({expirationBufferMs:$?.expirationBufferMs});if(X=await(0,sH.getVercelOidcToken)(Y,Z,G),!X)throw new de1.VercelOidcTokenError("Failed to refresh OIDC token");(0,sH.saveToken)(X,Z)}process.env.VERCEL_OIDC_TOKEN=X.token;return}});var te1=_((i35,pe1)=>{var{defineProperty:Ld0,getOwnPropertyDescriptor:Js8,getOwnPropertyNames:Ws8}=Object,Ks8=Object.prototype.hasOwnProperty,Us8=($,Z)=>{for(var G in Z)Ld0($,G,{get:Z[G],enumerable:!0})},ws8=($,Z,G,X)=>{if(Z&&typeof Z==="object"||typeof Z==="function"){for(let Y of Ws8(Z))if(!Ks8.call($,Y)&&Y!==G)Ld0($,Y,{get:()=>Z[Y],enumerable:!(X=Js8(Z,Y))||X.enumerable})}return $},Fs8=($)=>ws8(Ld0({},"__esModule",{value:!0}),$),ne1={};Us8(ne1,{getVercelOidcToken:()=>Bs8,getVercelOidcTokenSync:()=>Dd0});pe1.exports=Fs8(ne1);var Hs8=Jd0(),Ns8=Li();async function Bs8($){let Z="",G;try{Z=Dd0()}catch(X){G=X}try{let[{getTokenPayload:X,isExpired:Y},{refreshToken:Q}]=await Promise.all([await Promise.resolve().then(() => k(Pi())),await Promise.resolve().then(() => k(ie1()))]);if(!Z||Y(X(Z),$?.expirationBufferMs))await Q($),Z=Dd0()}catch(X){let Y=G instanceof Error?G.message:"";if(X instanceof Error)Y=`${Y}
1028
+ `.execute($)).rows[0]?.exists)await _6`CREATE ROLE ${_6.id(G)} NOLOGIN`.execute($);await _6`GRANT ${_6.id(G)} TO CURRENT_USER`.execute($),await _6`GRANT USAGE, CREATE ON SCHEMA ${_6.id(Z)} TO ${_6.id(G)}`.execute($),await _6`GRANT ALL ON ALL TABLES IN SCHEMA ${_6.id(Z)} TO ${_6.id(G)}`.execute($),await _6`GRANT ALL ON ALL SEQUENCES IN SCHEMA ${_6.id(Z)} TO ${_6.id(G)}`.execute($),await _6`ALTER DEFAULT PRIVILEGES IN SCHEMA ${_6.id(Z)} GRANT ALL ON TABLES TO ${_6.id(G)}`.execute($),await _6`ALTER DEFAULT PRIVILEGES IN SCHEMA ${_6.id(Z)} GRANT ALL ON SEQUENCES TO ${_6.id(G)}`.execute($),await _6`REVOKE ALL ON SCHEMA public FROM ${_6.id(G)}`.execute($)}async function mr8($,Z,G,X){try{return await $.transaction().execute(async(Y)=>{return await _6`SET LOCAL ROLE ${_6.id(G)}`.execute(Y),await _6`SET LOCAL search_path TO ${_6.id(Z)}`.execute(Y),await _6.raw(X).execute(Y)})}catch(Y){if(dr8(Y))return await lr8($,Z,G),await $.transaction().execute(async(Q)=>{return await _6`SET LOCAL ROLE ${_6.id(G)}`.execute(Q),await _6`SET LOCAL search_path TO ${_6.id(Z)}`.execute(Q),await _6.raw(X).execute(Q)});throw Y}}var yr8,hr8,$s1;var Zs1=O(()=>{J1();yr8=RW.object({results:RW.array(RW.unknown()).optional(),success:RW.boolean().optional()});hr8=RW.object({sql:RW.string().describe("The SQL query to run"),params:RW.array(RW.any()).describe("The parameters to pass to the SQL query").optional()});$s1=X0({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:hr8,outputSchema:RW.object({result:RW.array(yr8)}),handler:async($,Z)=>{S0(Z),await Z.access.check();let G=gr8($.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 X=cr8(Z.connectionId),Y=ur8(Z.connectionId);return{result:[{results:(await mr8(Z.db,X,Y,G)).rows,success:!0}]}}})});function c40($){let Z=$.access.getRole();if(!Z||!QQ.includes(Z))throw new BU("Only organization owners and admins can change org-wide pin status")}var sc0=O(()=>{JW();EE()});import{z as Ys1}from"zod";function nr8(){let $=Gs1[Math.floor(Math.random()*Gs1.length)];return`icon://${Xs1[Math.floor(Math.random()*Xs1.length)]}?color=${$}`}var Gs1,Xs1,pr8,tr8,ec0;var Qs1=O(()=>{J1();lF();sc0();Gs1=["red","orange","amber","yellow","lime","green","emerald","cyan","sky","blue","indigo","violet","purple","fuchsia","pink","rose"],Xs1=["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"];pr8=Ys1.object({data:oc.describe("Data for the new virtual MCP")}),tr8=Ys1.object({item:nZ.describe("The created virtual MCP entity")}),ec0=X0({name:"COLLECTION_VIRTUAL_MCP_CREATE",description:"Create a Virtual MCP that aggregates tools from multiple connections into one endpoint.",annotations:{title:"Create Virtual MCP",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!1},inputSchema:pr8,outputSchema:tr8,handler:async($,Z)=>{S0(Z);let G=O0(Z);await Z.access.check();let X=l1(Z);if(!X)throw Error("User ID required to create virtual MCP");if($.data.pinned===!0)c40(Z);let Y={...$.data,icon:$.data.icon??nr8()};return{item:await Z.storage.virtualMcps.create(G.id,X,Y)}}})});function rr8($){let Z=[],G=0;while(G<$.length){let X=$[G];if(X==="%")Z.push(".*");else if(X==="_")Z.push(".");else if(/[.*+?^${}()|[\]\\]/.test(X))Z.push("\\"+X);else Z.push(X);G++}return Z.join("")}function nH($){return typeof $==="string"||typeof $==="number"}function $u0($,Z){let G=Z.split("."),X=$;for(let Y of G){if(X==null||typeof X!=="object")return;X=X[Y]}return X}function or8($,Z){return $.connections.some((G)=>G.connection_id===Z)}function u40($,Z){if("conditions"in Z){let{operator:W,conditions:K}=Z;switch(W){case"and":return K.every((U)=>u40($,U));case"or":return K.some((U)=>u40($,U));case"not":return!K.every((U)=>u40($,U));default:return!0}}let{field:G,operator:X,value:Y}=Z,Q=G.join(".");if(Q==="connection_id"){if(X!=="eq"||typeof Y!=="string")return!1;return or8($,Y)}let J=$u0($,Q);switch(X){case"eq":return J===Y;case"gt":return nH(J)&&nH(Y)&&J>Y;case"gte":return nH(J)&&nH(Y)&&J>=Y;case"lt":return nH(J)&&nH(Y)&&J<Y;case"lte":return nH(J)&&nH(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 W=rr8(Y);return new RegExp(`^${W}$`,"i").test(J);case"contains":if(typeof J!=="string"||typeof Y!=="string")return!1;return J.toLowerCase().includes(Y.toLowerCase());default:return!0}}function ar8($,Z){return[...$].sort((G,X)=>{for(let Y of Z){let Q=Y.field.join("."),J=$u0(G,Q),W=$u0(X,Q),K=0;if(J==null&&W==null)continue;if(J==null)K=Y.nulls==="first"?-1:1;else if(W==null)K=Y.nulls==="first"?1:-1;else if(typeof J==="string"&&typeof W==="string")K=J.localeCompare(W);else if(typeof J==="number"&&typeof W==="number")K=J-W;else K=String(J).localeCompare(String(W));if(K!==0)return Y.direction==="desc"?-K:K}return 0})}var sr8,er8,Zu0;var Js1=O(()=>{OY();J1();lF();sr8=nJ,er8=kU(nZ),Zu0=X0({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:sr8,outputSchema:er8,handler:async($,Z)=>{await Z.access.check();let G=O0(Z),X=$.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=X?await Z.storage.virtualMcps.listByConnectionId(G.id,X):await Z.storage.virtualMcps.list(G.id,Y!==void 0?{pinnedOnly:Y}:void 0);if($.where)J=J.filter((H)=>u40(H,$.where));if($.orderBy&&$.orderBy.length>0)J=ar8(J,$.orderBy);let W=J.length,K=$.offset??0,U=$.limit??100,w=J.slice(K,K+U),F=K+U<W;return{items:w,totalCount:W,hasMore:F}}})});import{z as Gu0}from"zod";var $o8,Zo8,Xu0;var Ws1=O(()=>{J1();lF();$o8=Gu0.object({id:Gu0.string().describe("ID of the virtual MCP to retrieve")}),Zo8=Gu0.object({item:nZ.nullable().describe("The retrieved virtual MCP, or null if not found")}),Xu0=X0({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:$o8,outputSchema:Zo8,handler:async($,Z)=>{S0(Z);let G=O0(Z);await Z.access.check();let X=await Z.storage.virtualMcps.findById($.id);if(X&&X.organization_id!==G.id)return{item:null};if(!X)return{item:null};return{item:X}}})});import{z as Yu0}from"zod";var Go8,Xo8,Qu0;var Ks1=O(()=>{J1();lF();sc0();Go8=Yu0.object({id:Yu0.string().describe("ID of the virtual MCP to update"),data:ac.describe("Partial virtual MCP data to update")}),Xo8=Yu0.object({item:nZ.describe("The updated virtual MCP entity")}),Qu0=X0({name:"COLLECTION_VIRTUAL_MCP_UPDATE",description:"Update a Virtual MCP's name, slug, or connection list.",annotations:{title:"Update Virtual MCP",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:Go8,outputSchema:Xo8,handler:async($,Z)=>{S0(Z);let G=O0(Z);await Z.access.check();let X=l1(Z);if(!X)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!==G.id)throw Error(`Virtual MCP not found: ${$.id}`);let Q={...$.data};if(Q.metadata&&Y.metadata)Q.metadata={...Y.metadata,...Q.metadata};if(Q.pinned!==void 0&&Q.pinned!==Y.pinned)c40(Z);return{item:await Z.storage.virtualMcps.update($.id,X,Q)}}})});import{z as Ju0}from"zod";var Yo8,Qo8,Wu0;var Us1=O(()=>{jx();iJ();J1();lF();Yo8=Ju0.object({id:Ju0.string().describe("ID of the virtual MCP to delete")}),Qo8=Ju0.object({item:nZ.describe("The deleted virtual MCP entity")}),Wu0=X0({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:Yo8,outputSchema:Qo8,handler:async($,Z)=>{S0(Z);let G=O0(Z);await Z.access.check();let X=await Z.storage.virtualMcps.findById($.id);if(!X)throw Error(`Virtual MCP not found: ${$.id}`);if(X.organization_id!==G.id)throw Error(`Virtual MCP not found: ${$.id}`);await Z.storage.virtualMcps.delete($.id);let Y=X.metadata?.githubRepo?.connectionId;if(Y)try{let Q=await Z.storage.connections.findById(Y,G.id);if(Q&&PW(Q)){let W=await new V5(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(Q){console.error("[VIRTUAL_MCP_DELETE] failed to tear down repo-scoped connection",{childConnectionId:Y,error:Q.message})}return{item:X}}})});import{z as NX}from"zod";var Jo8,Ku0;var ws1=O(()=>{J1();Jo8=NX.object({id:NX.string(),virtualMcpId:NX.string(),pluginId:NX.string(),connectionId:NX.string().nullable(),settings:NX.record(NX.string(),NX.unknown()).nullable(),createdAt:NX.string(),updatedAt:NX.string()}),Ku0=X0({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:NX.object({virtualMcpId:NX.string().describe("Virtual MCP ID"),pluginId:NX.string().describe("Plugin ID")}),outputSchema:NX.object({config:Jo8.nullable()}),handler:async($,Z)=>{S0(Z),await Z.access.check();let{virtualMcpId:G,pluginId:X}=$,Y=await Z.storage.virtualMcpPluginConfigs.get(G,X);if(!Y)return{config:null};return{config:{id:Y.id,virtualMcpId:Y.virtualMcpId,pluginId:Y.pluginId,connectionId:Y.connectionId,settings:Y.settings,createdAt:Y.createdAt instanceof Date?Y.createdAt.toISOString():Y.createdAt,updatedAt:Y.updatedAt instanceof Date?Y.updatedAt.toISOString():Y.updatedAt}}}})});import{z as TZ}from"zod";var Wo8,Uu0;var Fs1=O(()=>{J1();Gb();m7();Wo8=TZ.object({id:TZ.string(),virtualMcpId:TZ.string(),pluginId:TZ.string(),connectionId:TZ.string().nullable(),settings:TZ.record(TZ.string(),TZ.unknown()).nullable(),createdAt:TZ.string(),updatedAt:TZ.string()}),Uu0=X0({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:TZ.object({virtualMcpId:TZ.string().describe("Virtual MCP ID"),pluginId:TZ.string().describe("Plugin ID"),connectionId:TZ.string().nullable().optional().describe("MCP connection to bind"),settings:TZ.record(TZ.string(),TZ.unknown()).nullable().optional().describe("Plugin-specific settings")}),outputSchema:TZ.object({config:Wo8}),handler:async($,Z)=>{S0(Z),await Z.access.check();let{virtualMcpId:G,pluginId:X,connectionId:Y,settings:Q}=$,J=l1(Z),W=await Z.storage.connections.findById(G);if(!W)throw Error(`Connection not found: ${G}`);let K=Y?await Z.storage.connections.findById(Y):null;if(Y&&W.organization_id&&!K&&jJ()){if(G10(Y,W.organization_id)){if(!J)throw Error("User ID required to create dev-assets connection");let w=Zb(W.organization_id,OZ());await Z.storage.connections.create({...w,organization_id:W.organization_id,created_by:J})}}let U=await Z.storage.virtualMcpPluginConfigs.upsert(G,X,{connectionId:Y,settings:Q});return{config:{id:U.id,virtualMcpId:U.virtualMcpId,pluginId:U.pluginId,connectionId:U.connectionId,settings:U.settings,createdAt:U.createdAt instanceof Date?U.createdAt.toISOString():U.createdAt,updatedAt:U.updatedAt instanceof Date?U.updatedAt.toISOString():U.updatedAt}}}})});import{z as T7}from"zod";var Ko8,wu0;var Hs1=O(()=>{J1();lF();Ko8=T7.object({connectionId:T7.string(),toolName:T7.string(),label:T7.string(),icon:T7.string().nullable().optional()}),wu0=X0({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:T7.object({virtualMcpId:T7.string().describe("Virtual MCP ID"),pinnedViews:T7.array(Ko8).describe("Pinned views to set for the virtual MCP sidebar"),layout:T7.object({defaultMainView:T7.object({type:T7.string(),id:T7.string().optional(),toolName:T7.string().optional()}).nullable().optional(),chatDefaultOpen:T7.boolean().nullable().optional()}).optional()}),outputSchema:T7.object({item:nZ.nullable()}),handler:async($,Z)=>{S0(Z);let G=O0(Z);await Z.access.check();let{virtualMcpId:X,pinnedViews:Y,layout:Q}=$,J=l1(Z),W=await Z.storage.virtualMcps.findById(X);if(!W)throw Error(`Virtual MCP not found: ${X}`);if(W.organization_id!==G.id)throw Error(`Virtual MCP not found: ${X}`);let K=W.metadata?.ui??{},U={...K,pinnedViews:Y.length>0?Y:null,layout:Q??K.layout??null};return{item:await Z.storage.virtualMcps.update(X,J??"system",{metadata:{...W.metadata,ui:U}})}}})});import{z as VU}from"zod";var Uo8,wo8,Fu0;var Ns1=O(()=>{J1();Uo8=VU.object({ids:VU.array(VU.string()).describe("Virtual MCP ids to look up")}),wo8=VU.object({items:VU.array(VU.object({id:VU.string(),last_used_at:VU.string().optional(),last_used_by:VU.string().optional()}))}),Fu0=X0({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:Uo8,outputSchema:wo8,handler:async($,Z)=>{S0(Z),O0(Z),await Z.access.check();let G=await Z.storage.threads.findLastUsedByVirtualMcpIds($.ids);return{items:$.ids.map((X)=>({id:X,last_used_at:G.get(X)?.last_used_at,last_used_by:G.get(X)?.last_used_by}))}}})});var Bs1=O(()=>{Qs1();Js1();Ws1();Ks1();Us1();ws1();Fs1();Hs1();Ns1()});import{z as W5}from"zod";var Hu0;var Os1=O(()=>{I5();J1();Hu0=X0({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:W5.object({id:W5.string().describe("Log ID to fetch")}),outputSchema:W5.object({log:W5.object({id:W5.string().optional(),organizationId:W5.string(),connectionId:W5.string(),toolName:W5.string(),input:W5.record(W5.string(),W5.unknown()),output:W5.record(W5.string(),W5.unknown()),isError:W5.boolean(),errorMessage:W5.string().nullish(),durationMs:W5.number(),timestamp:W5.string(),userId:W5.string().nullish(),requestId:W5.string(),userAgent:W5.string().nullish(),virtualMcpId:W5.string().nullish(),properties:W5.record(W5.string(),W5.string()).nullish()}).nullable().describe("The monitoring log, or null if not found")}),handler:async($,Z)=>{await Z.access.check(),await fY();let G=O0(Z),X=await Z.storage.monitoring.getById(G.id,$.id);if(!X)return{log:null};return{log:{...X,timestamp:X.timestamp instanceof Date?X.timestamp.toISOString():X.timestamp}}}})});import{z as F8}from"zod";var Ho8,Nu0;var Es1=O(()=>{I5();J1();Ho8=F8.object({id:F8.string().optional().describe("Unique log identifier"),organizationId:F8.string().describe("Organization ID"),connectionId:F8.string().describe("Connection ID"),toolName:F8.string().describe("Name of the tool that was called"),isError:F8.boolean().describe("Whether the call resulted in an error"),errorMessage:F8.string().nullish().describe("Error message if applicable"),durationMs:F8.number().describe("Call duration in milliseconds"),timestamp:F8.string().describe("ISO 8601 timestamp of the call"),userId:F8.string().nullish().describe("User who triggered the call"),requestId:F8.string().describe("Unique request identifier"),userAgent:F8.string().nullish().describe("Client identifier (x-mesh-client header)"),virtualMcpId:F8.string().nullish().describe("Virtual MCP (Agent) ID if routed through an agent"),properties:F8.record(F8.string(),F8.string()).nullish().describe("Custom key-value metadata attached to the log")}),Nu0=X0({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:F8.object({connectionId:F8.string().optional().describe("Filter by connection ID"),excludeConnectionIds:F8.array(F8.string()).optional().describe("Exclude logs from these connection IDs (e.g. system connections)"),virtualMcpId:F8.string().optional().describe("Filter by Virtual MCP (Agent) ID"),toolName:F8.string().optional().describe("Filter by tool name"),isError:F8.boolean().optional().describe("Filter by error status"),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)"),limit:F8.number().default(20).describe("Maximum number of results"),offset:F8.number().default(0).describe("Offset for pagination"),properties:F8.record(F8.string(),F8.string()).optional().describe("Filter by exact property key=value matches"),propertyKeys:F8.array(F8.string()).optional().describe("Filter by logs that have these property keys"),propertyPatterns:F8.record(F8.string(),F8.string()).optional().describe("Filter by property value patterns (SQL LIKE, use % as wildcard)"),propertyInValues:F8.record(F8.string(),F8.string()).optional().describe("Filter by exact match within comma-separated values (e.g., user_tags in 'Engineering')")}),outputSchema:F8.object({logs:F8.array(Ho8).describe("Array of monitoring logs"),total:F8.number().describe("Total number of logs matching filters"),offset:F8.number().describe("Current offset for pagination"),limit:F8.number().describe("Current limit for pagination")}),handler:async($,Z)=>{await fY();let G=O0(Z),Y=$.properties||$.propertyKeys||$.propertyPatterns||$.propertyInValues?{properties:$.properties,propertyKeys:$.propertyKeys,propertyPatterns:$.propertyPatterns,propertyInValues:$.propertyInValues}:void 0,Q={organizationId:G.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(Q);return{logs:J.logs.map(({input:W,output:K,...U})=>({...U,timestamp:U.timestamp instanceof Date?U.timestamp.toISOString():U.timestamp})),total:J.total,offset:$.offset,limit:$.limit}}})});import{z as K$}from"zod";var Bu0;var Ds1=O(()=>{I5();J1();Bu0=X0({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:K$.object({startDate:K$.string().datetime().optional().describe("Filter by start date (ISO 8601 datetime string)"),endDate:K$.string().datetime().optional().describe("Filter by end date (ISO 8601 datetime string)"),interval:K$.string().regex(/^\d+[mhd]$/).optional().describe("Bucket interval for timeseries data (e.g. 1m, 5m, 2h, 1d). When provided, returns timeseries array."),connectionIds:K$.array(K$.string()).max(100).optional().describe("Filter by specific connection IDs (max 100)"),excludeConnectionIds:K$.array(K$.string()).max(100).optional().describe("Exclude specific connection IDs (max 100)"),toolNames:K$.array(K$.string()).max(100).optional().describe("Filter by specific tool names (max 100)"),status:K$.enum(["success","error"]).optional().describe("Filter metrics by execution status"),topN:K$.number().int().min(1).max(20).optional().describe("When provided with interval, also return top tools and their timeseries"),userIds:K$.array(K$.string()).max(100).optional().describe("Filter LLM usage by user IDs (only applied when llmUsage is true)"),llmUsage:K$.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:K$.object({totalCalls:K$.number().describe("Total number of tool calls"),errorRate:K$.number().optional().describe("Error rate as a decimal (0 to 1)"),avgDurationMs:K$.number().describe("Average call duration in milliseconds"),errorRatePercent:K$.string().optional().describe("Error rate as a percentage string"),totalErrors:K$.number().optional().describe("Total number of errors"),p50DurationMs:K$.number().optional().describe("50th percentile duration in milliseconds"),p95DurationMs:K$.number().optional().describe("95th percentile duration in milliseconds"),connectionBreakdown:K$.array(K$.object({connectionId:K$.string(),calls:K$.number(),errors:K$.number(),errorRate:K$.number(),avgDurationMs:K$.number()})).optional().describe("Per-connection metric breakdown"),totalInputTokens:K$.number().optional().describe("Total input tokens (LLM usage mode)"),totalOutputTokens:K$.number().optional().describe("Total output tokens (LLM usage mode)"),totalTokens:K$.number().optional().describe("Total tokens (LLM usage mode)"),totalCostUsd:K$.number().optional().describe("Total USD cost (LLM usage mode; only non-zero for providers that report cost)"),topTools:K$.array(K$.object({toolName:K$.string(),connectionId:K$.string().nullable(),calls:K$.number(),inputTokens:K$.number().optional(),outputTokens:K$.number().optional(),costUsd:K$.number().optional()})).optional().describe("Top tools ranked by calls"),topToolsTimeseries:K$.array(K$.object({timestamp:K$.string(),toolName:K$.string(),calls:K$.number(),errors:K$.number(),avg:K$.number(),p95:K$.number()})).optional().describe("Per-tool metric timeseries for the top tools"),timeseries:K$.array(K$.object({timestamp:K$.string(),calls:K$.number(),errors:K$.number(),errorRate:K$.number(),avg:K$.number(),p50:K$.number(),p95:K$.number(),inputTokens:K$.number().optional(),outputTokens:K$.number().optional(),totalTokens:K$.number().optional(),costUsd:K$.number().optional()})).optional().describe("Timeseries data points bucketed by interval")}),handler:async($,Z)=>{let G=O0(Z);if(await Z.access.check(),await fY(),$.interval&&$.llmUsage)return Z.storage.monitoring.queryLlmUsageStats({organizationId:G.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:G.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 Q=await Z.storage.monitoring.queryMetricTopToolsTimeseries({organizationId:G.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:Q.topTools,topToolsTimeseries:Q.timeseries}}let X=await Z.storage.monitoring.getStats({organizationId:G.id,startDate:$.startDate?new Date($.startDate):void 0,endDate:$.endDate?new Date($.endDate):void 0});return{...X,errorRatePercent:(X.errorRate*100).toFixed(2)}}})});import{z as I7}from"zod";var Ou0;var Ls1=O(()=>{I5();J1();Ou0=X0({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:I7.object({threadIds:I7.array(I7.string()).min(1).max(500).describe("Thread IDs to aggregate usage for (max 500)"),connectionId:I7.string().optional().describe("LLM connection ID (defaults to 'decopilot')"),startDate:I7.string().datetime().optional().describe("Filter by start date (ISO 8601 datetime string)"),endDate:I7.string().datetime().optional().describe("Filter by end date (ISO 8601 datetime string)")}),outputSchema:I7.object({items:I7.array(I7.object({threadId:I7.string(),calls:I7.number(),inputTokens:I7.number(),outputTokens:I7.number(),totalTokens:I7.number(),costUsd:I7.number()}))}),handler:async($,Z)=>{let G=O0(Z);return await Z.access.check(),await fY(),{items:await Z.storage.monitoring.queryThreadUsage({organizationId:G.id,connectionId:$.connectionId??"decopilot",threadIds:$.threadIds,startDate:$.startDate?new Date($.startDate):void 0,endDate:$.endDate?new Date($.endDate):void 0})}}})});var zs1=O(()=>{Os1();Es1();Ds1();Ls1()});import{z as EY}from"zod";var Eu0;var js1=O(()=>{J1();Eu0=X0({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:EY.object({slug:EY.string().min(1).max(50).regex(/^[a-z0-9-]+$/,"Slug must be lowercase alphanumeric with hyphens"),name:EY.string().min(1).max(255),description:EY.string().optional()}),outputSchema:EY.object({id:EY.string(),name:EY.string(),slug:EY.string(),logo:EY.string().nullable().optional(),metadata:EY.any().optional(),createdAt:EY.string().datetime().describe("ISO 8601 timestamp"),members:EY.array(EY.any()).optional()}),handler:async($,Z)=>{S0(Z),await Z.access.check();let G=l1(Z);if(!G)throw Error("User ID required to create organization");let X=await Z.boundAuth.organization.create({name:$.name,slug:$.slug,metadata:$.description?{description:$.description}:void 0,userId:G});if(!X)throw Error("Failed to create organization");return{...X,createdAt:X.createdAt instanceof Date?X.createdAt.toISOString():X.createdAt}}})});import{z as pJ}from"zod";var Du0;var Ps1=O(()=>{J1();Du0=X0({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:pJ.object({userId:pJ.string().optional()}),outputSchema:pJ.object({organizations:pJ.array(pJ.object({id:pJ.string(),name:pJ.string(),slug:pJ.string(),logo:pJ.string().nullable().optional(),metadata:pJ.any().optional(),createdAt:pJ.string().datetime().describe("ISO 8601 timestamp")}))}),handler:async($,Z)=>{S0(Z),await Z.access.check();let G=l1(Z),X=$.userId||G;if(!X)throw Error("User ID required to list organizations");return{organizations:(await Z.boundAuth.organization.list(X)).map((Q)=>({...Q,createdAt:Q.createdAt instanceof Date?Q.createdAt.toISOString():Q.createdAt}))}}})});import{z as DQ}from"zod";var Lu0;var As1=O(()=>{J1();Lu0=X0({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:DQ.object({}),outputSchema:DQ.object({id:DQ.string(),name:DQ.string(),slug:DQ.string(),logo:DQ.string().nullable().optional(),metadata:DQ.any().optional(),createdAt:DQ.string().datetime().describe("ISO 8601 timestamp"),members:DQ.array(DQ.any()).optional(),invitations:DQ.array(DQ.any()).optional()}),handler:async($,Z)=>{S0(Z),await Z.access.check();let G=Z.organization?.id;if(!G)throw Error("Organization ID required (no active organization in context)");let X=await Z.boundAuth.organization.get(G);if(!X)throw Error("No active organization found");let Y=new Date,Q=X.invitations?.filter((J)=>new Date(J.expiresAt)>Y);return{...X,invitations:Q,createdAt:X.createdAt instanceof Date?X.createdAt.toISOString():X.createdAt}}})});import{z as tJ}from"zod";var zu0;var Ts1=O(()=>{J1();zu0=X0({name:"ORGANIZATION_UPDATE",description:"Update an organization's name or description.",annotations:{title:"Update Organization",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:tJ.object({id:tJ.string(),name:tJ.string().min(1).max(255).optional(),description:tJ.string().optional()}),outputSchema:tJ.object({id:tJ.string(),name:tJ.string(),slug:tJ.string(),logo:tJ.string().nullable().optional(),metadata:tJ.any().optional(),createdAt:tJ.string().datetime().describe("ISO 8601 timestamp")}),handler:async($,Z)=>{S0(Z),await Z.access.check();let G={};if($.name)G.name=$.name;if($.description)G.metadata={description:$.description};let X=await Z.boundAuth.organization.update({organizationId:$.id,data:G});if(!X)throw Error("Failed to update organization");return{...X,createdAt:X.createdAt instanceof Date?X.createdAt.toISOString():X.createdAt}}})});import{z as Fi}from"zod";var ju0;var Is1=O(()=>{J1();ju0=X0({name:"ORGANIZATION_DELETE",description:"Archive an organization (soft delete).",annotations:{title:"Delete Organization",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:Fi.object({id:Fi.string()}),outputSchema:Fi.object({success:Fi.boolean(),id:Fi.string()}),handler:async($,Z)=>{return S0(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 v$}from"zod";var Hi,Ni,Cx,Rs1,d40,Bi,Oi,pH;var CU=O(()=>{Hi=v$.object({title:v$.string(),url:v$.string(),icon:v$.string()}),Ni=v$.object({registries:v$.record(v$.string(),v$.object({enabled:v$.boolean()})).describe("Per-registry enabled/disabled state. Key is connection ID. Absent registries are treated as enabled."),blockedMcps:v$.array(v$.string()).describe("List of MCP app_name or app_id values to hide from the store.")}),Cx=v$.object({keyId:v$.string(),modelId:v$.string(),title:v$.string().optional()}).nullable(),Rs1=v$.enum(["fast","smart","thinking","image","web_search","deep_research"]),d40=v$.enum(["fast","smart","thinking"]),Bi=v$.object({tiers:v$.object({fast:Cx,smart:Cx,thinking:Cx,image:Cx,web_search:Cx,deep_research:Cx})}),Oi=v$.object({ids:v$.array(v$.string()).describe("Ordered list of custom virtual MCP agent ids to show on the home view.")}),pH=v$.object({id:v$.string().describe("Brand context ID"),name:v$.string().describe("Company name"),domain:v$.string().describe("Company domain (e.g. example.com)"),overview:v$.string().describe("Company overview / description"),logo:v$.string().nullable().optional().describe("Logo URL"),favicon:v$.string().nullable().optional().describe("Favicon URL"),ogImage:v$.string().nullable().optional().describe("OG image URL"),fonts:v$.object({heading:v$.string().optional().describe("Font family for headings"),body:v$.string().optional().describe("Font family for body text"),code:v$.string().optional().describe("Font family for code / monospace")}).nullable().optional().describe("Font families by semantic role"),colors:v$.object({primary:v$.string().optional().describe("Primary brand color (hex)"),secondary:v$.string().optional().describe("Secondary brand color (hex)"),accent:v$.string().optional().describe("Accent / highlight color (hex)"),background:v$.string().optional().describe("Background color (hex)"),foreground:v$.string().optional().describe("Foreground / text color (hex)")}).nullable().optional().describe("Semantic color palette"),images:v$.array(v$.record(v$.string(),v$.unknown())).nullable().optional().describe("Brand images"),metadata:v$.record(v$.string(),v$.unknown()).nullable().optional().describe("Extra design tokens (typography, components, spacing, layout, tone, etc.)"),archivedAt:v$.string().nullable().optional().describe("Archive timestamp (null to unarchive)"),isDefault:v$.boolean().optional().describe("Whether this is the default brand for the organization")})});import{z as tH}from"zod";var Pu0;var qs1=O(()=>{J1();CU();Pu0=X0({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:tH.object({}),outputSchema:tH.object({organizationId:tH.string(),sidebar_items:tH.array(Hi).nullable().optional(),enabled_plugins:tH.array(tH.string()).nullable().optional(),registry_config:Ni.nullable().optional(),simple_mode:Bi.nullable().optional(),default_home_agents:Oi.nullable().optional(),createdAt:tH.string().datetime().optional().describe("ISO 8601 timestamp"),updatedAt:tH.string().datetime().optional().describe("ISO 8601 timestamp")}),handler:async($,Z)=>{S0(Z),await Z.access.check();let G=Z.organization?.id;if(!G)throw Error("Organization ID required (no active organization in context)");let X=await Z.storage.organizationSettings.get(G);if(!X)return{organizationId:G};return{...X,createdAt:X.createdAt instanceof Date?X.createdAt.toISOString():X.createdAt,updatedAt:X.updatedAt instanceof Date?X.updatedAt.toISOString():X.updatedAt}}})});import{z as LQ}from"zod";var Au0;var Ms1=O(()=>{J1();CU();Au0=X0({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:LQ.object({organizationId:LQ.string(),sidebar_items:LQ.array(Hi).optional(),enabled_plugins:LQ.array(LQ.string()).optional(),registry_config:Ni.optional(),simple_mode:Bi.optional(),default_home_agents:Oi.optional()}),outputSchema:LQ.object({organizationId:LQ.string(),sidebar_items:LQ.array(Hi).nullable().optional(),enabled_plugins:LQ.array(LQ.string()).nullable().optional(),registry_config:Ni.nullable().optional(),simple_mode:Bi.nullable().optional(),default_home_agents:Oi.nullable().optional(),createdAt:LQ.string().datetime().describe("ISO 8601 timestamp"),updatedAt:LQ.string().datetime().describe("ISO 8601 timestamp")}),handler:async($,Z)=>{if(S0(Z),await Z.access.check(),Z.organization&&Z.organization.id!==$.organizationId)throw Error("Cannot update settings for a different organization");let G=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});return{...G,createdAt:G.createdAt instanceof Date?G.createdAt.toISOString():G.createdAt,updatedAt:G.updatedAt instanceof Date?G.updatedAt.toISOString():G.updatedAt}}})});import{z as rJ}from"zod";var ks1,Tu0,Iu0;var Ss1=O(()=>{J1();CU();ks1=pH.extend({organizationId:rJ.string(),archivedAt:rJ.string().nullable().optional().describe("ISO 8601 timestamp"),createdAt:rJ.string().describe("ISO 8601 timestamp"),updatedAt:rJ.string().describe("ISO 8601 timestamp")}),Tu0=X0({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:rJ.object({includeArchived:rJ.boolean().optional().describe("Include archived brands in the list")}),outputSchema:rJ.object({items:rJ.array(ks1)}),handler:async($,Z)=>{S0(Z),await Z.access.check();let G=Z.organization?.id;if(!G)throw Error("Organization ID required (no active organization in context)");return{items:(await Z.storage.brandContext.list(G,{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}))}}}),Iu0=X0({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:rJ.object({id:rJ.string().describe("Brand context ID")}),outputSchema:ks1.extend({organizationId:rJ.string()}),handler:async($,Z)=>{S0(Z),await Z.access.check();let G=Z.organization?.id;if(!G)throw Error("Organization ID required (no active organization in context)");let X=await Z.storage.brandContext.get($.id,G);if(!X)throw Error("Brand context not found");return{...X,archivedAt:X.archivedAt instanceof Date?X.archivedAt.toISOString():X.archivedAt,createdAt:X.createdAt instanceof Date?X.createdAt.toISOString():X.createdAt,updatedAt:X.updatedAt instanceof Date?X.updatedAt.toISOString():X.updatedAt}}})});import{z as $D}from"zod";var Vs1,Ru0,qu0,Mu0;var Cs1=O(()=>{J1();CU();Vs1=pH.extend({organizationId:$D.string(),createdAt:$D.string().describe("ISO 8601 timestamp"),updatedAt:$D.string().describe("ISO 8601 timestamp")}),Ru0=X0({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:pH.omit({id:!0}),outputSchema:Vs1,handler:async($,Z)=>{S0(Z),await Z.access.check();let G=Z.organization?.id;if(!G)throw Error("Organization ID required (no active organization in context)");let X=await Z.storage.brandContext.create(G,{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{...X,archivedAt:X.archivedAt instanceof Date?X.archivedAt.toISOString():X.archivedAt,createdAt:X.createdAt instanceof Date?X.createdAt.toISOString():X.createdAt,updatedAt:X.updatedAt instanceof Date?X.updatedAt.toISOString():X.updatedAt}}}),qu0=X0({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:pH.partial().required({id:!0}),outputSchema:Vs1,handler:async($,Z)=>{S0(Z),await Z.access.check();let G=Z.organization?.id;if(!G)throw Error("Organization ID required (no active organization in context)");if(!await Z.storage.brandContext.get($.id,G))throw Error("Brand context not found");let{id:Y,...Q}=$;if(Q.isDefault===!0)await Z.storage.brandContext.setDefault(Y,G);let J=await Z.storage.brandContext.update(Y,G,{name:Q.name,domain:Q.domain,overview:Q.overview,logo:Q.logo!==void 0?Q.logo??null:void 0,favicon:Q.favicon!==void 0?Q.favicon??null:void 0,ogImage:Q.ogImage!==void 0?Q.ogImage??null:void 0,fonts:Q.fonts!==void 0?Q.fonts??null:void 0,colors:Q.colors!==void 0?Q.colors??null:void 0,images:Q.images!==void 0?Q.images??null:void 0,metadata:Q.metadata!==void 0?Q.metadata??null:void 0,archivedAt:Q.archivedAt!==void 0?Q.archivedAt??null:void 0,isDefault:Q.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}}}),Mu0=X0({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:$D.object({id:$D.string().describe("Brand context ID")}),outputSchema:$D.object({success:$D.boolean()}),handler:async($,Z)=>{S0(Z),await Z.access.check();let G=Z.organization?.id;if(!G)throw Error("Organization ID required (no active organization in context)");if(!await Z.storage.brandContext.get($.id,G))throw Error("Brand context not found");return await Z.storage.brandContext.update($.id,G,{archivedAt:new Date().toISOString(),isDefault:!1}),{success:!0}}})});async function l40($,Z,G){let X=$.trim();if(!X.startsWith("http"))X=`https://${X}`;let Y=await fetch("https://api.firecrawl.dev/v1/scrape",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${Z}`},body:JSON.stringify({url:X,formats:["branding"]})});if(!Y.ok){let H=await Y.text().catch(()=>"");throw Error(`Firecrawl API error: ${Y.status} ${H.slice(0,200)}`)}let Q=await Y.json();if(!Q.success||!Q.data?.branding)return null;let J=Q.data.branding,W=Q.data.metadata??{},K=Eo8(J,W);return{name:W.title?.split(/[|\u2013\u2014]|\s+-\s+/).map((H)=>H.trim()).filter(Boolean)?.slice().sort((H,N)=>H.length-N.length)[0]??W.ogSiteName??G??$,domain:$,overview:W.description??"",logo:K.logo,favicon:K.favicon,ogImage:K.ogImage,fonts:K.fonts,colors:K.colors,images:null,metadata:Object.keys(K.metadata).length>0?K.metadata:null}}function Eo8($,Z){let G=$.images??{},X=$.colors??{},Y={};for(let[w,F]of Object.entries(X))if(typeof F==="string"&&F&&Bo8.has(w))Y[w]=F;let Q={},W=($.typography??{}).fontFamilies??{};for(let[w,F]of Object.entries(W))if(typeof F==="string"&&F){let H=Oo8[w.toLowerCase()];if(H&&!Q[H])Q[H]=F}let K=$.fonts;if(Array.isArray(K))for(let w of K){let F=w.family;if(typeof F==="string"&&F&&!Q.body)Q.body=F}let U={};for(let w of["typography","components","spacing","layout","animations","icons","tone","personality","colorScheme"])if($[w]!==void 0)U[w]=$[w];return{logo:G.logo??null,favicon:G.favicon??null,ogImage:G.ogImage??Z.ogImage??null,fonts:Object.keys(Q).length>0?Q:null,colors:Object.keys(Y).length>0?Y:null,metadata:U}}var Bo8,Oo8;var ku0=O(()=>{Bo8=new Set(["primary","secondary","accent","background","foreground"]),Oo8={heading:"heading",headings:"heading",head:"heading",title:"heading",body:"body",primary:"body",text:"body",code:"code",monospace:"code",mono:"code"}});import{z as m40}from"zod";var Do8,Su0;var _s1=O(()=>{J1();ku0();CU();Do8=pH.pick({id:!0,name:!0,domain:!0,overview:!0,logo:!0,favicon:!0,ogImage:!0,fonts:!0,colors:!0}).extend({success:m40.boolean()}),Su0=X0({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:m40.object({domain:m40.string().describe("Website domain to extract brand from"),brandId:m40.string().optional().describe("Existing brand context ID to update (creates new if omitted)")}),outputSchema:Do8,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)=>{S0(Z),await Z.access.check();let G=Z.organization?.id;if(!G)throw Error("Organization ID required (no active organization in context)");let X=Z.firecrawlApiKey;if(!X)throw Error("FIRECRAWL_API_KEY is not configured. Set the environment variable to enable brand extraction.");let Y=await l40($.domain,X,$.domain);if(!Y)throw Error("Firecrawl did not return branding data for this URL");let Q={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,G))throw Error("Brand context not found");return Z.storage.brandContext.update($.brandId,G,Q)})():await Z.storage.brandContext.create(G,Q);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 bs1($){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 G=Object.fromEntries(Object.entries(Z).filter(([X])=>X!=="tagline"&&X!=="tone"));return Object.keys(G).length>0?G:void 0})()}}var Vu0,Cu0;var fs1=O(()=>{mc0();J1();Vu0=X0({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:f40,outputSchema:Ki,handler:async($,Z)=>{S0(Z),await Z.access.check();let G=Z.organization?.id;if(!G)throw Error("Organization ID required (no active organization in context)");let X=$.id?await Z.storage.brandContext.get($.id,G):await Z.storage.brandContext.getDefault(G);if(!X)throw Error($.id?"Brand not found":"No default brand configured");return bs1(X)}}),Cu0=X0({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:x40,outputSchema:v40,handler:async($,Z)=>{S0(Z),await Z.access.check();let G=Z.organization?.id;if(!G)throw Error("Organization ID required (no active organization in context)");return{items:(await Z.storage.brandContext.list(G)).map(bs1)}}})});import{resolveTxt as Lo8}from"dns/promises";function _u0($){return`${zo8}.${$.toLowerCase()}`}function xs1(){return`deco-verify-${crypto.randomUUID().replace(/-/g,"")}`}async function vs1($,Z,G=Lo8){if(!Z)return!1;try{return(await G(_u0($))).some((Y)=>Y.join("").trim()===Z)}catch{return!1}}var zo8="_deco-verify";var ys1=()=>{};import{z as z5}from"zod";function rH($){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?_u0($.domain):null,recordValue:Z?$.verificationToken:null}}function Po8($){let Z=$.toLowerCase().trim();if(!jo8.test(Z))throw Error(`Invalid domain format: "${Z}". Must be a valid domain like "acme.com"`);if(oJ.has(Z))throw Error(`Cannot claim generic email domain "${Z}". Only corporate domains are allowed.`);return Z}var jo8,bu0,i40,fu0,xu0,vu0,yu0,gu0;var gs1=O(()=>{_U();ys1();J1();jo8=/^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)+$/,bu0=z5.enum(["off","auto","request"]),i40=z5.object({id:z5.string(),domain:z5.string(),joinMode:bu0,verificationStatus:z5.enum(["pending","verified"]),verificationMethod:z5.enum(["email","dns"]).nullable(),verifiedAt:z5.string().nullable(),recordName:z5.string().nullable(),recordValue:z5.string().nullable()});fu0=X0({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:z5.object({}),outputSchema:z5.object({domains:z5.array(i40)}),handler:async($,Z)=>{S0(Z),await Z.access.check();let G=O0(Z);return{domains:(await Z.storage.organizationDomains.listByOrganizationId(G.id)).map(rH)}}}),xu0=X0({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:z5.object({domain:z5.string().min(1).max(255).describe("Domain to claim, e.g. acme.com"),joinMode:bu0.optional().describe("Initial join mode (only applied when the domain is trusted immediately via email match).")}),outputSchema:i40,handler:async($,Z)=>{S0(Z),await Z.access.check();let G=O0(Z),X=Po8($.domain),Q=Z.auth.user?.email?.split("@")[1]?.toLowerCase(),J=Boolean(Z.auth.user?.emailVerified)&&Q===X,W=await Z.storage.organizationDomains.getByOrgAndDomain(G.id,X);if(W){if(W.verificationStatus!=="verified"&&J){let U=await Z.storage.organizationDomains.markVerified(W.id,"email");return rH(U)}return rH(W)}let K=J?await Z.storage.organizationDomains.add(G.id,X,{joinMode:$.joinMode??"off",verificationStatus:"verified",verificationMethod:"email"}):await Z.storage.organizationDomains.add(G.id,X,{joinMode:"off",verificationStatus:"pending",verificationToken:xs1()});return rH(K)}}),vu0=X0({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:z5.object({id:z5.string(),joinMode:bu0}),outputSchema:i40,handler:async($,Z)=>{S0(Z),await Z.access.check();let G=O0(Z),X=await Z.storage.organizationDomains.getById($.id);if(!X||X.organizationId!==G.id)throw Error("Domain not found");if($.joinMode!=="off"&&X.verificationStatus!=="verified")throw Error("Verify the domain before enabling auto-join or requests.");let Y=await Z.storage.organizationDomains.updateJoinMode($.id,$.joinMode);return rH(Y)}}),yu0=X0({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:z5.object({id:z5.string()}),outputSchema:z5.object({verified:z5.boolean(),domain:i40}),handler:async($,Z)=>{S0(Z),await Z.access.check();let G=O0(Z),X=await Z.storage.organizationDomains.getById($.id);if(!X||X.organizationId!==G.id)throw Error("Domain not found");if(X.verificationStatus==="verified")return{verified:!0,domain:rH(X)};if(!X.verificationToken)throw Error("Domain has no pending DNS verification.");if(!await vs1(X.domain,X.verificationToken))return{verified:!1,domain:rH(X)};let Q=await Z.storage.organizationDomains.markVerified($.id,"dns");return{verified:!0,domain:rH(Q)}}}),gu0=X0({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:z5.object({id:z5.string()}),outputSchema:z5.object({success:z5.boolean()}),handler:async($,Z)=>{S0(Z),await Z.access.check();let G=O0(Z),X=await Z.storage.organizationDomains.getById($.id);if(!X||X.organizationId!==G.id)throw Error("Domain not found");return await Z.storage.organizationDomains.removeById($.id),{success:!0}}})});import{z as H9}from"zod";var Ao8,hu0,cu0,uu0;var hs1=O(()=>{J1();x4();Ao8=H9.object({id:H9.string(),userId:H9.string(),status:H9.enum(["pending","approved","denied"]),createdAt:H9.string(),user:H9.object({id:H9.string(),name:H9.string(),email:H9.string(),image:H9.string().nullable()}).nullable()}),hu0=X0({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:H9.object({}),outputSchema:H9.object({requests:H9.array(Ao8)}),handler:async($,Z)=>{S0(Z),await Z.access.check();let G=O0(Z);return{requests:(await Z.storage.organizationJoinRequests.listPendingWithUser(G.id)).map((Y)=>({id:Y.id,userId:Y.userId,status:Y.status,createdAt:new Date(Y.createdAt).toISOString(),user:Y.user}))}}}),cu0=X0({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:H9.object({requestId:H9.string()}),outputSchema:H9.object({success:H9.boolean()}),handler:async($,Z)=>{S0(Z),await Z.access.check();let G=O0(Z),X=await Z.storage.organizationJoinRequests.getById($.requestId);if(!X||X.organizationId!==G.id)throw Error("Join request not found");if(X.status!=="pending")throw Error("Join request has already been decided");let Y=l1(Z);if(!await Z.storage.organizationJoinRequests.decide(X.id,"approved",Y??X.userId))return{success:!0};try{await Z.boundAuth.organization.addMember({organizationId:G.id,userId:X.userId,role:["user"]})}catch(J){if(!(J instanceof Error?J.message.toLowerCase():"").includes("already a member"))throw J}if(Y)r1.capture({distinctId:Y,event:"organization_join_request_approved",groups:{organization:G.id},properties:{organization_id:G.id,user_id:X.userId}});return{success:!0}}}),uu0=X0({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:H9.object({requestId:H9.string()}),outputSchema:H9.object({success:H9.boolean()}),handler:async($,Z)=>{S0(Z),await Z.access.check();let G=O0(Z),X=await Z.storage.organizationJoinRequests.getById($.requestId);if(!X||X.organizationId!==G.id)throw Error("Join request not found");if(X.status!=="pending")throw Error("Join request has already been decided");let Y=l1(Z);if(await Z.storage.organizationJoinRequests.decide(X.id,"denied",Y??X.userId)&&Y)r1.capture({distinctId:Y,event:"organization_join_request_denied",groups:{organization:G.id},properties:{organization_id:G.id,user_id:X.userId}});return{success:!0}}})});import{z as BX}from"zod";var du0;var cs1=O(()=>{x4();J1();JW();du0=X0({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:BX.object({organizationId:BX.string().optional(),userId:BX.string(),role:BX.array(BX.string())}),outputSchema:BX.object({id:BX.string(),organizationId:BX.string(),userId:BX.string(),role:BX.union([BX.string(),BX.array(BX.string())]),createdAt:BX.string().datetime().describe("ISO 8601 timestamp")}),handler:async($,Z)=>{S0(Z),await Z.access.check();let G=$.organizationId||Z.organization?.id;if(!G)throw Error("Organization ID required (no active organization in context)");if(G!==Z.organization?.id)throw Error("Organization ID does not match authenticated organization");let X=Array.isArray($.role)?$.role[0]:$.role;if(X&&!u80(Z.auth.user?.role,X))throw Error(`Insufficient privileges to assign role "${X}"`);let Y=await Z.boundAuth.organization.addMember({organizationId:G,userId:$.userId,role:$.role});if(!Y)throw Error("Failed to add member");let Q=l1(Z);if(Q)r1.capture({distinctId:Q,event:"organization_member_added",groups:{organization:G},properties:{organization_id:G,added_user_id:$.userId,role:$.role}});return{...Y,role:Y.role,createdAt:Y.createdAt instanceof Date?Y.createdAt.toISOString():Y.createdAt}}})});import{z as _x}from"zod";var lu0;var us1=O(()=>{x4();J1();lu0=X0({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:_x.object({organizationId:_x.string().optional(),memberIdOrEmail:_x.string()}),outputSchema:_x.object({success:_x.boolean(),memberIdOrEmail:_x.string()}),handler:async($,Z)=>{S0(Z),await Z.access.check();let G=$.organizationId||Z.organization?.id;if(!G)throw Error("Organization ID required (no active organization in context)");await Z.boundAuth.organization.removeMember({organizationId:G,memberIdOrEmail:$.memberIdOrEmail});let X=l1(Z);if(X)r1.capture({distinctId:X,event:"organization_member_removed",groups:{organization:G},properties:{organization_id:G,member_id_or_email:$.memberIdOrEmail}});return{success:!0,memberIdOrEmail:$.memberIdOrEmail}}})});import{z as uG}from"zod";var mu0;var ds1=O(()=>{J1();mu0=X0({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:uG.object({limit:uG.number().optional(),offset:uG.number().optional()}),outputSchema:uG.object({members:uG.array(uG.object({id:uG.string(),organizationId:uG.string(),userId:uG.string(),role:uG.string(),createdAt:uG.string().datetime().describe("ISO 8601 timestamp"),user:uG.object({id:uG.string(),name:uG.string(),email:uG.string(),image:uG.string().optional()}).optional()}))}),handler:async($,Z)=>{S0(Z),await Z.access.check();let G=Z.organization?.id;if(!G)throw Error("Organization ID required (no active organization in context)");let X=await Z.boundAuth.organization.listMembers({organizationId:G,limit:$.limit,offset:$.offset});return{members:(Array.isArray(X)?X:[]).map((Q)=>({...Q,createdAt:Q.createdAt instanceof Date?Q.createdAt.toISOString():Q.createdAt}))}}})});import{z as IZ}from"zod";var iu0;var ls1=O(()=>{x4();J1();JW();iu0=X0({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:IZ.object({organizationId:IZ.string().optional(),memberId:IZ.string(),role:IZ.array(IZ.string())}),outputSchema:IZ.object({id:IZ.string(),organizationId:IZ.string(),userId:IZ.string(),role:IZ.union([IZ.literal("admin"),IZ.literal("member"),IZ.literal("owner")]),createdAt:IZ.string().datetime().describe("ISO 8601 timestamp"),user:IZ.object({email:IZ.string(),name:IZ.string(),image:IZ.string().optional()})}),handler:async($,Z)=>{S0(Z),await Z.access.check();let G=$.organizationId||Z.organization?.id;if(!G)throw Error("Organization ID required (no active organization in context)");let X=Array.isArray($.role)?$.role[0]:$.role;if(X&&!u80(Z.auth.user?.role,X))throw Error(`Insufficient privileges to assign role "${X}"`);let Y=await Z.boundAuth.organization.updateMemberRole({organizationId:G,memberId:$.memberId,role:$.role});if(!Y)throw Error("Failed to update member role");Z.invalidateMemberRole?.(Y.userId,G);let Q=l1(Z);if(Q)r1.capture({distinctId:Q,event:"organization_member_role_updated",groups:{organization:G},properties:{organization_id:G,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}}})});var ms1=O(()=>{js1();Ps1();As1();Ts1();Is1();qs1();Ms1();Ss1();Cs1();_s1();fs1();gs1();hs1();cs1();us1();ds1();ls1()});import{z as oH}from"zod";var nu0;var is1=O(()=>{J1();nu0=X0({name:"TAGS_LIST",description:"List all tags available in the organization.",annotations:{title:"List Tags",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:oH.object({}),outputSchema:oH.object({tags:oH.array(oH.object({id:oH.string(),organizationId:oH.string(),name:oH.string(),createdAt:oH.string().describe("ISO 8601 timestamp")}))}),handler:async($,Z)=>{S0(Z),await Z.access.check();let G=O0(Z);return{tags:(await Z.storage.tags.listOrgTags(G.id)).map((Y)=>({...Y,createdAt:Y.createdAt instanceof Date?Y.createdAt.toISOString():String(Y.createdAt)}))}}})});import{z as aH}from"zod";var pu0;var ns1=O(()=>{J1();pu0=X0({name:"TAGS_CREATE",description:"Create a new tag that can be assigned to organization members.",annotations:{title:"Create Tag",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!1},inputSchema:aH.object({name:aH.string().min(1).max(50).describe("Tag name")}),outputSchema:aH.object({tag:aH.object({id:aH.string(),organizationId:aH.string(),name:aH.string(),createdAt:aH.string().describe("ISO 8601 timestamp")})}),handler:async($,Z)=>{S0(Z),await Z.access.check();let G=O0(Z),X=await Z.storage.tags.createTag(G.id,$.name);return{tag:{...X,createdAt:X.createdAt instanceof Date?X.createdAt.toISOString():String(X.createdAt)}}}})});import{z as n40}from"zod";var tu0;var ps1=O(()=>{J1();tu0=X0({name:"TAGS_DELETE",description:"Delete a tag and automatically remove it from all assigned members.",annotations:{title:"Delete Tag",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:n40.object({tagId:n40.string().describe("Tag ID to delete")}),outputSchema:n40.object({success:n40.boolean()}),handler:async($,Z)=>{S0(Z),await Z.access.check();let G=O0(Z),X=await Z.storage.tags.getTag($.tagId);if(!X)throw Error("Tag not found");if(X.organizationId!==G.id)throw Error("Tag does not belong to this organization");return await Z.storage.tags.deleteTag($.tagId),{success:!0}}})});import{z as bU}from"zod";var ru0;var ts1=O(()=>{J1();ru0=X0({name:"MEMBER_TAGS_GET",description:"Get all tags currently assigned to a specific member.",annotations:{title:"Get Member Tags",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:bU.object({memberId:bU.string().describe("Member ID")}),outputSchema:bU.object({tags:bU.array(bU.object({id:bU.string(),organizationId:bU.string(),name:bU.string(),createdAt:bU.string().describe("ISO 8601 timestamp")}))}),handler:async($,Z)=>{S0(Z),await Z.access.check();let G=O0(Z);if(!await Z.storage.tags.verifyMemberOrg($.memberId,G.id))throw Error(`Member not found in this organization: ${$.memberId}`);return{tags:(await Z.storage.tags.getMemberTags($.memberId)).map((Q)=>({...Q,createdAt:Q.createdAt instanceof Date?Q.createdAt.toISOString():String(Q.createdAt)}))}}})});import{z as zQ}from"zod";var ou0;var rs1=O(()=>{J1();ou0=X0({name:"MEMBER_TAGS_SET",description:"Replace all tags on a member with the given set. Pass empty array to clear.",annotations:{title:"Set Member Tags",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:zQ.object({memberId:zQ.string().describe("Member ID"),tagIds:zQ.array(zQ.string()).describe("Array of tag IDs to assign")}),outputSchema:zQ.object({success:zQ.boolean(),tags:zQ.array(zQ.object({id:zQ.string(),organizationId:zQ.string(),name:zQ.string(),createdAt:zQ.string().describe("ISO 8601 timestamp")}))}),handler:async($,Z)=>{S0(Z),await Z.access.check();let G=O0(Z);if(!await Z.storage.tags.verifyMemberOrg($.memberId,G.id))throw Error(`Member not found in this organization: ${$.memberId}`);for(let Q of $.tagIds){let J=await Z.storage.tags.getTag(Q);if(!J)throw Error(`Tag not found: ${Q}`);if(J.organizationId!==G.id)throw Error(`Tag does not belong to this organization: ${Q}`)}return await Z.storage.tags.setMemberTags($.memberId,$.tagIds),{success:!0,tags:(await Z.storage.tags.getMemberTags($.memberId)).map((Q)=>({...Q,createdAt:Q.createdAt instanceof Date?Q.createdAt.toISOString():String(Q.createdAt)}))}}})});var os1=O(()=>{is1();ns1();ps1();ts1();rs1()});function qW($,Z=Date.now()){let G=$.status;if(G==="in_progress"){let X=new Date($.updated_at).getTime();if(!Number.isFinite(X)||Z-X>1800000)G="expired"}return{id:$.id,organization_id:$.organization_id,title:$.title,description:$.description,created_at:$.created_at,updated_at:$.updated_at,created_by:$.created_by,updated_by:$.updated_by,hidden:$.hidden??!1,status:G,virtual_mcp_id:$.virtual_mcp_id||void 0,trigger_id:$.trigger_id,branch:$.branch,sandbox_provider_kind:$.sandbox_provider_kind,harness_id:$.harness_id,metadata:$.metadata&&Object.keys($.metadata).length>0?$.metadata:void 0,run_config:$.run_config}}var as1=O(()=>{$6()});import{z as V$}from"zod";var ss1,Ro8,es1,MW,$e1,Ze1;var ZD=O(()=>{as1();ss1=V$.object({id:V$.string().describe("Unique message ID"),thread_id:V$.string().describe("ID of the parent thread"),metadata:V$.unknown().optional().describe("Optional message metadata"),parts:V$.array(V$.record(V$.string(),V$.unknown())).describe("Message content parts (AI SDK UIMessagePart format)"),role:V$.enum(["user","assistant","system"]).describe("Message role"),created_at:V$.string().datetime().describe("Timestamp of creation"),updated_at:V$.string().datetime().describe("Timestamp of last update")}),Ro8=V$.object({toolName:V$.string().describe("Fully qualified tool name"),appId:V$.string().describe("App ID that owns the tool"),args:V$.record(V$.string(),V$.unknown()).describe("Arguments used when expanding the tool"),expandedAt:V$.string().datetime().describe("When the tool was expanded")}),es1=V$.object({expanded_tools:V$.array(Ro8).optional()}).catchall(V$.unknown()),MW=V$.object({id:V$.string().describe("Unique thread ID"),organization_id:V$.string().describe("Organization this thread belongs to"),title:V$.string().describe("Thread title"),description:V$.string().nullable().describe("Thread description"),created_at:V$.string().datetime().describe("Timestamp of creation"),updated_at:V$.string().datetime().describe("Timestamp of last update"),hidden:V$.boolean().optional().describe("Whether the thread is hidden"),status:V$.enum([...t_,"expired"]).describe("Thread execution status. 'expired' is virtual -- computed at read time for stale in_progress threads"),created_by:V$.string().describe("User ID who created the thread"),updated_by:V$.string().optional().describe("User ID who last updated the thread"),virtual_mcp_id:V$.string().optional().describe("Virtual MCP (agent) this thread was initiated with"),trigger_id:V$.string().nullable().optional().describe("Automation trigger that created this thread; null/absent for human-initiated threads."),branch:V$.string().nullable().optional().describe("Git branch this thread is pinned to (GitHub-linked vms only)"),sandbox_provider_kind:V$.string().nullable().optional().describe("Pinned on first message; identifies which sandbox provider to dispatch to (e.g. 'agent-sandbox', 'user-desktop')."),harness_id:V$.string().nullable().optional().describe("Pinned on first message; selects which harness runs the thread (e.g. 'claude-code', 'codex', 'decopilot')."),metadata:es1.optional().describe("Free-form per-thread UI state (e.g. expanded_tools)"),run_config:V$.record(V$.string(),V$.unknown()).nullable().optional().describe("Persisted run configuration (contains agent and model info)")}),$e1=V$.object({id:V$.string().optional().describe("Optional custom ID for the thread"),title:V$.string().optional().describe("Thread title"),description:V$.string().nullish().describe("Thread description"),virtual_mcp_id:V$.string().describe("Virtual MCP (agent) this thread is bound to"),branch:V$.string().min(1).optional().describe("Preferred branch. Used only when the vMCP has a githubRepo; ignored otherwise. When omitted, the server picks the most-recently-touched branch from the user's sandboxMap, falling back to a freshly generated name.")}),Ze1=V$.object({title:V$.string().optional().describe("New thread title"),description:V$.string().nullish().describe("New thread description"),hidden:V$.boolean().optional().describe("Whether the thread is hidden"),status:V$.enum(["requires_action","failed","in_progress","completed"]).optional().describe("New thread status (user-set override). 'expired' is a computed virtual status and cannot be set directly."),metadata:es1.optional().describe("Full replacement of the thread's metadata object"),branch:V$.string().nullish().describe("New git branch for this thread")})});function qo8($){return($??"").normalize("NFKD").replace(/[\u0300-\u036F]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"user"}function p40($){let Z=qo8($),G=Date.now().toString(36).split("").reverse().join("");return`${Z}-${G}`}import{z as Ge1}from"zod";function So8($,Z){let G=$?.[Z];if(!G)return;return Object.entries(G).sort(([,Y],[,Q])=>{let J=Math.max(0,...Object.values(Y).map((K)=>K.createdAt??0));return Math.max(0,...Object.values(Q).map((K)=>K.createdAt??0))-J})[0]?.[0]}var Mo8,ko8,au0;var Xe1=O(()=>{x4();J1();ZD();s7();Mo8=Ge1.object({data:$e1.describe("Data for the new thread (id is auto-generated if not provided)")}),ko8=Ge1.object({item:MW.describe("The created thread entity")});au0=X0({name:"COLLECTION_THREADS_CREATE",description:"Create a new thread for organizing messages and conversations.",annotations:{title:"Create Thread",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:Mo8,outputSchema:ko8,handler:async($,Z)=>{S0(Z);let G=O0(Z);await Z.access.check();let X=l1(Z);if(!X)throw Error("User ID required to create thread");let{data:Y}=$,Q=Y.id??h6("thrd"),J=await Z.storage.virtualMcps.findById(Y.virtual_mcp_id,G.id);if(!J)throw Error(`Virtual MCP not found: ${Y.virtual_mcp_id}`);let W=J.metadata,K=W?.githubRepo,U=null;if(K)U=Y.branch??So8(W?.sandboxMap,X)??p40(Z.auth.user?.name??Z.auth.user?.email?.split("@")[0]);let w=await Z.storage.threads.create({id:Q,organization_id:G.id,title:Y.title,description:Y.description,virtual_mcp_id:Y.virtual_mcp_id,branch:U,created_by:X});return r1.capture({distinctId:X,event:"chat_started",groups:{organization:G.id},properties:{organization_id:G.id,thread_id:Q,has_title:!!$.data.title,created_via:"tool"}}),{item:qW(w)}}})});import{z as DY}from"zod";var Vo8,Co8,su0;var Ye1=O(()=>{OY();J1();ZD();Vo8=nJ.extend({where:DY.object({created_by:DY.string().optional(),trigger_ids:DY.array(DY.string()).optional(),virtual_mcp_id:DY.string().optional(),hidden:DY.boolean().optional(),has_trigger:DY.boolean().optional()}).optional(),startDate:DY.string().datetime().optional().describe("Filter threads updated at or after this ISO timestamp"),endDate:DY.string().datetime().optional().describe("Filter threads updated at or before this ISO timestamp"),search:DY.string().optional().describe("Full-text search on thread title (case-insensitive)"),status:DY.string().optional().describe("Filter by thread status (e.g. completed, failed, in_progress)"),userId:DY.string().optional().describe("Filter by the user who created the thread"),agentId:DY.string().optional().describe("Filter by agent (connection or virtual MCP) ID")}),Co8=kU(MW),su0=X0({name:"COLLECTION_THREADS_LIST",description:"List threads with filtering, sorting, and pagination.",annotations:{title:"List Threads",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:Vo8,outputSchema:Co8,handler:async($,Z)=>{await Z.access.check();let G=Z.auth.user?.id;if(!G)throw Error("User ID required to list threads");O0(Z);let X=$.offset??0,Y=$.limit??100,Q=$.where?.trigger_ids,J=$.where?.virtual_mcp_id,W=$.userId??($.where?.created_by==="me"?G:$.where?.created_by),{threads:K,total:U}=Q?.length?await Z.storage.threads.listByTriggerIds(Q,{limit:Y,offset:X}):await Z.storage.threads.list(W,{limit:Y,offset:X,virtualMcpId:J,startDate:$.startDate,endDate:$.endDate,search:$.search,status:$.status,agentId:$.agentId,includeArchived:$.where?.hidden,hasTrigger:$.where?.has_trigger}),w=X+Y<U,F=Date.now();return{items:K.map((H)=>qW(H,F)),totalCount:U,hasMore:w}}})});var _o8,eu0;var Qe1=O(()=>{OY();J1();ZD();_o8=Qi(MW),eu0=X0({name:"COLLECTION_THREADS_GET",description:"Get a thread's details and metadata by ID.",annotations:{title:"Get Thread",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:Yi,outputSchema:_o8,handler:async($,Z)=>{S0(Z),O0(Z),await Z.access.check();let G=await Z.storage.threads.get($.id);if(!G)return{item:null};return{item:qW(G)}}})});import{z as $d0}from"zod";var bo8,fo8,Zd0;var Je1=O(()=>{x4();J1();ZD();bo8=$d0.object({id:$d0.string().describe("ID of the thread to update"),data:Ze1.describe("Partial thread data to update")}),fo8=$d0.object({item:MW.describe("The updated thread entity")}),Zd0=X0({name:"COLLECTION_THREADS_UPDATE",description:"Update a thread's title, description, or visibility.",annotations:{title:"Update Thread",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:bo8,outputSchema:fo8,handler:async($,Z)=>{S0(Z);let G=O0(Z);await Z.access.check();let X=l1(Z);if(!X)throw Error("User ID required to update thread");let{id:Y,data:Q}=$,J=await Z.storage.threads.get(Y);if(!J)throw Error("Thread not found in organization");if(Q.branch===null&&J.virtual_mcp_id){if((await Z.storage.virtualMcps.findById(J.virtual_mcp_id,O0(Z).id))?.metadata?.githubRepo)throw Error("Cannot set branch=null on a github-linked thread (vMCP has githubRepo)")}let W={title:Q.title,description:Q.description,hidden:Q.hidden,updated_by:X};if(Q.status)W.status=Q.status;if(Q.metadata!==void 0)W.metadata=Q.metadata;if(Q.branch!==void 0)W.branch=Q.branch;let K=await Z.storage.threads.update(Y,W);if(Q.hidden!==void 0&&Q.hidden!==J.hidden)r1.capture({distinctId:X,event:Q.hidden?"chat_archived":"chat_unarchived",groups:{organization:G.id},properties:{organization_id:G.id,thread_id:Y}});return{item:qW(K)}}})});var Gd0;var We1=O(()=>{OY();x4();J1();ZD();Gd0=X0({name:"COLLECTION_THREADS_DELETE",description:"Permanently delete a thread and all its messages.",annotations:{title:"Delete Thread",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:Ji,outputSchema:Wi(MW),handler:async($,Z)=>{S0(Z);let G=O0(Z);await Z.access.check();let X=await Z.storage.threads.get($.id);if(!X)throw Error(`Thread not found: ${$.id}`);await Z.storage.threads.delete($.id);let Y=l1(Z);if(Y)r1.capture({distinctId:Y,event:"chat_deleted",groups:{organization:G.id},properties:{organization_id:G.id,thread_id:$.id}});return{item:qW(X)}}})});import{z as xo8}from"zod";function Ke1($){if(!$)return null;if("field"in $&&$.field[0]==="thread_id"&&$.operator==="eq")return String($.value);if("conditions"in $&&($.operator==="and"||$.operator==="or"))for(let Z of $.conditions){let G=Ke1(Z);if(G)return G}return null}var vo8,yo8,Xd0;var Ue1=O(()=>{OY();J1();ZD();vo8=nJ.extend({thread_id:xo8.string().optional().describe("ID of the thread to list messages for (required)")}),yo8=kU(ss1),Xd0=X0({name:"COLLECTION_THREAD_MESSAGES_LIST",description:"List messages in a thread with pagination. Requires thread_id. Returns messages in chronological order.",annotations:{title:"List Thread Messages",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:vo8,outputSchema:yo8,handler:async($,Z)=>{O0(Z),await Z.access.check();let G=$.thread_id??Ke1($.where);if(!G)throw Error("thread_id is required (provide as top-level param or in where clause)");let X=$.offset??0,Y=$.limit??100,Q=$.orderBy?.[0]?.direction??"asc",J=await Z.storage.threads.get(G);if(!J)return{items:[],totalCount:0,hasMore:!1};if(J.message_storage_version===2){let{messages:w,total:F}=await Z.storage.threads.messageParts().loadWindow(G,{limit:Y,offset:X});return{items:w.map((H)=>({id:H.id,thread_id:G,role:H.role,parts:H.parts,metadata:H.metadata??null,created_at:H.created_at,updated_at:H.created_at})),totalCount:F,hasMore:X+Y<F}}let{messages:W,total:K}=await Z.storage.threads.listMessages(G,{limit:Y,offset:X,sort:Q}),U=X+Y<K;return{items:W,totalCount:K,hasMore:U}}})});function we1($){return $!==null}function t40($,Z){if($===null)return!0;return $===Z}function r40($){return $.sandboxProviderKind==="agent-sandbox"&&$.harnessId==="decopilot"}function Fe1($){return $.harnessId==="decopilot"&&($.sandboxProviderKind==null||$.sandboxProviderKind==="agent-sandbox")}function ho8($){return{type:"data-run-status",id:"run-status",data:{stage:$}}}function Yd0($){if(!$||typeof $!=="object")return!1;return $.type==="data-run-status"}async function fU($,Z,G){if(!$)return;try{await $.publishRawChunk(Z,ho8(G))}catch{}}var go8,Ei,f35;var Di=O(()=>{go8=["waiting-runner","starting-run","gathering-context","preparing-tools","starting-assistant","analyzing-scope"],Ei=["gathering-context","preparing-tools","starting-assistant","analyzing-scope"],f35=new Set(go8)});function o40(){return crypto.randomUUID()}var Jd0=_((y35,Be1)=>{var{defineProperty:Qd0,getOwnPropertyDescriptor:co8,getOwnPropertyNames:uo8}=Object,do8=Object.prototype.hasOwnProperty,lo8=($,Z)=>{for(var G in Z)Qd0($,G,{get:Z[G],enumerable:!0})},mo8=($,Z,G,X)=>{if(Z&&typeof Z==="object"||typeof Z==="function"){for(let Y of uo8(Z))if(!do8.call($,Y)&&Y!==G)Qd0($,Y,{get:()=>Z[Y],enumerable:!(X=co8(Z,Y))||X.enumerable})}return $},io8=($)=>mo8(Qd0({},"__esModule",{value:!0}),$),He1={};lo8(He1,{SYMBOL_FOR_REQ_CONTEXT:()=>Ne1,getContext:()=>no8});Be1.exports=io8(He1);var Ne1=Symbol.for("@vercel/request-context");function no8(){return globalThis[Ne1]?.get?.()??{}}});var Li=_((g35,De1)=>{var{defineProperty:Wd0,getOwnPropertyDescriptor:po8,getOwnPropertyNames:to8}=Object,ro8=Object.prototype.hasOwnProperty,oo8=($,Z)=>{for(var G in Z)Wd0($,G,{get:Z[G],enumerable:!0})},ao8=($,Z,G,X)=>{if(Z&&typeof Z==="object"||typeof Z==="function"){for(let Y of to8(Z))if(!ro8.call($,Y)&&Y!==G)Wd0($,Y,{get:()=>Z[Y],enumerable:!(X=po8(Z,Y))||X.enumerable})}return $},so8=($)=>ao8(Wd0({},"__esModule",{value:!0}),$),Oe1={};oo8(Oe1,{VercelOidcTokenError:()=>Ee1});De1.exports=so8(Oe1);class Ee1 extends Error{constructor($,Z){super($);this.name="VercelOidcTokenError",this.cause=Z}toString(){if(this.cause)return`${this.name}: ${this.message}: ${this.cause}`;return`${this.name}: ${this.message}`}}});var Pe1=_((h35,je1)=>{var{create:eo8,defineProperty:a40,getOwnPropertyDescriptor:$a8,getOwnPropertyNames:Za8,getPrototypeOf:Ga8}=Object,Xa8=Object.prototype.hasOwnProperty,Ya8=($,Z)=>{for(var G in Z)a40($,G,{get:Z[G],enumerable:!0})},Le1=($,Z,G,X)=>{if(Z&&typeof Z==="object"||typeof Z==="function"){for(let Y of Za8(Z))if(!Xa8.call($,Y)&&Y!==G)a40($,Y,{get:()=>Z[Y],enumerable:!(X=$a8(Z,Y))||X.enumerable})}return $},Ud0=($,Z,G)=>(G=$!=null?eo8(Ga8($)):{},Le1(Z||!$||!$.__esModule?a40(G,"default",{value:$,enumerable:!0}):G,$)),Qa8=($)=>Le1(a40({},"__esModule",{value:!0}),$),ze1={};Ya8(ze1,{findRootDir:()=>Ka8,getUserDataDir:()=>Ua8});je1.exports=Qa8(ze1);var zi=Ud0(u0("path")),Ja8=Ud0(u0("fs")),Kd0=Ud0(u0("os")),Wa8=Li();function Ka8(){try{let $=process.cwd();while($!==zi.default.dirname($)){let Z=zi.default.join($,".vercel");if(Ja8.default.existsSync(Z))return $;$=zi.default.dirname($)}}catch($){throw new Wa8.VercelOidcTokenError("Token refresh only supported in node server environments")}return null}function Ua8(){if(process.env.XDG_DATA_HOME)return process.env.XDG_DATA_HOME;switch(Kd0.default.platform()){case"darwin":return zi.default.join(Kd0.default.homedir(),"Library/Application Support");case"linux":return zi.default.join(Kd0.default.homedir(),".local/share");case"win32":if(process.env.LOCALAPPDATA)return process.env.LOCALAPPDATA;return null;default:return null}}});var ke1=_((c35,Me1)=>{var{create:wa8,defineProperty:s40,getOwnPropertyDescriptor:Fa8,getOwnPropertyNames:Ha8,getPrototypeOf:Na8}=Object,Ba8=Object.prototype.hasOwnProperty,Oa8=($,Z)=>{for(var G in Z)s40($,G,{get:Z[G],enumerable:!0})},Ae1=($,Z,G,X)=>{if(Z&&typeof Z==="object"||typeof Z==="function"){for(let Y of Ha8(Z))if(!Ba8.call($,Y)&&Y!==G)s40($,Y,{get:()=>Z[Y],enumerable:!(X=Fa8(Z,Y))||X.enumerable})}return $},Te1=($,Z,G)=>(G=$!=null?wa8(Na8($)):{},Ae1(Z||!$||!$.__esModule?s40(G,"default",{value:$,enumerable:!0}):G,$)),Ea8=($)=>Ae1(s40({},"__esModule",{value:!0}),$),Ie1={};Oa8(Ie1,{isValidAccessToken:()=>ja8,readAuthConfig:()=>La8,writeAuthConfig:()=>za8});Me1.exports=Ea8(Ie1);var ji=Te1(u0("fs")),Re1=Te1(u0("path")),Da8=Pi();function qe1(){let $=(0,Da8.getVercelDataDir)();if(!$)throw Error(`Unable to find Vercel CLI data directory. Your platform: ${process.platform}. Supported: darwin, linux, win32.`);return Re1.join($,"auth.json")}function La8(){try{let $=qe1();if(!ji.existsSync($))return null;let Z=ji.readFileSync($,"utf8");if(!Z)return null;return JSON.parse(Z)}catch($){return null}}function za8($){let Z=qe1(),G=Re1.dirname(Z);if(!ji.existsSync(G))ji.mkdirSync(G,{mode:504,recursive:!0});ji.writeFileSync(Z,JSON.stringify($,null,2),{mode:384})}function ja8($,Z=0){if(!$.token)return!1;if(typeof $.expiresAt!=="number")return!0;let G=Math.floor(Date.now()/1000),X=Z/1000;return $.expiresAt>=G+X}});var _e1=_((u35,Ce1)=>{var{defineProperty:Hd0,getOwnPropertyDescriptor:Pa8,getOwnPropertyNames:Aa8}=Object,Ta8=Object.prototype.hasOwnProperty,Ia8=($,Z)=>{for(var G in Z)Hd0($,G,{get:Z[G],enumerable:!0})},Ra8=($,Z,G,X)=>{if(Z&&typeof Z==="object"||typeof Z==="function"){for(let Y of Aa8(Z))if(!Ta8.call($,Y)&&Y!==G)Hd0($,Y,{get:()=>Z[Y],enumerable:!(X=Pa8(Z,Y))||X.enumerable})}return $},qa8=($)=>Ra8(Hd0({},"__esModule",{value:!0}),$),Se1={};Ia8(Se1,{processTokenResponse:()=>Ca8,refreshTokenRequest:()=>Va8});Ce1.exports=qa8(Se1);var wd0=u0("os"),Ma8="https://vercel.com",ka8="cl_HYyOPBNtFMfHhaUn9L4QPfTZz6TP47bp",Ve1=`@vercel/oidc node-${process.version} ${(0,wd0.platform)()} (${(0,wd0.arch)()}) ${(0,wd0.hostname)()}`,Fd0=null;async function Sa8(){if(Fd0)return Fd0;let $=`${Ma8}/.well-known/openid-configuration`,Z=await fetch($,{headers:{"user-agent":Ve1}});if(!Z.ok)throw Error("Failed to discover OAuth endpoints");let G=await Z.json();if(!G||typeof G.token_endpoint!=="string")throw Error("Invalid OAuth discovery response");let X=G.token_endpoint;return Fd0=X,X}async function Va8($){let Z=await Sa8();return await fetch(Z,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded","user-agent":Ve1},body:new URLSearchParams({client_id:ka8,grant_type:"refresh_token",...$})})}async function Ca8($){let Z=await $.json();if(!$.ok){let G=typeof Z==="object"&&Z&&"error"in Z?String(Z.error):"Token refresh failed";return[Error(G)]}if(typeof Z!=="object"||Z===null)return[Error("Invalid token response")];if(typeof Z.access_token!=="string")return[Error("Missing access_token in response")];if(Z.token_type!=="Bearer")return[Error("Invalid token_type in response")];if(typeof Z.expires_in!=="number")return[Error("Missing expires_in in response")];return[null,Z]}});var Bd0=_((d35,ve1)=>{var{defineProperty:Nd0,getOwnPropertyDescriptor:_a8,getOwnPropertyNames:ba8}=Object,fa8=Object.prototype.hasOwnProperty,xa8=($,Z)=>{for(var G in Z)Nd0($,G,{get:Z[G],enumerable:!0})},va8=($,Z,G,X)=>{if(Z&&typeof Z==="object"||typeof Z==="function"){for(let Y of ba8(Z))if(!fa8.call($,Y)&&Y!==G)Nd0($,Y,{get:()=>Z[Y],enumerable:!(X=_a8(Z,Y))||X.enumerable})}return $},ya8=($)=>va8(Nd0({},"__esModule",{value:!0}),$),be1={};xa8(be1,{AccessTokenMissingError:()=>fe1,RefreshAccessTokenFailedError:()=>xe1});ve1.exports=ya8(be1);class fe1 extends Error{constructor(){super("No authentication found. Please log in with the Vercel CLI (vercel login).");this.name="AccessTokenMissingError"}}class xe1 extends Error{constructor($){super("Failed to refresh authentication token.",{cause:$});this.name="RefreshAccessTokenFailedError"}}});var Pi=_((l35,ue1)=>{var{create:ga8,defineProperty:e40,getOwnPropertyDescriptor:ha8,getOwnPropertyNames:ca8,getPrototypeOf:ua8}=Object,da8=Object.prototype.hasOwnProperty,la8=($,Z)=>{for(var G in Z)e40($,G,{get:Z[G],enumerable:!0})},ge1=($,Z,G,X)=>{if(Z&&typeof Z==="object"||typeof Z==="function"){for(let Y of ca8(Z))if(!da8.call($,Y)&&Y!==G)e40($,Y,{get:()=>Z[Y],enumerable:!(X=ha8(Z,Y))||X.enumerable})}return $},he1=($,Z,G)=>(G=$!=null?ga8(ua8($)):{},ge1(Z||!$||!$.__esModule?e40(G,"default",{value:$,enumerable:!0}):G,$)),ma8=($)=>ge1(e40({},"__esModule",{value:!0}),$),ce1={};la8(ce1,{assertVercelOidcTokenResponse:()=>Od0,findProjectInfo:()=>ta8,getTokenPayload:()=>aa8,getVercelDataDir:()=>ia8,getVercelOidcToken:()=>pa8,getVercelToken:()=>na8,isExpired:()=>sa8,loadToken:()=>oa8,saveToken:()=>ra8});ue1.exports=ma8(ce1);var Ai=he1(u0("path")),GD=he1(u0("fs")),xx=Li(),$50=Pe1(),bx=ke1(),ye1=_e1(),fx=Bd0();function ia8(){let Z=(0,$50.getUserDataDir)();if(!Z)return null;return Ai.join(Z,"com.vercel.cli")}async function na8($){let Z=(0,bx.readAuthConfig)();if(!Z?.token)throw new fx.AccessTokenMissingError;if((0,bx.isValidAccessToken)(Z,$?.expirationBufferMs))return Z.token;if(!Z.refreshToken)throw(0,bx.writeAuthConfig)({}),new fx.RefreshAccessTokenFailedError("No refresh token available");try{let G=await(0,ye1.refreshTokenRequest)({refresh_token:Z.refreshToken}),[X,Y]=await(0,ye1.processTokenResponse)(G);if(X||!Y)throw(0,bx.writeAuthConfig)({}),new fx.RefreshAccessTokenFailedError(X);let Q={token:Y.access_token,expiresAt:Math.floor(Date.now()/1000)+Y.expires_in};if(Y.refresh_token)Q.refreshToken=Y.refresh_token;return(0,bx.writeAuthConfig)(Q),Q.token}catch(G){if((0,bx.writeAuthConfig)({}),G instanceof fx.AccessTokenMissingError||G instanceof fx.RefreshAccessTokenFailedError)throw G;throw new fx.RefreshAccessTokenFailedError(G)}}async function pa8($,Z,G){let X=`https://api.vercel.com/v1/projects/${Z}/token?source=vercel-oidc-refresh${G?`&teamId=${G}`:""}`,Y=await fetch(X,{method:"POST",headers:{Authorization:`Bearer ${$}`}});if(!Y.ok)throw new xx.VercelOidcTokenError(`Failed to refresh OIDC token: ${Y.statusText}`);let Q=await Y.json();return Od0(Q),Q}function Od0($){if(!$||typeof $!=="object")throw TypeError("Vercel OIDC token is malformed. Expected an object. Please run `vc env pull` and try again");if(!("token"in $)||typeof $.token!=="string")throw TypeError("Vercel OIDC token is malformed. Expected a string-valued token property. Please run `vc env pull` and try again")}function ta8(){let $=(0,$50.findRootDir)();if(!$)throw new xx.VercelOidcTokenError("Unable to find project root directory. Have you linked your project with `vc link?`");let Z=Ai.join($,".vercel","project.json");if(!GD.existsSync(Z))throw new xx.VercelOidcTokenError("project.json not found, have you linked your project with `vc link?`");let G=JSON.parse(GD.readFileSync(Z,"utf8"));if(typeof G.projectId!=="string"&&typeof G.orgId!=="string")throw TypeError("Expected a string-valued projectId property. Try running `vc link` to re-link your project.");return{projectId:G.projectId,teamId:G.orgId}}function ra8($,Z){let G=(0,$50.getUserDataDir)();if(!G)throw new xx.VercelOidcTokenError("Unable to find user data directory. Please reach out to Vercel support.");let X=Ai.join(G,"com.vercel.token",`${Z}.json`),Y=JSON.stringify($);GD.mkdirSync(Ai.dirname(X),{mode:504,recursive:!0}),GD.writeFileSync(X,Y),GD.chmodSync(X,432);return}function oa8($){let Z=(0,$50.getUserDataDir)();if(!Z)throw new xx.VercelOidcTokenError("Unable to find user data directory. Please reach out to Vercel support.");let G=Ai.join(Z,"com.vercel.token",`${$}.json`);if(!GD.existsSync(G))return null;let X=JSON.parse(GD.readFileSync(G,"utf8"));return Od0(X),X}function aa8($){let Z=$.split(".");if(Z.length!==3)throw new xx.VercelOidcTokenError("Invalid token. Please run `vc env pull` and try again");let G=Z[1].replace(/-/g,"+").replace(/_/g,"/"),X=G.padEnd(G.length+(4-G.length%4)%4,"=");return JSON.parse(Buffer.from(X,"base64").toString("utf8"))}function sa8($,Z=0){return $.exp*1000<Date.now()+Z}});var ie1=_((m35,me1)=>{var{defineProperty:Ed0,getOwnPropertyDescriptor:ea8,getOwnPropertyNames:$s8}=Object,Zs8=Object.prototype.hasOwnProperty,Gs8=($,Z)=>{for(var G in Z)Ed0($,G,{get:Z[G],enumerable:!0})},Xs8=($,Z,G,X)=>{if(Z&&typeof Z==="object"||typeof Z==="function"){for(let Y of $s8(Z))if(!Zs8.call($,Y)&&Y!==G)Ed0($,Y,{get:()=>Z[Y],enumerable:!(X=ea8(Z,Y))||X.enumerable})}return $},Ys8=($)=>Xs8(Ed0({},"__esModule",{value:!0}),$),le1={};Gs8(le1,{refreshToken:()=>Qs8});me1.exports=Ys8(le1);var de1=Li(),sH=Pi();async function Qs8($){let Z=$?.project,G=$?.team;if(!Z&&!G){let Y=(0,sH.findProjectInfo)();Z=Y.projectId,G=Y.teamId}else if(!Z||!G){let Y=(0,sH.findProjectInfo)();Z=Z??Y.projectId,G=G??Y.teamId}if(!Z)throw new de1.VercelOidcTokenError("Failed to refresh OIDC token: No project specified. Try re-linking your project with `vc link`");let X=(0,sH.loadToken)(Z);if(!X||(0,sH.isExpired)((0,sH.getTokenPayload)(X.token),$?.expirationBufferMs)){let Y=await(0,sH.getVercelToken)({expirationBufferMs:$?.expirationBufferMs});if(X=await(0,sH.getVercelOidcToken)(Y,Z,G),!X)throw new de1.VercelOidcTokenError("Failed to refresh OIDC token");(0,sH.saveToken)(X,Z)}process.env.VERCEL_OIDC_TOKEN=X.token;return}});var te1=_((i35,pe1)=>{var{defineProperty:Ld0,getOwnPropertyDescriptor:Js8,getOwnPropertyNames:Ws8}=Object,Ks8=Object.prototype.hasOwnProperty,Us8=($,Z)=>{for(var G in Z)Ld0($,G,{get:Z[G],enumerable:!0})},ws8=($,Z,G,X)=>{if(Z&&typeof Z==="object"||typeof Z==="function"){for(let Y of Ws8(Z))if(!Ks8.call($,Y)&&Y!==G)Ld0($,Y,{get:()=>Z[Y],enumerable:!(X=Js8(Z,Y))||X.enumerable})}return $},Fs8=($)=>ws8(Ld0({},"__esModule",{value:!0}),$),ne1={};Us8(ne1,{getVercelOidcToken:()=>Bs8,getVercelOidcTokenSync:()=>Dd0});pe1.exports=Fs8(ne1);var Hs8=Jd0(),Ns8=Li();async function Bs8($){let Z="",G;try{Z=Dd0()}catch(X){G=X}try{let[{getTokenPayload:X,isExpired:Y},{refreshToken:Q}]=await Promise.all([await Promise.resolve().then(() => k(Pi())),await Promise.resolve().then(() => k(ie1()))]);if(!Z||Y(X(Z),$?.expirationBufferMs))await Q($),Z=Dd0()}catch(X){let Y=G instanceof Error?G.message:"";if(X instanceof Error)Y=`${Y}
1029
1029
  ${X.message}`;if(Y)throw new Ns8.VercelOidcTokenError(Y);throw X}return Z}function Dd0(){let $=(0,Hs8.getContext)().headers?.["x-vercel-oidc-token"]??process.env.VERCEL_OIDC_TOKEN;if(!$)throw Error("The 'x-vercel-oidc-token' header is missing from the request. Do you have the OIDC option enabled in the Vercel project settings?");return $}});var jd0=_((n35,se1)=>{var{defineProperty:zd0,getOwnPropertyDescriptor:Os8,getOwnPropertyNames:Es8}=Object,Ds8=Object.prototype.hasOwnProperty,Ls8=($,Z)=>{for(var G in Z)zd0($,G,{get:Z[G],enumerable:!0})},zs8=($,Z,G,X)=>{if(Z&&typeof Z==="object"||typeof Z==="function"){for(let Y of Es8(Z))if(!Ds8.call($,Y)&&Y!==G)zd0($,Y,{get:()=>Z[Y],enumerable:!(X=Os8(Z,Y))||X.enumerable})}return $},js8=($)=>zs8(zd0({},"__esModule",{value:!0}),$),ae1={};Ls8(ae1,{AccessTokenMissingError:()=>oe1.AccessTokenMissingError,RefreshAccessTokenFailedError:()=>oe1.RefreshAccessTokenFailedError,getContext:()=>Ps8.getContext,getVercelOidcToken:()=>re1.getVercelOidcToken,getVercelOidcTokenSync:()=>re1.getVercelOidcTokenSync,getVercelToken:()=>As8.getVercelToken});se1.exports=js8(ae1);var re1=te1(),Ps8=Jd0(),oe1=Bd0(),As8=Pi()});import{z as xU}from"zod/v4";import{z as w0$}from"zod/v4";import{z as Ad0}from"zod/v4";import{z as B9}from"zod/v4";import{z as s9}from"zod/v4";import{z as N9}from"zod/v4";import{z as Z50}from"zod/v4";import{z as K5}from"zod/v4";import{z as g4}from"zod/v4";import{z as d8}from"zod/v4";import{z as j5}from"zod/v4";import{z as a6}from"zod";import{z as p6}from"zod";async function M0$({response:$,statusCode:Z,defaultMessage:G="Gateway request failed",cause:X,authMethod:Y}){var Q;let J=await i5({value:$,schema:hs8});if(!J.success){let F=typeof $==="object"&&$!==null&&"generationId"in $?$.generationId:void 0;return new gs8({message:`Invalid error response format: ${G}`,statusCode:Z,response:$,validationError:J.error,cause:X,generationId:F})}let W=J.value,K=W.error.type,U=W.error.message,w=(Q=W.generationId)!=null?Q:void 0;switch(K){case"authentication_error":return G50.createContextualError({apiKeyProvided:Y==="api-key",oidcTokenProvided:Y==="oidc",statusCode:Z,cause:X,generationId:w});case"invalid_request_error":return new qs8({message:U,statusCode:Z,cause:X,generationId:w});case"rate_limit_exceeded":return new ks8({message:U,statusCode:Z,cause:X,generationId:w});case"model_not_found":{let F=await i5({value:W.error.param,schema:Vs8});return new Cs8({message:U,statusCode:Z,modelId:F.success?F.value.modelId:void 0,cause:X,generationId:w})}case"internal_server_error":return new D0$({message:U,statusCode:Z,cause:X,generationId:w});case"failed_dependency":return new fs8({message:U,statusCode:Z,cause:X,generationId:w});case"forbidden":return new vs8({message:U,statusCode:Z,cause:X,generationId:w});default:return new D0$({message:U,statusCode:Z,cause:X,generationId:w})}}function cs8($){if($.data!==void 0)return $.data;if($.responseBody!=null)try{return JSON.parse($.responseBody)}catch(Z){return $.responseBody}return{}}function _0$($){if(!($ instanceof Error))return!1;let Z=$.code;if(typeof Z==="string")return["UND_ERR_HEADERS_TIMEOUT","UND_ERR_BODY_TIMEOUT","UND_ERR_CONNECT_TIMEOUT"].includes(Z);return!1}async function OX($,Z){var G;if(O9.isInstance($))return $;if(_0$($))return C0$.createTimeoutError({originalMessage:$ instanceof Error?$.message:"Unknown error",cause:$});if(X8.isInstance($)){if($.cause&&_0$($.cause))return C0$.createTimeoutError({originalMessage:$.message,cause:$});return await M0$({response:cs8($),statusCode:(G=$.statusCode)!=null?G:500,defaultMessage:"Gateway request failed",cause:$,authMethod:Z})}return await M0$({response:{},statusCode:500,defaultMessage:$ instanceof Error?`Gateway request failed: ${$.message}`:"Unknown Gateway error",cause:$,authMethod:Z})}async function kW($){let Z=await i5({value:$[m0$],schema:ds8});return Z.success?Z.value:void 0}function f0$($){if($.type==="file"&&$.data instanceof Uint8Array)return{...$,data:QX($.data)};return $}function Je8($){if($.type==="file"&&$.data instanceof Uint8Array)return{...$,data:QX($.data)};return $}async function Te8(){var $;return($=i0$.getContext().headers)==null?void 0:$["x-vercel-id"]}function Td0($={}){var Z,G;let X=null,Y=null,Q=(Z=$.metadataCacheRefreshMillis)!=null?Z:300000,J=0,W=(G=qH($.baseURL))!=null?G:"https://ai-gateway.vercel.sh/v3/ai",K=async()=>{try{let z=await qe8($);return n6({Authorization:`Bearer ${z.token}`,"ai-gateway-protocol-version":Re8,[m0$]:z.authMethod,...$.headers},`ai-sdk/gateway/${Ie8}`)}catch(z){throw G50.createContextualError({apiKeyProvided:!1,oidcTokenProvided:!1,statusCode:401,cause:z})}},U=()=>{let z=UW({settingValue:void 0,environmentVariableName:"VERCEL_DEPLOYMENT_ID"}),j=UW({settingValue:void 0,environmentVariableName:"VERCEL_ENV"}),P=UW({settingValue:void 0,environmentVariableName:"VERCEL_REGION"}),A=UW({settingValue:void 0,environmentVariableName:"VERCEL_PROJECT_ID"});return async()=>{let M=await Te8();return{...z&&{"ai-o11y-deployment-id":z},...j&&{"ai-o11y-environment":j},...P&&{"ai-o11y-region":P},...M&&{"ai-o11y-request-id":M},...A&&{"ai-o11y-project-id":A}}}},w=(z)=>{return new os8(z,{provider:"gateway",baseURL:W,headers:K,fetch:$.fetch,o11yHeaders:U()})},F=async()=>{var z,j,P;let A=(P=(j=(z=$._internal)==null?void 0:z.currentDate)==null?void 0:j.call(z).getTime())!=null?P:Date.now();if(!X||A-J>Q)J=A,X=new b0$({baseURL:W,headers:K,fetch:$.fetch}).getAvailableModels().then((M)=>{return Y=M,M}).catch(async(M)=>{throw await OX(M,await kW(await K()))});return Y?Promise.resolve(Y):X},H=async()=>{return new b0$({baseURL:W,headers:K,fetch:$.fetch}).getCredits().catch(async(z)=>{throw await OX(z,await kW(await K()))})},N=async(z)=>{return new ns8({baseURL:W,headers:K,fetch:$.fetch}).getSpendReport(z).catch(async(j)=>{throw await OX(j,await kW(await K()))})},B=async(z)=>{return new ts8({baseURL:W,headers:K,fetch:$.fetch}).getGenerationInfo(z).catch(async(j)=>{throw await OX(j,await kW(await K()))})},E=function(z){if(new.target)throw Error("The Gateway Provider model function cannot be called with the new keyword.");return w(z)};E.specificationVersion="v3",E.getAvailableModels=F,E.getCredits=H,E.getSpendReport=N,E.getGenerationInfo=B,E.imageModel=(z)=>{return new $e8(z,{provider:"gateway",baseURL:W,headers:K,fetch:$.fetch,o11yHeaders:U()})},E.languageModel=w;let D=(z)=>{return new as8(z,{provider:"gateway",baseURL:W,headers:K,fetch:$.fetch,o11yHeaders:U()})};E.embeddingModel=D,E.textEmbeddingModel=D,E.videoModel=(z)=>{return new Qe8(z,{provider:"gateway",baseURL:W,headers:K,fetch:$.fetch,o11yHeaders:U()})};let L=(z)=>{return new Fe8(z,{provider:"gateway",baseURL:W,headers:K,fetch:$.fetch,o11yHeaders:U()})};return E.rerankingModel=L,E.reranking=L,E.chat=E.languageModel,E.embedding=E.embeddingModel,E.image=E.imageModel,E.video=E.videoModel,E.tools=Ae8,E}async function qe8($){let Z=UW({settingValue:$.apiKey,environmentVariableName:"AI_GATEWAY_API_KEY"});if(Z)return{token:Z,authMethod:"api-key"};return{token:await n0$.getVercelOidcToken(),authMethod:"oidc"}}var i0$,n0$,Ts8="vercel.ai.gateway.error",Pd0,ee1,$0$,O9,x0$="GatewayAuthenticationError",Is8,Z0$,G0$,X0$,G50,v0$="GatewayInvalidRequestError",Rs8,Y0$,Q0$,J0$,qs8,y0$="GatewayRateLimitError",Ms8,W0$,K0$,U0$,ks8,g0$="GatewayModelNotFoundError",Ss8,F0$,Vs8,H0$,N0$,Cs8,h0$="GatewayInternalServerError",_s8,B0$,O0$,E0$,D0$,c0$="GatewayFailedDependencyError",bs8,L0$,z0$,j0$,fs8,u0$="GatewayForbiddenError",xs8,P0$,A0$,T0$,vs8,d0$="GatewayResponseError",ys8,I0$,R0$,q0$,gs8,hs8,l0$="GatewayTimeoutError",us8,k0$,S0$,V0$,C0$,m0$="ai-gateway-auth-method",ds8,ls8,b0$=class{constructor($){this.config=$}async getAvailableModels(){try{let{value:$}=await WY({url:`${this.config.baseURL}/config`,headers:await b$(this.config.headers()),successfulResponseHandler:e$(ms8),failedResponseHandler:L5({errorSchema:B9.any(),errorToMessage:(Z)=>Z}),fetch:this.config.fetch});return $}catch($){throw await OX($)}}async getCredits(){try{let $=new URL(this.config.baseURL),{value:Z}=await WY({url:`${$.origin}/v1/credits`,headers:await b$(this.config.headers()),successfulResponseHandler:e$(is8),failedResponseHandler:L5({errorSchema:B9.any(),errorToMessage:(G)=>G}),fetch:this.config.fetch});return Z}catch($){throw await OX($)}}},ms8,is8,ns8=class{constructor($){this.config=$}async getSpendReport($){try{let Z=new URL(this.config.baseURL),G=new URLSearchParams;if(G.set("start_date",$.startDate),G.set("end_date",$.endDate),$.groupBy)G.set("group_by",$.groupBy);if($.datePart)G.set("date_part",$.datePart);if($.userId)G.set("user_id",$.userId);if($.model)G.set("model",$.model);if($.provider)G.set("provider",$.provider);if($.credentialType)G.set("credential_type",$.credentialType);if($.tags&&$.tags.length>0)G.set("tags",$.tags.join(","));let{value:X}=await WY({url:`${Z.origin}/v1/report?${G.toString()}`,headers:await b$(this.config.headers()),successfulResponseHandler:e$(ps8),failedResponseHandler:L5({errorSchema:s9.any(),errorToMessage:(Y)=>Y}),fetch:this.config.fetch});return X}catch(Z){throw await OX(Z)}}},ps8,ts8=class{constructor($){this.config=$}async getGenerationInfo($){try{let Z=new URL(this.config.baseURL),{value:G}=await WY({url:`${Z.origin}/v1/generation?id=${encodeURIComponent($.id)}`,headers:await b$(this.config.headers()),successfulResponseHandler:e$(rs8),failedResponseHandler:L5({errorSchema:N9.any(),errorToMessage:(X)=>X}),fetch:this.config.fetch});return G}catch(Z){throw await OX(Z)}}},rs8,os8=class{constructor($,Z){this.modelId=$,this.config=Z,this.specificationVersion="v3",this.supportedUrls={"*/*":[/.*/]}}get provider(){return this.config.provider}async getArgs($){let{abortSignal:Z,...G}=$;return{args:this.maybeEncodeFileParts(G),warnings:[]}}async doGenerate($){let{args:Z,warnings:G}=await this.getArgs($),{abortSignal:X}=$,Y=await b$(this.config.headers());try{let{responseHeaders:Q,value:J,rawValue:W}=await w8({url:this.getUrl(),headers:n$(Y,$.headers,this.getModelConfigHeaders(this.modelId,!1),await b$(this.config.o11yHeaders)),body:Z,successfulResponseHandler:e$(Z50.any()),failedResponseHandler:L5({errorSchema:Z50.any(),errorToMessage:(K)=>K}),...X&&{abortSignal:X},fetch:this.config.fetch});return{...J,request:{body:Z},response:{headers:Q,body:W},warnings:G}}catch(Q){throw await OX(Q,await kW(Y))}}async doStream($){let{args:Z,warnings:G}=await this.getArgs($),{abortSignal:X}=$,Y=await b$(this.config.headers());try{let{value:Q,responseHeaders:J}=await w8({url:this.getUrl(),headers:n$(Y,$.headers,this.getModelConfigHeaders(this.modelId,!0),await b$(this.config.o11yHeaders)),body:Z,successfulResponseHandler:_G(Z50.any()),failedResponseHandler:L5({errorSchema:Z50.any(),errorToMessage:(W)=>W}),...X&&{abortSignal:X},fetch:this.config.fetch});return{stream:Q.pipeThrough(new TransformStream({start(W){if(G.length>0)W.enqueue({type:"stream-start",warnings:G})},transform(W,K){if(W.success){let U=W.value;if(U.type==="raw"&&!$.includeRawChunks)return;if(U.type==="response-metadata"&&U.timestamp&&typeof U.timestamp==="string")U.timestamp=new Date(U.timestamp);K.enqueue(U)}else K.error(W.error)}})),request:{body:Z},response:{headers:J}}}catch(Q){throw await OX(Q,await kW(Y))}}isFilePart($){return $&&typeof $==="object"&&"type"in $&&$.type==="file"}maybeEncodeFileParts($){for(let Z of $.prompt)for(let G of Z.content)if(this.isFilePart(G)){let X=G;if(X.data instanceof Uint8Array){let Y=Uint8Array.from(X.data),Q=Buffer.from(Y).toString("base64");X.data=new URL(`data:${X.mediaType||"application/octet-stream"};base64,${Q}`)}}return $}getUrl(){return`${this.config.baseURL}/language-model`}getModelConfigHeaders($,Z){return{"ai-language-model-specification-version":"3","ai-language-model-id":$,"ai-language-model-streaming":String(Z)}}},as8=class{constructor($,Z){this.modelId=$,this.config=Z,this.specificationVersion="v3",this.maxEmbeddingsPerCall=2048,this.supportsParallelCalls=!0}get provider(){return this.config.provider}async doEmbed({values:$,headers:Z,abortSignal:G,providerOptions:X}){var Y,Q;let J=await b$(this.config.headers());try{let{responseHeaders:W,value:K,rawValue:U}=await w8({url:this.getUrl(),headers:n$(J,Z!=null?Z:{},this.getModelConfigHeaders(),await b$(this.config.o11yHeaders)),body:{values:$,...X?{providerOptions:X}:{}},successfulResponseHandler:e$(es8),failedResponseHandler:L5({errorSchema:K5.any(),errorToMessage:(w)=>w}),...G&&{abortSignal:G},fetch:this.config.fetch});return{embeddings:K.embeddings,usage:(Y=K.usage)!=null?Y:void 0,providerMetadata:K.providerMetadata,response:{headers:W,body:U},warnings:(Q=K.warnings)!=null?Q:[]}}catch(W){throw await OX(W,await kW(J))}}getUrl(){return`${this.config.baseURL}/embedding-model`}getModelConfigHeaders(){return{"ai-embedding-model-specification-version":"3","ai-model-id":this.modelId}}},ss8,es8,$e8=class{constructor($,Z){this.modelId=$,this.config=Z,this.specificationVersion="v3",this.maxImagesPerCall=Number.MAX_SAFE_INTEGER}get provider(){return this.config.provider}async doGenerate({prompt:$,n:Z,size:G,aspectRatio:X,seed:Y,files:Q,mask:J,providerOptions:W,headers:K,abortSignal:U}){var w,F,H,N;let B=await b$(this.config.headers());try{let{responseHeaders:E,value:D,rawValue:L}=await w8({url:this.getUrl(),headers:n$(B,K!=null?K:{},this.getModelConfigHeaders(),await b$(this.config.o11yHeaders)),body:{prompt:$,n:Z,...G&&{size:G},...X&&{aspectRatio:X},...Y&&{seed:Y},...W&&{providerOptions:W},...Q&&{files:Q.map((z)=>f0$(z))},...J&&{mask:f0$(J)}},successfulResponseHandler:e$(Ye8),failedResponseHandler:L5({errorSchema:g4.any(),errorToMessage:(z)=>z}),...U&&{abortSignal:U},fetch:this.config.fetch});return{images:D.images,warnings:(w=D.warnings)!=null?w:[],providerMetadata:D.providerMetadata,response:{timestamp:new Date,modelId:this.modelId,headers:E},...D.usage!=null&&{usage:{inputTokens:(F=D.usage.inputTokens)!=null?F:void 0,outputTokens:(H=D.usage.outputTokens)!=null?H:void 0,totalTokens:(N=D.usage.totalTokens)!=null?N:void 0}}}}catch(E){throw await OX(E,await kW(B))}}getUrl(){return`${this.config.baseURL}/image-model`}getModelConfigHeaders(){return{"ai-image-model-specification-version":"3","ai-model-id":this.modelId}}},Ze8,Ge8,Xe8,Ye8,Qe8=class{constructor($,Z){this.modelId=$,this.config=Z,this.specificationVersion="v3",this.maxVideosPerCall=Number.MAX_SAFE_INTEGER}get provider(){return this.config.provider}async doGenerate({prompt:$,n:Z,aspectRatio:G,resolution:X,duration:Y,fps:Q,seed:J,image:W,providerOptions:K,headers:U,abortSignal:w}){var F;let H=await b$(this.config.headers());try{let{responseHeaders:N,value:B}=await w8({url:this.getUrl(),headers:n$(H,U!=null?U:{},this.getModelConfigHeaders(),await b$(this.config.o11yHeaders),{accept:"text/event-stream"}),body:{prompt:$,n:Z,...G&&{aspectRatio:G},...X&&{resolution:X},...Y&&{duration:Y},...Q&&{fps:Q},...J&&{seed:J},...K&&{providerOptions:K},...W&&{image:Je8(W)}},successfulResponseHandler:async({response:E,url:D,requestBodyValues:L})=>{if(E.body==null)throw new X8({message:"SSE response body is empty",url:D,requestBodyValues:L,statusCode:E.status});let j=LU({stream:E.body,schema:we8}).getReader(),{done:P,value:A}=await j.read();if(j.releaseLock(),P||!A)throw new X8({message:"SSE stream ended without a data event",url:D,requestBodyValues:L,statusCode:E.status});if(!A.success)throw new X8({message:"Failed to parse video SSE event",cause:A.error,url:D,requestBodyValues:L,statusCode:E.status});let M=A.value;if(M.type==="error")throw new X8({message:M.message,statusCode:M.statusCode,url:D,requestBodyValues:L,responseHeaders:Object.fromEntries([...E.headers]),responseBody:JSON.stringify(M),data:{error:{message:M.message,type:M.errorType,param:M.param}}});return{value:{videos:M.videos,warnings:M.warnings,providerMetadata:M.providerMetadata},responseHeaders:Object.fromEntries([...E.headers])}},failedResponseHandler:L5({errorSchema:d8.any(),errorToMessage:(E)=>E}),...w&&{abortSignal:w},fetch:this.config.fetch});return{videos:B.videos,warnings:(F=B.warnings)!=null?F:[],providerMetadata:B.providerMetadata,response:{timestamp:new Date,modelId:this.modelId,headers:N}}}catch(N){throw await OX(N,await kW(H))}}getUrl(){return`${this.config.baseURL}/video-model`}getModelConfigHeaders(){return{"ai-video-model-specification-version":"3","ai-model-id":this.modelId}}},We8,Ke8,Ue8,we8,Fe8=class{constructor($,Z){this.modelId=$,this.config=Z,this.specificationVersion="v3"}get provider(){return this.config.provider}async doRerank({documents:$,query:Z,topN:G,headers:X,abortSignal:Y,providerOptions:Q}){var J;let W=await b$(this.config.headers());try{let{responseHeaders:K,value:U,rawValue:w}=await w8({url:this.getUrl(),headers:n$(W,X!=null?X:{},this.getModelConfigHeaders(),await b$(this.config.o11yHeaders)),body:{documents:$,query:Z,...G!=null?{topN:G}:{},...Q?{providerOptions:Q}:{}},successfulResponseHandler:e$(Ne8),failedResponseHandler:L5({errorSchema:j5.any(),errorToMessage:(F)=>F}),...Y&&{abortSignal:Y},fetch:this.config.fetch});return{ranking:U.ranking,providerMetadata:U.providerMetadata,response:{headers:K,body:w},warnings:(J=U.warnings)!=null?J:[]}}catch(K){throw await OX(K,await kW(W))}}getUrl(){return`${this.config.baseURL}/reranking-model`}getModelConfigHeaders(){return{"ai-reranking-model-specification-version":"3","ai-model-id":this.modelId}}},He8,Ne8,Be8,Oe8,Ee8,De8=($={})=>Ee8($),Le8,ze8,je8,Pe8=($={})=>je8($),Ae8,Ie8="3.0.133",Re8="0.0.1",X50;var Ti=O(()=>{$1();m1();$1();$1();$1();$1();$1();$1();$1();$1();$1();m1();$1();$1();$1();$1();i0$=k(jd0(),1),n0$=k(jd0(),1),Pd0=Symbol.for(Ts8),O9=class $ extends($0$=Error,ee1=Pd0,$0$){constructor({message:Z,statusCode:G=500,cause:X,generationId:Y,isRetryable:Q=G!=null&&(G===408||G===409||G===429||G>=500)}){super(Y?`${Z} [${Y}]`:Z);this[ee1]=!0,this.statusCode=G,this.cause=X,this.generationId=Y,this.isRetryable=Q}static isInstance(Z){return $.hasMarker(Z)}static hasMarker(Z){return typeof Z==="object"&&Z!==null&&Pd0 in Z&&Z[Pd0]===!0}},Is8=`vercel.ai.gateway.error.${x0$}`,Z0$=Symbol.for(Is8),G50=class $ extends(X0$=O9,G0$=Z0$,X0$){constructor({message:Z="Authentication failed",statusCode:G=401,cause:X,generationId:Y}={}){super({message:Z,statusCode:G,cause:X,generationId:Y});this[G0$]=!0,this.name=x0$,this.type="authentication_error"}static isInstance(Z){return O9.hasMarker(Z)&&Z0$ in Z}static createContextualError({apiKeyProvided:Z,oidcTokenProvided:G,message:X="Authentication failed",statusCode:Y=401,cause:Q,generationId:J}){let W;if(Z)W=`AI Gateway authentication failed: Invalid API key.
1030
1030
 
1031
1031
  Create a new API key: https://vercel.com/d?to=%2F%5Bteam%5D%2F%7E%2Fai%2Fapi-keys