decocms 4.64.1 → 4.65.0

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 (251) hide show
  1. package/dist/client/assets/{AlertCircle-dr6ILuKf.js → AlertCircle-BgDL5EhB.js} +1 -1
  2. package/dist/client/assets/{AreaChart-CaX5c9y0.js → AreaChart-X1qU13E8.js} +1 -1
  3. package/dist/client/assets/{ArrowUp-8So0Bq3Z.js → ArrowUp-DWr3F57S.js} +1 -1
  4. package/dist/client/assets/{ArrowUpRight-ZWne81mJ.js → ArrowUpRight-BS2OY4HI.js} +1 -1
  5. package/dist/client/assets/{Check-C20qcvbJ.js → Check-CaHIu_54.js} +1 -1
  6. package/dist/client/assets/{CheckCircle-CuOPYcQA.js → CheckCircle-BjhPCunZ.js} +1 -1
  7. package/dist/client/assets/{ChevronDown-BnV5AXIG.js → ChevronDown-wpJ7eSNW.js} +1 -1
  8. package/dist/client/assets/{ChevronRight-Ci_JPJWU.js → ChevronRight-T17vENdx.js} +1 -1
  9. package/dist/client/assets/{ChevronUp-Da2eeqcc.js → ChevronUp-tqXddtDI.js} +1 -1
  10. package/dist/client/assets/{Circle-DL23Wx_b.js → Circle-BAA3CwTd.js} +1 -1
  11. package/dist/client/assets/{Copy01-C24DhTWP.js → Copy01-C9lon82Q.js} +1 -1
  12. package/dist/client/assets/{DotsVertical-DFuruUkv.js → DotsVertical-DB_iGqrn.js} +1 -1
  13. package/dist/client/assets/{Eye-VnEjOTzI.js → Eye-Ckz7kGzj.js} +1 -1
  14. package/dist/client/assets/{FilterLines--THtbRwf.js → FilterLines-X0jum0_z.js} +1 -1
  15. package/dist/client/assets/Flag01-kWWxH4mT.js +1 -0
  16. package/dist/client/assets/{Globe01-BGV8Z3CQ.js → Globe01-DMJD09Ge.js} +1 -1
  17. package/dist/client/assets/{Globe04-DDRIYErK.js → Globe04-Bt452DpH.js} +1 -1
  18. package/dist/client/assets/{HardDrive-CpgdgtFw.js → HardDrive-uQr5LAUZ.js} +1 -1
  19. package/dist/client/assets/{Key01-SAoA6jAR.js → Key01-CDUJ-GUN.js} +1 -1
  20. package/dist/client/assets/{LayoutLeft-_kD5nnHP.js → LayoutLeft-Bn_iVkhC.js} +1 -1
  21. package/dist/client/assets/{LinkExternal01-t-RWmRo-.js → LinkExternal01-BHrSTqHo.js} +1 -1
  22. package/dist/client/assets/{List-axGlciVK.js → List-B-eIsgzg.js} +1 -1
  23. package/dist/client/assets/{Monitor01-DaPwaUZe.js → Monitor01-BJyX6BiR.js} +1 -1
  24. package/dist/client/assets/{Package-_DrjUOHQ.js → Package-BLP83WwV.js} +1 -1
  25. package/dist/client/assets/{Palette-8ffm1RG8.js → Palette-DeKgHlWo.js} +1 -1
  26. package/dist/client/assets/{Play-CGn78rrg.js → Play-BeYBNy6k.js} +1 -1
  27. package/dist/client/assets/{Plus-1xHXOv56.js → Plus-M7Z31wrO.js} +1 -1
  28. package/dist/client/assets/{SearchLg-DEDRam66.js → SearchLg-CCr6DQuW.js} +1 -1
  29. package/dist/client/assets/{SearchMd-DcoXeZ0G.js → SearchMd-BrC2iZQ1.js} +1 -1
  30. package/dist/client/assets/{Settings02-jYwqxyPX.js → Settings02-6XNEhu4R.js} +1 -1
  31. package/dist/client/assets/{Shield01-BJY_C13I.js → Shield01-BRg-y06k.js} +1 -1
  32. package/dist/client/assets/{Star01-Be8dRYiI.js → Star01-B8h2h-Uj.js} +1 -1
  33. package/dist/client/assets/{Stars01-DWVSqNPI.js → Stars01-vnwDUOxb.js} +1 -1
  34. package/dist/client/assets/{Stars02-IVJ1KAw4.js → Stars02-eYXfAFgH.js} +1 -1
  35. package/dist/client/assets/{Sun-CB3x04tX.js → Sun-57G02HLE.js} +1 -1
  36. package/dist/client/assets/{SwitchHorizontal01-cmUUOrhq.js → SwitchHorizontal01-6zDad7Gz.js} +1 -1
  37. package/dist/client/assets/{Tool01-B4m9Aj-8.js → Tool01-BsZCQETX.js} +1 -1
  38. package/dist/client/assets/{Tool02-CriPVsQR.js → Tool02-aEAUKug0.js} +1 -1
  39. package/dist/client/assets/{Trash01-EHy0oSME.js → Trash01-hvdx05ZV.js} +1 -1
  40. package/dist/client/assets/TrendUp01-CkgBQqG5.js +1 -0
  41. package/dist/client/assets/{Upload01-CdIav2kQ.js → Upload01-BFj2T5hE.js} +1 -1
  42. package/dist/client/assets/{User01-rmTK9V-t.js → User01-BCTRYgWw.js} +1 -1
  43. package/dist/client/assets/UserPlus01-gnDun0R2.js +1 -0
  44. package/dist/client/assets/{Users01-D3cEcNRL.js → Users01-0sZa7AsG.js} +1 -1
  45. package/dist/client/assets/{Users03-BIZ3MNsv.js → Users03-VH8eefwa.js} +1 -1
  46. package/dist/client/assets/{X-DyoCFJZC.js → X-LqY3zO2y.js} +1 -1
  47. package/dist/client/assets/{XCircle-CJVa_Lit.js → XCircle-DgZjfIuh.js} +1 -1
  48. package/dist/client/assets/{XClose-DtNGa57c.js → XClose-oKRTLLzc.js} +1 -1
  49. package/dist/client/assets/{Zap-CKyHL0Rr.js → Zap-VQGxqYXg.js} +1 -1
  50. package/dist/client/assets/{ZapSquare-C-_Jmda6.js → ZapSquare-DQ3NLTzQ.js} +1 -1
  51. package/dist/client/assets/{ZoomOut-juftUA7n.js → ZoomOut-Bu4oPwRF.js} +1 -1
  52. package/dist/client/assets/{access-gate-vyNhg-g-.js → access-gate-BJOY4IeA.js} +1 -1
  53. package/dist/client/assets/{add-section-modal-0x_XcUff.js → add-section-modal-DByNZ5bZ.js} +1 -1
  54. package/dist/client/assets/agent-icon-CisP0Ou9.js +1 -0
  55. package/dist/client/assets/agents-list-Bg_8wRqT.js +1 -0
  56. package/dist/client/assets/{ai-providers-H8Av-W_Y.js → ai-providers-BRkq45lK.js} +1 -1
  57. package/dist/client/assets/{alert-DV2ObbOZ.js → alert-D1dAz2xm.js} +1 -1
  58. package/dist/client/assets/{alert-dialog-ynqoq_zD.js → alert-dialog-uXFRYx4f.js} +1 -1
  59. package/dist/client/assets/app-editor-47iREJoJ.js +1 -0
  60. package/dist/client/assets/{auth-Cxv3qO74.js → auth-bmb-9_Tt.js} +1 -1
  61. package/dist/client/assets/{auth-catchall-BDFxaAJz.js → auth-catchall-BpyMX_PQ.js} +1 -1
  62. package/dist/client/assets/{auth-entry-DmvTUGfz.js → auth-entry-Dh4Rwjye.js} +1 -1
  63. package/dist/client/assets/{auth-split-layout-D3uYBv7b.js → auth-split-layout-D1tOvOpz.js} +1 -1
  64. package/dist/client/assets/{authenticate-and-persist-oauth-B-ZBhEDu.js → authenticate-and-persist-oauth-D1vIJ8md.js} +1 -1
  65. package/dist/client/assets/{automation-list-row-BwaR4D3_.js → automation-list-row-Dv7DbX11.js} +1 -1
  66. package/dist/client/assets/{automation-runs-DBYfjIwt.js → automation-runs-D7aKtmwO.js} +1 -1
  67. package/dist/client/assets/automations-BbuRp3IV.js +1 -0
  68. package/dist/client/assets/{autosend-BjNFEiKQ.js → autosend-DGYySc7I.js} +1 -1
  69. package/dist/client/assets/{avatar-d5Fji5lR.js → avatar-C29v0fIv.js} +1 -1
  70. package/dist/client/assets/{badge-w9muzbch.js → badge-WQxQHFmz.js} +1 -1
  71. package/dist/client/assets/{block-document-BD3a2-FJ.js → block-document-D1Whi6tD.js} +2 -2
  72. package/dist/client/assets/{brand-context-DicQ2rNw.js → brand-context-qU-qVDwF.js} +1 -1
  73. package/dist/client/assets/{buckets-kNR1_m6U.js → buckets-Dh_dxhyX.js} +1 -1
  74. package/dist/client/assets/bulk-category-panel-CWiFcHcj.js +1 -0
  75. package/dist/client/assets/calendar-zKyIjSj2.js +1 -0
  76. package/dist/client/assets/{capability-load-error-BgeIJtvX.js → capability-load-error-CInD3PW6.js} +1 -1
  77. package/dist/client/assets/{card-DhD3eH0l.js → card-DRx3sRgJ.js} +1 -1
  78. package/dist/client/assets/category-editor-ecYoZ4G4.js +1 -0
  79. package/dist/client/assets/{chat-context-CmDafxo7.js → chat-context-o-fkiWtd.js} +1 -1
  80. package/dist/client/assets/{checkbox-BGxG-_W4.js → checkbox-BGhuCrXh.js} +1 -1
  81. package/dist/client/assets/{cli-auth-success-CzrjijBI.js → cli-auth-success-CidSTDE8.js} +1 -1
  82. package/dist/client/assets/collection-detail-CgZgWWS9.js +1 -0
  83. package/dist/client/assets/{collection-display-button-xAH311aR.js → collection-display-button-C-GNVcXj.js} +1 -1
  84. package/dist/client/assets/{collection-search-YR2RcNz5.js → collection-search-Dl1rSx6-.js} +1 -1
  85. package/dist/client/assets/{collection-table-wrapper-CjPUk06q.js → collection-table-wrapper-CS23VWiU.js} +1 -1
  86. package/dist/client/assets/{collection-tabs-CJcVdpM8.js → collection-tabs-BD_utxXw.js} +1 -1
  87. package/dist/client/assets/{command-BAvfX7Is.js → command-C-bk8tFG.js} +1 -1
  88. package/dist/client/assets/commerce-onboarding-BvAupYJb.js +1 -0
  89. package/dist/client/assets/{connect-desktop-dialog-D957Sp9T.js → connect-desktop-dialog-CrMXkeVk.js} +1 -1
  90. package/dist/client/assets/{connection-card-CaTKE99J.js → connection-card-OYBnMPMS.js} +1 -1
  91. package/dist/client/assets/connection-detail-B1UKPFK-.js +1 -0
  92. package/dist/client/assets/{connection-form-helpers-CGSHmzU6.js → connection-form-helpers-BVf39W69.js} +1 -1
  93. package/dist/client/assets/connections-DrHUoJ_I.js +1 -0
  94. package/dist/client/assets/{decopilot-sse-pool-DHwAJ7c-.js → decopilot-sse-pool-C2G1aaZc.js} +1 -1
  95. package/dist/client/assets/{dialog-CkMBaOxP.js → dialog-DRLzaEaI.js} +1 -1
  96. package/dist/client/assets/{domain-settings-aA01iyFs.js → domain-settings-08xns5oE.js} +1 -1
  97. package/dist/client/assets/{drawer-kA0uCnKS.js → drawer-8H5NiaRB.js} +1 -1
  98. package/dist/client/assets/{dropdown-menu-BeYH-oH8.js → dropdown-menu-B3HFJi9W.js} +1 -1
  99. package/dist/client/assets/{empty-state-DNC-9vac.js → empty-state-CJNm_Wx3.js} +1 -1
  100. package/dist/client/assets/{extract-connection-data-DgMBRlKf.js → extract-connection-data-Dj2v22sN.js} +1 -1
  101. package/dist/client/assets/file-explorer-KKJ8k43u.js +2 -0
  102. package/dist/client/assets/{file-type-icon-CKCqz3Lk.js → file-type-icon-D2Std2ip.js} +1 -1
  103. package/dist/client/assets/{files-DsRYF37h.js → files-BbwT8GBf.js} +1 -1
  104. package/dist/client/assets/{form-C2_rR9E2.js → form-bFOvfGH1.js} +1 -1
  105. package/dist/client/assets/{general-CMxCLDqK.js → general-Bm_j7Exr.js} +1 -1
  106. package/dist/client/assets/{github-repo-picker-CazDUvnU.js → github-repo-picker-BO7er0hb.js} +1 -1
  107. package/dist/client/assets/{hooks-X5o4K0K4.js → hooks-DsF-eoVs.js} +1 -1
  108. package/dist/client/assets/{index-Cjm3iH4d.js → index--R4C_MgQ.js} +5 -5
  109. package/dist/client/assets/{index-D9d7Q7iM.js → index-BTRyPQVH.js} +1 -1
  110. package/dist/client/assets/{index-DzGwqsH6.js → index-BUz-OC8o.js} +1 -1
  111. package/dist/client/assets/{index-Bo6F3tTz.js → index-BaFYkry5.js} +1 -1
  112. package/dist/client/assets/{index-HlYIpfaK.js → index-BwxH3xVs.js} +1 -1
  113. package/dist/client/assets/{index-Dj0tk98b.js → index-CfD5IJ8P.js} +1 -1
  114. package/dist/client/assets/{index-D3RtBmpf.js → index-CkX8nQuh.js} +1 -1
  115. package/dist/client/assets/{index-CpSxMQLN.js → index-ClTfvZWv.js} +1 -1
  116. package/dist/client/assets/{index-CctjkHau.js → index-Co2JYTgB.js} +3 -3
  117. package/dist/client/assets/{index-DGl7TlXL.js → index-CwvQsRbd.js} +1 -1
  118. package/dist/client/assets/{index-ut1i6vfc.js → index-DMIHY7z9.js} +1 -1
  119. package/dist/client/assets/index-DOilxzn5.js +1 -0
  120. package/dist/client/assets/index-DZ4REHZZ.js +1 -0
  121. package/dist/client/assets/{index-R8Byrplo.js → index-OPKvaD5e.js} +3 -3
  122. package/dist/client/assets/{index-redirect-2z4OXGur.js → index-redirect-CLan28iA.js} +1 -1
  123. package/dist/client/assets/index-usQYoTw3.css +1 -0
  124. package/dist/client/assets/{input-CuETklW2.js → input-5hdR1OeR.js} +1 -1
  125. package/dist/client/assets/{integration-icon-gWmea2fK.js → integration-icon-BTTrYwxL.js} +1 -1
  126. package/dist/client/assets/{invite-member-dialog-2eWaLC3S.js → invite-member-dialog-D16Cbjug.js} +1 -1
  127. package/dist/client/assets/{label-De4Gq62Z.js → label-BjZWcoKQ.js} +1 -1
  128. package/dist/client/assets/{layout-CSwCvM_M.js → layout-BMACxFWm.js} +1 -1
  129. package/dist/client/assets/{login-CJDmzL8w.js → login-DVs54gbF.js} +1 -1
  130. package/dist/client/assets/{mcp-oauth-BmlzekLr.js → mcp-oauth-BvkrTvef.js} +1 -1
  131. package/dist/client/assets/{members-CLTDrIv4.js → members-DFGfmpO_.js} +1 -1
  132. package/dist/client/assets/{monaco-editor-C1HwuGku.js → monaco-editor-BzZSfd51.js} +1 -1
  133. package/dist/client/assets/{monitoring-stats-row-CRm8aaJd.js → monitoring-stats-row-pKnXg6ns.js} +1 -1
  134. package/dist/client/assets/{oauth-callback-ai-provider-DDueNZxf.js → oauth-callback-ai-provider-DkobY0aV.js} +1 -1
  135. package/dist/client/assets/{oauth-callback-78vmNoZE.js → oauth-callback-eMStL6Eu.js} +1 -1
  136. package/dist/client/assets/{onboarding-0GF2LHlV.js → onboarding-CNDdTjIV.js} +1 -1
  137. package/dist/client/assets/{org-install-aqkE4Jgj.js → org-install-CPNdrzu4.js} +1 -1
  138. package/dist/client/assets/{org-layout-CS7qkH1l.js → org-layout-DgwY0syl.js} +1 -1
  139. package/dist/client/assets/{organization-choice-Cc2bF-7d.js → organization-choice-Dga8eabF.js} +1 -1
  140. package/dist/client/assets/{orgs-Dk0yYyeN.js → orgs-BubVJire.js} +1 -1
  141. package/dist/client/assets/{page-seo-form-JpKtzPF0.js → page-seo-form-Cn-cgY5H.js} +1 -1
  142. package/dist/client/assets/page-seo-sheet-D5mWXFxQ.js +1 -0
  143. package/dist/client/assets/{popover-BTGVDLnm.js → popover-kytVQ7GF.js} +1 -1
  144. package/dist/client/assets/post-editor-B6STX4q4.js +1 -0
  145. package/dist/client/assets/{primitives-Ch4czy-w.js → primitives-M4qnFwow.js} +1 -1
  146. package/dist/client/assets/{profile-wkr728sO.js → profile-Bhi82vew.js} +1 -1
  147. package/dist/client/assets/project-app-view-DZx4mGKF.js +1 -0
  148. package/dist/client/assets/record-editor-DUrpb3N4.js +1 -0
  149. package/dist/client/assets/registry-CVK5EC4U.js +2 -0
  150. package/dist/client/assets/{registry-layout-DoFxkNFD.js → registry-layout-CpJC_V9z.js} +1 -1
  151. package/dist/client/assets/{reports-CimDNAnm.js → reports-BvQsFqV9.js} +2 -2
  152. package/dist/client/assets/{require-capability-DWNm-bJE.js → require-capability-BkdOUUx1.js} +1 -1
  153. package/dist/client/assets/{required-auth-layout-sHyhCUnz.js → required-auth-layout-CW5t5wzZ.js} +1 -1
  154. package/dist/client/assets/{reset-password-DqJJAPnX.js → reset-password-Da3rjrSC.js} +1 -1
  155. package/dist/client/assets/roles-BK33rqNe.js +1 -0
  156. package/dist/client/assets/{search-input-Ds1ilB-d.js → search-input-BqGytPeT.js} +1 -1
  157. package/dist/client/assets/{secrets-BfnPVFEi.js → secrets-DqKciHBV.js} +1 -1
  158. package/dist/client/assets/sections-editor-C9cLFAZA.js +2 -0
  159. package/dist/client/assets/{select-CyqPGt-o.js → select-DIcEohwD.js} +1 -1
  160. package/dist/client/assets/{select-model-b-kuUyj-.js → select-model-BMoJg7Nz.js} +1 -1
  161. package/dist/client/assets/{self-tool-result-Bnpf0rwt.js → self-tool-result-yTWImnSz.js} +1 -1
  162. package/dist/client/assets/seo-editor-Bn-68Hsu.js +1 -0
  163. package/dist/client/assets/{settings-layout-CbJnAH6a.js → settings-layout-w18PvCnz.js} +1 -1
  164. package/dist/client/assets/{settings-section-Bapz1bFt.js → settings-section-CtPiSWUG.js} +1 -1
  165. package/dist/client/assets/{shell-controls-Dw_ImS9u.js → shell-controls-CjtgfTkK.js} +1 -1
  166. package/dist/client/assets/{shell-layout-Cs7WmdkA.js → shell-layout-fstofeax.js} +1 -1
  167. package/dist/client/assets/{sidebar-Dwsj9nV9.js → sidebar-CZTQxJLs.js} +1 -1
  168. package/dist/client/assets/{skeleton-C3owgioi.js → skeleton-Bm6aPYKD.js} +1 -1
  169. package/dist/client/assets/{sso-ot-YhJ5P.js → sso-DtQztM8j.js} +1 -1
  170. package/dist/client/assets/{store-Da36LPs0.js → store-BJyRZSdq.js} +1 -1
  171. package/dist/client/assets/store-registry-CZxP2LhF.js +2 -0
  172. package/dist/client/assets/{studio-tools-VpZtc3x4.js → studio-tools-D2Ki1UQb.js} +1 -1
  173. package/dist/client/assets/{switch-yVX8OSgY.js → switch-D0AM0YLZ.js} +1 -1
  174. package/dist/client/assets/{table-CYb-xXGy.js → table-BalbqL-R.js} +1 -1
  175. package/dist/client/assets/{tabs-C3TBZOI4.js → tabs-CtdbDFi-.js} +1 -1
  176. package/dist/client/assets/{textarea-BlVgpSxW.js → textarea-DTJ172sF.js} +1 -1
  177. package/dist/client/assets/{toggle-group-COVE5DD2.js → toggle-group-9woF9vc-.js} +1 -1
  178. package/dist/client/assets/{toolbar-uACcAT9m.js → toolbar-BcDQIQIp.js} +1 -1
  179. package/dist/client/assets/{toolbar-icon-button-CxQRykmk.js → toolbar-icon-button-IutHuSQN.js} +1 -1
  180. package/dist/client/assets/{tools-list-DDzm575S.js → tools-list-D-WxPGDx.js} +1 -1
  181. package/dist/client/assets/{tooltip-CSKqYV2o.js → tooltip-CsAbPDMP.js} +1 -1
  182. package/dist/client/assets/{use-ai-providers-DbzMqvRw.js → use-ai-providers-Dhl2T6Yf.js} +1 -1
  183. package/dist/client/assets/{use-automations-rVffOJ9P.js → use-automations-CWZf2gkB.js} +1 -1
  184. package/dist/client/assets/{use-capability-Dfq1Tv1s.js → use-capability-D5RkHVsY.js} +1 -1
  185. package/dist/client/assets/{use-clock-tick-CiJYYEvg.js → use-clock-tick-C8uzDjqG.js} +1 -1
  186. package/dist/client/assets/{use-collections-Dgegwdyj.js → use-collections-BS38fOAk.js} +1 -1
  187. package/dist/client/assets/{use-connection-CfJO5ZeS.js → use-connection-D_PAKQYK.js} +1 -1
  188. package/dist/client/assets/{use-copy-C8H8ajYI.js → use-copy-ChWDn7wN.js} +1 -1
  189. package/dist/client/assets/{use-create-virtual-mcp-4IQkbMp6.js → use-create-virtual-mcp-Dbww-NDJ.js} +1 -1
  190. package/dist/client/assets/{use-debounced-autosave-BMawogEl.js → use-debounced-autosave-D5TTbCnW.js} +1 -1
  191. package/dist/client/assets/{use-debounced-value-B74I46Ng.js → use-debounced-value-CP6l0YTo.js} +1 -1
  192. package/dist/client/assets/{use-deco-credits-C7ttPE2W.js → use-deco-credits-DxSlkZSo.js} +1 -1
  193. package/dist/client/assets/{use-decopilot-events-CECoQxB1.js → use-decopilot-events-CsKbUYpD.js} +1 -1
  194. package/dist/client/assets/{use-delete-connection-CzeRdYmF.js → use-delete-connection-CI-KqoCN.js} +1 -1
  195. package/dist/client/assets/{use-deployment-admin-BxahlTDD.js → use-deployment-admin-DlYmABtI.js} +1 -1
  196. package/dist/client/assets/{use-file-configs-DkhFcq5Y.js → use-file-configs-BgKiLCxP.js} +1 -1
  197. package/dist/client/assets/{use-infinite-scroll-enysl5iA.js → use-infinite-scroll-Dju0gd7x.js} +1 -1
  198. package/dist/client/assets/{use-join-requests-DkxXOPeL.js → use-join-requests-CoZtVGZa.js} +1 -1
  199. package/dist/client/assets/{use-mcp-client-DSEtHMzZ.js → use-mcp-client-5CLIwOFb.js} +1 -1
  200. package/dist/client/assets/{use-mcp-tools-Ws8Uq0PO.js → use-mcp-tools-BtDtv81c.js} +1 -1
  201. package/dist/client/assets/{use-members-CzWiJzqP.js → use-members-CrRPQSia.js} +1 -1
  202. package/dist/client/assets/{use-mobile-CpdOT8rj.js → use-mobile-CrJT-KcJ.js} +1 -1
  203. package/dist/client/assets/{use-navigate-to-agent-BYI1ruBK.js → use-navigate-to-agent-B565FU9B.js} +1 -1
  204. package/dist/client/assets/{use-org-auth-client-Cq0wieBj.js → use-org-auth-client-DS3gGYHV.js} +1 -1
  205. package/dist/client/assets/{use-org-sso-DIYkldj9.js → use-org-sso-BQS4eui0.js} +1 -1
  206. package/dist/client/assets/{use-organization-roles-XaT8E2St.js → use-organization-roles-BQtxz4xl.js} +1 -1
  207. package/dist/client/assets/{use-organization-settings-tw76RRiy.js → use-organization-settings-CYqHwODn.js} +1 -1
  208. package/dist/client/assets/{use-registry-connections-bxhzGEE0.js → use-registry-connections-DVxExIph.js} +1 -1
  209. package/dist/client/assets/{use-secrets-eOHxIh-E.js → use-secrets-D0VDb8qw.js} +1 -1
  210. package/dist/client/assets/{use-status-sounds-DVD0jIZZ.js → use-status-sounds-smDb1lOB.js} +1 -1
  211. package/dist/client/assets/{use-view-mode-C3_MACOf.js → use-view-mode-ZnD6ck9i.js} +1 -1
  212. package/dist/client/assets/{use-virtual-mcp-DbuyUGsA.js → use-virtual-mcp-DNGM7Vf0.js} +1 -1
  213. package/dist/client/assets/useInfiniteQuery-D4bhAoJe.js +1 -0
  214. package/dist/client/assets/{useRouterState-CiMUD-eY.js → useRouterState-wElu-9fR.js} +1 -1
  215. package/dist/client/assets/useSuspenseInfiniteQuery-CPz2t3Z-.js +1 -0
  216. package/dist/client/assets/{users-D6Rzw3AO.js → users-CfZnkI5B.js} +1 -1
  217. package/dist/client/assets/variant-calendar-PhIoKzXk.js +1 -0
  218. package/dist/client/assets/{view-mode-toggle-CiKSiwo5.js → view-mode-toggle-C4clwL9D.js} +1 -1
  219. package/dist/client/index.html +2 -2
  220. package/dist/server/cli.js +2 -2
  221. package/dist/server/server.js +2 -2
  222. package/package.json +1 -1
  223. package/dist/client/assets/Trash03-4nYQQS93.js +0 -1
  224. package/dist/client/assets/TrendUp01-B_v3WyCd.js +0 -1
  225. package/dist/client/assets/agent-icon-CVEVKDp9.js +0 -1
  226. package/dist/client/assets/agents-list-C2FvfhBd.js +0 -1
  227. package/dist/client/assets/app-editor-CyYEZvBA.js +0 -1
  228. package/dist/client/assets/automations-PBwWSMdr.js +0 -1
  229. package/dist/client/assets/bulk-category-panel-Cg9PaKBV.js +0 -1
  230. package/dist/client/assets/calendar-DBx8U-rn.js +0 -1
  231. package/dist/client/assets/category-editor-CXY9JkyG.js +0 -1
  232. package/dist/client/assets/collection-detail-CNZ89XDU.js +0 -1
  233. package/dist/client/assets/commerce-onboarding-AZ93XbS6.js +0 -1
  234. package/dist/client/assets/connection-detail-BMGRuWS3.js +0 -1
  235. package/dist/client/assets/connections-VSFQNqae.js +0 -1
  236. package/dist/client/assets/file-explorer-BdAGbOOd.js +0 -2
  237. package/dist/client/assets/index-C1EvhcC4.js +0 -1
  238. package/dist/client/assets/index-Ct4UCmlw.css +0 -1
  239. package/dist/client/assets/index-T7gNfO2S.js +0 -1
  240. package/dist/client/assets/page-seo-sheet-DUYXc0VW.js +0 -1
  241. package/dist/client/assets/post-editor-70qqxpYm.js +0 -1
  242. package/dist/client/assets/project-app-view-vmypRgGa.js +0 -1
  243. package/dist/client/assets/record-editor-DolHiAng.js +0 -1
  244. package/dist/client/assets/registry-BZMs9OSJ.js +0 -2
  245. package/dist/client/assets/roles-0UAZr6JH.js +0 -1
  246. package/dist/client/assets/sections-editor-CrRg74i6.js +0 -2
  247. package/dist/client/assets/seo-editor-4Ox3d5d1.js +0 -1
  248. package/dist/client/assets/store-registry-c7IV8QNo.js +0 -2
  249. package/dist/client/assets/useInfiniteQuery-CGZs8b_0.js +0 -1
  250. package/dist/client/assets/useSuspenseInfiniteQuery-CtDuoK5n.js +0 -1
  251. package/dist/client/assets/variant-calendar-CVkKmTF0.js +0 -1
@@ -84512,7 +84512,7 @@ ${$}`;h(N);return}if(E(null,y),t.strategy==="count"){if(w--,w===0)h()}if(t.strat
84512
84512
  `);function h(_){if(t===void 0)return!0;let v=mM(_),n=v&&mM(t)?kmu(t):t,D=v?kmu(_):Gmu(_),O=Vbt(n,D);return O===""||!O.startsWith("..")&&!Mbt(O)}return{upsert(_){f.run({$handle:_.handle,$status:_.status,$sandboxPath:_.sandboxPath,$port:_.port??null,$previewUrl:_.previewUrl??null,$repoCloneUrl:_.repoCloneUrl??null,$branch:_.branch??null,$projectName:_.projectName??null,$error:_.error??null,$now:Date.now()})},list(){return l.all().map(G1i)},reconcile(){let _=Date.now();for(let v of l.all().map(G1i)){if(!h(v.sandboxPath)){c.run({$handle:v.handle,$now:_});continue}if(!mM(v.sandboxPath)){E.run({$handle:v.handle,$now:_});continue}if(v.status==="spawning"||v.status==="ready"||v.status==="failed"||v.status==="missing")$.run({$handle:v.handle,$now:_})}return l.all().map(G1i)},prune(_){let v=[],n=[],D=this.reconcile();for(let O of D){if(!h(O.sandboxPath)){n.push({handle:O.handle,sandboxPath:O.sandboxPath,reason:"outside_root",deletedFiles:!1});continue}if(_.missing&&O.status==="missing"){w.run({$handle:O.handle}),v.push({handle:O.handle,sandboxPath:O.sandboxPath,reason:"missing",deletedFiles:!1});continue}if(!_.merged||!mM(O.sandboxPath))continue;if(O.branch===null||O.branch.trim()===""){n.push({handle:O.handle,sandboxPath:O.sandboxPath,reason:"no_branch",deletedFiles:!1});continue}if(!n2(O.sandboxPath,["rev-parse","--is-inside-work-tree"]).ok){n.push({handle:O.handle,sandboxPath:O.sandboxPath,reason:"git_unavailable",deletedFiles:!1});continue}let N=n2(O.sandboxPath,["status","--porcelain"]);if(!N.ok){n.push({handle:O.handle,sandboxPath:O.sandboxPath,reason:"git_unavailable",deletedFiles:!1});continue}if(N.stdout.trim()!==""){n.push({handle:O.handle,sandboxPath:O.sandboxPath,reason:"dirty_worktree",deletedFiles:!1});continue}let y=jmu(O.sandboxPath,O.branch);if(y===null){n.push({handle:O.handle,sandboxPath:O.sandboxPath,reason:"git_unavailable",deletedFiles:!1});continue}if(!y){n.push({handle:O.handle,sandboxPath:O.sandboxPath,reason:"branch_not_merged",deletedFiles:!1});continue}bbt(O.sandboxPath,{recursive:!0,force:!0}),w.run({$handle:O.handle}),v.push({handle:O.handle,sandboxPath:O.sandboxPath,reason:"merged",deletedFiles:!0})}return{removed:v,skipped:n}},delete(_){w.run({$handle:_})},inspect(_){let v=d.get({$handle:_});if(v===null)return null;let n=G1i(v),D=0,O=null;if(mM(n.sandboxPath)&&n2(n.sandboxPath,["rev-parse","--is-inside-work-tree"]).ok){let N=n2(n.sandboxPath,["status","--porcelain"]);if(N.ok){let y=N.stdout.trim();D=y===""?0:y.split(`
84513
84513
  `).length}if(n.branch!==null&&n.branch.trim()!=="")O=jmu(n.sandboxPath,n.branch)}return{handle:n.handle,branch:n.branch,sandboxPath:n.sandboxPath,dirtyCount:D,merged:O}},close(){u.close()}}}var kRi=()=>{};function abt(i,u){return u?[["umount","-f",i]]:[["fusermount","-uz",i],["umount","-l",i]]}function Jmu(i,u){if(process.platform==="win32")return;for(let t of abt(i,u))if(Bun.spawnSync(t,{stdout:"ignore",stderr:"ignore",timeout:5000}).exitCode===0)break}var Xmu=()=>{};import{existsSync as obt,readdirSync as sbt}from"fs";import{rm as pbt}from"fs/promises";import{join as Lmu}from"path";async function Wmu(i,u={}){let t=u.detach??iCt,f=u.exists??obt,l=u.readdir??(($)=>sbt($)),c=u.rm??(($)=>pbt($,{recursive:!0,force:!0})),E=Lmu(i,"org");if(f(E))for(let $ of l(E))t(Lmu(E,$));await c(i)}var iCt=(i)=>Jmu(i,process.platform==="darwin");var Ymu=g(()=>{Xmu()});import{join as uCt}from"path";function Qmu(i){let u=i.purge??Wmu;return{stopSandbox(t){return i.provider.deleteSandbox(t)},inspectSandbox(t){return i.registry.inspect(t)},async removeSandbox(t){try{return await U1(async()=>{if(await i.provider.deleteSandbox(t),i.provider.hasHandle(t))throw Error("Can't delete \u2014 run in progress");let l=i.registry.inspect(t)?.sandboxPath??uCt(i.dataDir,"sandboxes",t);await u(l)},{maxAttempts:2,minTimeout:250,jitter:0}),i.registry.delete(t),{ok:!0}}catch(f){let l=f instanceof Lc?f.cause:f;return{ok:!1,error:l instanceof Error?l.message:String(l)}}}}}var zmu=g(()=>{N4();Ymu()});import{randomBytes as tCt}from"crypto";import{mkdir as fCt}from"fs/promises";import{createServer as lCt}from"net";import{join as cCt}from"path";function Hmu(i,u){return Error(`sandbox failed to start: ${i}`,{cause:u})}function ECt(i){if(!(i instanceof Error))return!1;return i.name==="TimeoutError"||/timed out|timeout|operation was aborted|aborted/i.test(i.message)}function Rmu(i){if(i instanceof Error){let u=i.cause;if(u instanceof Error&&u.message)return u.message;return i.message}return String(i)}function $Ct(i){if(!i)return null;let u=i.trim().replace(/\/+$/,"");if(!u)return null;let t=u.split(/[/:]/).filter(Boolean).at(-1);if(!t)return null;return t.replace(/\.git$/i,"")||null}function wCt(i){return{repoCloneUrl:i.repo?.cloneUrl??null,branch:i.repo?.branch??null,projectName:$Ct(i.repo?.cloneUrl)}}function bmu(i){let u=i.maxSandboxes??20,t=new Map,f=i.pickPort??dCt,l=i.fetchImpl??fetch,c=i.resolvePreviewUrl??((D,O)=>`http://127.0.0.1:${O}`),E=(D)=>cCt(i.dataDir,"sandboxes",D),$=(D)=>{try{i.registry?.upsert(D)}catch(O){console.warn(`[user-desktop] failed to persist sandbox lifecycle handle=${D.handle} status=${D.status}:`,O)}},w=(D)=>{try{i.onEvent?.(D)}catch{}},d=async(D)=>{let O=new AbortController,N=setTimeout(()=>O.abort(),1500);try{let y=await l(`${D}/health`,{signal:O.signal});if(!y.ok)console.warn(`[user-desktop] probe ${D}/health \u2192 ${y.status} (treating as dead)`);return y.ok}catch(y){return console.warn(`[user-desktop] probe ${D}/health failed: ${y instanceof Error?y.message:String(y)} (treating as dead)`),!1}finally{clearTimeout(N)}},h=(D)=>{console.warn(`[user-desktop] evicting dead daemon handle=${D.handle} port=${D.port}`);try{D.process.kill("SIGTERM")}catch{}if(t.get(D.handle)===D)t.delete(D.handle),$({handle:D.handle,status:"stopped",sandboxPath:E(D.handle),port:null,previewUrl:null,...D.registryMetadata,error:null}),w({handle:D.handle,phase:"evicted"})},_=new Map;function v(){if(t.size<u)return;let D=[...t.values()].filter((N)=>N.activeDispatchCount===0).sort((N,y)=>N.lastUsedAt-y.lastUsedAt);if(D.length===0){console.warn(`[user-desktop] at cap ${t.size}/${u} but every sandbox is pinned (active dispatch) \u2014 exceeding cap temporarily`);return}let O=D[0];console.log(`[user-desktop] evicting LRU victim handle=${O.handle} port=${O.port} (cap ${u} reached, size=${t.size})`);try{O.process.kill("SIGTERM")}catch{}t.delete(O.handle),$({handle:O.handle,status:"stopped",sandboxPath:E(O.handle),port:null,previewUrl:null,...O.registryMetadata,error:null}),w({handle:O.handle,phase:"evicted"})}let n=async(D)=>{let O=wCt(D),N=E(D.handle);$({handle:D.handle,status:"spawning",sandboxPath:N,port:null,previewUrl:null,...O,error:null}),w({handle:D.handle,phase:"spawning",sandboxPath:N,projectName:O.projectName,branch:O.branch}),v();let y,Z=null,T;try{await fCt(N,{recursive:!0}),console.log(`[user-desktop] ensure handle=${D.handle} repo=${D.repo?.cloneUrl??"(none)"} branch=${D.repo?.branch??"(none)"} runtime=${D.workload?.runtime??"(autodetect)"} pm=${D.workload?.packageManager??"(autodetect)"}`),T=tCt(24).toString("hex");let[S,I]=await Promise.all([f(),f()]);y=S,console.log(`[user-desktop] spawn handle=${D.handle} port=${y} devPort=${I} workdir=${N}`),Z=await Promise.resolve(i.spawnDaemon({workdir:N,handle:D.handle,port:y,daemonToken:T,offloadAllowedHosts:D.offloadAllowedHosts??[],offloadAllowSameHostDev:D.offloadAllowSameHostDev??!1,orgFsConfigJson:D.orgFsConfigJson}));try{await i.waitForHealth(y)}catch(k){throw Hmu("the sandbox didn't come online in time",k)}console.log(`[user-desktop] healthy handle=${D.handle} port=${y} \u2014 posting config`);try{await i.postConfig(y,I,{repo:D.repo,workload:D.workload,operator:D.operator},T)}catch(k){throw Hmu(ECt(k)?"configuration timed out":"the sandbox rejected its configuration",k)}}catch(S){if(console.error(`[user-desktop] sandbox bring-up failed handle=${D.handle} port=${y??"(none)"}${Z?" (killing daemon)":""}:`,S),Z)try{Z.kill("SIGKILL")}catch{}throw w({handle:D.handle,phase:"failed",error:Rmu(S),sandboxPath:N,projectName:O.projectName,branch:O.branch}),$({handle:D.handle,status:"failed",sandboxPath:N,port:null,previewUrl:null,...O,error:Rmu(S)}),S}if(!Z||y===void 0)throw Error("sandbox bring-up invariant violated");let B=`http://127.0.0.1:${y}`,F=c(D.handle,y);console.log(`[user-desktop] ready handle=${D.handle} port=${y} sandboxApiUrl=${B} previewUrl=${F}`);let A={handle:D.handle,port:y,process:Z,sandboxApiUrl:B,previewUrl:F,lastUsedAt:Date.now(),activeDispatchCount:0,daemonToken:T,registryMetadata:O};if(t.set(D.handle,A),$({handle:D.handle,status:"ready",sandboxPath:N,port:y,previewUrl:F,...O,error:null}),w({handle:D.handle,phase:"ready",port:y,previewUrl:F,sandboxPath:N,projectName:O.projectName,branch:O.branch}),Z.exited)Z.exited.then(()=>{if(t.get(D.handle)===A)console.warn(`[user-desktop] daemon process exited unexpectedly handle=${D.handle} port=${y} \u2014 removing from cache`),t.delete(D.handle),$({handle:D.handle,status:"stopped",sandboxPath:N,port:null,previewUrl:null,...O,error:null}),w({handle:D.handle,phase:"evicted"});else console.log(`[user-desktop] daemon process exited handle=${D.handle} port=${y} (already replaced/removed)`)});return{sandboxApiUrl:B,previewUrl:F,port:y}};return{async ensureSandbox(D){let O=t.get(D.handle);if(O){if(await d(O.sandboxApiUrl))return console.log(`[user-desktop] cache hit handle=${D.handle} port=${O.port} (alive)`),O.lastUsedAt=Date.now(),{sandboxApiUrl:O.sandboxApiUrl,previewUrl:O.previewUrl,port:O.port};console.warn(`[user-desktop] cache stale handle=${D.handle} port=${O.port} \u2014 respawning`),h(O)}let N=_.get(D.handle);if(N)return console.log(`[user-desktop] joining in-flight ensure handle=${D.handle}`),N;let y=n(D).finally(()=>{_.delete(D.handle)});return _.set(D.handle,y),y},proxyPort(D){let O=t.get(D);if(O)O.lastUsedAt=Date.now();return O?.port??null},getDaemonToken(D){return t.get(D)?.daemonToken??null},hasHandle(D){return t.has(D)||_.has(D)},recordHit(D){let O=t.get(D);if(O)O.lastUsedAt=Date.now()},acquireDispatch(D){let O=t.get(D);if(!O)return()=>{};O.activeDispatchCount+=1;let N=!1;return()=>{if(N)return;N=!0;let y=t.get(D);if(y)y.activeDispatchCount=Math.max(0,y.activeDispatchCount-1)}},listSandboxes(){return[...t.values()]},async deleteSandbox(D){let O=t.get(D);if(!O){console.log(`[user-desktop] delete handle=${D} (not found, no-op)`);return}if(O.activeDispatchCount>0){console.warn(`[user-desktop] delete handle=${D} port=${O.port} REFUSED \u2014 ${O.activeDispatchCount} active dispatch(es) in flight`);return}console.log(`[user-desktop] delete handle=${D} port=${O.port}`);try{O.process.kill("SIGTERM")}catch{}t.delete(D),$({handle:D,status:"stopped",sandboxPath:E(D),port:null,previewUrl:null,repoCloneUrl:null,branch:null,projectName:null,error:null}),w({handle:D,phase:"deleted"})},async shutdown(){console.log(`[user-desktop] shutdown \u2014 killing ${t.size} sandbox(es)`);for(let D of t.values())try{D.process.kill("SIGTERM")}catch{}t.clear()}}}function dCt(){return new Promise((i,u)=>{let t=lCt();t.unref(),t.on("error",u),t.listen(0,"127.0.0.1",()=>{let f=t.address();if(f&&typeof f==="object"){let l=f.port;t.close(()=>i(l))}else t.close(()=>u(Error("could not allocate port")))})})}var Cmu=()=>{};import{randomUUID as hCt}from"crypto";import{hostname as _Ct}from"os";async function Mmu(i){let u=_Ct()||void 0;i.monitor?.onMachine?.(u??"this machine");let t=Pbu(i.dataDir,{outFd:i.logFd,perSandboxLog:i.perSandboxLogs,hotReload:i.hotReload}),f=j1i({path:S1i(i.dataDir),managedSandboxRoot:`${i.dataDir}/sandboxes`}),l=!1,c=()=>{if(l)return;l=!0;try{f.close()}catch{}};try{let E=0,$=bmu({dataDir:i.dataDir,registry:f,resolvePreviewUrl:(k,q)=>E>0?`http://${k}.localhost:${E}`:`http://127.0.0.1:${q}`,spawnDaemon:async(k)=>{let q={DAEMON_BOOT_ID:hCt(),APP_ROOT:k.workdir,PROXY_PORT:String(k.port),DAEMON_TOKEN:k.daemonToken,OFFLOAD_ALLOWED_HOSTS:k.offloadAllowedHosts.join(","),...k.offloadAllowSameHostDev?{OFFLOAD_ALLOW_SAME_HOST_DEV:"1"}:{}};if(k.orgFsConfigJson){let W=await kbu(i.dataDir);if(W)q.ORGFS_CONFIG=k.orgFsConfigJson,q.ORGFS_RCLONE_PATH=W}let J=await t({workdir:k.workdir,env:q,daemonPort:k.port});return{port:k.port,kill:(W)=>J.kill(W),exited:J.exited.then(()=>{return})}},postConfig:async(k,q,J,W)=>{let r={port:q};if(J.workload)r.runtime=J.workload.runtime,r.packageManager={name:J.workload.packageManager,...J.workload.packageManagerPath?{path:J.workload.packageManagerPath}:{}};let Y={application:r},li=hh(J.operator??null);if(li)Y.operator=li;if(J.repo)Y.git={repository:{cloneUrl:J.repo.cloneUrl,branch:J.repo.branch},...J.repo.userName&&J.repo.userEmail?{identity:{userName:J.repo.userName,userEmail:J.repo.userEmail}}:{}};await t2(`http://127.0.0.1:${k}`,W,Y)},waitForHealth:async(k)=>{await Sli(`http://127.0.0.1:${k}`)},maxSandboxes:20,onEvent:i.monitor?.onEvent}),w=await Omu({port:i.port,lookupSandboxPort:(k)=>$.proxyPort(k)});E=w.port,console.log(`Local ingress listening on http://127.0.0.1:${w.port} (use http://<handle>.localhost:${w.port}/)`),i.monitor?.onIngress?.(w.port);let d=Sbu({provider:$}),h=async()=>{let k=await u2({dataDir:i.dataDir,target:i.clusterBaseUrl});if(!k)throw Object.assign(Error(`Session for ${i.clusterBaseUrl} is no longer valid \u2014 run \`deco auth login --target ${i.clusterBaseUrl}\` and restart \`deco link\`.`),{fatal:!0});return k.accessToken},_=await Imu(i.dataDir),v=process.env.npm_package_version??"0.0.0",n=await xRi(),D=Pmu(n,{onChange:(k)=>{console.log(`[link-daemon] capabilities detected: +${k.join(",")} (now: ${n.join(",")})`)}}),O=gzi({path:`${i.dataDir}/link/outbox.sqlite`});O.clear();let N=()=>{},y=new AbortController,Z={clusterBaseUrl:i.clusterBaseUrl,getAccessToken:h,provider:$,outbox:O,controlHandler:d,capabilities:n,machineId:_,cliVersion:v,previewPort:w.port,onConnected:()=>{i.monitor?.onCluster?.("linked"),console.log(`Linked to ${i.clusterBaseUrl}`)},onShutdown:()=>N(),runLifetimeSignal:y.signal};console.log(`[link-daemon] transport=tunnel cluster=${i.clusterBaseUrl}`);let T=await lmu(Z);console.log("[link-daemon] active transport=tunnel");let B,F=new Promise((k)=>{B=k}),A=!1,S=async()=>{if(A)return;A=!0,y.abort(),console.log(`
84514
84514
  Shutting down\u2026`),D();try{await T.close()}catch{}try{await w.stop()}catch{}try{await $.shutdown()}catch{}try{O.close()}catch{}c(),B(0)};process.on("SIGINT",()=>void S()),process.on("SIGTERM",()=>void S()),N=()=>{console.log("Disconnect requested from the Studio web UI \u2014 shutting down. Run `bunx decocms@latest link` to reconnect."),S()},T.closed.then(()=>{if(i.monitor?.onCluster?.("closed"),!A)console.error("Cluster connection closed permanently; exiting."),S()});let I=Qmu({provider:$,registry:f,dataDir:i.dataDir});return{stopped:F,stop:S,stopSandbox:I.stopSandbox,removeSandbox:I.removeSandbox,inspectSandbox:I.inspectSandbox}}catch(E){throw c(),E}}var qmu=g(()=>{wzi();NM();Abu();Gbu();jbu();Ozi();cmu();Nmu();Amu();xmu();OM();kRi();zmu();Cmu()});function GRi(i){return i.map((u)=>typeof u==="string"?u:String(u)).join(" ")}import{createServer as vCt}from"net";async function DCt(i){for(let u of nCt)if(await SRi(i,u))return u;return null}async function Vmu(i,{intervalMs:u=1000}={}){for(;;){let t=await DCt(i);if(t)return t;await O0(u)}}function SRi(i,u){return new Promise((t)=>{let f=vCt();f.once("error",(l)=>{t(l.code==="EADDRINUSE")}),f.listen(i,u,()=>{f.close(()=>t(!1))})})}var nCt;var jRi=g(()=>{N4();nCt=["localhost","127.0.0.1","0.0.0.0"]});function rmu(i){return typeof i==="object"&&i!==null&&"code"in i&&i.code==="EADDRINUSE"}function gCt(i,u=process.platform){if(u==="win32")return`for /f "tokens=5" %P in ('netstat -ano ^| findstr /R /C:":${i} .*LISTENING"') do taskkill /F /PID %P`;return`kill -9 $(lsof -ti tcp:${i})`}function mmu(i,u=process.platform){return[`Port ${i} is already in use.`,"Run this command to stop the process listening on it, then retry `decocms link`:","",` ${gCt(i,u)}`].join(`
84515
- `)}var KRi;var emu=g(()=>{KRi=class KRi extends Error{port;code="EADDRINUSE";constructor(i){super(`Port ${i} is already in use.`);this.port=i;this.name="PortInUseError"}}});var aL;var K1i=g(()=>{aL={name:"decocms",version:"4.64.1",description:"Deco CMS \u2014 Self-hostable MCP Gateway for managing AI connections and tools",author:"Deco team",repository:{type:"git",url:"git+https://github.com/decocms/studio.git",directory:"apps/mesh"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:'bun run migrate && concurrently "bun run dev:client" "bun run dev:server"',"dev:servers":'concurrently "bun run dev:client" "bun run dev:server"',"dev:client":"vite dev","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts","build:client":"bun --bun vite build","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","db:migrate":"bun run ./dist/server/migrate.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts",test:"bun test","test:ct":"playwright test -c playwright-ct.config.ts","test:ct:ui":"playwright test -c playwright-ct.config.ts --ui","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts","smoke:link":"bun run scripts/smoke-link.ts",prepublishOnly:"bun run build:client && bun run build:server"},optionalDependencies:{"@anthropic-ai/claude-agent-sdk":"^0.3.181","@duckdb/node-api":"^1.5.0-r.1","@openai/codex":"0.144.3","@openai/codex-darwin-arm64":"npm:@openai/codex@0.144.3-darwin-arm64","@openai/codex-darwin-x64":"npm:@openai/codex@0.144.3-darwin-x64","@openai/codex-linux-arm64":"npm:@openai/codex@0.144.3-linux-arm64","@openai/codex-linux-x64":"npm:@openai/codex@0.144.3-linux-x64","@openai/codex-win32-arm64":"npm:@openai/codex@0.144.3-win32-arm64","@openai/codex-win32-x64":"npm:@openai/codex@0.144.3-win32-x64"},dependencies:{"@ai-sdk/anthropic":"^3.0.85","@ai-sdk/google":"^3.0.83","@ai-sdk/openai":"^3.0.73","@anthropic-ai/sdk":"^0.105.0","@aws-sdk/client-s3":"^3.1013.0","@aws-sdk/client-sts":"^3.1013.0","@aws-sdk/lib-storage":"^3.1013.0","@aws-sdk/s3-request-presigner":"^3.1013.0","@clickhouse/client":"^1.8.1","@dbos-inc/dbos-sdk":"^4.21.6","@dnd-kit/core":"^6.3.1","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@inkjs/ui":"^2.0.0","@modelcontextprotocol/ext-apps":"^1.7.1","@nats-io/jetstream":"3.4.0","@nats-io/kv":"3.4.0","@nats-io/nats-core":"3.4.0","@nats-io/transport-node":"3.4.0","@openrouter/ai-sdk-provider":"^2.9.1","@opentelemetry/core":"^2.6.0","@tanstack/react-virtual":"3.13.24","@tiptap/extension-text-align":"3.20.2","@xterm/addon-fit":"^0.11.0","@xterm/xterm":"^6.0.0",echarts:"^5.6.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12","node-pty":"^1.0.0","posthog-js":"^1.371.1","posthog-node":"^5.0.0",react:"^19.2.6","react-dom":"^19.2.6","use-stick-to-bottom":"^1.1.6"},devDependencies:{"@ai-sdk/provider":"^3.0.10","@ai-sdk/react":"^3.0.210","@better-auth/sso":"1.4.1","@daveyplate/better-auth-ui":"^3.2.7","@deco/ui":"workspace:*","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/harness":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/mesh-sdk":"workspace:*","@decocms/runtime":"workspace:*","@decocms/sandbox":"workspace:*","@decocms/std":"workspace:*","@decocms/tunnel":"workspace:*","@floating-ui/react":"^0.27.16","@happy-dom/global-registrator":"^20.9.0","@hookform/resolvers":"^5.2.2","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.29.0","@monaco-editor/react":"^4.7.0","@nats-io/jwt":"0.0.10-5","@opentelemetry/api":"^1.9.0","@opentelemetry/api-logs":"^0.211.0","@opentelemetry/exporter-logs-otlp-proto":"^0.211.0","@opentelemetry/exporter-prometheus":"^0.208.0","@opentelemetry/exporter-trace-otlp-proto":"^0.207.0","@opentelemetry/instrumentation-runtime-node":"^0.24.0","@opentelemetry/resources":"^2.6.0","@opentelemetry/sdk-logs":"^0.211.0","@opentelemetry/sdk-metrics":"^2.2.0","@opentelemetry/sdk-node":"^0.207.0","@opentelemetry/sdk-trace-base":"^2.5.0","@playwright/experimental-ct-react":"1.59.1","@playwright/test":"^1.58.2","@radix-ui/react-avatar":"^1.1.10","@radix-ui/react-checkbox":"^1.3.3","@radix-ui/react-dialog":"^1.1.15","@radix-ui/react-dropdown-menu":"^2.1.16","@radix-ui/react-label":"^2.1.7","@radix-ui/react-select":"^2.2.6","@radix-ui/react-separator":"^1.1.7","@radix-ui/react-slot":"^1.2.3","@radix-ui/react-tabs":"^1.1.13","@rjsf/shadcn":"^6.6.2","@rjsf/utils":"^6.6.2","@rjsf/validator-ajv8":"^6.6.2","@tailwindcss/vite":"^4.1.17","@tanstack/react-query":"5.100.10","@tanstack/react-router":"1.169.2","@testing-library/jest-dom":"^6.9.1","@testing-library/react":"^16.3.2","@tiptap/core":"3.20.2","@tiptap/extension-placeholder":"3.20.2","@tiptap/pm":"3.20.2","@tiptap/react":"3.20.2","@tiptap/starter-kit":"3.20.2","@tiptap/suggestion":"3.20.2","@types/bun":"^1.3.1","@types/google.maps":"^3.65.2","@types/pg":"^8.15.6","@types/react-syntax-highlighter":"^15.5.13","@untitledui/icons":"^0.0.19","@vercel/nft":"^1.1.1","@vitejs/plugin-react":"^5.1.0",ai:"^6.0.208","babel-plugin-react-compiler":"^1.0.0","better-auth":"1.4.22","class-variance-authority":"^0.7.1",clsx:"^2.1.1",concurrently:"^9.2.1",croner:"^9.1.0","date-fns":"^4.1.0",degit:"^2.8.4",hono:"^4.10.7","input-otp":"^1.4.2",jose:"^6.0.11","lucide-react":"^0.468.0",marked:"^15.0.6",nanoid:"^5.1.6",pg:"^8.16.3",prettier:"^3.4.2","react-hook-form":"^7.66.0","react-markdown":"^10.1.0","react-resizable-panels":"^2.1.7","react-syntax-highlighter":"^15.6.1",recharts:"^3.6.0","rehype-raw":"^7.0.0","remark-gfm":"^4.0.0","sass-embedded":"^1.97.2",sonner:"^2.0.7","tailwind-merge":"^3.3.1",tailwindcss:"^4.1.17",typescript:"^5.9.3",vite:"^7.2.1","vite-tsconfig-paths":"^5.1.4",zod:"^4.0.0"},homepage:"https://github.com/decocms/studio",keywords:["mcp","model-context-protocol","ai","gateway","self-hosted","mesh","tools"],license:"MIT",publishConfig:{access:"public"}}});var eM={};Wi(eM,{printBanner:()=>yCt,bannerLines:()=>amu,BANNER_LINES:()=>J1i,BANNER_GRADIENT:()=>X1i});function NCt(i){let u=Number.parseInt(i.slice(1),16);return[u>>16&255,u>>8&255,u&255]}function amu(i){let u=J1i.map((t,f)=>{let[l,c,E]=NCt(X1i[f]);return`\x1B[38;2;${l};${c};${E}m${t}\x1B[39m`});if(i!==void 0)u.push(`\x1B[2m v${i}\x1B[22m`);return u}function yCt(i){console.log("");for(let u of amu(i))console.log(u);console.log("")}var J1i,X1i;var oL=g(()=>{J1i=[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588 \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2588 \u2591 \u2588\u2588\u2588 \u2591\u2591\u2591 \u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2591\u2591\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591 \u2588\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591 ","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591 "],X1i=["#00ff64","#00ee5e","#00dc56","#00c84e","#00b444","#00a03c","#008832","#006e28"]});import{Box as ZCt,Text as omu}from"ink";import{jsx as TCt,jsxs as smu}from"react/jsx-runtime";function L1i({version:i}){return smu(ZCt,{flexDirection:"column",marginTop:1,children:[J1i.map((u,t)=>TCt(omu,{color:X1i[t],children:u},t)),smu(omu,{dimColor:!0,children:[" v",i]})]})}var JRi=g(()=>{oL()});function pmu(i){let u=i.branch??i.handle,t=[];if(i.dirtyCount>0)t.push(`${i.dirtyCount} uncommitted file${i.dirtyCount===1?"":"s"}`);if(i.merged===!1)t.push("branch not merged");return t.length>0?`\u26A0 ${t.join(", ")} \u2014 delete ${u}? (y/n)`:`Delete ${u}? (y/n)`}function sL(i){return[...i.values()].map((u)=>u.handle).sort((u,t)=>u.localeCompare(t))}function ieu(i,u,t){if(i.length===0)return null;let f=u===null?-1:i.indexOf(u);if(f===-1)return t>0?i[0]:i[i.length-1];let l=Math.max(0,Math.min(i.length-1,f+t));return i[l]}function ueu(i,u,t){if(t!==u)return t;let f=i.indexOf(u);if(f===-1)return t;return i[f+1]??i[f-1]??null}var YRi={};Wi(YRi,{subscribeLinkState:()=>XRi,setSelectedHandle:()=>LRi,setRemoving:()=>Q1i,setPersistedSandboxes:()=>SCt,setPendingConfirm:()=>oM,setMachine:()=>ICt,setLogPath:()=>kCt,setLinkActions:()=>GCt,setIngress:()=>ACt,setDaemonError:()=>xCt,setClusterUrl:()=>PCt,setCluster:()=>UCt,setActionError:()=>Y1i,resetLinkStateForTests:()=>KCt,removeSandboxRow:()=>WRi,pushSandboxEvent:()=>jCt,getLinkState:()=>aM,applySandboxEvent:()=>teu});function FCt(i){return i==="spawning"||i==="ready"||i==="failed"}function teu(i,u){let t=new Map(i),f=t.get(u.handle);if(u.phase==="evicted"||u.phase==="deleted"){if(f)t.set(u.handle,{...f,port:null,previewUrl:null,status:"stopped",error:null});return t}return t.set(u.handle,{handle:u.handle,port:u.port??f?.port??null,previewUrl:u.previewUrl??f?.previewUrl??null,status:u.phase,error:u.phase==="failed"?u.error??"failed":null,projectName:u.projectName??f?.projectName??null,branch:u.branch??f?.branch??null,sandboxPath:u.sandboxPath??f?.sandboxPath??null}),t}function feu(){return{cluster:"connecting",clusterUrl:null,ingressUrl:null,ingressPort:null,machine:null,cap:BCt,sandboxes:new Map,daemonError:null,logPath:null,selectedHandle:null,pendingConfirm:null,removingHandles:new Set,actionError:null,actions:null}}function Q$(){for(let i of W1i)i()}function aM(){return cf}function XRi(i){return W1i.add(i),()=>W1i.delete(i)}function UCt(i){cf={...cf,cluster:i},Q$()}function PCt(i){cf={...cf,clusterUrl:i},Q$()}function ACt(i,u){cf={...cf,ingressPort:i,ingressUrl:u},Q$()}function ICt(i){cf={...cf,machine:i},Q$()}function xCt(i){cf={...cf,daemonError:i},Q$()}function kCt(i){cf={...cf,logPath:i},Q$()}function LRi(i){cf={...cf,selectedHandle:i},Q$()}function oM(i){cf={...cf,pendingConfirm:i},Q$()}function Y1i(i){cf={...cf,actionError:i},Q$()}function Q1i(i,u){if(cf.removingHandles.has(i)===u)return;let t=new Set(cf.removingHandles);if(u)t.add(i);else t.delete(i);cf={...cf,removingHandles:t},Q$()}function GCt(i){cf={...cf,actions:i},Q$()}function WRi(i){let u=sL(cf.sandboxes),t=ueu(u,i,cf.selectedHandle),f=new Map(cf.sandboxes);f.delete(i);let l=new Set(cf.removingHandles);l.delete(i),cf={...cf,sandboxes:f,selectedHandle:t,pendingConfirm:null,removingHandles:l},Q$()}function SCt(i){let u=new Map;for(let t of i)u.set(t.handle,{handle:t.handle,port:t.port,previewUrl:t.previewUrl,status:t.status,error:t.error,projectName:t.projectName,branch:t.branch,sandboxPath:t.sandboxPath});for(let[t,f]of cf.sandboxes)if(FCt(f.status))u.set(t,f);cf={...cf,sandboxes:u},Q$()}function jCt(i){cf={...cf,sandboxes:teu(cf.sandboxes,i)},Q$()}function KCt(){cf=feu(),W1i.clear()}var BCt=20,cf,W1i;var sM=g(()=>{cf=feu(),W1i=new Set});import{spawn as JCt}from"child_process";function XCt(i){if(i==="darwin")return"open";if(i==="win32")return"start";return"xdg-open"}function leu(i,u=process.platform){let t=XCt(u);try{JCt(t,[i],{stdio:"ignore",detached:!0}).unref()}catch{}}var ceu=()=>{};function Eeu(i,u={}){let t=u.openUrl??leu,f=aM(),l=sL(f.sandboxes),c=f.selectedHandle!==null&&l.includes(f.selectedHandle)?f.selectedHandle:l[0]??null,E=f.actions;switch(i.type){case"move":LRi(ieu(l,f.selectedHandle,i.delta));return;case"open":{if(c===null)return;let $=f.sandboxes.get(c);if($?.status==="ready"&&$.previewUrl)t($.previewUrl);return}case"stop":if(c!==null&&E)E.stopSandbox(c);return;case"delete":{if(c===null||!E)return;let $=E.inspectSandbox(c),w=f.sandboxes.get(c);Y1i(null),oM({handle:c,branch:$?.branch??w?.branch??null,dirtyCount:$?.dirtyCount??0,merged:$?.merged??null});return}case"confirmYes":{let $=f.pendingConfirm;if(oM(null),$===null||!E)return;Q1i($.handle,!0),E.removeSandbox($.handle).then((w)=>{if(w.ok)WRi($.handle);else Q1i($.handle,!1),Y1i(w.error)});return}case"confirmNo":oM(null);return;case"quit":if(E)E.quit();return}}var $eu=g(()=>{sM();ceu()});function weu(i,u,t){if(t)return i==="y"||i==="Y"?{type:"confirmYes"}:{type:"confirmNo"};if(u.upArrow||i==="k")return{type:"move",delta:-1};if(u.downArrow||i==="j")return{type:"move",delta:1};if(i==="s")return{type:"stop"};if(i==="d")return{type:"delete"};if(i==="o")return{type:"open"};if(i==="q"||u.ctrl===!0&&i==="c")return{type:"quit"};return null}var deu={};Wi(deu,{LinkApp:()=>QCt});import{Box as Cl,Text as h1,useInput as LCt}from"ink";import{useSyncExternalStore as WCt}from"react";import{jsx as kf,jsxs as Bh}from"react/jsx-runtime";function YCt(i,u){if(u)return{color:"yellow",text:"\u25CC Removing\u2026"};if(i.status==="ready")return{color:"green",text:"\u25CF Live"};if(i.status==="spawning")return{color:"yellow",text:"\u25CC Starting\u2026"};if(i.status==="stopped")return{color:"gray",text:"\u25A0 Stopped"};if(i.status==="missing")return{color:"yellow",text:"\u25A1 Missing"};if(i.status==="merged")return{color:"cyan",text:"\u2713 Merged"};if(i.status==="invalid")return{color:"red",text:"\u2717 Invalid"};if(i.status==="failed")return{color:"red",text:`\u2717 Failed: ${i.error??"failed"}`};return{color:"red",text:`\u2717 Error: ${i.error??""}`}}function QCt(){let i=WCt(XRi,aM),u=[...i.sandboxes.values()].sort((l,c)=>l.handle.localeCompare(c.handle)),t=sL(i.sandboxes),f=i.selectedHandle!==null&&t.includes(i.selectedHandle)?i.selectedHandle:t[0]??null;return LCt((l,c)=>{let E=weu(l,c,i.pendingConfirm!==null);if(E!==null)Eeu(E)}),Bh(Cl,{flexDirection:"column",children:[kf(L1i,{version:aL.version}),kf(Cl,{marginBottom:1,children:kf(h1,{dimColor:!0,children:"\u2500".repeat(80)})}),kf(Cl,{children:i.cluster==="linked"?Bh(h1,{color:"green",children:["\u2713 Connected to ",i.clusterUrl??"deco"]}):i.cluster==="connecting"?Bh(h1,{color:"yellow",children:["\u25CC Connecting to ",i.clusterUrl??"deco","\u2026"]}):Bh(h1,{color:"red",children:["\u2717 Disconnected from ",i.clusterUrl??"deco"]})}),kf(Cl,{children:i.ingressUrl?Bh(h1,{color:"green",children:["\u2713 Serving at ",i.ingressUrl]}):kf(h1,{dimColor:!0,children:"\u25CC Starting local server\u2026"})}),kf(Cl,{marginBottom:1,children:kf(h1,{dimColor:!0,children:`${"Computer".padEnd(16)}${i.machine??"this computer"} \xB7 ${u.length} of ${i.cap} previews`})}),u.length===0?kf(h1,{dimColor:!0,children:"No previews running yet."}):Bh(Cl,{flexDirection:"column",children:[Bh(Cl,{children:[kf(Cl,{width:2,flexShrink:0}),kf(Cl,{width:pL.project,flexShrink:0,marginRight:1,children:kf(h1,{dimColor:!0,wrap:"truncate-end",children:"PROJECT"})}),kf(Cl,{width:pL.branch,flexShrink:0,marginRight:1,children:kf(h1,{dimColor:!0,wrap:"truncate-end",children:"BRANCH"})}),kf(Cl,{width:pL.status,flexShrink:0,marginRight:1,children:kf(h1,{dimColor:!0,wrap:"truncate-end",children:"STATUS"})}),kf(Cl,{flexGrow:1,children:kf(h1,{dimColor:!0,wrap:"truncate-end",children:"PREVIEW URL"})})]}),u.map((l)=>{let c=YCt(l,i.removingHandles.has(l.handle)),E=l.handle===f;return Bh(Cl,{children:[kf(Cl,{width:2,flexShrink:0,children:kf(h1,{color:"cyan",children:E?"\u203A":" "})}),kf(Cl,{width:pL.project,flexShrink:0,marginRight:1,children:kf(h1,{bold:E,wrap:"truncate-end",children:l.projectName??l.handle})}),kf(Cl,{width:pL.branch,flexShrink:0,marginRight:1,children:kf(h1,{bold:E,wrap:"truncate-end",children:l.branch??"\u2014"})}),kf(Cl,{width:pL.status,flexShrink:0,marginRight:1,children:kf(h1,{color:c.color,bold:E,wrap:"truncate-end",children:c.text})}),kf(Cl,{flexGrow:1,children:kf(h1,{dimColor:!0,wrap:"truncate-end",children:l.previewUrl??"\u2014"})})]},l.handle)})]}),i.daemonError?kf(Cl,{marginTop:1,children:Bh(h1,{color:"red",children:["\u26A0 ",i.daemonError]})}):null,i.logPath?kf(Cl,{marginTop:1,children:Bh(h1,{dimColor:!0,children:["Logs: ",i.logPath]})}):null,i.pendingConfirm?kf(Cl,{marginTop:1,children:kf(h1,{color:"yellow",children:pmu(i.pendingConfirm)})}):null,i.actionError?kf(Cl,{marginTop:1,children:Bh(h1,{color:"red",children:["\u2717 ",i.actionError]})}):null,kf(Cl,{marginTop:1,children:kf(h1,{dimColor:!0,children:"\u2191\u2193 move \xB7 s stop \xB7 d delete \xB7 o open \xB7 q quit"})})]})}var pL;var heu=g(()=>{K1i();JRi();$eu();sM();pL={project:18,branch:22,status:14}});var _eu={};Wi(_eu,{runLinkCommand:()=>VCt});import{closeSync as zCt,mkdirSync as HCt,openSync as RCt,writeSync as bCt}from"fs";import{homedir as CCt}from"os";import{join as QRi}from"path";function MCt(i,u){let t={log:console.log,warn:console.warn,error:console.error},f=(l)=>{if(u===void 0)return;try{bCt(u,`${GRi(l)}
84515
+ `)}var KRi;var emu=g(()=>{KRi=class KRi extends Error{port;code="EADDRINUSE";constructor(i){super(`Port ${i} is already in use.`);this.port=i;this.name="PortInUseError"}}});var aL;var K1i=g(()=>{aL={name:"decocms",version:"4.65.0",description:"Deco CMS \u2014 Self-hostable MCP Gateway for managing AI connections and tools",author:"Deco team",repository:{type:"git",url:"git+https://github.com/decocms/studio.git",directory:"apps/mesh"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:'bun run migrate && concurrently "bun run dev:client" "bun run dev:server"',"dev:servers":'concurrently "bun run dev:client" "bun run dev:server"',"dev:client":"vite dev","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts","build:client":"bun --bun vite build","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","db:migrate":"bun run ./dist/server/migrate.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts",test:"bun test","test:ct":"playwright test -c playwright-ct.config.ts","test:ct:ui":"playwright test -c playwright-ct.config.ts --ui","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts","smoke:link":"bun run scripts/smoke-link.ts",prepublishOnly:"bun run build:client && bun run build:server"},optionalDependencies:{"@anthropic-ai/claude-agent-sdk":"^0.3.181","@duckdb/node-api":"^1.5.0-r.1","@openai/codex":"0.144.3","@openai/codex-darwin-arm64":"npm:@openai/codex@0.144.3-darwin-arm64","@openai/codex-darwin-x64":"npm:@openai/codex@0.144.3-darwin-x64","@openai/codex-linux-arm64":"npm:@openai/codex@0.144.3-linux-arm64","@openai/codex-linux-x64":"npm:@openai/codex@0.144.3-linux-x64","@openai/codex-win32-arm64":"npm:@openai/codex@0.144.3-win32-arm64","@openai/codex-win32-x64":"npm:@openai/codex@0.144.3-win32-x64"},dependencies:{"@ai-sdk/anthropic":"^3.0.85","@ai-sdk/google":"^3.0.83","@ai-sdk/openai":"^3.0.73","@anthropic-ai/sdk":"^0.105.0","@aws-sdk/client-s3":"^3.1013.0","@aws-sdk/client-sts":"^3.1013.0","@aws-sdk/lib-storage":"^3.1013.0","@aws-sdk/s3-request-presigner":"^3.1013.0","@clickhouse/client":"^1.8.1","@dbos-inc/dbos-sdk":"^4.21.6","@dnd-kit/core":"^6.3.1","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@inkjs/ui":"^2.0.0","@modelcontextprotocol/ext-apps":"^1.7.1","@nats-io/jetstream":"3.4.0","@nats-io/kv":"3.4.0","@nats-io/nats-core":"3.4.0","@nats-io/transport-node":"3.4.0","@openrouter/ai-sdk-provider":"^2.9.1","@opentelemetry/core":"^2.6.0","@tanstack/react-virtual":"3.13.24","@tiptap/extension-text-align":"3.20.2","@xterm/addon-fit":"^0.11.0","@xterm/xterm":"^6.0.0",echarts:"^5.6.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12","node-pty":"^1.0.0","posthog-js":"^1.371.1","posthog-node":"^5.0.0",react:"^19.2.6","react-dom":"^19.2.6","use-stick-to-bottom":"^1.1.6"},devDependencies:{"@ai-sdk/provider":"^3.0.10","@ai-sdk/react":"^3.0.210","@better-auth/sso":"1.4.1","@daveyplate/better-auth-ui":"^3.2.7","@deco/ui":"workspace:*","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/harness":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/mesh-sdk":"workspace:*","@decocms/runtime":"workspace:*","@decocms/sandbox":"workspace:*","@decocms/std":"workspace:*","@decocms/tunnel":"workspace:*","@floating-ui/react":"^0.27.16","@happy-dom/global-registrator":"^20.9.0","@hookform/resolvers":"^5.2.2","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.29.0","@monaco-editor/react":"^4.7.0","@nats-io/jwt":"0.0.10-5","@opentelemetry/api":"^1.9.0","@opentelemetry/api-logs":"^0.211.0","@opentelemetry/exporter-logs-otlp-proto":"^0.211.0","@opentelemetry/exporter-prometheus":"^0.208.0","@opentelemetry/exporter-trace-otlp-proto":"^0.207.0","@opentelemetry/instrumentation-runtime-node":"^0.24.0","@opentelemetry/resources":"^2.6.0","@opentelemetry/sdk-logs":"^0.211.0","@opentelemetry/sdk-metrics":"^2.2.0","@opentelemetry/sdk-node":"^0.207.0","@opentelemetry/sdk-trace-base":"^2.5.0","@playwright/experimental-ct-react":"1.59.1","@playwright/test":"^1.58.2","@radix-ui/react-avatar":"^1.1.10","@radix-ui/react-checkbox":"^1.3.3","@radix-ui/react-dialog":"^1.1.15","@radix-ui/react-dropdown-menu":"^2.1.16","@radix-ui/react-label":"^2.1.7","@radix-ui/react-select":"^2.2.6","@radix-ui/react-separator":"^1.1.7","@radix-ui/react-slot":"^1.2.3","@radix-ui/react-tabs":"^1.1.13","@rjsf/shadcn":"^6.6.2","@rjsf/utils":"^6.6.2","@rjsf/validator-ajv8":"^6.6.2","@tailwindcss/vite":"^4.1.17","@tanstack/react-query":"5.100.10","@tanstack/react-router":"1.169.2","@testing-library/jest-dom":"^6.9.1","@testing-library/react":"^16.3.2","@tiptap/core":"3.20.2","@tiptap/extension-placeholder":"3.20.2","@tiptap/pm":"3.20.2","@tiptap/react":"3.20.2","@tiptap/starter-kit":"3.20.2","@tiptap/suggestion":"3.20.2","@types/bun":"^1.3.1","@types/google.maps":"^3.65.2","@types/pg":"^8.15.6","@types/react-syntax-highlighter":"^15.5.13","@untitledui/icons":"^0.0.19","@vercel/nft":"^1.1.1","@vitejs/plugin-react":"^5.1.0",ai:"^6.0.208","babel-plugin-react-compiler":"^1.0.0","better-auth":"1.4.22","class-variance-authority":"^0.7.1",clsx:"^2.1.1",concurrently:"^9.2.1",croner:"^9.1.0","date-fns":"^4.1.0",degit:"^2.8.4",hono:"^4.10.7","input-otp":"^1.4.2",jose:"^6.0.11","lucide-react":"^0.468.0",marked:"^15.0.6",nanoid:"^5.1.6",pg:"^8.16.3",prettier:"^3.4.2","react-hook-form":"^7.66.0","react-markdown":"^10.1.0","react-resizable-panels":"^2.1.7","react-syntax-highlighter":"^15.6.1",recharts:"^3.6.0","rehype-raw":"^7.0.0","remark-gfm":"^4.0.0","sass-embedded":"^1.97.2",sonner:"^2.0.7","tailwind-merge":"^3.3.1",tailwindcss:"^4.1.17",typescript:"^5.9.3",vite:"^7.2.1","vite-tsconfig-paths":"^5.1.4",zod:"^4.0.0"},homepage:"https://github.com/decocms/studio",keywords:["mcp","model-context-protocol","ai","gateway","self-hosted","mesh","tools"],license:"MIT",publishConfig:{access:"public"}}});var eM={};Wi(eM,{printBanner:()=>yCt,bannerLines:()=>amu,BANNER_LINES:()=>J1i,BANNER_GRADIENT:()=>X1i});function NCt(i){let u=Number.parseInt(i.slice(1),16);return[u>>16&255,u>>8&255,u&255]}function amu(i){let u=J1i.map((t,f)=>{let[l,c,E]=NCt(X1i[f]);return`\x1B[38;2;${l};${c};${E}m${t}\x1B[39m`});if(i!==void 0)u.push(`\x1B[2m v${i}\x1B[22m`);return u}function yCt(i){console.log("");for(let u of amu(i))console.log(u);console.log("")}var J1i,X1i;var oL=g(()=>{J1i=[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588 \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2588 \u2591 \u2588\u2588\u2588 \u2591\u2591\u2591 \u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2591\u2591\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591 \u2588\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591 ","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591 "],X1i=["#00ff64","#00ee5e","#00dc56","#00c84e","#00b444","#00a03c","#008832","#006e28"]});import{Box as ZCt,Text as omu}from"ink";import{jsx as TCt,jsxs as smu}from"react/jsx-runtime";function L1i({version:i}){return smu(ZCt,{flexDirection:"column",marginTop:1,children:[J1i.map((u,t)=>TCt(omu,{color:X1i[t],children:u},t)),smu(omu,{dimColor:!0,children:[" v",i]})]})}var JRi=g(()=>{oL()});function pmu(i){let u=i.branch??i.handle,t=[];if(i.dirtyCount>0)t.push(`${i.dirtyCount} uncommitted file${i.dirtyCount===1?"":"s"}`);if(i.merged===!1)t.push("branch not merged");return t.length>0?`\u26A0 ${t.join(", ")} \u2014 delete ${u}? (y/n)`:`Delete ${u}? (y/n)`}function sL(i){return[...i.values()].map((u)=>u.handle).sort((u,t)=>u.localeCompare(t))}function ieu(i,u,t){if(i.length===0)return null;let f=u===null?-1:i.indexOf(u);if(f===-1)return t>0?i[0]:i[i.length-1];let l=Math.max(0,Math.min(i.length-1,f+t));return i[l]}function ueu(i,u,t){if(t!==u)return t;let f=i.indexOf(u);if(f===-1)return t;return i[f+1]??i[f-1]??null}var YRi={};Wi(YRi,{subscribeLinkState:()=>XRi,setSelectedHandle:()=>LRi,setRemoving:()=>Q1i,setPersistedSandboxes:()=>SCt,setPendingConfirm:()=>oM,setMachine:()=>ICt,setLogPath:()=>kCt,setLinkActions:()=>GCt,setIngress:()=>ACt,setDaemonError:()=>xCt,setClusterUrl:()=>PCt,setCluster:()=>UCt,setActionError:()=>Y1i,resetLinkStateForTests:()=>KCt,removeSandboxRow:()=>WRi,pushSandboxEvent:()=>jCt,getLinkState:()=>aM,applySandboxEvent:()=>teu});function FCt(i){return i==="spawning"||i==="ready"||i==="failed"}function teu(i,u){let t=new Map(i),f=t.get(u.handle);if(u.phase==="evicted"||u.phase==="deleted"){if(f)t.set(u.handle,{...f,port:null,previewUrl:null,status:"stopped",error:null});return t}return t.set(u.handle,{handle:u.handle,port:u.port??f?.port??null,previewUrl:u.previewUrl??f?.previewUrl??null,status:u.phase,error:u.phase==="failed"?u.error??"failed":null,projectName:u.projectName??f?.projectName??null,branch:u.branch??f?.branch??null,sandboxPath:u.sandboxPath??f?.sandboxPath??null}),t}function feu(){return{cluster:"connecting",clusterUrl:null,ingressUrl:null,ingressPort:null,machine:null,cap:BCt,sandboxes:new Map,daemonError:null,logPath:null,selectedHandle:null,pendingConfirm:null,removingHandles:new Set,actionError:null,actions:null}}function Q$(){for(let i of W1i)i()}function aM(){return cf}function XRi(i){return W1i.add(i),()=>W1i.delete(i)}function UCt(i){cf={...cf,cluster:i},Q$()}function PCt(i){cf={...cf,clusterUrl:i},Q$()}function ACt(i,u){cf={...cf,ingressPort:i,ingressUrl:u},Q$()}function ICt(i){cf={...cf,machine:i},Q$()}function xCt(i){cf={...cf,daemonError:i},Q$()}function kCt(i){cf={...cf,logPath:i},Q$()}function LRi(i){cf={...cf,selectedHandle:i},Q$()}function oM(i){cf={...cf,pendingConfirm:i},Q$()}function Y1i(i){cf={...cf,actionError:i},Q$()}function Q1i(i,u){if(cf.removingHandles.has(i)===u)return;let t=new Set(cf.removingHandles);if(u)t.add(i);else t.delete(i);cf={...cf,removingHandles:t},Q$()}function GCt(i){cf={...cf,actions:i},Q$()}function WRi(i){let u=sL(cf.sandboxes),t=ueu(u,i,cf.selectedHandle),f=new Map(cf.sandboxes);f.delete(i);let l=new Set(cf.removingHandles);l.delete(i),cf={...cf,sandboxes:f,selectedHandle:t,pendingConfirm:null,removingHandles:l},Q$()}function SCt(i){let u=new Map;for(let t of i)u.set(t.handle,{handle:t.handle,port:t.port,previewUrl:t.previewUrl,status:t.status,error:t.error,projectName:t.projectName,branch:t.branch,sandboxPath:t.sandboxPath});for(let[t,f]of cf.sandboxes)if(FCt(f.status))u.set(t,f);cf={...cf,sandboxes:u},Q$()}function jCt(i){cf={...cf,sandboxes:teu(cf.sandboxes,i)},Q$()}function KCt(){cf=feu(),W1i.clear()}var BCt=20,cf,W1i;var sM=g(()=>{cf=feu(),W1i=new Set});import{spawn as JCt}from"child_process";function XCt(i){if(i==="darwin")return"open";if(i==="win32")return"start";return"xdg-open"}function leu(i,u=process.platform){let t=XCt(u);try{JCt(t,[i],{stdio:"ignore",detached:!0}).unref()}catch{}}var ceu=()=>{};function Eeu(i,u={}){let t=u.openUrl??leu,f=aM(),l=sL(f.sandboxes),c=f.selectedHandle!==null&&l.includes(f.selectedHandle)?f.selectedHandle:l[0]??null,E=f.actions;switch(i.type){case"move":LRi(ieu(l,f.selectedHandle,i.delta));return;case"open":{if(c===null)return;let $=f.sandboxes.get(c);if($?.status==="ready"&&$.previewUrl)t($.previewUrl);return}case"stop":if(c!==null&&E)E.stopSandbox(c);return;case"delete":{if(c===null||!E)return;let $=E.inspectSandbox(c),w=f.sandboxes.get(c);Y1i(null),oM({handle:c,branch:$?.branch??w?.branch??null,dirtyCount:$?.dirtyCount??0,merged:$?.merged??null});return}case"confirmYes":{let $=f.pendingConfirm;if(oM(null),$===null||!E)return;Q1i($.handle,!0),E.removeSandbox($.handle).then((w)=>{if(w.ok)WRi($.handle);else Q1i($.handle,!1),Y1i(w.error)});return}case"confirmNo":oM(null);return;case"quit":if(E)E.quit();return}}var $eu=g(()=>{sM();ceu()});function weu(i,u,t){if(t)return i==="y"||i==="Y"?{type:"confirmYes"}:{type:"confirmNo"};if(u.upArrow||i==="k")return{type:"move",delta:-1};if(u.downArrow||i==="j")return{type:"move",delta:1};if(i==="s")return{type:"stop"};if(i==="d")return{type:"delete"};if(i==="o")return{type:"open"};if(i==="q"||u.ctrl===!0&&i==="c")return{type:"quit"};return null}var deu={};Wi(deu,{LinkApp:()=>QCt});import{Box as Cl,Text as h1,useInput as LCt}from"ink";import{useSyncExternalStore as WCt}from"react";import{jsx as kf,jsxs as Bh}from"react/jsx-runtime";function YCt(i,u){if(u)return{color:"yellow",text:"\u25CC Removing\u2026"};if(i.status==="ready")return{color:"green",text:"\u25CF Live"};if(i.status==="spawning")return{color:"yellow",text:"\u25CC Starting\u2026"};if(i.status==="stopped")return{color:"gray",text:"\u25A0 Stopped"};if(i.status==="missing")return{color:"yellow",text:"\u25A1 Missing"};if(i.status==="merged")return{color:"cyan",text:"\u2713 Merged"};if(i.status==="invalid")return{color:"red",text:"\u2717 Invalid"};if(i.status==="failed")return{color:"red",text:`\u2717 Failed: ${i.error??"failed"}`};return{color:"red",text:`\u2717 Error: ${i.error??""}`}}function QCt(){let i=WCt(XRi,aM),u=[...i.sandboxes.values()].sort((l,c)=>l.handle.localeCompare(c.handle)),t=sL(i.sandboxes),f=i.selectedHandle!==null&&t.includes(i.selectedHandle)?i.selectedHandle:t[0]??null;return LCt((l,c)=>{let E=weu(l,c,i.pendingConfirm!==null);if(E!==null)Eeu(E)}),Bh(Cl,{flexDirection:"column",children:[kf(L1i,{version:aL.version}),kf(Cl,{marginBottom:1,children:kf(h1,{dimColor:!0,children:"\u2500".repeat(80)})}),kf(Cl,{children:i.cluster==="linked"?Bh(h1,{color:"green",children:["\u2713 Connected to ",i.clusterUrl??"deco"]}):i.cluster==="connecting"?Bh(h1,{color:"yellow",children:["\u25CC Connecting to ",i.clusterUrl??"deco","\u2026"]}):Bh(h1,{color:"red",children:["\u2717 Disconnected from ",i.clusterUrl??"deco"]})}),kf(Cl,{children:i.ingressUrl?Bh(h1,{color:"green",children:["\u2713 Serving at ",i.ingressUrl]}):kf(h1,{dimColor:!0,children:"\u25CC Starting local server\u2026"})}),kf(Cl,{marginBottom:1,children:kf(h1,{dimColor:!0,children:`${"Computer".padEnd(16)}${i.machine??"this computer"} \xB7 ${u.length} of ${i.cap} previews`})}),u.length===0?kf(h1,{dimColor:!0,children:"No previews running yet."}):Bh(Cl,{flexDirection:"column",children:[Bh(Cl,{children:[kf(Cl,{width:2,flexShrink:0}),kf(Cl,{width:pL.project,flexShrink:0,marginRight:1,children:kf(h1,{dimColor:!0,wrap:"truncate-end",children:"PROJECT"})}),kf(Cl,{width:pL.branch,flexShrink:0,marginRight:1,children:kf(h1,{dimColor:!0,wrap:"truncate-end",children:"BRANCH"})}),kf(Cl,{width:pL.status,flexShrink:0,marginRight:1,children:kf(h1,{dimColor:!0,wrap:"truncate-end",children:"STATUS"})}),kf(Cl,{flexGrow:1,children:kf(h1,{dimColor:!0,wrap:"truncate-end",children:"PREVIEW URL"})})]}),u.map((l)=>{let c=YCt(l,i.removingHandles.has(l.handle)),E=l.handle===f;return Bh(Cl,{children:[kf(Cl,{width:2,flexShrink:0,children:kf(h1,{color:"cyan",children:E?"\u203A":" "})}),kf(Cl,{width:pL.project,flexShrink:0,marginRight:1,children:kf(h1,{bold:E,wrap:"truncate-end",children:l.projectName??l.handle})}),kf(Cl,{width:pL.branch,flexShrink:0,marginRight:1,children:kf(h1,{bold:E,wrap:"truncate-end",children:l.branch??"\u2014"})}),kf(Cl,{width:pL.status,flexShrink:0,marginRight:1,children:kf(h1,{color:c.color,bold:E,wrap:"truncate-end",children:c.text})}),kf(Cl,{flexGrow:1,children:kf(h1,{dimColor:!0,wrap:"truncate-end",children:l.previewUrl??"\u2014"})})]},l.handle)})]}),i.daemonError?kf(Cl,{marginTop:1,children:Bh(h1,{color:"red",children:["\u26A0 ",i.daemonError]})}):null,i.logPath?kf(Cl,{marginTop:1,children:Bh(h1,{dimColor:!0,children:["Logs: ",i.logPath]})}):null,i.pendingConfirm?kf(Cl,{marginTop:1,children:kf(h1,{color:"yellow",children:pmu(i.pendingConfirm)})}):null,i.actionError?kf(Cl,{marginTop:1,children:Bh(h1,{color:"red",children:["\u2717 ",i.actionError]})}):null,kf(Cl,{marginTop:1,children:kf(h1,{dimColor:!0,children:"\u2191\u2193 move \xB7 s stop \xB7 d delete \xB7 o open \xB7 q quit"})})]})}var pL;var heu=g(()=>{K1i();JRi();$eu();sM();pL={project:18,branch:22,status:14}});var _eu={};Wi(_eu,{runLinkCommand:()=>VCt});import{closeSync as zCt,mkdirSync as HCt,openSync as RCt,writeSync as bCt}from"fs";import{homedir as CCt}from"os";import{join as QRi}from"path";function MCt(i,u){let t={log:console.log,warn:console.warn,error:console.error},f=(l)=>{if(u===void 0)return;try{bCt(u,`${GRi(l)}
84516
84516
  `)}catch{}};return console.log=(...l)=>f(l),console.warn=(...l)=>f(l),console.error=(...l)=>{f(l),i(GRi(l))},()=>{console.log=t.log,console.warn=t.warn,console.error=t.error}}async function qCt(i,u){let t;try{t=await fetch(`${i}/api/links/me`,{headers:{authorization:`Bearer ${u}`},signal:AbortSignal.timeout(1e4)})}catch{return}if(t.status===401||t.status===403)throw Error(`Authentication rejected by ${i} \u2014 the session token was not accepted. `+`Run \`deco auth login --target ${i}\` and try again.`)}async function VCt(i={}){let u=i.port??5174,t=i.dataDir??process.env.DATA_DIR??process.env.DECOCMS_HOME??QRi(CCt(),"deco"),f=i.clusterBaseUrl??process.env.MESH_CLUSTER_URL??"https://studio.decocms.com",l,c,E,$=()=>{if(E===void 0)return;try{E.close()}catch{}finally{E=void 0}};try{if(await SRi(u,"127.0.0.1"))throw new KRi(u);let w=QRi(t,"sandboxes");E=j1i({path:S1i(t),managedSandboxRoot:w});let d=await Ili({dataDir:t,intent:"Link",target:f});if(process.env.DECOCMS_LINK_MANAGED!=="1")await qCt(f,d.accessToken);let h=E.reconcile();if(i.prune){let D=E.prune({missing:!0,merged:!0});if(!i.tui)console.log(`Pruned local sandboxes: removed ${D.removed.length}, skipped ${D.skipped.length}.`);h=E.reconcile()}let _;if(i.tui){let{render:D}=await import("ink"),{createElement:O}=await import("react"),{LinkApp:N}=await Promise.resolve().then(() => (heu(),deu)),{pushSandboxEvent:y,setCluster:Z,setClusterUrl:T,setDaemonError:B,setIngress:F,setLogPath:A,setMachine:S,setPersistedSandboxes:I}=await Promise.resolve().then(() => (sM(),YRi));HCt(t,{recursive:!0});let k=QRi(t,"link.log");c=RCt(k,"w"),A(k),I(h),T(f),Z("connecting"),_={onEvent:(q)=>y(q),onIngress:(q)=>F(q,`http://127.0.0.1:${q}`),onCluster:(q)=>Z(q),onMachine:(q)=>S(q)},l=MCt(B,c),D(O(N),{patchConsole:!1})}else if(i.banner!==!1){let{printBanner:D}=await Promise.resolve().then(() => (oL(),eM));D(i.version??"0.0.0")}$();let v=process.env.DECOCMS_LINK_MANAGED!=="1",n=await Mmu({port:u,clusterBaseUrl:f,dataDir:t,session:d,monitor:_,logFd:c,perSandboxLogs:v,hotReload:i.hotReload});if(i.tui){let{setLinkActions:D}=await Promise.resolve().then(() => (sM(),YRi));D({stopSandbox:n.stopSandbox,removeSandbox:n.removeSandbox,inspectSandbox:n.inspectSandbox,quit:n.stop})}return await n.stopped}catch(w){return l?.(),console.error(rmu(w)?mmu(u):w instanceof Error?w.message:String(w)),1}finally{if(l?.(),c!==void 0)try{zCt(c)}catch{}$()}}var veu=g(()=>{$zi();qmu();jRi();emu();kRi()});var MRi={};Wi(MRi,{resolveDevLinkClusterUrl:()=>aCt,populateDevLinkToxiProxy:()=>yeu,isDevLinkToxiProxyEnabled:()=>eCt,ensureDevLinkToxiProxy:()=>uMt,buildDevLinkToxiProxyConfig:()=>Oeu,DEV_LINK_TOXIPROXY_SERVICE_NAME:()=>Deu,DEV_LINK_TOXIPROXY_PROXY_NAME:()=>geu});function eCt(i=process.env){return i.DECO_DEV_LINK_TOXIPROXY==="1"}function zRi(i,u){if(!Number.isInteger(i)||i<1||i>65535)throw Error(`${u} must be an integer port in 1..65535`);return i}function Oeu(i){let u=new URL(i.serverUrl);if(u.protocol!=="http:")throw Error("DECO_DEV_LINK_TOXIPROXY only supports http local Studio URLs");let t=zRi(i.apiPort,"apiPort"),f=zRi(i.listenPort,"listenPort");if(u.port.length===0)throw Error("serverUrl must include an explicit valid port");let l=zRi(Number.parseInt(u.port,10),"upstreamPort"),c=`http://127.0.0.1:${l}`,E=`http://127.0.0.1:${f}`;return{serviceName:Deu,proxyName:geu,apiUrl:`http://127.0.0.1:${t}`,listen:`0.0.0.0:${f}`,upstream:`host.docker.internal:${l}`,publicTargetUrl:c,clusterUrl:E,logLine:`[dev-link-toxiproxy] ready: ${E} -> ${c}`}}function aCt(i){return i.toxiproxy?.clusterUrl??i.serverUrl}async function HRi(i,u,t){if(i.ok)return;let f=await i.text();throw Error(`ToxiProxy ${u} failed for ${t}: status=${i.status} statusText=${i.statusText} body=${f}`)}function CRi(i){if(i instanceof Error)return i.name==="Error"?i.message:`${i.name}: ${i.message}`;return String(i)}function Neu(i){if(!(i instanceof Error))return!1;if(i.name==="TimeoutError")return!0;return Neu(i.cause)}async function RRi(i,u,t,f){try{return await i(t,f)}catch(l){throw Error(`ToxiProxy ${u} failed for ${t}: ${CRi(l)}`,{cause:l})}}async function yeu(i,u=fetch){let t=`${i.apiUrl}/reset`,f=await RRi(u,"reset",t,{method:"POST"});await HRi(f,"reset",t);let l=`${i.apiUrl}/populate`,c=await RRi(u,"populate",l,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify([{name:i.proxyName,listen:i.listen,upstream:i.upstream,enabled:!0}])});await HRi(c,"populate",l)}async function oCt(i,u){let t=`${i.apiUrl}/version`;try{await U1(async()=>{let f=await RRi(u,"readiness check",t,{method:"GET",signal:AbortSignal.timeout(mCt)});await HRi(f,"readiness check",t)},{maxAttempts:rCt,minTimeout:neu,maxTimeout:neu,multiplier:1,jitter:0,isRetriable:(f)=>!Neu(f)})}catch(f){let l=f instanceof Lc?f.cause:f;throw Error(`ToxiProxy API did not become ready at ${t}: ${CRi(l)}`,{cause:l})}}async function sCt(i){if(i===null)return"";return await new Response(i).text()}async function bRi(i,u={}){let t=["docker",...i].join(" "),f=(()=>{try{return Bun.spawn(["docker",...i],{stdout:"ignore",stderr:"pipe"})}catch($){throw Error(`Docker command failed to start (${t}): ${CRi($)}`,{cause:$})}})(),[l,c]=await Promise.all([f.exited,sCt(f.stderr)]);if(l===0||u.ignoreFailure===!0)return;let E=c.trim().length>0?`: ${c.trim()}`:"";throw Error(`Docker command failed (${t}) with exit ${l}${E}`)}async function pCt(i,u){let t=`deco-dev-link-toxiproxy-${i}`;await bRi(["rm","-f",t],{ignoreFailure:!0}),await bRi(["run","--rm","-d","--name",t,"-p",`127.0.0.1:${i}:8474`,"-p",`127.0.0.1:${u}:${u}`,"ghcr.io/shopify/toxiproxy:2.12.0","-host=0.0.0.0"])}async function iMt(i,u){let t=`deco-dev-link-toxiproxy-${i}`;await bRi(["rm","-f",t],{ignoreFailure:!0})}async function uMt(i){let u=Oeu(i),t=i.startDaemon??pCt,f=i.stopDaemon??(i.startDaemon===void 0?iMt:void 0);await t(i.apiPort,i.listenPort);let l=i.fetchImpl??fetch;try{await oCt(u,l),await yeu(u,l)}catch(c){if(f!==void 0)try{await f(i.apiPort,i.listenPort)}catch{}throw c}return{config:u,stop:async()=>{if(f!==void 0)await f(i.apiPort,i.listenPort)}}}var Deu="ToxiProxy",geu="dev_link_studio",rCt=20,neu=100,mCt=100;var qRi=g(()=>{N4()});var Zeu={};Wi(Zeu,{migrateBetterAuth:()=>VRi});import{getMigrations as tMt}from"better-auth/db";import{sso as fMt}from"@better-auth/sso";import{organization as lMt}from"@decocms/better-auth/plugins";import{admin as cMt,apiKey as EMt,jwt as $Mt,magicLink as wMt,mcp as dMt,openAPI as hMt}from"better-auth/plugins";import{emailOTP as _Mt}from"better-auth/plugins/email-otp";async function VRi(i){let t={database:hM(i||o8()),plugins:[lMt({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),cMt(),EMt(),$Mt(),hMt(),dMt({loginPage:"/login"}),fMt(),wMt({sendMagicLink:async()=>{}}),_Mt({sendVerificationOTP:async()=>{}})]},{toBeAdded:f,toBeCreated:l,runMigrations:c}=await tMt(t);if(!f.length&&!l.length)return"up to date";return await c(),`${l.length+f.length} table(s) migrated`}var rRi=g(()=>{lE()});var mRi={};Wi(mRi,{up:()=>vMt,down:()=>nMt});import{sql as Ev}from"kysely";async function vMt(i){await i.schema.createTable("connections").addColumn("id","text",(u)=>u.primaryKey()).addColumn("organizationId","text",(u)=>u.notNull().references("organization.id").onDelete("cascade")).addColumn("createdById","text",(u)=>u.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(u)=>u.notNull()).addColumn("description","text").addColumn("icon","text").addColumn("appName","text").addColumn("appId","text").addColumn("connectionType","text",(u)=>u.notNull()).addColumn("connectionUrl","text",(u)=>u.notNull()).addColumn("connectionToken","text").addColumn("connectionHeaders","text").addColumn("oauthConfig","text").addColumn("metadata","text").addColumn("tools","text").addColumn("bindings","text").addColumn("status","text",(u)=>u.notNull().defaultTo("active")).addColumn("createdAt","text",(u)=>u.notNull().defaultTo(Ev`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(u)=>u.notNull().defaultTo(Ev`CURRENT_TIMESTAMP`)).execute(),await i.schema.createTable("api_keys").addColumn("id","text",(u)=>u.primaryKey()).addColumn("userId","text",(u)=>u.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(u)=>u.notNull()).addColumn("hashedKey","text",(u)=>u.notNull().unique()).addColumn("permissions","text",(u)=>u.notNull()).addColumn("expiresAt","text").addColumn("remaining","integer").addColumn("metadata","text").addColumn("createdAt","text",(u)=>u.notNull().defaultTo(Ev`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(u)=>u.notNull().defaultTo(Ev`CURRENT_TIMESTAMP`)).execute(),await i.schema.createTable("audit_logs").addColumn("id","text",(u)=>u.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(u)=>u.references("user.id").onDelete("set null")).addColumn("connectionId","text",(u)=>u.references("connections.id").onDelete("set null")).addColumn("toolName","text",(u)=>u.notNull()).addColumn("allowed","integer",(u)=>u.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(u)=>u.notNull().defaultTo(Ev`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await i.schema.createTable("oauth_clients").addColumn("id","text",(u)=>u.primaryKey()).addColumn("clientId","text",(u)=>u.notNull().unique()).addColumn("clientSecret","text").addColumn("clientName","text",(u)=>u.notNull()).addColumn("redirectUris","text",(u)=>u.notNull()).addColumn("grantTypes","text",(u)=>u.notNull()).addColumn("scope","text").addColumn("clientUri","text").addColumn("logoUri","text").addColumn("createdAt","text",(u)=>u.notNull().defaultTo(Ev`CURRENT_TIMESTAMP`)).execute(),await i.schema.createTable("oauth_authorization_codes").addColumn("code","text",(u)=>u.primaryKey()).addColumn("clientId","text",(u)=>u.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(u)=>u.notNull().references("user.id").onDelete("cascade")).addColumn("redirectUri","text",(u)=>u.notNull()).addColumn("scope","text").addColumn("codeChallenge","text").addColumn("codeChallengeMethod","text").addColumn("expiresAt","text",(u)=>u.notNull()).addColumn("createdAt","text",(u)=>u.notNull().defaultTo(Ev`CURRENT_TIMESTAMP`)).execute(),await i.schema.createTable("oauth_refresh_tokens").addColumn("token","text",(u)=>u.primaryKey()).addColumn("clientId","text",(u)=>u.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(u)=>u.notNull().references("user.id").onDelete("cascade")).addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(u)=>u.notNull().defaultTo(Ev`CURRENT_TIMESTAMP`)).execute(),await i.schema.createTable("downstream_tokens").addColumn("id","text",(u)=>u.primaryKey()).addColumn("connectionId","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("userId","text",(u)=>u.references("user.id").onDelete("cascade")).addColumn("accessToken","text",(u)=>u.notNull()).addColumn("refreshToken","text").addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(u)=>u.notNull().defaultTo(Ev`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(u)=>u.notNull().defaultTo(Ev`CURRENT_TIMESTAMP`)).execute(),await i.schema.createIndex("idx_connections_organizationId").on("connections").column("organizationId").execute(),await i.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await i.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await i.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}async function nMt(i){await i.schema.dropTable("downstream_tokens").execute(),await i.schema.dropTable("oauth_refresh_tokens").execute(),await i.schema.dropTable("oauth_authorization_codes").execute(),await i.schema.dropTable("oauth_clients").execute(),await i.schema.dropTable("audit_logs").execute(),await i.schema.dropTable("api_keys").execute(),await i.schema.dropTable("connections").execute()}var Teu=()=>{};var eRi={};Wi(eRi,{up:()=>DMt,down:()=>gMt});import{sql as Beu}from"kysely";async function DMt(i){await i.schema.createTable("organization_settings").addColumn("organizationId","text",(u)=>u.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(u)=>u.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(u)=>u.notNull().defaultTo(Beu`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(u)=>u.notNull().defaultTo(Beu`CURRENT_TIMESTAMP`)).execute()}async function gMt(i){await i.schema.dropTable("organization_settings").execute()}var Feu=()=>{};var aRi={};Wi(aRi,{up:()=>OMt,down:()=>NMt});async function OMt(i){await i.schema.alterTable("connections").renameColumn("name","title").execute(),await i.schema.alterTable("connections").renameColumn("createdById","created_by").execute(),await i.schema.alterTable("connections").renameColumn("createdAt","created_at").execute(),await i.schema.alterTable("connections").renameColumn("updatedAt","updated_at").execute(),await i.schema.alterTable("connections").renameColumn("organizationId","organization_id").execute(),await i.schema.alterTable("connections").renameColumn("connectionType","connection_type").execute(),await i.schema.alterTable("connections").renameColumn("connectionUrl","connection_url").execute(),await i.schema.alterTable("connections").renameColumn("connectionToken","connection_token").execute(),await i.schema.alterTable("connections").renameColumn("connectionHeaders","connection_headers").execute(),await i.schema.alterTable("connections").renameColumn("oauthConfig","oauth_config").execute(),await i.schema.alterTable("connections").renameColumn("appName","app_name").execute(),await i.schema.alterTable("connections").renameColumn("appId","app_id").execute()}async function NMt(i){await i.schema.alterTable("connections").renameColumn("title","name").execute(),await i.schema.alterTable("connections").renameColumn("created_by","createdById").execute(),await i.schema.alterTable("connections").renameColumn("created_at","createdAt").execute(),await i.schema.alterTable("connections").renameColumn("updated_at","updatedAt").execute(),await i.schema.alterTable("connections").renameColumn("organization_id","organizationId").execute(),await i.schema.alterTable("connections").renameColumn("connection_type","connectionType").execute(),await i.schema.alterTable("connections").renameColumn("connection_url","connectionUrl").execute(),await i.schema.alterTable("connections").renameColumn("connection_token","connectionToken").execute(),await i.schema.alterTable("connections").renameColumn("connection_headers","connectionHeaders").execute(),await i.schema.alterTable("connections").renameColumn("oauth_config","oauthConfig").execute(),await i.schema.alterTable("connections").renameColumn("app_name","appName").execute(),await i.schema.alterTable("connections").renameColumn("app_id","appId").execute()}var oRi={};Wi(oRi,{up:()=>yMt,down:()=>ZMt});async function yMt(i){await i.schema.createTable("organization_settings_new").addColumn("organizationId","text",(u)=>u.primaryKey().references("organization.id").onDelete("cascade")).addColumn("createdAt","text",(u)=>u.notNull()).addColumn("updatedAt","text",(u)=>u.notNull()).execute(),await i.insertInto("organization_settings_new").columns(["organizationId","createdAt","updatedAt"]).expression((u)=>u.selectFrom("organization_settings").select(["organizationId","createdAt","updatedAt"])).execute(),await i.schema.dropTable("organization_settings").execute(),await i.schema.alterTable("organization_settings_new").renameTo("organization_settings").execute()}async function ZMt(i){await i.schema.createTable("organization_settings_new").addColumn("organizationId","text",(u)=>u.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(u)=>u.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(u)=>u.notNull()).addColumn("updatedAt","text",(u)=>u.notNull()).execute(),await i.insertInto("organization_settings_new").columns(["organizationId","modelsBindingConnectionId","createdAt","updatedAt"]).expression((u)=>u.selectFrom("organization_settings").select(["organizationId",u.val(null).as("modelsBindingConnectionId"),"createdAt","updatedAt"])).execute(),await i.schema.dropTable("organization_settings").execute(),await i.schema.alterTable("organization_settings_new").renameTo("organization_settings").execute()}var sRi={};Wi(sRi,{up:()=>TMt,down:()=>BMt});async function TMt(i){await i.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await i.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function BMt(i){await i.schema.alterTable("connections").dropColumn("configuration_state").execute(),await i.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var pRi={};Wi(pRi,{up:()=>UMt,down:()=>PMt});import{sql as FMt}from"kysely";async function UMt(i){await i.schema.alterTable("organization_settings").addColumn("sidebar_items",FMt`text`).execute()}async function PMt(i){await i.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var Ueu=()=>{};var ibi={};Wi(ibi,{up:()=>AMt,down:()=>IMt});async function AMt(i){await i.schema.createTable("monitoring_logs").addColumn("id","text",(u)=>u.primaryKey()).addColumn("organization_id","text",(u)=>u.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("connection_title","text",(u)=>u.notNull()).addColumn("tool_name","text",(u)=>u.notNull()).addColumn("input","text",(u)=>u.notNull()).addColumn("output","text",(u)=>u.notNull()).addColumn("is_error","integer",(u)=>u.notNull()).addColumn("error_message","text").addColumn("duration_ms","integer",(u)=>u.notNull()).addColumn("timestamp","text",(u)=>u.notNull()).addColumn("user_id","text").addColumn("request_id","text",(u)=>u.notNull()).execute(),await i.schema.createIndex("monitoring_logs_org_timestamp").on("monitoring_logs").columns(["organization_id","timestamp"]).execute(),await i.schema.createIndex("monitoring_logs_connection_timestamp").on("monitoring_logs").columns(["connection_id","timestamp"]).execute(),await i.schema.createIndex("monitoring_logs_is_error").on("monitoring_logs").columns(["organization_id","is_error","timestamp"]).execute()}async function IMt(i){await i.schema.dropIndex("monitoring_logs_is_error").execute(),await i.schema.dropIndex("monitoring_logs_connection_timestamp").execute(),await i.schema.dropIndex("monitoring_logs_org_timestamp").execute(),await i.schema.dropTable("monitoring_logs").execute()}var ubi={};Wi(ubi,{up:()=>xMt,down:()=>kMt});import{sql as pM}from"kysely";async function xMt(i){await i.schema.createTable("events").addColumn("id","text",(u)=>u.primaryKey()).addColumn("organization_id","text",(u)=>u.notNull().references("organization.id").onDelete("cascade")).addColumn("type","text",(u)=>u.notNull()).addColumn("source","text",(u)=>u.notNull()).addColumn("specversion","text",(u)=>u.notNull().defaultTo("1.0")).addColumn("subject","text").addColumn("time","text",(u)=>u.notNull()).addColumn("datacontenttype","text",(u)=>u.notNull().defaultTo("application/json")).addColumn("dataschema","text").addColumn("data","text").addColumn("cron","varchar(255)").addColumn("status","text",(u)=>u.notNull().defaultTo("pending")).addColumn("attempts","integer",(u)=>u.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("next_retry_at","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(pM`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(u)=>u.notNull().defaultTo(pM`CURRENT_TIMESTAMP`)).execute(),await i.schema.createTable("event_subscriptions").addColumn("id","text",(u)=>u.primaryKey()).addColumn("organization_id","text",(u)=>u.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("publisher","text").addColumn("event_type","text",(u)=>u.notNull()).addColumn("filter","text").addColumn("enabled","integer",(u)=>u.notNull().defaultTo(1)).addColumn("created_at","text",(u)=>u.notNull().defaultTo(pM`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(u)=>u.notNull().defaultTo(pM`CURRENT_TIMESTAMP`)).execute(),await i.schema.createTable("event_deliveries").addColumn("id","text",(u)=>u.primaryKey()).addColumn("event_id","text",(u)=>u.notNull()).addColumn("subscription_id","text",(u)=>u.notNull().references("event_subscriptions.id").onDelete("cascade")).addColumn("status","text",(u)=>u.notNull().defaultTo("pending")).addColumn("attempts","integer",(u)=>u.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("delivered_at","text").addColumn("next_retry_at","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(pM`CURRENT_TIMESTAMP`)).execute(),await i.schema.createIndex("idx_events_org_status").on("events").columns(["organization_id","status"]).execute(),await i.schema.createIndex("idx_events_source").on("events").columns(["source"]).execute(),await i.schema.createIndex("idx_events_type").on("events").columns(["type"]).execute(),await i.schema.createIndex("idx_events_retry").on("events").columns(["status","next_retry_at"]).execute(),await i.schema.createIndex("idx_subscriptions_connection").on("event_subscriptions").columns(["connection_id"]).execute(),await i.schema.createIndex("idx_subscriptions_type").on("event_subscriptions").columns(["event_type"]).execute(),await i.schema.createIndex("idx_subscriptions_org_enabled").on("event_subscriptions").columns(["organization_id","enabled"]).execute(),await i.schema.createIndex("idx_subscriptions_unique").on("event_subscriptions").columns(["connection_id","event_type","publisher","filter"]).unique().execute(),await i.schema.createIndex("idx_deliveries_event").on("event_deliveries").columns(["event_id"]).execute(),await i.schema.createIndex("idx_deliveries_subscription_status").on("event_deliveries").columns(["subscription_id","status"]).execute(),await i.schema.createIndex("idx_deliveries_retry").on("event_deliveries").columns(["status","next_retry_at"]).execute()}async function kMt(i){await i.schema.dropIndex("idx_deliveries_retry").execute(),await i.schema.dropIndex("idx_deliveries_subscription_status").execute(),await i.schema.dropIndex("idx_deliveries_event").execute(),await i.schema.dropIndex("idx_subscriptions_unique").execute(),await i.schema.dropIndex("idx_subscriptions_org_enabled").execute(),await i.schema.dropIndex("idx_subscriptions_type").execute(),await i.schema.dropIndex("idx_subscriptions_connection").execute(),await i.schema.dropIndex("idx_events_retry").execute(),await i.schema.dropIndex("idx_events_type").execute(),await i.schema.dropIndex("idx_events_source").execute(),await i.schema.dropIndex("idx_events_org_status").execute(),await i.schema.dropTable("event_deliveries").execute(),await i.schema.dropTable("event_subscriptions").execute(),await i.schema.dropTable("events").execute()}var Peu=()=>{};var tbi={};Wi(tbi,{up:()=>SMt,down:()=>jMt});import{sql as GMt}from"kysely";async function SMt(i){await i.schema.dropTable("audit_logs").ifExists().execute()}async function jMt(i){await i.schema.createTable("audit_logs").ifNotExists().addColumn("id","text",(u)=>u.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(u)=>u.references("user.id").onDelete("set null")).addColumn("connectionId","text",(u)=>u.references("connections.id").onDelete("set null")).addColumn("toolName","text",(u)=>u.notNull()).addColumn("allowed","integer",(u)=>u.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(u)=>u.notNull().defaultTo(GMt`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await i.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await i.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await i.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}var Aeu=()=>{};var fbi={};Wi(fbi,{up:()=>KMt,down:()=>JMt});import{sql as z1i}from"kysely";async function KMt(i){await i.schema.createTable("gateways").addColumn("id","text",(u)=>u.primaryKey()).addColumn("organization_id","text",(u)=>u.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(u)=>u.notNull()).addColumn("description","text").addColumn("tool_selection_strategy","text").addColumn("status","text",(u)=>u.notNull().defaultTo("active")).addColumn("is_default","integer",(u)=>u.notNull().defaultTo(0)).addColumn("created_at","text",(u)=>u.notNull().defaultTo(z1i`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(u)=>u.notNull().defaultTo(z1i`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(u)=>u.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await i.schema.createTable("gateway_connections").addColumn("id","text",(u)=>u.primaryKey()).addColumn("gateway_id","text",(u)=>u.notNull().references("gateways.id").onDelete("cascade")).addColumn("connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("selected_tools","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(z1i`CURRENT_TIMESTAMP`)).execute(),await i.schema.createIndex("idx_gateways_org").on("gateways").columns(["organization_id"]).execute(),await i.schema.createIndex("idx_gateways_org_status").on("gateways").columns(["organization_id","status"]).execute(),await z1i`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(i),await i.schema.createIndex("idx_gateway_connections_gateway").on("gateway_connections").columns(["gateway_id"]).execute(),await i.schema.createIndex("idx_gateway_connections_connection").on("gateway_connections").columns(["connection_id"]).execute(),await i.schema.createIndex("idx_gateway_connections_unique").on("gateway_connections").columns(["gateway_id","connection_id"]).unique().execute()}async function JMt(i){await i.schema.dropIndex("idx_gateway_connections_unique").execute(),await i.schema.dropIndex("idx_gateway_connections_connection").execute(),await i.schema.dropIndex("idx_gateway_connections_gateway").execute(),await i.schema.dropIndex("idx_gateways_default_per_org").execute(),await i.schema.dropIndex("idx_gateways_org_status").execute(),await i.schema.dropIndex("idx_gateways_org").execute(),await i.schema.dropTable("gateway_connections").execute(),await i.schema.dropTable("gateways").execute()}var Ieu=()=>{};var lbi={};Wi(lbi,{up:()=>XMt,down:()=>LMt});async function XMt(i){await i.schema.alterTable("gateways").addColumn("icon","text").execute()}async function LMt(i){await i.schema.alterTable("gateways").dropColumn("icon").execute()}var cbi={};Wi(cbi,{up:()=>WMt,down:()=>YMt});import{sql as H1i}from"kysely";async function WMt(i){await i.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(u)=>u.notNull().defaultTo("inclusion")).execute(),await H1i`
84517
84517
  UPDATE gateways
84518
84518
  SET tool_selection_mode = CASE
@@ -86556,7 +86556,7 @@ conversation.
86556
86556
 
86557
86557
  `);return new $3i({connections:[i],superUser:t,mcpListCache:_1()??void 0,listTimeoutMs:f?.listTimeoutMs,instructions:c},u)}var Dz=g(()=>{Rt();id();ug();ag0();f90()});var Ig0={};Wi(Ig0,{clientFromConnection:()=>I6});async function I6(i,u,t=!1){if(i.connection_type==="VIRTUAL")return c90(i,u,t);return Rg0(i,u,t)}var Gm=g(()=>{bg0();Dz()});async function T0u(i,u,t){let f=new AbortController,l,c=new Promise(($,w)=>{l=setTimeout(()=>{f.abort(),w(new $90(i.id,t))},t)}),E=(async()=>{let $=await I6(i,u,!0);try{return(await $.listTools(void 0,{timeout:t,signal:f.signal})).tools}finally{await $.close().catch(()=>{})}})();E.catch(()=>{});try{return await Promise.race([E,c])}finally{if(l)clearTimeout(l)}}var $90;var w90=g(()=>{Gm();$90=class $90 extends Error{constructor(i,u){super(`listTools timed out after ${u}ms for connection ${i}`);this.name="ListToolsTimeoutError"}}});function _3i(i){return(u)=>{if(u instanceof Ku&&u.code===Qu.MethodNotFound)return i;throw u}}var d90=g(()=>{jl()});function v3i(i,u,t){let f=j7(i,u,t,_1()??void 0),l=bn(f,{name:"mcp-mesh-enhanced",version:"1.0.0"},{capabilities:vPf,toolCallTimeoutMs:cY});l.server.setRequestHandler(P2,async()=>{return await f.listResources().catch(_3i({resources:[]}))}),l.server.setRequestHandler(A2,async()=>{return await f.listResourceTemplates().catch(_3i({resourceTemplates:[]}))}),l.server.setRequestHandler(I2,async()=>{return await f.listPrompts().catch(_3i({prompts:[]}))});let c=l.close.bind(l);return l.close=async()=>{await c(),await f.close().catch(()=>{})},l}var vPf;var h90=g(()=>{Rt();jl();km();id();d90();vPf={tools:{},resources:{},prompts:{}}});var Ly=g(()=>{Gm();w90();h90()});function na(i,u,t){if(u.some((f)=>f!=="*"&&f.startsWith("SELF::"))&&i.SELF===void 0)i.SELF={value:`${t}_self`}}function Da(i,u){let t=new Map;for(let f of u){if(f==="*")continue;let[l,c]=w$i(f);if(!nPf.has(c))continue;let E=wr(l,i);if(typeof E!=="object"||E===null||!("value"in E))continue;let $=E.value;if(typeof $!=="string")continue;t.set(`${$}:${c}`,{targetConnectionId:$,scope:c})}return[...t.values()]}async function ga(i,u,t,f){for(let c of u){if(c==="*")continue;let[E]=w$i(c),$=wr(E,i);if($===void 0||$===null)throw Error(`Scope references key "${E}" but it's not present in state`)}let l=Pw0(i,u);for(let c of l){if(c.endsWith("_self"))continue;let E=await f.storage.connections.findById(c);if(!E||E.organization_id!==t)throw Error(`Referenced connection not found: ${c}`);try{await f.access.check(c)}catch($){throw Error(`Access denied to referenced connection: ${c}. ${$.message}`)}}}var nPf;var B0u=g(()=>{Xai();_$i();nPf=new Set([d$i,h$i])});import{z as _90}from"zod";var DPf,gPf,F0u;var v90=g(()=>{z4();$u();vt();id();Ly();B0u();ir();xv();DPf=_90.object({data:EV.describe("Data for the new connection (id is auto-generated if not provided)")}),gPf=_90.object({item:B6.describe("The created connection entity")}),F0u=fi({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:DPf,outputSchema:gPf,handler:async(i,u)=>{Si(u);let t=yi(u);await u.access.check();let f=Hu(u);if(!f)throw Error("User ID required to create connection");let l={...i.data,organization_id:t.id,created_by:f};if(l.id){if((await u.storage.connections.findById(l.id))?.organization_id===t.id)throw Error("Connection already exists in organization")}if(l.connection_type==="VIRTUAL"){let _=_N(l.connection_url);if(!_)throw Error("VIRTUAL connection requires connection_url in format: virtual://$virtual_mcp_id");let v=await u.storage.virtualMcps.findById(_);if(!v)throw Error(`Virtual MCP not found: ${_}`);if(v.organization_id!==t.id)throw Error("Virtual MCP does not belong to the current organization");l.connection_url=vN(_)}if(l.connection_type==="STDIO"&&!yu().localMode)throw Error("STDIO connections are only available in local mode (--local-mode).");let c=await o2({id:`pending-${Date.now()}`,title:l.title,connection_type:l.connection_type,connection_url:l.connection_url,connection_token:l.connection_token,connection_headers:l.connection_headers}).catch(()=>null),E=c?.tools?.length?c.tools:null,$=c?.scopes?.length?c.scopes:l.configuration_scopes??null,w=l.configuration_state??null;if(w&&$?.length)na(w,$,t.id),await ga(w,$,t.id,u);let d=await u.storage.connections.createNew({...l,tools:null,configuration_state:w,configuration_scopes:$}),h=w&&$?.length?Da(w,$):[];if(h.length>0){let _;try{await u.storage.connectionCredentialVault.replaceGrantsForSubject({organizationId:t.id,subjectConnectionId:d.id,createdBy:f,grants:h});let{plaintextToken:v,record:n}=await u.storage.connectionCredentialVault.createOrRotateWorkloadToken({organizationId:t.id,subjectConnectionId:d.id});_=n.id,await(await I6(d,u,!1)).callTool({name:"ON_MCP_CONFIGURATION",arguments:{state:w,scopes:$,firstRun:!0,vault:{baseUrl:u.baseUrl,org:t.slug??t.id,subjectConnectionId:d.id,token:v}}})}catch(v){if(_)await u.storage.connectionCredentialVault.revokeWorkloadToken({organizationId:t.id,subjectConnectionId:d.id,tokenId:_});throw await u.storage.connections.delete(d.id),v}}if(E)_1()?.set("tools",d.id,E).catch(()=>{});return mu.capture({distinctId:f,event:"connection_created",groups:{organization:t.id},properties:{connection_id:d.id,connection_type:d.connection_type,app_name:d.app_name??null,organization_id:t.id,tools_count:E?.length??0}}),{item:d}}})});import{z as G3}from"zod/v4";import{z as n90}from"zod/v4";import{z as n3i}from"zod/v4";import{z as av}from"zod/v4";import{z as ZPf}from"zod/v4";import{z as Wy}from"zod/v4";import{z as ov}from"zod/v4";import{z as ac}from"zod/v4";import{z as D90}from"zod/v4";import{z as O3i}from"zod/v4";import{z as bPf}from"zod/v4";import{z as g90}from"zod/v4";import{z as D3i}from"zod/v4";import{z as oPf}from"zod/v4";function Oa(i,u){if(i===u)return!0;if(i==null||u==null)return i===u;if(typeof i!==typeof u)return!1;if(Array.isArray(i)&&Array.isArray(u)){if(i.length!==u.length)return!1;return i.every((t,f)=>Oa(t,u[f]))}if(typeof i==="object"&&typeof u==="object"){let t=Object.keys(i),f=Object.keys(u);if(t.length!==f.length)return!1;return t.every((l)=>f.includes(l)&&Oa(i[l],u[l]))}return!1}function zPf(){return(i)=>{if(!Array.isArray(i))return!0;let u=[];return i.every((t)=>{if(u.some((l)=>Oa(t,l)))return!1;return u.push(t),!0})}}function g3i(i,u){return i.safeParse(u).success}function K6(i){if(typeof i==="boolean")return i?G3.any():G3.never();let u={};for(let l of uAf)l.apply(u,i);let t=[];if(u.string!==!1)t.push(u.string||G3.string());if(u.number!==!1)t.push(u.number||G3.number());if(u.boolean!==!1)t.push(u.boolean||G3.boolean());if(u.null!==!1)t.push(u.null||G3.null());if(u.array!==!1)t.push(u.array||G3.array(G3.any()));if(u.tuple!==!1&&u.tuple!==void 0)t.push(u.tuple);if(u.object!==!1)if(u.object)t.push(u.object);else{let l=G3.custom((c)=>{return typeof c==="object"&&c!==null&&!Array.isArray(c)},"Must be an object, not an array");t.push(l)}if(u.file!==!1&&u.file!==void 0)t.push(u.file);let f;if(t.length===0)f=G3.never();else if(t.length===1)f=t[0];else if(!Object.keys(i).some((c)=>c!=="$schema"&&c!=="title"&&c!=="description"))f=G3.any();else f=G3.union(t);for(let l of tAf)f=l.apply(f,i);return f}var OPf=class{apply(i,u){if(!u.type)return;let t=Array.isArray(u.type)?u.type:[u.type],f=new Set(t);if(!f.has("string"))i.string=!1;if(!f.has("number")&&!f.has("integer"))i.number=!1;if(!f.has("boolean"))i.boolean=!1;if(!f.has("null"))i.null=!1;if(!f.has("array"))i.array=!1;if(!f.has("object"))i.object=!1;if(f.has("integer")&&i.number!==!1){let l=i.number||n90.number();if(l instanceof n90.ZodNumber)i.number=l.int()}}},NPf=class{apply(i,u){if(u.const===void 0)return;let t=u.const;if(i.string=!1,i.number=!1,i.boolean=!1,i.null=!1,i.array=!1,i.object=!1,typeof t==="string")i.string=n3i.literal(t);else if(typeof t==="number")i.number=n3i.literal(t);else if(typeof t==="boolean")i.boolean=n3i.literal(t);else if(t===null)i.null=n3i.null();else if(Array.isArray(t))i.array=void 0;else if(typeof t==="object")i.object=void 0}},yPf=class{apply(i,u){if(!u.enum)return;if(u.enum.length===0){if(!u.type)i.string=!1,i.number=!1,i.boolean=!1,i.null=!1,i.array=!1,i.object=!1;return}let t={string:u.enum.filter((f)=>typeof f==="string"),number:u.enum.filter((f)=>typeof f==="number"),boolean:u.enum.filter((f)=>typeof f==="boolean"),null:u.enum.filter((f)=>f===null),array:u.enum.filter((f)=>Array.isArray(f)),object:u.enum.filter((f)=>typeof f==="object"&&f!==null&&!Array.isArray(f))};i.string=this.createTypeSchema(t.string,"string"),i.number=this.createTypeSchema(t.number,"number"),i.boolean=this.createTypeSchema(t.boolean,"boolean"),i.null=t.null.length>0?av.null():!1,i.array=t.array.length>0?void 0:!1,i.object=t.object.length>0?void 0:!1}createTypeSchema(i,u){if(i.length===0)return!1;if(i.length===1)return av.literal(i[0]);if(u==="string")return av.enum(i);if(u==="number"){let[t,f,...l]=i;return av.union([av.literal(t),av.literal(f),...l.map((c)=>av.literal(c))])}if(u==="boolean")return av.union([av.literal(!0),av.literal(!1)]);return!1}},TPf=class{apply(i,u){let t=u;if(t.type==="string"&&t.format==="binary"&&t.contentEncoding==="binary"){let f=ZPf.file();if(t.minLength!==void 0)f=f.min(t.minLength);if(t.maxLength!==void 0)f=f.max(t.maxLength);if(t.contentMediaType!==void 0)f=f.mime(t.contentMediaType);i.file=f,i.string=!1}}},BPf=class{apply(i,u){let t=u;if(u.type===void 0&&(t.minLength!==void 0||t.maxLength!==void 0||t.pattern!==void 0)){if(i.string===void 0)i.string=Wy.string()}}},FPf=class{apply(i,u){let t=u;if(t.minLength===void 0)return;if(i.string!==!1){let f=i.string||Wy.string();if(f instanceof Wy.ZodString)i.string=f.refine((l)=>{return Array.from(l).length>=t.minLength},{message:`String must be at least ${t.minLength} characters long`})}}},UPf=class{apply(i,u){let t=u;if(t.maxLength===void 0)return;if(i.string!==!1){let f=i.string||Wy.string();if(f instanceof Wy.ZodString)i.string=f.refine((l)=>{return Array.from(l).length<=t.maxLength},{message:`String must be at most ${t.maxLength} characters long`})}}},PPf=class{apply(i,u){let t=u;if(!t.pattern)return;if(i.string!==!1){let f=i.string||Wy.string();if(f instanceof Wy.ZodString){let l=new RegExp(t.pattern);i.string=f.regex(l)}}}},APf=class{apply(i,u){let t=u;if(t.minimum===void 0)return;if(i.number!==!1){let f=i.number||ov.number();if(f instanceof ov.ZodNumber)i.number=f.min(t.minimum)}}},IPf=class{apply(i,u){let t=u;if(t.maximum===void 0)return;if(i.number!==!1){let f=i.number||ov.number();if(f instanceof ov.ZodNumber)i.number=f.max(t.maximum)}}},xPf=class{apply(i,u){let t=u;if(t.exclusiveMinimum===void 0)return;if(i.number!==!1){let f=i.number||ov.number();if(f instanceof ov.ZodNumber)if(typeof t.exclusiveMinimum==="number")i.number=f.gt(t.exclusiveMinimum);else i.number=!1}}},kPf=class{apply(i,u){let t=u;if(t.exclusiveMaximum===void 0)return;if(i.number!==!1){let f=i.number||ov.number();if(f instanceof ov.ZodNumber)if(typeof t.exclusiveMaximum==="number")i.number=f.lt(t.exclusiveMaximum);else i.number=!1}}},GPf=class{apply(i,u){let t=u;if(t.multipleOf===void 0)return;if(i.number!==!1){let f=i.number||ov.number();if(f instanceof ov.ZodNumber)i.number=f.refine((l)=>{if(t.multipleOf===0)return!1;let c=l/t.multipleOf,E=Math.round(c),$=Math.min(Math.abs(l)*Number.EPSILON*10,Math.abs(t.multipleOf)*Number.EPSILON*10);return Math.abs(c-E)<=$/Math.abs(t.multipleOf)},{message:`Must be a multiple of ${t.multipleOf}`})}}},SPf=class{apply(i,u){let t=u;if(u.type===void 0&&(t.minItems!==void 0||t.maxItems!==void 0||t.items!==void 0||t.prefixItems!==void 0)){if(i.array===void 0)i.array=ac.array(ac.any())}}},jPf=class{apply(i,u){let t=u;if(t.minItems===void 0)return;if(i.array!==!1)i.array=(i.array||ac.array(ac.any())).min(t.minItems)}},KPf=class{apply(i,u){let t=u;if(t.maxItems===void 0)return;if(i.array!==!1)i.array=(i.array||ac.array(ac.any())).max(t.maxItems)}},JPf=class{apply(i,u){let t=u;if(i.array===!1)return;if(Array.isArray(t.items))i.array=i.array||ac.array(ac.any());else if(t.items&&typeof t.items!=="boolean"&&!t.prefixItems){let f=K6(t.items),l=ac.array(f);if(i.array&&i.array instanceof ac.ZodArray){let c=i.array._def;if(c.checks)c.checks.forEach((E)=>{if(E._zod&&E._zod.def){let $=E._zod.def;if($.check==="min_length"&&$.minimum!==void 0)l=l.min($.minimum);else if($.check==="max_length"&&$.maximum!==void 0)l=l.max($.maximum)}})}i.array=l}else if(typeof t.items==="boolean"&&t.items===!1)if(!t.prefixItems)i.array=ac.array(ac.any()).max(0);else i.array=i.array||ac.array(ac.any());else if(typeof t.items==="boolean"&&t.items===!0)i.array=i.array||ac.array(ac.any());else if(t.prefixItems)i.array=i.array||ac.array(ac.any())}},XPf=class{apply(i,u){if(u.type!=="array")return;let t=u;if(!Array.isArray(t.items))return;if(i.array===!1)return;let f=t.items.map((c)=>K6(c)),l;if(f.length===0)l=D90.tuple([]);else l=D90.tuple(f);if(t.minItems!==void 0&&t.minItems>f.length)l=!1;if(t.maxItems!==void 0&&t.maxItems<f.length)l=!1;i.tuple=l,i.array=!1}},LPf=class{apply(i,u){let t=u;if(i.object===!1)return;if(t.properties||t.required||t.additionalProperties!==void 0)i.object=i.object||O3i.object({}).passthrough()}},WPf=class{apply(i,u){let t=u;if(u.type===void 0&&(t.maxProperties!==void 0||t.minProperties!==void 0)){if(i.object===void 0)i.object=O3i.object({}).passthrough()}}},YPf=class{apply(i,u){let t=u;if(t.maxProperties===void 0)return;if(i.object!==!1){let f=i.object||O3i.object({}).passthrough();i.object=f.refine((l)=>Object.keys(l).length<=t.maxProperties,{message:`Object must have at most ${t.maxProperties} properties`})}}},QPf=class{apply(i,u){let t=u;if(t.minProperties===void 0)return;if(i.object!==!1){let f=i.object||O3i.object({}).passthrough();i.object=f.refine((l)=>Object.keys(l).length>=t.minProperties,{message:`Object must have at least ${t.minProperties} properties`})}}},HPf=class{apply(i,u){if(!u.not)return i;let t=K6(u.not);return i.refine((f)=>!g3i(t,f),{message:"Value must not match the 'not' schema"})}},RPf=class{apply(i,u){if(u.uniqueItems!==!0)return i;return i.refine(zPf(),{message:"Array items must be unique"})}},CPf=class{apply(i,u){if(!u.allOf||u.allOf.length===0)return i;return u.allOf.map((f)=>K6(f)).reduce((f,l)=>bPf.intersection(f,l),i)}},MPf=class{apply(i,u){if(!u.anyOf||u.anyOf.length===0)return i;let t=u.anyOf.length===1?K6(u.anyOf[0]):g90.union([K6(u.anyOf[0]),K6(u.anyOf[1]),...u.anyOf.slice(2).map((f)=>K6(f))]);return g90.intersection(i,t)}},qPf=class{apply(i,u){if(!u.oneOf||u.oneOf.length===0)return i;let t=u.oneOf.map((f)=>K6(f));return i.refine((f)=>{let l=0;for(let c of t)if(c.safeParse(f).success){if(l++,l>1)return!1}return l===1},{message:"Value must match exactly one of the oneOf schemas"})}},VPf=class{apply(i,u){let t=u;if(t.prefixItems&&Array.isArray(t.prefixItems)){let l=t.prefixItems.map((c)=>K6(c));return i.refine((c)=>{if(!Array.isArray(c))return!0;for(let E=0;E<Math.min(c.length,l.length);E++)if(!g3i(l[E],c[E]))return!1;if(c.length>l.length){if(typeof t.items==="boolean"&&t.items===!1)return!1;else if(t.items&&typeof t.items==="object"&&!Array.isArray(t.items)){let E=K6(t.items);for(let $=l.length;$<c.length;$++)if(!g3i(E,c[$]))return!1}}return!0},{message:"Array does not match prefixItems schema"})}return i}},rPf=class{apply(i,u){let t=u;if(!t.properties&&!t.required&&t.additionalProperties!==!1)return i;if(i instanceof D3i.ZodObject||i instanceof D3i.ZodRecord){let f={};if(t.properties){for(let[l,c]of Object.entries(t.properties))if(c!==void 0)f[l]=K6(c)}if(t.required&&Array.isArray(t.required)){let l=new Set(t.required);for(let c of Object.keys(f))if(!l.has(c))f[c]=f[c].optional()}else for(let l of Object.keys(f))f[l]=f[l].optional();if(t.additionalProperties===!1)return D3i.object(f);else return D3i.object(f).passthrough()}return i.refine((f)=>{if(typeof f!=="object"||f===null||Array.isArray(f))return!0;if(t.properties){for(let[l,c]of Object.entries(t.properties))if(c!==void 0){if(Object.getOwnPropertyDescriptor(f,l)!==void 0){if(!K6(c).safeParse(f[l]).success)return!1}}}if(t.required&&Array.isArray(t.required)){for(let l of t.required)if(Object.getOwnPropertyDescriptor(f,l)===void 0)return!1}if(t.additionalProperties===!1&&t.properties){let l=new Set(Object.keys(t.properties));for(let c in f)if(!l.has(c))return!1}return!0},{message:"Object constraints validation failed"})}},mPf=class{apply(i,u){if(!u.enum||u.enum.length===0)return i;let t=u.enum.filter((f)=>Array.isArray(f)||typeof f==="object"&&f!==null);if(t.length===0)return i;return i.refine((f)=>{if(typeof f!=="object"||f===null)return!0;return t.some((l)=>Oa(f,l))},{message:"Value must match one of the enum values"})}},ePf=class{apply(i,u){if(u.const===void 0)return i;let t=u.const;if(typeof t!=="object"||t===null)return i;return i.refine((f)=>Oa(f,t),{message:"Value must equal the const value"})}},aPf=class{apply(i,u){if(u.description)i=i.describe(u.description);return i}},sPf=class{apply(i,u){var t;let f=u;if(!((t=f.required)==null?void 0:t.includes("__proto__"))||u.type!==void 0)return i;return oPf.any().refine((l)=>this.validateRequired(l,f.required),{message:"Missing required properties"})}validateRequired(i,u){if(typeof i!=="object"||i===null||Array.isArray(i))return!0;return u.every((t)=>Object.prototype.hasOwnProperty.call(i,t))}},pPf=class{apply(i,u){var t;let f=u;if(f.contains===void 0)return i;let l=K6(f.contains),c=(t=f.minContains)!=null?t:1,E=f.maxContains;return i.refine(($)=>{if(!Array.isArray($))return!0;let w=0;for(let d of $)if(g3i(l,d))w++;if(w<c)return!1;if(E!==void 0&&w>E)return!1;return!0},{message:"Array must contain required items matching the schema"})}},iAf=class{apply(i,u){let{default:t}=u;if(t===void 0)return i;if(!i.safeParse(t).success)return i;return i.default(t)}},uAf,tAf;var O90=g(()=>{uAf=[new NPf,new yPf,new OPf,new TPf,new BPf,new SPf,new WPf,new FPf,new UPf,new PPf,new APf,new IPf,new xPf,new kPf,new GPf,new XPf,new jPf,new KPf,new JPf,new YPf,new QPf,new LPf],tAf=[new sPf,new mPf,new ePf,new CPf,new MPf,new qPf,new VPf,new rPf,new pPf,new HPf,new RPf,new iAf,new aPf]});class U0u{constructor(i){this._url=i}start(){if(this._socket)throw Error("WebSocketClientTransport already started! If using Client class, note that connect() calls start() automatically.");return new Promise((i,u)=>{this._socket=new WebSocket(this._url,fAf),this._socket.onerror=(t)=>{let f="error"in t?t.error:Error(`WebSocket error: ${JSON.stringify(t)}`);u(f),this.onerror?.(f)},this._socket.onopen=()=>{i()},this._socket.onclose=()=>{this.onclose?.()},this._socket.onmessage=(t)=>{let f;try{f=aw.parse(JSON.parse(t.data))}catch(l){this.onerror?.(l);return}this.onmessage?.(f)}})}async close(){this._socket?.close()}send(i){return new Promise((u,t)=>{if(!this._socket){t(Error("Not connected"));return}this._socket?.send(JSON.stringify(i)),u()})}}var fAf="mcp";var N90=g(()=>{jl()});function lAf(i){let u=i;if(!u||typeof u!=="object"||!("method"in u))return null;switch(u.method){case"initialize":{let t=u?.params?.protocolVersion;if(!t)return null;return{type:"emit",message:{result:{protocolVersion:t,capabilities:{tools:{}},serverInfo:{name:"deco-chat-server",version:"1.0.0"}},jsonrpc:u.jsonrpc??"2.0",id:u.id}}}case"notifications/roots/list_changed":case"notifications/initialized":case"notifications/cancelled":case"notifications/progress":return{type:"suppress"};default:return null}}var N3i;var P0u=g(()=>{hN();N3i=class N3i extends zh{constructor(i,u){super(i,u)}send(i,u){let t=lAf(i);if(t?.type==="emit")return this.onmessage?.(t.message),Promise.resolve();if(t?.type==="suppress")return Promise.resolve();return super.send(i,u)}}});var y90,Z90=async(i,u,t)=>{let f=cAf(i.connection,u,t);if(!f)throw Error("Unknown MCP connection type");let l=new y90({name:i?.name??"MCP Client",version:"1.0.0"});return await l.connect(f),{client:l}},cAf=(i,u,t)=>{if(i.type==="Websocket")return new U0u(new URL(i.url));if(i.type!=="SSE"&&i.type!=="HTTP")return null;let l={...i.token?{authorization:`Bearer ${i.token}`}:{},...t??{},..."headers"in i?i.headers||{}:{}};if(i.type==="SSE"){let c={requestInit:{headers:l,signal:u}};if(i.token)c.eventSourceInit={fetch:(E,$)=>{return fetch(E,{...$,headers:{...l,Accept:"text/event-stream"},signal:u})}};return new on(new URL(i.url),c)}return new N3i(new URL(i.url),{requestInit:{headers:l,signal:u,credentials:"include"}})};var T90=g(()=>{Qh();sV();N90();jl();i$();P0u();y90=class y90 extends k1{constructor(i,u){super(i,{jsonSchemaValidator:Jl,...u})}async listTools(i,u){return await this.request({method:"tools/list",params:i},kq,u)}}});function U90(i){let u=(t)=>{if("connection"in i)return Z90({connection:i.connection},void 0,t);return i.client};return new Proxy({},{get(t,f){if(f==="toJSON")return null;if(typeof f!=="string")throw Error("Name must be a string");if(f==="listTools")return $;async function l(w,d=f){let h=i?.debugId?.(),_=h?{"x-trace-debug-id":h}:void 0,{client:v}=await u(_),{structuredContent:n,isError:D,content:O}=await v.callTool({name:String(d),arguments:w});if(D){let y=O?.[0]?.text,Z=typeof y==="string"?B90(y):null,T=Z?.code&&typeof i?.getErrorByStatusCode==="function"?i.getErrorByStatusCode(Z.code,Z.message,Z.traceId):null;if(T)throw T;throw Error(`Tool ${String(d)} returned an error: ${JSON.stringify(n??O)}`)}if(n!==void 0)return n;let N=O?.[0]?.text;return typeof N==="string"?B90(N):void 0}async function c(){let{client:w}=await u(),{tools:d}=await w.listTools();return d}async function E(){if(!("connection"in i))return c();let w=i.connection,d=JSON.stringify(w);try{if(!y3i.has(d))y3i.set(d,c());return await y3i.get(d)}catch(h){console.error("Failed to list tools",h),y3i.delete(d);return}}async function $(){return(await E()??[]).map((d)=>F90(d,l))}return l.asTool=async()=>{let d=(await E()??[]).find((h)=>h.name===f);if(!d)throw Error(`Tool ${f} not found`);return F90(d,l)},l}})}var B90=(i)=>{try{return JSON.parse(i)}catch{return i}},y3i,F90=(i,u)=>{return{...i,id:i.name,inputSchema:i.inputSchema?K6(i.inputSchema):void 0,outputSchema:i.outputSchema?K6(i.outputSchema):void 0,execute:(t)=>{return u(t.context,i.name)}}};var P90=g(()=>{O90();T90();y3i=new Map});function Yy(i){return U90(i)}var gz;var A0u=g(()=>{P90();gz=new Proxy({},{get(i,u){if(u==="toJSON")return null;if(u==="forConnection")return(t)=>Yy({connection:t});return global[u]}})});function Z3i(i){return{isImplementedBy:(u)=>{for(let t of i){let f=typeof t.name==="string"?new RegExp(`^${t.name}$`):t.name,l=u.find((c)=>f.test(c.name));if(!l&&t.opt)continue;if(!l)return!1}return!0}}}var sv=(i)=>{return{...Z3i(i),forClient:(u)=>{return Yy({client:u})},forConnection:(u)=>{return Yy({connection:u})}}};var Qy=g(()=>{A0u()});import{z as It}from"zod";function OD(i){return It.object({items:It.array(i).describe("Array of collection items"),totalCount:It.number().int().min(0).optional().describe("Total number of matching items (if available)"),hasMore:It.boolean().optional().describe("Whether there are more items available")})}function ya(i){return It.object({item:i.nullable().describe("The retrieved item, or null if not found")})}function wAf(i){return It.object({data:i.partial().describe("Data for the new entity (id may be auto-generated)")})}function dAf(i){return It.object({item:i.describe("The created entity with generated id")})}function hAf(i){return It.object({id:It.string().describe("ID of the entity to update"),data:i.partial().describe("Partial entity data to update")})}function _Af(i){return It.object({item:i.describe("The updated entity")})}function Ta(i){return It.object({item:i.describe("The deleted entity")})}function Nz(i,u,t){let f=i.toUpperCase(),l=t?.readOnly??!1,c=[{name:`COLLECTION_${f}_LIST`,inputSchema:n_,outputSchema:OD(u)},{name:`COLLECTION_${f}_GET`,inputSchema:Na,outputSchema:ya(u)}];if(!l)c.push({name:`COLLECTION_${f}_CREATE`,inputSchema:wAf(u),outputSchema:dAf(u),opt:!0},{name:`COLLECTION_${f}_UPDATE`,inputSchema:hAf(u),outputSchema:_Af(u),opt:!0},{name:`COLLECTION_${f}_DELETE`,inputSchema:Za,outputSchema:Ta(u),opt:!0});return c}var Oz,EAf,A90,$Af,n_,Na,Za;var nd=g(()=>{Oz=It.object({id:It.string().describe("Unique identifier for the entity"),title:It.string().describe("Human-readable title for the entity"),description:It.string().nullish().describe("Description of the entity"),created_at:It.string().datetime(),updated_at:It.string().datetime(),created_by:It.string().optional(),updated_by:It.string().optional()}),EAf=It.object({field:It.array(It.string()),operator:It.enum(["eq","gt","gte","lt","lte","in","like","contains"]),value:It.unknown()}),A90=It.lazy(()=>It.union([EAf,It.object({operator:It.enum(["and","or","not"]),conditions:It.array(A90)})])),$Af=It.object({field:It.array(It.string()),direction:It.enum(["asc","desc"]),nulls:It.enum(["first","last"]).optional()}),n_=It.object({where:A90.optional().describe("Filter expression"),orderBy:It.array($Af).optional().describe("Sort expressions"),limit:It.number().int().min(1).max(1000).optional().describe("Maximum number of items to return"),offset:It.number().int().min(0).optional().describe("Number of items to skip")});Na=It.object({id:It.string().describe("ID of the entity to retrieve")});Za=It.object({id:It.string().describe("ID of the entity to delete")})});import{z as Y0}from"zod";var vAf,I90,Sql;var x90=g(()=>{nd();vAf=Y0.object({id:Y0.string(),name:Y0.string(),description:Y0.string().optional(),inputSchema:Y0.record(Y0.string(),Y0.unknown()),outputSchema:Y0.record(Y0.string(),Y0.unknown()).optional()}),I90=Oz.extend({_meta:Y0.object({"io.decocms":Y0.object({id:Y0.string(),verified:Y0.boolean(),scopeName:Y0.string(),appName:Y0.string(),friendlyName:Y0.string().nullable().optional(),metadata:Y0.record(Y0.string(),Y0.unknown()).nullable().optional(),publishedAt:Y0.string().datetime().optional(),updatedAt:Y0.string().datetime().optional(),tools:Y0.array(vAf).nullable().optional().describe("Available tools exposed by this app")}).optional()}).optional(),server:Y0.object({$schema:Y0.string().optional(),_meta:Y0.record(Y0.string(),Y0.unknown()).optional(),name:Y0.string().describe("The server name (scope/app)"),title:Y0.string().optional().describe("User-friendly title"),description:Y0.string().optional().describe("Server description"),icons:Y0.array(Y0.object({src:Y0.string(),mimeType:Y0.string().optional(),sizes:Y0.array(Y0.string()).optional(),theme:Y0.enum(["light","dark"]).optional()})).optional(),remotes:Y0.array(Y0.object({type:Y0.enum(["http","stdio","sse"]),url:Y0.string().optional(),headers:Y0.array(Y0.unknown()).optional()})).optional(),packages:Y0.array(Y0.unknown()).optional(),repository:Y0.object({url:Y0.string(),source:Y0.string().optional(),subfolder:Y0.string().optional()}).optional(),version:Y0.string().optional(),websiteUrl:Y0.string().optional()})}),Sql=Nz("registry_app",I90,{readOnly:!0})});import{z as el}from"zod";var k90,T3i,G90,B3i,S90,nAf;var j90=g(()=>{Qy();k90=el.object({specversion:el.literal("1.0").describe("CloudEvents specification version"),id:el.string().describe("Unique identifier for this event (UUID recommended)"),source:el.string().describe("Connection ID of the event publisher"),type:el.string().describe("Event type (e.g., 'order.created', 'user.signup')"),time:el.string().datetime().optional().describe("Timestamp of when the event occurred (ISO 8601)"),subject:el.string().optional().describe("Subject/resource identifier (e.g., order ID, user ID)"),datacontenttype:el.string().optional().default("application/json").describe("Content type of the data attribute"),dataschema:el.string().url().optional().describe("URI to the schema for the data attribute"),data:el.unknown().optional().describe("Event payload (any JSON value)")}),T3i=el.object({events:el.array(k90).min(1).describe("Batch of CloudEvents to process")}),G90=el.object({success:el.boolean().optional().describe("Whether this event was processed successfully"),error:el.string().optional().describe("Error message for this event"),retryAfter:el.number().int().positive().optional().describe("Re-deliver this event after this many ms")}),B3i=el.object({success:el.boolean().optional().describe("Batch success - applies to events not in results"),error:el.string().optional().describe("Batch error message - applies to events not in results"),processedCount:el.number().int().min(0).optional().describe("Number of events successfully processed"),retryAfter:el.number().int().positive().optional().describe("Batch retryAfter - applies to events not in results"),results:el.record(el.string(),G90).optional().describe("Per-event results keyed by event ID")}),S90=[{name:"ON_EVENTS",inputSchema:T3i,outputSchema:B3i}],nAf=sv(S90)});import{z as al}from"zod";var K90,J90,X90,L90,W90,Y90,F3i,I0u;var x0u=g(()=>{Qy();K90=al.object({type:al.literal("string"),enum:al.array(al.string()).optional(),description:al.string().optional()}),J90=al.object({type:al.string(),description:al.string(),paramsSchema:al.record(al.string(),K90)}),X90=al.object({}),L90=al.object({triggers:al.array(J90)}),W90=al.object({type:al.string(),params:al.record(al.string(),al.string()),enabled:al.boolean(),callbackUrl:al.url().optional(),callbackToken:al.string().min(1).optional()}),Y90=al.object({success:al.boolean()}),F3i=[{name:"TRIGGER_LIST",inputSchema:X90,outputSchema:L90},{name:"TRIGGER_CONFIGURE",inputSchema:W90,outputSchema:Y90}],I0u=sv(F3i)});import{z as K4}from"zod";var Q90,z90,H90,Ba,U3i,P3i,A3i,I3i,DAf;var k0u=g(()=>{Qy();Q90=K4.object({primary:K4.string().optional().describe("Primary brand color (hex)"),secondary:K4.string().optional().describe("Secondary brand color (hex)"),accent:K4.string().optional().describe("Accent / highlight color (hex)"),background:K4.string().optional().describe("Background color (hex)"),foreground:K4.string().optional().describe("Foreground / text color (hex)")}),z90=K4.object({heading:K4.string().optional().describe("Font family for headings"),body:K4.string().optional().describe("Font family for body text"),code:K4.string().optional().describe("Font family for code / monospace")}),H90=K4.object({logo:K4.string().optional().describe("Logo URL"),favicon:K4.string().optional().describe("Favicon URL"),ogImage:K4.string().optional().describe("Open Graph image URL")}),Ba=K4.object({id:K4.string(),name:K4.string().describe("Brand / company name"),domain:K4.string().optional().describe("Company domain (e.g. example.com)"),colors:Q90.optional().describe("Semantic color palette"),fonts:z90.optional().describe("Font families by role"),assets:H90.optional().describe("Visual identity assets"),overview:K4.string().optional().describe("Company overview / description"),tagline:K4.string().optional().describe("Brand tagline"),tone:K4.string().optional().describe("Tone of voice description"),metadata:K4.record(K4.string(),K4.unknown()).optional().describe("Extra design tokens and metadata")}),U3i=K4.object({id:K4.string().optional().describe("Brand ID. Omit to get the default brand.")}),P3i=K4.object({}),A3i=K4.object({items:K4.array(Ba)}),I3i=[{name:"BRAND_GET",inputSchema:U3i,outputSchema:Ba},{name:"BRAND_LIST",inputSchema:P3i,outputSchema:A3i,opt:!0}],DAf=sv(I3i)});var G0u=g(()=>{Qy();x90();j90();x0u();Tq();k0u()});import{z as yz}from"zod";var gAf,OAf,R90;var b90=g(()=>{nd();gAf=Oz.extend({avatar:yz.string().describe("URL or data URI to the assistant's avatar image"),system_prompt:yz.string().describe("System prompt that defines the assistant's behavior"),virtual_mcp_id:yz.string().describe("Virtual MCP ID to use for this assistant"),model:yz.object({id:yz.string().describe("Model ID"),connectionId:yz.string().describe("Connection ID that provides the model")}).describe("Selected model reference for this assistant")}),OAf=Nz("assistant",gAf),R90=[...OAf]});import{z as Ai}from"zod";var Fa,ND,M90,NAf,yAf,q90,ZAf,TAf,BAf,FAf,UAf,PAf,V90,AAf,IAf,xAf,kAf,GAf,SAf,jAf,KAf,JAf,XAf,tVl,LAf,fVl,C90,WAf,YAf,x3i,lVl;var r90=g(()=>{Qy();nd();Fa=Ai.lazy(()=>Ai.union([Ai.null(),Ai.string(),Ai.number(),Ai.boolean(),Ai.record(Ai.string(),Fa),Ai.array(Fa)])),ND=Ai.record(Ai.string(),Ai.record(Ai.string(),Fa)).optional().describe("Additional provider-specific options. Outer record keyed by provider name, inner by option key"),M90=Ai.object({type:Ai.literal("text"),text:Ai.string().describe("The text content"),providerOptions:ND}),NAf=Ai.object({type:Ai.literal("text"),text:Ai.string().describe("The text content"),providerMetadata:Ai.any().optional().describe("Additional provider-specific metadata")}),yAf=Ai.string().describe("File data as URL string"),q90=Ai.object({type:Ai.literal("file"),filename:Ai.string().optional().describe("Optional filename of the file"),data:yAf,mediaType:Ai.string().describe("IANA media type of the file (e.g., image/png, audio/mp3)"),providerOptions:ND}),ZAf=Ai.object({type:Ai.literal("file"),mediaType:Ai.string().describe("IANA media type of the file (e.g., image/png, audio/mp3)"),data:Ai.string().describe("Generated file data as base64 encoded string")}),TAf=Ai.object({type:Ai.literal("reasoning"),text:Ai.string().describe("The reasoning text"),providerOptions:ND}),BAf=Ai.object({type:Ai.literal("reasoning"),text:Ai.string().describe("The reasoning text"),providerMetadata:Ai.any().optional().describe("Additional provider-specific metadata")}),FAf=Ai.object({type:Ai.literal("tool-call"),toolCallId:Ai.string().describe("ID of the tool call, used to match with tool result"),toolName:Ai.string().describe("Name of the tool being called"),input:Ai.string().describe("Arguments of the tool call (JSON-serializable object matching tool input schema)"),providerExecuted:Ai.boolean().optional().describe("Whether the tool call will be executed by the provider"),providerOptions:ND}),UAf=Ai.object({type:Ai.literal("tool-call"),toolCallId:Ai.string().describe("ID of the tool call"),toolName:Ai.string().describe("Name of the tool being called"),input:Ai.string().describe("Stringified JSON object with the tool call arguments"),providerExecuted:Ai.boolean().optional().describe("Whether the tool call will be executed by the provider"),providerMetadata:Ai.any().optional().describe("Additional provider-specific metadata")}),PAf=Ai.union([Ai.object({type:Ai.literal("text"),value:Ai.string()}),Ai.object({type:Ai.literal("json"),value:Fa}),Ai.object({type:Ai.literal("error-text"),value:Ai.string()}),Ai.object({type:Ai.literal("error-json"),value:Fa}),Ai.object({type:Ai.literal("content"),value:Ai.array(Ai.union([Ai.object({type:Ai.literal("text"),text:Ai.string().describe("Text content")}),Ai.object({type:Ai.literal("media"),data:Ai.string().describe("Base-64 encoded media data"),mediaType:Ai.string().describe("IANA media type")})]))}),Ai.object({type:Ai.literal("execution-denied"),reason:Ai.string().optional()}),Ai.string().describe("Raw or JSON-serialized output (e.g. from AI SDK mapToolResultOutput)")]),V90=Ai.object({type:Ai.literal("tool-result"),toolCallId:Ai.string().describe("ID of the tool call that this result is associated with"),toolName:Ai.string().describe("Name of the tool that generated this result"),output:PAf.describe("Result of the tool call"),result:Ai.unknown().describe("Unknown result of the tool call"),providerOptions:ND}),AAf=Ai.object({type:Ai.literal("tool-result"),toolCallId:Ai.string().describe("ID of the tool call that this result is associated with"),toolName:Ai.string().describe("Name of the tool that generated this result"),result:Ai.any().describe("Result of the tool call (JSON-serializable)"),isError:Ai.boolean().optional().describe("Whether the result is an error or error message"),providerExecuted:Ai.boolean().optional().describe("Whether the tool result was generated by the provider"),providerMetadata:Ai.any().optional().describe("Additional provider-specific metadata")}),IAf=Ai.union([Ai.object({type:Ai.literal("source"),sourceType:Ai.literal("url"),id:Ai.string().describe("The ID of the source"),url:Ai.string().describe("The URL of the source"),title:Ai.string().optional().describe("The title of the source"),providerMetadata:Ai.any().optional().describe("Additional provider-specific metadata")}),Ai.object({type:Ai.literal("source"),sourceType:Ai.literal("document"),id:Ai.string().describe("The ID of the source"),mediaType:Ai.string().describe("IANA media type of the document (e.g., application/pdf)"),title:Ai.string().describe("The title of the document"),filename:Ai.string().optional().describe("Optional filename of the document"),providerMetadata:Ai.any().optional().describe("Additional provider-specific metadata")})]),xAf=Ai.object({role:Ai.literal("system"),content:Ai.string().describe("System message content"),providerOptions:ND}),kAf=Ai.object({role:Ai.literal("user"),content:Ai.array(Ai.union([M90,q90])).describe("User message content parts (text or file)"),providerOptions:ND}),GAf=Ai.object({role:Ai.literal("assistant"),content:Ai.array(Ai.union([M90,q90,TAf,FAf,V90])).describe("Assistant message content parts (text, file, reasoning, tool-call, or tool-result)"),providerOptions:ND}),SAf=Ai.object({role:Ai.literal("tool"),content:Ai.array(V90).describe("Tool message content (tool results)"),providerOptions:ND}),jAf=Ai.union([xAf,kAf,GAf,SAf]),KAf=Ai.array(jAf).describe("A list of messages forming the prompt"),JAf=Ai.object({prompt:KAf.describe("A language model prompt is a standardized prompt type (array of messages with roles: system, user, assistant, tool)"),maxOutputTokens:Ai.number().optional().describe("Maximum number of tokens to generate"),temperature:Ai.number().optional().describe("Temperature setting. The range depends on the provider and model"),topP:Ai.number().optional().describe("Nucleus sampling parameter"),topK:Ai.number().optional().describe("Only sample from the top K options for each subsequent token. Used to remove long tail low probability responses"),presencePenalty:Ai.number().optional().describe("Presence penalty setting. It affects the likelihood of the model to repeat information that is already in the prompt"),frequencyPenalty:Ai.number().optional().describe("Frequency penalty setting. It affects the likelihood of the model to repeatedly use the same words or phrases"),seed:Ai.number().optional().describe("The seed (integer) to use for random sampling. If set and supported by the model, calls will generate deterministic results"),stopSequences:Ai.array(Ai.string()).optional().describe("Stop sequences. If set, the model will stop generating text when one of the stop sequences is generated"),responseFormat:Ai.union([Ai.object({type:Ai.literal("text")}),Ai.object({type:Ai.literal("json"),schema:Ai.any().optional().describe("JSON schema that the generated output should conform to"),name:Ai.string().optional().describe("Name of output that should be generated"),description:Ai.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:Ai.array(Ai.any()).optional().describe("The tools that are available for the model"),toolChoice:Ai.any().optional().describe("Specifies how the tool should be selected. Defaults to 'auto'"),includeRawChunks:Ai.boolean().optional().describe("Include raw chunks in the stream. Only applicable for streaming calls"),abortSignal:Ai.any().optional().describe("Abort signal for cancelling the operation"),providerOptions:Ai.any().optional().describe("Additional provider-specific options")}),XAf=Ai.object({content:Ai.array(Ai.union([NAf,ZAf,BAf,UAf,AAf,IAf])).describe("Ordered content that the model has generated (text, tool-calls, reasoning, files, sources)"),finishReason:Ai.enum(["stop","length","content-filter","tool-calls","error","other","unknown"]).describe("Reason why generation stopped"),usage:Ai.looseObject({inputTokens:Ai.number().optional(),outputTokens:Ai.number().optional(),totalTokens:Ai.number().optional(),reasoningTokens:Ai.number().optional()}).describe("Usage information for the language model call"),providerMetadata:Ai.any().optional().describe("Additional provider-specific metadata"),request:Ai.object({body:Ai.any().optional().describe("Request HTTP body sent to the provider API")}).optional().describe("Optional request information for telemetry and debugging"),response:Ai.object({id:Ai.string().optional().describe("ID for the generated response"),timestamp:Ai.iso.datetime().optional().describe("Timestamp for the start of the generated response"),modelId:Ai.string().optional().describe("The ID of the response model that was used"),headers:Ai.record(Ai.string(),Ai.string()).optional().describe("Response headers"),body:Ai.any().optional().describe("Response HTTP body")}).optional().describe("Optional response information for telemetry and debugging"),warnings:Ai.array(Ai.any()).describe("Warnings for the call, e.g. unsupported settings")}),tVl=Ai.object({stream:Ai.any().describe("ReadableStream of LanguageModelV2StreamPart"),request:Ai.object({body:Ai.any().optional().describe("Request HTTP body sent to the provider API")}).optional().describe("Optional request information for telemetry and debugging"),response:Ai.object({headers:Ai.record(Ai.string(),Ai.string()).optional().describe("Response headers")}).optional().describe("Optional response data")}),LAf=Ai.object({supportedUrls:Ai.record(Ai.string(),Ai.array(Ai.string())).describe("Supported URL patterns by media type for the provider")}),fVl=Ai.object({modelId:Ai.string().describe("The ID of the model"),logo:Ai.string().nullable(),description:Ai.string().nullable(),capabilities:Ai.array(Ai.string()),limits:Ai.object({contextWindow:Ai.number(),maxOutputTokens:Ai.number()}).nullable(),costs:Ai.object({input:Ai.number(),output:Ai.number()}).nullable(),provider:Ai.enum(["openai","anthropic","google","x-ai","deepseek","openai-compatible","openrouter"]).nullable()}),C90=Ai.object({modelId:Ai.string().describe("The ID of the model"),callOptions:JAf}),WAf=Oz.extend({logo:Ai.string().nullable(),description:Ai.string().nullable(),capabilities:Ai.array(Ai.string()),limits:Ai.object({contextWindow:Ai.number(),maxOutputTokens:Ai.number()}).nullable(),costs:Ai.object({input:Ai.number(),output:Ai.number()}).nullable(),provider:Ai.enum(["openai","anthropic","google","xai","deepseek","openai-compatible","openrouter"]).nullable()}),YAf=Nz("llm",WAf,{readOnly:!0}),x3i=[{name:"LLM_METADATA",inputSchema:Ai.object({modelId:Ai.string().describe("The ID of the model")}),outputSchema:LAf},{name:"LLM_DO_STREAM",inputSchema:C90},{name:"LLM_DO_GENERATE",inputSchema:C90,outputSchema:XAf},...YAf],lVl=sv(x3i)});import{z as zy}from"zod";var QAf,m90;var e90=g(()=>{QAf=zy.object({scopes:zy.array(zy.string()).describe("List of scopes available"),stateSchema:zy.record(zy.string(),zy.unknown()).describe("JSON Schema (draft-07) defining the state structure")}),m90=[{name:"MCP_CONFIGURATION",inputSchema:zy.object({}),outputSchema:QAf}]});import{z as ol}from"zod";var zAf,HAf,a90;var o90=g(()=>{zAf=ol.object({}).strict(),HAf=ol.object({billing:ol.object({mode:ol.enum(["prepaid","postpaid"]),limitPeriod:ol.enum(["daily","weekly","monthly"]).nullable()}),limit:ol.object({total:ol.number().nullable(),remaining:ol.number().nullable(),reset:ol.string().nullable()}),usage:ol.object({total:ol.number(),daily:ol.number(),weekly:ol.number(),monthly:ol.number()}),alert:ol.object({enabled:ol.boolean(),threshold_usd:ol.number(),email:ol.string().nullable()}),connectionId:ol.string()}),a90=[{name:"GATEWAY_USAGE",inputSchema:zAf,outputSchema:HAf},{name:"GATEWAY_SET_LIMIT",inputSchema:ol.object({}),outputSchema:ol.object({}),opt:!0},{name:"GATEWAY_SET_ALERT",inputSchema:ol.object({}),outputSchema:ol.object({}),opt:!0}]});function RAf(i,u){if(u.length===0)return;let[t,...f]=u,l=t==="slug"?e2(i):i[t];for(let c of f){if(l===null||typeof l!=="object")return;l=l[c]}return l}function bAf(i){let t=i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/%/g,".*").replace(/_/g,".");return new RegExp(`^${t}$`,"i")}function CAf(i,u,t){if(i===void 0)return!0;switch(u){case"eq":return t===null?i===null:i===t;case"gt":return i>t;case"gte":return i>=t;case"lt":return i<t;case"lte":return i<=t;case"in":return Array.isArray(t)&&t.includes(i);case"like":return typeof i==="string"&&bAf(String(t)).test(i);case"contains":return String(i).toLowerCase().includes(String(t).toLowerCase());default:return!0}}function Ua(i,u){if(!u)return!0;if("conditions"in u){let{operator:f,conditions:l}=u;if(l.length===0)return!0;switch(f){case"and":return l.every((c)=>Ua(i,c));case"or":return l.some((c)=>Ua(i,c));case"not":return!l.every((c)=>Ua(i,c));default:return!0}}let t=RAf(i,u.field);return CAf(t,u.operator,u.value)}var s90=g(()=>{VEi()});async function p90(i,u,t){if(i.length===0)return;let f=0;async function l(){while(f<i.length){let c=f++;await t(i[c])}}await Promise.all(Array.from({length:Math.min(u,i.length)},()=>l()))}import{z as tg}from"zod";var MAf=8,qAf,VAf,rAf,mAf,S0u;var iO0=g(()=>{G0u();b90();nd();r90();e90();Tq();o90();Rt();$u();cE();id();Ly();VW();xv();VEi();s90();qAf=[{name:/^(COLLECTION_REGISTRY_APP_LIST|REGISTRY_ITEM_LIST)$/,inputSchema:tg.object({})}],VAf={LLM:x3i,LLMS:x3i,ASSISTANTS:R90,MCP:m90,OBJECT_STORAGE:sO,AI_GATEWAY_BILLING:a90,TRIGGER:F3i,REGISTRY:qAf,BRAND:I3i},rAf=n_.extend({binding:tg.union([tg.array(tg.object({}).passthrough()),tg.object({}).passthrough(),tg.string()]).optional(),include_virtual:tg.boolean().optional().describe("Whether to include VIRTUAL connections in the results. Defaults to false."),slug:tg.string().optional().describe("Filter by connection slug. Matches against app_name, or a slug derived from connection_url or title.")}),mAf=OD(B6),S0u=fi({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:rAf,outputSchema:mAf,handler:async(i,u)=>{await u.access.check();let t=yi(u),f=i.binding?typeof i.binding==="string"?(()=>{let _=VAf[i.binding.toUpperCase()];if(!_)throw Error(`Unknown binding: ${i.binding}`);return _})():i.binding:void 0,l=f?Z3i(f):void 0,c=!!l,E=i.limit??100,$=i.offset??0,{items:w,totalCount:d}=await u.storage.connections.list(t.id,{includeVirtual:i.include_virtual??!1,slug:i.slug,where:i.where,orderBy:i.orderBy,limit:c?void 0:E,offset:c?void 0:$});if(l){let _=_1(),v=h4.SELF(t.id);await p90(w,MAf,async(n)=>{if(n.tools!==null)return;let D=n.id===v?async()=>{let{listManagementTools:N}=await Promise.resolve().then(() => (Hy(),k3i));return N(u)}:()=>T0u(n,u,fE0),O=await f7("tools",n.id,D,_,(N)=>u.pendingRevalidations.push(N),t7);if(O!==null)n.tools=O})}if(Rh()){let _=M1(),v=h4.DEV_ASSETS(t.id);if(!w.some((n)=>n.id===v)){let n=qW(t.id,_),D=!i.slug||e2(n)===i.slug,O=Ua(n,i.where);if(D&&O)w.unshift(n)}}if(c){let _=(await Promise.all(w.map(async(O)=>{if(!O.tools||O.tools.length===0)return null;return l.isImplementedBy(O.tools.map((y)=>({name:y.name,inputSchema:y.inputSchema,outputSchema:y.outputSchema})))?O:null}))).filter((O)=>O!==null),v=_.length,n=_.slice($,$+E),D=$+E<v;return{items:n,totalCount:v,hasMore:D}}let h=$+E<d;return{items:w,totalCount:d,hasMore:h}}})});var eAf,j0u;var uO0=g(()=>{nd();Rt();$u();cE();id();Ly();VW();xv();eAf=ya(B6),j0u=fi({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:Na,outputSchema:eAf,handler:async(i,u)=>{let t=yi(u);if(await u.access.check(),Rh()&&m6i(i.id,t.id))return{item:qW(t.id,M1())};let f=await u.storage.connections.findById(i.id);if(!f||f.organization_id!==t.id)return{item:null};if(f.tools===null){let l=h4.SELF(t.id),c=f.id===l?async()=>{let{listManagementTools:$}=await Promise.resolve().then(() => (Hy(),k3i));return $(u)}:async()=>{let $=await I6(f,u,!0);try{return(await $.listTools()).tools}finally{await $.close().catch(()=>{})}},E=await f7("tools",f.id,c,_1(),($)=>u.pendingRevalidations.push($),t7);if(E!==null)f.tools=E}return{item:f}}})});import{z as K0u}from"zod";function sAf(i,u){return i.length===u.length&&i.every((t,f)=>t===u[f])}var aAf,oAf,J0u;var tO0=g(()=>{Ly();v_();$u();vt();id();xm();B0u();ir();xv();aAf=K0u.object({id:K0u.string().describe("ID of the connection to update"),data:$V.describe("Partial connection data to update")}),oAf=K0u.object({item:B6.describe("The updated connection entity")});J0u=fi({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:aAf,outputSchema:oAf,handler:async(i,u)=>{Si(u);let t=yi(u);await u.access.check();let f=Hu(u);if(!f)throw Error("User ID required to update connection");let{id:l,data:c}=i,E=c.configuration_state!==void 0||c.configuration_scopes!==void 0,$=await u.storage.connections.findById(l);if(!$||$.organization_id!==t.id)throw Error("Connection not found in organization");let w=c.connection_type??$.connection_type,d=c.connection_url??$.connection_url;if(w==="VIRTUAL"){let J=_N(d);if(!J)throw Error("VIRTUAL connection requires connection_url in format: virtual://$virtual_mcp_id");let W=await u.storage.virtualMcps.findById(J);if(!W)throw Error(`Virtual MCP not found: ${J}`);if(W.organization_id!==t.id)throw Error("Virtual MCP does not belong to the current organization");d=vN(J)}let h=c.configuration_state??$.configuration_state??{},_=c.configuration_scopes??$.configuration_scopes??[];if(E){if(c.configuration_state!==void 0)h=c.configuration_state??{};else if(h===null||h===void 0)h={};if(c.configuration_scopes!==void 0)_=c.configuration_scopes??[];if(_.length>0){let J=h;na(J,_,t.id),await ga(J,_,t.id,u)}}if(w==="STDIO"&&!yu().localMode)throw Error("STDIO connections are only available in local mode (--local-mode).");let v=c.connection_token??$.connection_token;if(!v)try{let W=await new ml(u.db,u.vault).get(l);if(W?.accessToken)v=W.accessToken}catch{}let n=await o2({id:$.id,title:c.title??$.title,connection_type:w,connection_url:d,connection_token:v,connection_headers:c.connection_headers??$.connection_headers}).catch(()=>null),D=n?.tools?.length?n.tools:null,O=!1;if(c.configuration_scopes===void 0&&n?.scopes?.length)O=!sAf(_,n.scopes),_=n.scopes;if(na(h,_,t.id),O&&_.length>0)await ga(h,_,t.id,u);let N=E||O,y=N?Da(h,_):[],Z=N?Da($.configuration_state??{},$.configuration_scopes??[]):[],T=$.configuration_state,B=T==null||Object.keys(T).length===0,F,A,S=async()=>{try{await u.storage.connectionCredentialVault.replaceGrantsForSubject({organizationId:t.id,subjectConnectionId:l,createdBy:f,grants:Z})}catch(J){console.error("Failed to restore credential grants after credential vault mutation failed",J)}},I={...c,connection_url:d,tools:null,configuration_state:h,configuration_scopes:_,updated_by:f},k={...$,...I};if(N)try{if(await u.storage.connectionCredentialVault.replaceGrantsForSubject({organizationId:t.id,subjectConnectionId:l,createdBy:f,grants:y}),y.length>0){if(!await u.storage.connectionCredentialVault.findActiveWorkloadToken({organizationId:t.id,subjectConnectionId:l})){let{plaintextToken:W,record:r}=await u.storage.connectionCredentialVault.createOrRotateWorkloadToken({organizationId:t.id,subjectConnectionId:l});A=r.id,F={baseUrl:u.baseUrl,org:t.slug??t.id,subjectConnectionId:l,token:W}}}}catch(J){if(A)await u.storage.connectionCredentialVault.revokeWorkloadToken({organizationId:t.id,subjectConnectionId:l,tokenId:A});throw await S(),J}if(N&&h&&_)try{await(await I6(k,u,!1)).callTool({name:"ON_MCP_CONFIGURATION",arguments:{state:h,scopes:_,firstRun:B,...F?{vault:F}:{}}})}catch(J){if(console.error("Failed to invoke ON_MCP_CONFIGURATION callback",J),A)throw await u.storage.connectionCredentialVault.revokeWorkloadToken({organizationId:t.id,subjectConnectionId:l,tokenId:A}),await S(),J}let q;try{q=await u.storage.connections.update(l,I)}catch(J){if(N){if(A)await u.storage.connectionCredentialVault.revokeWorkloadToken({organizationId:t.id,subjectConnectionId:l,tokenId:A});await S()}throw J}if(D)_1()?.set("tools",l,D).catch(()=>{});return UQ(l),{item:q}}})});import{z as pAf}from"zod";var iIf,X0u;var fO0=g(()=>{nd();z4();$u();id();xm();xv();iIf=Za.extend({force:pAf.boolean().optional().describe("If true, removes this connection from all agents that reference it before deleting")}),X0u=fi({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:iIf,outputSchema:Ta(B6),handler:async(i,u)=>{Si(u);let t=yi(u);await u.access.check();let f=await u.storage.connections.findById(i.id);if(!f)throw Error(`Connection not found: ${i.id}`);if(f.organization_id!==t.id)throw Error("Connection not found in organization");if(f.metadata?.isFixed===!0)throw Error("This connection is a fixed system connection and cannot be deleted");let c=await u.storage.virtualMcps.listByConnectionId(t.id,i.id);if(c.length>0)if(i.force)await u.storage.virtualMcps.removeConnectionReferences(i.id);else throw Error(JSON.stringify({code:"CONNECTION_IN_USE",agentNames:c.map((w)=>w.title)}));await u.storage.connections.delete(i.id);let E=await u.storage.organizationSettings.get(t.id);if(E?.registry_config){let{registries:w,blockedMcps:d}=E.registry_config;if(i.id in w){let{[i.id]:h,..._}=w;await u.storage.organizationSettings.upsert(t.id,{registry_config:{registries:_,blockedMcps:d}})}}_1()?.invalidate(i.id).catch(()=>{}),UQ(i.id);let $=Hu(u);if($)mu.capture({distinctId:$,event:"connection_deleted",groups:{organization:t.id},properties:{connection_id:f.id,connection_type:f.connection_type,app_name:f.app_name??null,organization_id:t.id,forced:i.force??!1}});return{item:f}}})});import{z as Zz}from"zod";var L0u;var lO0=g(()=>{$u();L0u=fi({name:"CONNECTION_TEST",description:"Test connection health and latency",annotations:{title:"Test Connection",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!0},inputSchema:Zz.object({id:Zz.string()}),outputSchema:Zz.object({id:Zz.string(),healthy:Zz.boolean(),latencyMs:Zz.number()}),handler:async(i,u)=>{let t=yi(u);await u.access.check();let f=await u.storage.connections.findById(i.id);if(!f||f.organization_id!==t.id)throw Error("Connection not found");let l=await u.storage.connections.testConnection(i.id);return{id:i.id,...l}}})});var cO0=g(()=>{v90();iO0();uO0();tO0();fO0();lO0()});import{sql as rf}from"kysely";import{z as pv}from"zod";function EO0(i){if(i===null||i===void 0)return"NULL";if(typeof i==="number")return String(i);if(typeof i==="boolean")return i?"TRUE":"FALSE";if(typeof i==="string")return`'${i.replace(/'/g,"''")}'`;if(i instanceof Date)return`'${i.toISOString()}'`;return`'${JSON.stringify(i).replace(/'/g,"''")}'`}function fIf(i,u){let t=i;for(let l=u.length;l>=1;l--){let c=`$${l}`;if(t.includes(c))t=t.replaceAll(c,EO0(u[l-1]))}let f=[];for(let l=0;l<t.length;l++)if(t[l]==="?")f.push(l);for(let l=Math.min(f.length,u.length)-1;l>=0;l--){let c=f[l],E=EO0(u[l]);t=t.slice(0,c)+E+t.slice(c+1)}return t}function $O0(i){return i.replace(/-/g,"_")}function cIf(i){return`app_${$O0(i)}`}function EIf(i){return`app_role_${$O0(i)}`}function $If(i){if(i instanceof Error){let u=i.message.toLowerCase(),t=i.code;return t==="3F000"||t==="42704"||t==="22023"||u.includes("schema")&&u.includes("does not exist")||u.includes("role")&&u.includes("does not exist")}return!1}async function wIf(i,u,t){if(await rf`CREATE SCHEMA IF NOT EXISTS ${rf.id(u)}`.execute(i),!(await rf`
86558
86558
  SELECT EXISTS (SELECT 1 FROM pg_roles WHERE rolname = ${t}) as exists
86559
- `.execute(i)).rows[0]?.exists)await rf`CREATE ROLE ${rf.id(t)} NOLOGIN`.execute(i);await rf`GRANT ${rf.id(t)} TO CURRENT_USER`.execute(i),await rf`GRANT USAGE, CREATE ON SCHEMA ${rf.id(u)} TO ${rf.id(t)}`.execute(i),await rf`GRANT ALL ON ALL TABLES IN SCHEMA ${rf.id(u)} TO ${rf.id(t)}`.execute(i),await rf`GRANT ALL ON ALL SEQUENCES IN SCHEMA ${rf.id(u)} TO ${rf.id(t)}`.execute(i),await rf`ALTER DEFAULT PRIVILEGES IN SCHEMA ${rf.id(u)} GRANT ALL ON TABLES TO ${rf.id(t)}`.execute(i),await rf`ALTER DEFAULT PRIVILEGES IN SCHEMA ${rf.id(u)} GRANT ALL ON SEQUENCES TO ${rf.id(t)}`.execute(i),await rf`REVOKE ALL ON SCHEMA public FROM ${rf.id(t)}`.execute(i)}async function dIf(i,u,t,f){try{return await i.transaction().execute(async(l)=>{return await rf`SET LOCAL ROLE ${rf.id(t)}`.execute(l),await rf`SET LOCAL search_path TO ${rf.id(u)}`.execute(l),await rf.raw(f).execute(l)})}catch(l){if($If(l))return await wIf(i,u,t),await i.transaction().execute(async(c)=>{return await rf`SET LOCAL ROLE ${rf.id(t)}`.execute(c),await rf`SET LOCAL search_path TO ${rf.id(u)}`.execute(c),await rf.raw(f).execute(c)});throw l}}var tIf,lIf,wO0;var dO0=g(()=>{$u();tIf=pv.object({results:pv.array(pv.unknown()).optional(),success:pv.boolean().optional()});lIf=pv.object({sql:pv.string().describe("The SQL query to run"),params:pv.array(pv.any()).describe("The parameters to pass to the SQL query").optional()});wO0=fi({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:lIf,outputSchema:pv.object({result:pv.array(tIf)}),handler:async(i,u)=>{Si(u),await u.access.check();let t=fIf(i.sql,i.params||[]);if(!u.connectionId)throw Error("Connection context required for database access");console.warn("DATABASES_RUN_SQL invoked",{"tool.deprecation_probe":"DATABASES_RUN_SQL","connection.id":u.connectionId,"organization.id":u.organization?.id??null,"user.id":u.auth.user?.id??null});let f=cIf(u.connectionId),l=EIf(u.connectionId);return{result:[{results:(await dIf(u.db,f,l,t)).rows,success:!0}]}}})});function G3i(i){let u=i.access.getRole();if(!u||!O3.includes(u))throw new tD("Only organization owners and admins can change org-wide pin status")}var W0u=g(()=>{i_();fy()});import{z as vO0}from"zod";function _If(){let i=hO0[Math.floor(Math.random()*hO0.length)];return`icon://${_O0[Math.floor(Math.random()*_O0.length)]}?color=${i}`}var hO0,_O0,vIf,nIf,Y0u;var nO0=g(()=>{$u();i7();W0u();va();hO0=["red","orange","amber","yellow","lime","green","emerald","cyan","sky","blue","indigo","violet","purple","fuchsia","pink","rose"],_O0=["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"];vIf=vO0.object({data:_V.describe("Data for the new virtual MCP")}),nIf=vO0.object({item:F6.describe("The created virtual MCP entity")}),Y0u=fi({name:"COLLECTION_VIRTUAL_MCP_CREATE",description:"Create a Virtual MCP (agent) that aggregates tools from multiple connections into one endpoint. Pass `prompts` to seed the agent with kickstart prompts (conversation starters shown as icebreakers). Author them from the agent's role/instructions and the descriptions of the tools it will have, so the starters are coherent and immediately useful.",annotations:{title:"Create Virtual MCP",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!1},inputSchema:vIf,outputSchema:nIf,handler:async(i,u)=>{Si(u);let t=yi(u);await u.access.check();let f=Hu(u);if(!f)throw Error("User ID required to create virtual MCP");if(i.data.pinned===!0)G3i(u);let{prompts:l,...c}=i.data,E={...c,icon:c.icon??_If()},$=await u.storage.virtualMcps.create(t.id,f,E);if(l?.length&&u.orgFs&&$.id)await l3i(u.orgFs,$.id,f,l);return{item:$}}})});function DIf(i){let u=[],t=0;while(t<i.length){let f=i[t];if(f==="%")u.push(".*");else if(f==="_")u.push(".");else if(/[.*+?^${}()|[\]\\]/.test(f))u.push("\\"+f);else u.push(f);t++}return u.join("")}function fg(i){return typeof i==="string"||typeof i==="number"}function Q0u(i,u){let t=u.split("."),f=i;for(let l of t){if(f==null||typeof f!=="object")return;f=f[l]}return f}function gIf(i,u){return i.connections.some((t)=>t.connection_id===u)}function S3i(i,u){if("conditions"in u){let{operator:$,conditions:w}=u;switch($){case"and":return w.every((d)=>S3i(i,d));case"or":return w.some((d)=>S3i(i,d));case"not":return!w.every((d)=>S3i(i,d));default:return!0}}let{field:t,operator:f,value:l}=u,c=t.join(".");if(c==="connection_id"){if(f!=="eq"||typeof l!=="string")return!1;return gIf(i,l)}let E=Q0u(i,c);switch(f){case"eq":return E===l;case"gt":return fg(E)&&fg(l)&&E>l;case"gte":return fg(E)&&fg(l)&&E>=l;case"lt":return fg(E)&&fg(l)&&E<l;case"lte":return fg(E)&&fg(l)&&E<=l;case"in":return Array.isArray(l)&&l.includes(E);case"like":if(typeof E!=="string"||typeof l!=="string")return!1;if(l.length>100)return!1;let $=DIf(l);return new RegExp(`^${$}$`,"i").test(E);case"contains":if(typeof E!=="string"||typeof l!=="string")return!1;return E.toLowerCase().includes(l.toLowerCase());default:return!0}}function OIf(i,u){return[...i].sort((t,f)=>{for(let l of u){let c=l.field.join("."),E=Q0u(t,c),$=Q0u(f,c),w=0;if(E==null&&$==null)continue;if(E==null)w=l.nulls==="first"?-1:1;else if($==null)w=l.nulls==="first"?1:-1;else if(typeof E==="string"&&typeof $==="string")w=E.localeCompare($);else if(typeof E==="number"&&typeof $==="number")w=E-$;else w=String(E).localeCompare(String($));if(w!==0)return l.direction==="desc"?-w:w}return 0})}var NIf,yIf,z0u;var DO0=g(()=>{nd();$u();i7();NIf=n_,yIf=OD(F6),z0u=fi({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:NIf,outputSchema:yIf,handler:async(i,u)=>{await u.access.check();let t=yi(u),f=i.where&&!("conditions"in i.where)&&i.where.field.join(".")==="connection_id"&&i.where.operator==="eq"&&typeof i.where.value==="string"?i.where.value:void 0,l=i.where&&!("conditions"in i.where)&&i.where.field.join(".")==="pinned"&&i.where.operator==="eq"&&typeof i.where.value==="boolean"?i.where.value:void 0,E=f?await u.storage.virtualMcps.listByConnectionId(t.id,f):await u.storage.virtualMcps.list(t.id,l!==void 0?{pinnedOnly:l}:void 0);if(i.where)E=E.filter((v)=>S3i(v,i.where));if(i.orderBy&&i.orderBy.length>0)E=OIf(E,i.orderBy);let $=E.length,w=i.offset??0,d=i.limit??100,h=E.slice(w,w+d),_=w+d<$;return{items:h,totalCount:$,hasMore:_}}})});import{z as H0u}from"zod";var ZIf,TIf,R0u;var gO0=g(()=>{$u();i7();ZIf=H0u.object({id:H0u.string().describe("ID of the virtual MCP to retrieve")}),TIf=H0u.object({item:F6.nullable().describe("The retrieved virtual MCP, or null if not found")}),R0u=fi({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:ZIf,outputSchema:TIf,handler:async(i,u)=>{Si(u);let t=yi(u);await u.access.check();let f=await u.storage.virtualMcps.findById(i.id);if(f&&f.organization_id!==t.id)return{item:null};if(!f)return{item:null};return{item:f}}})});import{z as b0u}from"zod";var BIf,FIf,C0u;var OO0=g(()=>{$u();va();i7();W0u();BIf=b0u.object({id:b0u.string().describe("ID of the virtual MCP to update"),data:vV.describe("Partial virtual MCP data to update")}),FIf=b0u.object({item:F6.describe("The updated virtual MCP entity")}),C0u=fi({name:"COLLECTION_VIRTUAL_MCP_UPDATE",description:"Update a Virtual MCP's name, slug, connection list, or kickstart prompts. Pass `prompts` to replace the agent's conversation starters (full set; empty array clears them).",annotations:{title:"Update Virtual MCP",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:BIf,outputSchema:FIf,handler:async(i,u)=>{Si(u);let t=yi(u);await u.access.check();let f=Hu(u);if(!f)throw Error("User ID required to update virtual MCP");let l=await u.storage.virtualMcps.findById(i.id);if(!l)throw Error(`Virtual MCP not found: ${i.id}`);if(l.organization_id!==t.id)throw Error(`Virtual MCP not found: ${i.id}`);let{prompts:c,...E}=i.data;if(E.metadata&&l.metadata)E.metadata={...l.metadata,...E.metadata};if(E.pinned!==void 0&&E.pinned!==l.pinned)G3i(u);let $=await u.storage.virtualMcps.update(i.id,f,E);if(c!==void 0&&u.orgFs)await l3i(u.orgFs,i.id,f,c);return{item:$}}})});import{z as M0u}from"zod";var UIf,PIf,q0u;var NO0=g(()=>{ug();v_();$u();va();i7();UIf=M0u.object({id:M0u.string().describe("ID of the virtual MCP to delete")}),PIf=M0u.object({item:F6.describe("The deleted virtual MCP entity")}),q0u=fi({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:UIf,outputSchema:PIf,handler:async(i,u)=>{Si(u);let t=yi(u);await u.access.check();let f=await u.storage.virtualMcps.findById(i.id);if(!f)throw Error(`Virtual MCP not found: ${i.id}`);if(f.organization_id!==t.id)throw Error(`Virtual MCP not found: ${i.id}`);if(await u.storage.virtualMcps.delete(i.id),u.orgFs)await N0u(u.orgFs,i.id,Hu(u)??"system");let l=f.metadata?.githubRepo?.connectionId;if(l)try{let c=await u.storage.connections.findById(l,t.id);if(c&&x3(c)){let $=await new ml(u.db,u.vault).get(l);if($?.accessToken)try{await fetch("https://api.github.com/installation/token",{method:"DELETE",headers:{Authorization:`Bearer ${$.accessToken}`,Accept:"application/vnd.github+json","X-GitHub-Api-Version":"2022-11-28"},signal:AbortSignal.timeout(5000)})}catch{}await u.storage.connections.delete(l)}}catch(c){console.error("[VIRTUAL_MCP_DELETE] failed to tear down repo-scoped connection",{childConnectionId:l,error:c.message})}return{item:f}}})});import{z as $w}from"zod";var AIf,V0u;var yO0=g(()=>{$u();AIf=$w.object({id:$w.string(),virtualMcpId:$w.string(),pluginId:$w.string(),connectionId:$w.string().nullable(),settings:$w.record($w.string(),$w.unknown()).nullable(),createdAt:$w.string(),updatedAt:$w.string()}),V0u=fi({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:$w.object({virtualMcpId:$w.string().describe("Virtual MCP ID"),pluginId:$w.string().describe("Plugin ID")}),outputSchema:$w.object({config:AIf.nullable()}),handler:async(i,u)=>{Si(u),await u.access.check();let{virtualMcpId:t,pluginId:f}=i,l=await u.storage.virtualMcpPluginConfigs.get(t,f);if(!l)return{config:null};return{config:{id:l.id,virtualMcpId:l.virtualMcpId,pluginId:l.pluginId,connectionId:l.connectionId,settings:l.settings,createdAt:l.createdAt instanceof Date?l.createdAt.toISOString():l.createdAt,updatedAt:l.updatedAt instanceof Date?l.updatedAt.toISOString():l.updatedAt}}}})});import{z as oc}from"zod";var IIf,r0u;var ZO0=g(()=>{$u();VW();cE();IIf=oc.object({id:oc.string(),virtualMcpId:oc.string(),pluginId:oc.string(),connectionId:oc.string().nullable(),settings:oc.record(oc.string(),oc.unknown()).nullable(),createdAt:oc.string(),updatedAt:oc.string()}),r0u=fi({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:oc.object({virtualMcpId:oc.string().describe("Virtual MCP ID"),pluginId:oc.string().describe("Plugin ID"),connectionId:oc.string().nullable().optional().describe("MCP connection to bind"),settings:oc.record(oc.string(),oc.unknown()).nullable().optional().describe("Plugin-specific settings")}),outputSchema:oc.object({config:IIf}),handler:async(i,u)=>{Si(u),await u.access.check();let{virtualMcpId:t,pluginId:f,connectionId:l,settings:c}=i,E=Hu(u),$=await u.storage.connections.findById(t);if(!$)throw Error(`Connection not found: ${t}`);let w=l?await u.storage.connections.findById(l):null;if(l&&$.organization_id&&!w&&Rh()){if(m6i(l,$.organization_id)){if(!E)throw Error("User ID required to create dev-assets connection");let h=qW($.organization_id,M1());await u.storage.connections.create({...h,organization_id:$.organization_id,created_by:E})}}let d=await u.storage.virtualMcpPluginConfigs.upsert(t,f,{connectionId:l,settings:c});return{config:{id:d.id,virtualMcpId:d.virtualMcpId,pluginId:d.pluginId,connectionId:d.connectionId,settings:d.settings,createdAt:d.createdAt instanceof Date?d.createdAt.toISOString():d.createdAt,updatedAt:d.updatedAt instanceof Date?d.updatedAt.toISOString():d.updatedAt}}}})});import{z as _$}from"zod";var xIf,m0u;var TO0=g(()=>{$u();i7();xIf=_$.object({connectionId:_$.string(),toolName:_$.string(),label:_$.string(),icon:_$.string().nullable().optional()}),m0u=fi({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:_$.object({virtualMcpId:_$.string().describe("Virtual MCP ID"),pinnedViews:_$.array(xIf).describe("Pinned views to set for the virtual MCP sidebar"),layout:_$.object({defaultMainView:_$.object({type:_$.string(),id:_$.string().optional(),toolName:_$.string().optional()}).nullable().optional(),chatDefaultOpen:_$.boolean().nullable().optional()}).optional()}),outputSchema:_$.object({item:F6.nullable()}),handler:async(i,u)=>{Si(u);let t=yi(u);await u.access.check();let{virtualMcpId:f,pinnedViews:l,layout:c}=i,E=Hu(u),$=await u.storage.virtualMcps.findById(f);if(!$)throw Error(`Virtual MCP not found: ${f}`);if($.organization_id!==t.id)throw Error(`Virtual MCP not found: ${f}`);let w=$.metadata?.ui??{},d={...w,pinnedViews:l.length>0?l:null,layout:c??w.layout??null};return{item:await u.storage.virtualMcps.update(f,E??"system",{metadata:{...$.metadata,ui:d}})}}})});import{z as yD}from"zod";var kIf,GIf,e0u;var BO0=g(()=>{$u();kIf=yD.object({ids:yD.array(yD.string()).describe("Virtual MCP ids to look up")}),GIf=yD.object({items:yD.array(yD.object({id:yD.string(),last_used_at:yD.string().optional(),last_used_by:yD.string().optional()}))}),e0u=fi({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:kIf,outputSchema:GIf,handler:async(i,u)=>{Si(u),yi(u),await u.access.check();let t=await u.storage.threads.findLastUsedByVirtualMcpIds(i.ids);return{items:i.ids.map((f)=>({id:f,last_used_at:t.get(f)?.last_used_at,last_used_by:t.get(f)?.last_used_by}))}}})});var FO0=g(()=>{nO0();DO0();gO0();OO0();NO0();yO0();ZO0();TO0();BO0()});import{z as Ul}from"zod";var a0u;var UO0=g(()=>{Sl();$u();a0u=fi({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:Ul.object({id:Ul.string().describe("Log ID to fetch")}),outputSchema:Ul.object({log:Ul.object({id:Ul.string().optional(),organizationId:Ul.string(),connectionId:Ul.string(),toolName:Ul.string(),input:Ul.record(Ul.string(),Ul.unknown()),output:Ul.record(Ul.string(),Ul.unknown()),isError:Ul.boolean(),errorMessage:Ul.string().nullish(),durationMs:Ul.number(),timestamp:Ul.string(),userId:Ul.string().nullish(),requestId:Ul.string(),userAgent:Ul.string().nullish(),virtualMcpId:Ul.string().nullish(),properties:Ul.record(Ul.string(),Ul.string()).nullish()}).nullable().describe("The monitoring log, or null if not found")}),handler:async(i,u)=>{await u.access.check(),await ad();let t=yi(u),f=await u.storage.monitoring.getById(t.id,i.id);if(!f)return{log:null};return{log:{...f,timestamp:f.timestamp instanceof Date?f.timestamp.toISOString():f.timestamp}}}})});import{z as Tt}from"zod";var jIf,o0u;var PO0=g(()=>{Sl();$u();jIf=Tt.object({id:Tt.string().optional().describe("Unique log identifier"),organizationId:Tt.string().describe("Organization ID"),connectionId:Tt.string().describe("Connection ID"),toolName:Tt.string().describe("Name of the tool that was called"),isError:Tt.boolean().describe("Whether the call resulted in an error"),errorMessage:Tt.string().nullish().describe("Error message if applicable"),durationMs:Tt.number().describe("Call duration in milliseconds"),timestamp:Tt.string().describe("ISO 8601 timestamp of the call"),userId:Tt.string().nullish().describe("User who triggered the call"),requestId:Tt.string().describe("Unique request identifier"),userAgent:Tt.string().nullish().describe("Client identifier (x-mesh-client header)"),virtualMcpId:Tt.string().nullish().describe("Virtual MCP (Agent) ID if routed through an agent"),properties:Tt.record(Tt.string(),Tt.string()).nullish().describe("Custom key-value metadata attached to the log")}),o0u=fi({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:Tt.object({connectionId:Tt.string().optional().describe("Filter by connection ID"),excludeConnectionIds:Tt.array(Tt.string()).optional().describe("Exclude logs from these connection IDs (e.g. system connections)"),virtualMcpId:Tt.string().optional().describe("Filter by Virtual MCP (Agent) ID"),toolName:Tt.string().optional().describe("Filter by tool name"),isError:Tt.boolean().optional().describe("Filter by error status"),startDate:Tt.string().datetime().optional().describe("Filter by start date (ISO 8601 datetime string)"),endDate:Tt.string().datetime().optional().describe("Filter by end date (ISO 8601 datetime string)"),limit:Tt.number().default(20).describe("Maximum number of results"),offset:Tt.number().default(0).describe("Offset for pagination"),properties:Tt.record(Tt.string(),Tt.string()).optional().describe("Filter by exact property key=value matches"),propertyKeys:Tt.array(Tt.string()).optional().describe("Filter by logs that have these property keys"),propertyPatterns:Tt.record(Tt.string(),Tt.string()).optional().describe("Filter by property value patterns (SQL LIKE, use % as wildcard)"),propertyInValues:Tt.record(Tt.string(),Tt.string()).optional().describe("Filter by exact match within comma-separated values (e.g., user_tags in 'Engineering')")}),outputSchema:Tt.object({logs:Tt.array(jIf).describe("Array of monitoring logs"),total:Tt.number().describe("Total number of logs matching filters"),offset:Tt.number().describe("Current offset for pagination"),limit:Tt.number().describe("Current limit for pagination")}),handler:async(i,u)=>{await ad();let t=yi(u),l=i.properties||i.propertyKeys||i.propertyPatterns||i.propertyInValues?{properties:i.properties,propertyKeys:i.propertyKeys,propertyPatterns:i.propertyPatterns,propertyInValues:i.propertyInValues}:void 0,c={organizationId:t.id,connectionId:i.connectionId,excludeConnectionIds:i.excludeConnectionIds,virtualMcpId:i.virtualMcpId,toolName:i.toolName,isError:i.isError,startDate:i.startDate?new Date(i.startDate):void 0,endDate:i.endDate?new Date(i.endDate):void 0,limit:i.limit,offset:i.offset,propertyFilters:l},E=await u.storage.monitoring.query(c);return{logs:E.logs.map(({input:$,output:w,...d})=>({...d,timestamp:d.timestamp instanceof Date?d.timestamp.toISOString():d.timestamp})),total:E.total,offset:i.offset,limit:i.limit}}})});import{z as n0}from"zod";var s0u;var AO0=g(()=>{Sl();$u();s0u=fi({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:n0.object({startDate:n0.string().datetime().optional().describe("Filter by start date (ISO 8601 datetime string)"),endDate:n0.string().datetime().optional().describe("Filter by end date (ISO 8601 datetime string)"),interval:n0.string().regex(/^\d+[mhd]$/).optional().describe("Bucket interval for timeseries data (e.g. 1m, 5m, 2h, 1d). When provided, returns timeseries array."),connectionIds:n0.array(n0.string()).max(100).optional().describe("Filter by specific connection IDs (max 100)"),excludeConnectionIds:n0.array(n0.string()).max(100).optional().describe("Exclude specific connection IDs (max 100)"),toolNames:n0.array(n0.string()).max(100).optional().describe("Filter by specific tool names (max 100)"),status:n0.enum(["success","error"]).optional().describe("Filter metrics by execution status"),topN:n0.number().int().min(1).max(20).optional().describe("When provided with interval, also return top tools and their timeseries"),userIds:n0.array(n0.string()).max(100).optional().describe("Filter LLM usage by user IDs (only applied when llmUsage is true)"),llmUsage:n0.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:n0.object({totalCalls:n0.number().describe("Total number of tool calls"),errorRate:n0.number().optional().describe("Error rate as a decimal (0 to 1)"),avgDurationMs:n0.number().describe("Average call duration in milliseconds"),errorRatePercent:n0.string().optional().describe("Error rate as a percentage string"),totalErrors:n0.number().optional().describe("Total number of errors"),p50DurationMs:n0.number().optional().describe("50th percentile duration in milliseconds"),p95DurationMs:n0.number().optional().describe("95th percentile duration in milliseconds"),connectionBreakdown:n0.array(n0.object({connectionId:n0.string(),calls:n0.number(),errors:n0.number(),errorRate:n0.number(),avgDurationMs:n0.number()})).optional().describe("Per-connection metric breakdown"),totalInputTokens:n0.number().optional().describe("Total input tokens (LLM usage mode)"),totalOutputTokens:n0.number().optional().describe("Total output tokens (LLM usage mode)"),totalTokens:n0.number().optional().describe("Total tokens (LLM usage mode)"),totalCostUsd:n0.number().optional().describe("Total USD cost (LLM usage mode; only non-zero for providers that report cost)"),topTools:n0.array(n0.object({toolName:n0.string(),connectionId:n0.string().nullable(),calls:n0.number(),inputTokens:n0.number().optional(),outputTokens:n0.number().optional(),costUsd:n0.number().optional()})).optional().describe("Top tools ranked by calls"),topToolsTimeseries:n0.array(n0.object({timestamp:n0.string(),toolName:n0.string(),calls:n0.number(),errors:n0.number(),avg:n0.number(),p95:n0.number()})).optional().describe("Per-tool metric timeseries for the top tools"),timeseries:n0.array(n0.object({timestamp:n0.string(),calls:n0.number(),errors:n0.number(),errorRate:n0.number(),avg:n0.number(),p50:n0.number(),p95:n0.number(),inputTokens:n0.number().optional(),outputTokens:n0.number().optional(),totalTokens:n0.number().optional(),costUsd:n0.number().optional()})).optional().describe("Timeseries data points bucketed by interval")}),handler:async(i,u)=>{let t=yi(u);if(await u.access.check(),await ad(),i.interval&&i.llmUsage)return u.storage.monitoring.queryLlmUsageStats({organizationId:t.id,interval:i.interval,connectionId:i.connectionIds?.[0]??"decopilot",startDate:i.startDate?new Date(i.startDate):void 0,endDate:i.endDate?new Date(i.endDate):void 0,userIds:i.userIds,topN:i.topN});if(i.interval){let l=await u.storage.monitoring.queryMetricTimeseries({organizationId:t.id,interval:i.interval,startDate:i.startDate?new Date(i.startDate):void 0,endDate:i.endDate?new Date(i.endDate):void 0,filters:{connectionIds:i.connectionIds,excludeConnectionIds:i.excludeConnectionIds,toolNames:i.toolNames,status:i.status}});if(!i.topN)return l;let c=await u.storage.monitoring.queryMetricTopToolsTimeseries({organizationId:t.id,interval:i.interval,startDate:i.startDate?new Date(i.startDate):void 0,endDate:i.endDate?new Date(i.endDate):void 0,topN:i.topN,filters:{connectionIds:i.connectionIds,excludeConnectionIds:i.excludeConnectionIds,toolNames:i.toolNames,status:i.status}});return{...l,topTools:c.topTools,topToolsTimeseries:c.timeseries}}let f=await u.storage.monitoring.getStats({organizationId:t.id,startDate:i.startDate?new Date(i.startDate):void 0,endDate:i.endDate?new Date(i.endDate):void 0});return{...f,errorRatePercent:(f.errorRate*100).toFixed(2)}}})});import{z as v$}from"zod";var p0u;var IO0=g(()=>{Sl();$u();p0u=fi({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:v$.object({threadIds:v$.array(v$.string()).min(1).max(500).describe("Thread IDs to aggregate usage for (max 500)"),connectionId:v$.string().optional().describe("LLM connection ID (defaults to 'decopilot')"),startDate:v$.string().datetime().optional().describe("Filter by start date (ISO 8601 datetime string)"),endDate:v$.string().datetime().optional().describe("Filter by end date (ISO 8601 datetime string)")}),outputSchema:v$.object({items:v$.array(v$.object({threadId:v$.string(),calls:v$.number(),inputTokens:v$.number(),outputTokens:v$.number(),totalTokens:v$.number(),costUsd:v$.number()}))}),handler:async(i,u)=>{let t=yi(u);return await u.access.check(),await ad(),{items:await u.storage.monitoring.queryThreadUsage({organizationId:t.id,connectionId:i.connectionId??"decopilot",threadIds:i.threadIds,startDate:i.startDate?new Date(i.startDate):void 0,endDate:i.endDate?new Date(i.endDate):void 0})}}})});var xO0=g(()=>{UO0();PO0();AO0();IO0()});function j3i(i){return typeof i==="string"&&JIf.has(i.trim().toLowerCase())}var JIf;var itu=g(()=>{JIf=new Set([".well-known","_admin","api","auth","cli","commerce-onboarding","dbos-queue-depth","health","hosted-run-pending","login","mcp","metrics","oauth","oauth-proxy","onboarding","org","report","reset-password"])});import{z as Dd}from"zod";var utu;var kO0=g(()=>{$u();itu();utu=fi({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:Dd.object({slug:Dd.string().min(1).max(50).regex(/^[a-z0-9-]+$/,"Slug must be lowercase alphanumeric with hyphens").refine((i)=>!j3i(i),"Slug is reserved by Studio"),name:Dd.string().min(1).max(255),description:Dd.string().optional()}),outputSchema:Dd.object({id:Dd.string(),name:Dd.string(),slug:Dd.string(),logo:Dd.string().nullable().optional(),metadata:Dd.any().optional(),createdAt:Dd.string().datetime().describe("ISO 8601 timestamp"),members:Dd.array(Dd.any()).optional()}),handler:async(i,u)=>{Si(u),await u.access.check();let t=Hu(u);if(!t)throw Error("User ID required to create organization");let f=await u.boundAuth.organization.create({name:i.name,slug:i.slug,metadata:i.description?{description:i.description}:void 0,userId:t});if(!f)throw Error("Failed to create organization");return{...f,createdAt:f.createdAt instanceof Date?f.createdAt.toISOString():f.createdAt}}})});import{z as D_}from"zod";var ttu;var GO0=g(()=>{$u();ttu=fi({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:D_.object({userId:D_.string().optional()}),outputSchema:D_.object({organizations:D_.array(D_.object({id:D_.string(),name:D_.string(),slug:D_.string(),logo:D_.string().nullable().optional(),metadata:D_.any().optional(),createdAt:D_.string().datetime().describe("ISO 8601 timestamp")}))}),handler:async(i,u)=>{Si(u),await u.access.check();let t=Hu(u),f=i.userId||t;if(!f)throw Error("User ID required to list organizations");return{organizations:(await u.boundAuth.organization.list(f)).map((c)=>({...c,createdAt:c.createdAt instanceof Date?c.createdAt.toISOString():c.createdAt}))}}})});import{z as S3}from"zod";var ftu;var SO0=g(()=>{$u();ftu=fi({name:"ORGANIZATION_GET",description:"Get an organization's details, members, and settings by slug or ID.",annotations:{title:"Get Organization",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:S3.object({}),outputSchema:S3.object({id:S3.string(),name:S3.string(),slug:S3.string(),logo:S3.string().nullable().optional(),metadata:S3.any().optional(),createdAt:S3.string().datetime().describe("ISO 8601 timestamp"),members:S3.array(S3.any()).optional(),invitations:S3.array(S3.any()).optional()}),handler:async(i,u)=>{Si(u),await u.access.check();let t=u.organization?.id;if(!t)throw Error("Organization ID required (no active organization in context)");let f=await u.boundAuth.organization.get(t);if(!f)throw Error("No active organization found");let l=new Date,c=f.invitations?.filter((E)=>new Date(E.expiresAt)>l);return{...f,invitations:c,createdAt:f.createdAt instanceof Date?f.createdAt.toISOString():f.createdAt}}})});import{z as g_}from"zod";var ltu;var jO0=g(()=>{$u();ltu=fi({name:"ORGANIZATION_UPDATE",description:"Update an organization's name or description.",annotations:{title:"Update Organization",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:g_.object({id:g_.string(),name:g_.string().min(1).max(255).optional(),description:g_.string().optional()}),outputSchema:g_.object({id:g_.string(),name:g_.string(),slug:g_.string(),logo:g_.string().nullable().optional(),metadata:g_.any().optional(),createdAt:g_.string().datetime().describe("ISO 8601 timestamp")}),handler:async(i,u)=>{Si(u),await u.access.check();let t={};if(i.name)t.name=i.name;if(i.description)t.metadata={description:i.description};let f=await u.boundAuth.organization.update({organizationId:i.id,data:t});if(!f)throw Error("Failed to update organization");return{...f,createdAt:f.createdAt instanceof Date?f.createdAt.toISOString():f.createdAt}}})});import{z as Pa}from"zod";var ctu;var KO0=g(()=>{$u();ctu=fi({name:"ORGANIZATION_DELETE",description:"Archive an organization (soft delete).",annotations:{title:"Delete Organization",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:Pa.object({id:Pa.string()}),outputSchema:Pa.object({success:Pa.boolean(),id:Pa.string()}),handler:async(i,u)=>{return Si(u),await u.access.check(),await u.boundAuth.organization.update({organizationId:i.id,data:{metadata:{archived:!0,archivedAt:new Date().toISOString()}}}),{success:!0,id:i.id}}})});import{z as M0}from"zod";var Aa,Ia,Tz,JO0,K3i,xa,ka,lg;var ZD=g(()=>{Aa=M0.object({title:M0.string(),url:M0.string(),icon:M0.string()}),Ia=M0.object({registries:M0.record(M0.string(),M0.object({enabled:M0.boolean()})).describe("Per-registry enabled/disabled state. Key is connection ID. Absent registries are treated as enabled."),blockedMcps:M0.array(M0.string()).describe("List of MCP app_name or app_id values to hide from the store.")}),Tz=M0.object({keyId:M0.string(),modelId:M0.string(),title:M0.string().optional()}).nullable(),JO0=M0.enum(["fast","smart","thinking","image","web_search","deep_research"]),K3i=M0.enum(["fast","smart","thinking"]),xa=M0.object({tiers:M0.object({fast:Tz,smart:Tz,thinking:Tz,image:Tz,web_search:Tz,deep_research:Tz})}),ka=M0.object({ids:M0.array(M0.string()).describe("Ordered list of custom virtual MCP agent ids to show on the home view.")}),lg=M0.object({id:M0.string().describe("Brand context ID"),name:M0.string().describe("Company name"),domain:M0.string().describe("Company domain (e.g. example.com)"),overview:M0.string().describe("Company overview / description"),logo:M0.string().nullable().optional().describe("Logo URL"),favicon:M0.string().nullable().optional().describe("Favicon URL"),ogImage:M0.string().nullable().optional().describe("OG image URL"),fonts:M0.object({heading:M0.string().optional().describe("Font family for headings"),body:M0.string().optional().describe("Font family for body text"),code:M0.string().optional().describe("Font family for code / monospace")}).nullable().optional().describe("Font families by semantic role"),colors:M0.object({primary:M0.string().optional().describe("Primary brand color (hex)"),secondary:M0.string().optional().describe("Secondary brand color (hex)"),accent:M0.string().optional().describe("Accent / highlight color (hex)"),background:M0.string().optional().describe("Background color (hex)"),foreground:M0.string().optional().describe("Foreground / text color (hex)")}).nullable().optional().describe("Semantic color palette"),images:M0.array(M0.record(M0.string(),M0.unknown())).nullable().optional().describe("Brand images"),metadata:M0.record(M0.string(),M0.unknown()).nullable().optional().describe("Extra design tokens (typography, components, spacing, layout, tone, etc.)"),archivedAt:M0.string().nullable().optional().describe("Archive timestamp (null to unarchive)"),isDefault:M0.boolean().optional().describe("Whether this is the default brand for the organization")})});import{z as i5}from"zod";var Etu;var XO0=g(()=>{$u();ZD();Etu=fi({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:i5.object({}),outputSchema:i5.object({organizationId:i5.string(),sidebar_items:i5.array(Aa).nullable().optional(),enabled_plugins:i5.array(i5.string()).nullable().optional(),registry_config:Ia.nullable().optional(),simple_mode:xa.nullable().optional(),default_home_agents:ka.nullable().optional(),reports_only:i5.boolean().nullable().optional(),task_board_enabled:i5.boolean().optional(),createdAt:i5.string().datetime().optional().describe("ISO 8601 timestamp"),updatedAt:i5.string().datetime().optional().describe("ISO 8601 timestamp")}),handler:async(i,u)=>{Si(u),await u.access.check();let t=u.organization?.id;if(!t)throw Error("Organization ID required (no active organization in context)");let f=await u.storage.organizationSettings.get(t);if(!f)return{organizationId:t};return{...f,createdAt:f.createdAt instanceof Date?f.createdAt.toISOString():f.createdAt,updatedAt:f.updatedAt instanceof Date?f.updatedAt.toISOString():f.updatedAt}}})});import{z as PE}from"zod";var $tu;var LO0=g(()=>{$u();ZD();$tu=fi({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:PE.object({organizationId:PE.string(),sidebar_items:PE.array(Aa).optional(),enabled_plugins:PE.array(PE.string()).optional(),registry_config:Ia.optional(),simple_mode:xa.optional(),default_home_agents:ka.optional(),reports_only:PE.boolean().optional(),task_board_enabled:PE.boolean().optional()}),outputSchema:PE.object({organizationId:PE.string(),sidebar_items:PE.array(Aa).nullable().optional(),enabled_plugins:PE.array(PE.string()).nullable().optional(),registry_config:Ia.nullable().optional(),simple_mode:xa.nullable().optional(),default_home_agents:ka.nullable().optional(),reports_only:PE.boolean().nullable().optional(),task_board_enabled:PE.boolean().optional(),createdAt:PE.string().datetime().describe("ISO 8601 timestamp"),updatedAt:PE.string().datetime().describe("ISO 8601 timestamp")}),handler:async(i,u)=>{if(Si(u),await u.access.check(),u.organization&&u.organization.id!==i.organizationId)throw Error("Cannot update settings for a different organization");let t=await u.storage.organizationSettings.upsert(i.organizationId,{sidebar_items:i.sidebar_items,enabled_plugins:i.enabled_plugins,registry_config:i.registry_config,simple_mode:i.simple_mode,default_home_agents:i.default_home_agents,reports_only:i.reports_only,task_board_enabled:i.task_board_enabled});return{...t,createdAt:t.createdAt instanceof Date?t.createdAt.toISOString():t.createdAt,updatedAt:t.updatedAt instanceof Date?t.updatedAt.toISOString():t.updatedAt}}})});import{z as O_}from"zod";var WO0,wtu,dtu;var YO0=g(()=>{$u();ZD();WO0=lg.extend({organizationId:O_.string(),archivedAt:O_.string().nullable().optional().describe("ISO 8601 timestamp"),createdAt:O_.string().describe("ISO 8601 timestamp"),updatedAt:O_.string().describe("ISO 8601 timestamp")}),wtu=fi({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:O_.object({includeArchived:O_.boolean().optional().describe("Include archived brands in the list")}),outputSchema:O_.object({items:O_.array(WO0)}),handler:async(i,u)=>{Si(u),await u.access.check();let t=u.organization?.id;if(!t)throw Error("Organization ID required (no active organization in context)");return{items:(await u.storage.brandContext.list(t,{includeArchived:i.includeArchived})).map((l)=>({...l,archivedAt:l.archivedAt instanceof Date?l.archivedAt.toISOString():l.archivedAt,createdAt:l.createdAt instanceof Date?l.createdAt.toISOString():l.createdAt,updatedAt:l.updatedAt instanceof Date?l.updatedAt.toISOString():l.updatedAt}))}}}),dtu=fi({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:O_.object({id:O_.string().describe("Brand context ID")}),outputSchema:WO0.extend({organizationId:O_.string()}),handler:async(i,u)=>{Si(u),await u.access.check();let t=u.organization?.id;if(!t)throw Error("Organization ID required (no active organization in context)");let f=await u.storage.brandContext.get(i.id,t);if(!f)throw Error("Brand context not found");return{...f,archivedAt:f.archivedAt instanceof Date?f.archivedAt.toISOString():f.archivedAt,createdAt:f.createdAt instanceof Date?f.createdAt.toISOString():f.createdAt,updatedAt:f.updatedAt instanceof Date?f.updatedAt.toISOString():f.updatedAt}}})});import{z as Ry}from"zod";var QO0,htu,_tu,vtu;var zO0=g(()=>{$u();ZD();QO0=lg.extend({organizationId:Ry.string(),createdAt:Ry.string().describe("ISO 8601 timestamp"),updatedAt:Ry.string().describe("ISO 8601 timestamp")}),htu=fi({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:lg.omit({id:!0}),outputSchema:QO0,handler:async(i,u)=>{Si(u),await u.access.check();let t=u.organization?.id;if(!t)throw Error("Organization ID required (no active organization in context)");let f=await u.storage.brandContext.create(t,{name:i.name,domain:i.domain,overview:i.overview,logo:i.logo??null,favicon:i.favicon??null,ogImage:i.ogImage??null,fonts:i.fonts??null,colors:i.colors??null,images:i.images??null,metadata:i.metadata??null});return{...f,archivedAt:f.archivedAt instanceof Date?f.archivedAt.toISOString():f.archivedAt,createdAt:f.createdAt instanceof Date?f.createdAt.toISOString():f.createdAt,updatedAt:f.updatedAt instanceof Date?f.updatedAt.toISOString():f.updatedAt}}}),_tu=fi({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:lg.partial().required({id:!0}),outputSchema:QO0,handler:async(i,u)=>{Si(u),await u.access.check();let t=u.organization?.id;if(!t)throw Error("Organization ID required (no active organization in context)");if(!await u.storage.brandContext.get(i.id,t))throw Error("Brand context not found");let{id:l,...c}=i;if(c.isDefault===!0)await u.storage.brandContext.setDefault(l,t);let E=await u.storage.brandContext.update(l,t,{name:c.name,domain:c.domain,overview:c.overview,logo:c.logo!==void 0?c.logo??null:void 0,favicon:c.favicon!==void 0?c.favicon??null:void 0,ogImage:c.ogImage!==void 0?c.ogImage??null:void 0,fonts:c.fonts!==void 0?c.fonts??null:void 0,colors:c.colors!==void 0?c.colors??null:void 0,images:c.images!==void 0?c.images??null:void 0,metadata:c.metadata!==void 0?c.metadata??null:void 0,archivedAt:c.archivedAt!==void 0?c.archivedAt??null:void 0,isDefault:c.isDefault===!1?!1:void 0});return{...E,archivedAt:E.archivedAt instanceof Date?E.archivedAt.toISOString():E.archivedAt,createdAt:E.createdAt instanceof Date?E.createdAt.toISOString():E.createdAt,updatedAt:E.updatedAt instanceof Date?E.updatedAt.toISOString():E.updatedAt}}}),vtu=fi({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:Ry.object({id:Ry.string().describe("Brand context ID")}),outputSchema:Ry.object({success:Ry.boolean()}),handler:async(i,u)=>{Si(u),await u.access.check();let t=u.organization?.id;if(!t)throw Error("Organization ID required (no active organization in context)");if(!await u.storage.brandContext.get(i.id,t))throw Error("Brand context not found");return await u.storage.brandContext.update(i.id,t,{archivedAt:new Date().toISOString(),isDefault:!1}),{success:!0}}})});async function J3i(i,u,t){let f=i.trim();if(!f.startsWith("http"))f=`https://${f}`;let l=await fetch("https://api.firecrawl.dev/v1/scrape",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${u}`},body:JSON.stringify({url:f,formats:["branding"]})});if(!l.ok){let v=await l.text().catch(()=>"");throw Error(`Firecrawl API error: ${l.status} ${v.slice(0,200)}`)}let c=await l.json();if(!c.success||!c.data?.branding)return null;let E=c.data.branding,$=c.data.metadata??{},w=WIf(E,$);return{name:$.title?.split(/[|\u2013\u2014]|\s+-\s+/).map((v)=>v.trim()).filter(Boolean)?.slice().sort((v,n)=>v.length-n.length)[0]??$.ogSiteName??t??i,domain:i,overview:$.description??"",logo:w.logo,favicon:w.favicon,ogImage:w.ogImage,fonts:w.fonts,colors:w.colors,images:null,metadata:Object.keys(w.metadata).length>0?w.metadata:null}}function WIf(i,u){let t=i.images??{},f=i.colors??{},l={};for(let[h,_]of Object.entries(f))if(typeof _==="string"&&_&&XIf.has(h))l[h]=_;let c={},$=(i.typography??{}).fontFamilies??{};for(let[h,_]of Object.entries($))if(typeof _==="string"&&_){let v=LIf[h.toLowerCase()];if(v&&!c[v])c[v]=_}let w=i.fonts;if(Array.isArray(w))for(let h of w){let _=h.family;if(typeof _==="string"&&_&&!c.body)c.body=_}let d={};for(let h of["typography","components","spacing","layout","animations","icons","tone","personality","colorScheme"])if(i[h]!==void 0)d[h]=i[h];return{logo:t.logo??null,favicon:t.favicon??null,ogImage:t.ogImage??u.ogImage??null,fonts:Object.keys(c).length>0?c:null,colors:Object.keys(l).length>0?l:null,metadata:d}}var XIf,LIf;var ntu=g(()=>{XIf=new Set(["primary","secondary","accent","background","foreground"]),LIf={heading:"heading",headings:"heading",head:"heading",title:"heading",body:"body",primary:"body",text:"body",code:"code",monospace:"code",mono:"code"}});import{z as X3i}from"zod";var YIf,Dtu;var HO0=g(()=>{$u();ntu();ZD();YIf=lg.pick({id:!0,name:!0,domain:!0,overview:!0,logo:!0,favicon:!0,ogImage:!0,fonts:!0,colors:!0}).extend({success:X3i.boolean()}),Dtu=fi({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:X3i.object({domain:X3i.string().describe("Website domain to extract brand from"),brandId:X3i.string().optional().describe("Existing brand context ID to update (creates new if omitted)")}),outputSchema:YIf,modelSummary:(i)=>i.success?`Brand saved (id=${i.id}, name=${i.name}, domain=${i.domain}). The UI rendered the logo, colors, fonts, and overview.`:"Brand extraction failed.",handler:async(i,u)=>{Si(u),await u.access.check();let t=u.organization?.id;if(!t)throw Error("Organization ID required (no active organization in context)");let f=u.firecrawlApiKey;if(!f)throw Error("FIRECRAWL_API_KEY is not configured. Set the environment variable to enable brand extraction.");let l=await J3i(i.domain,f,i.domain);if(!l)throw Error("Firecrawl did not return branding data for this URL");let c={name:l.name,domain:l.domain,overview:l.overview,logo:l.logo,favicon:l.favicon,ogImage:l.ogImage,fonts:l.fonts,colors:l.colors,images:l.images,metadata:l.metadata},E=i.brandId?await(async()=>{if(!await u.storage.brandContext.get(i.brandId,t))throw Error("Brand context not found");return u.storage.brandContext.update(i.brandId,t,c)})():await u.storage.brandContext.create(t,c);return{id:E.id,name:E.name,domain:E.domain,overview:E.overview,logo:E.logo,favicon:E.favicon,ogImage:E.ogImage,fonts:E.fonts,colors:E.colors,success:!0}}})});function RO0(i){let u=i.metadata??{};return{id:i.id,name:i.name,domain:i.domain||void 0,colors:i.colors??void 0,fonts:i.fonts??void 0,assets:i.logo||i.favicon||i.ogImage?{logo:i.logo??void 0,favicon:i.favicon??void 0,ogImage:i.ogImage??void 0}:void 0,overview:i.overview||void 0,tagline:typeof u.tagline==="string"?u.tagline:void 0,tone:typeof u.tone==="string"?u.tone:void 0,metadata:(()=>{let t=Object.fromEntries(Object.entries(u).filter(([f])=>f!=="tagline"&&f!=="tone"));return Object.keys(t).length>0?t:void 0})()}}var gtu,Otu;var bO0=g(()=>{k0u();$u();gtu=fi({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:U3i,outputSchema:Ba,handler:async(i,u)=>{Si(u),await u.access.check();let t=u.organization?.id;if(!t)throw Error("Organization ID required (no active organization in context)");let f=i.id?await u.storage.brandContext.get(i.id,t):await u.storage.brandContext.getDefault(t);if(!f)throw Error(i.id?"Brand not found":"No default brand configured");return RO0(f)}}),Otu=fi({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:P3i,outputSchema:A3i,handler:async(i,u)=>{Si(u),await u.access.check();let t=u.organization?.id;if(!t)throw Error("Organization ID required (no active organization in context)");return{items:(await u.storage.brandContext.list(t)).map(RO0)}}})});import{resolveTxt as QIf}from"dns/promises";function Ntu(i){return`${zIf}.${i.toLowerCase()}`}function CO0(){return`deco-verify-${crypto.randomUUID().replace(/-/g,"")}`}async function MO0(i,u,t=QIf){if(!u)return!1;try{return(await t(Ntu(i))).some((l)=>l.join("").trim()===u)}catch{return!1}}var zIf="_deco-verify";var qO0=()=>{};import{z as Yl}from"zod";function cg(i){let u=i.verificationStatus==="pending"&&Boolean(i.verificationToken);return{id:i.id,domain:i.domain,joinMode:i.joinMode,verificationStatus:i.verificationStatus,verificationMethod:i.verificationMethod,verifiedAt:i.verifiedAt?new Date(i.verifiedAt).toISOString():null,recordName:u?Ntu(i.domain):null,recordValue:u?i.verificationToken:null}}function RIf(i){let u=i.toLowerCase().trim();if(!HIf.test(u))throw Error(`Invalid domain format: "${u}". Must be a valid domain like "acme.com"`);if(N_.has(u))throw Error(`Cannot claim generic email domain "${u}". Only corporate domains are allowed.`);return u}var HIf,ytu,L3i,Ztu,Ttu,Btu,Ftu,Utu;var VO0=g(()=>{y_();qO0();$u();HIf=/^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)+$/,ytu=Yl.enum(["off","auto","request"]),L3i=Yl.object({id:Yl.string(),domain:Yl.string(),joinMode:ytu,verificationStatus:Yl.enum(["pending","verified"]),verificationMethod:Yl.enum(["email","dns"]).nullable(),verifiedAt:Yl.string().nullable(),recordName:Yl.string().nullable(),recordValue:Yl.string().nullable()});Ztu=fi({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:Yl.object({}),outputSchema:Yl.object({domains:Yl.array(L3i)}),handler:async(i,u)=>{Si(u),await u.access.check();let t=yi(u);return{domains:(await u.storage.organizationDomains.listByOrganizationId(t.id)).map(cg)}}}),Ttu=fi({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:Yl.object({domain:Yl.string().min(1).max(255).describe("Domain to claim, e.g. acme.com"),joinMode:ytu.optional().describe("Initial join mode (only applied when the domain is trusted immediately via email match).")}),outputSchema:L3i,handler:async(i,u)=>{Si(u),await u.access.check();let t=yi(u),f=RIf(i.domain),c=u.auth.user?.email?.split("@")[1]?.toLowerCase(),E=Boolean(u.auth.user?.emailVerified)&&c===f,$=await u.storage.organizationDomains.getByOrgAndDomain(t.id,f);if($){if($.verificationStatus!=="verified"&&E){let d=await u.storage.organizationDomains.markVerified($.id,"email");return cg(d)}return cg($)}let w=E?await u.storage.organizationDomains.add(t.id,f,{joinMode:i.joinMode??"off",verificationStatus:"verified",verificationMethod:"email"}):await u.storage.organizationDomains.add(t.id,f,{joinMode:"off",verificationStatus:"pending",verificationToken:CO0()});return cg(w)}}),Btu=fi({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:Yl.object({id:Yl.string(),joinMode:ytu}),outputSchema:L3i,handler:async(i,u)=>{Si(u),await u.access.check();let t=yi(u),f=await u.storage.organizationDomains.getById(i.id);if(!f||f.organizationId!==t.id)throw Error("Domain not found");if(i.joinMode!=="off"&&f.verificationStatus!=="verified")throw Error("Verify the domain before enabling auto-join or requests.");let l=await u.storage.organizationDomains.updateJoinMode(i.id,i.joinMode);return cg(l)}}),Ftu=fi({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:Yl.object({id:Yl.string()}),outputSchema:Yl.object({verified:Yl.boolean(),domain:L3i}),handler:async(i,u)=>{Si(u),await u.access.check();let t=yi(u),f=await u.storage.organizationDomains.getById(i.id);if(!f||f.organizationId!==t.id)throw Error("Domain not found");if(f.verificationStatus==="verified")return{verified:!0,domain:cg(f)};if(!f.verificationToken)throw Error("Domain has no pending DNS verification.");if(!await MO0(f.domain,f.verificationToken))return{verified:!1,domain:cg(f)};let c=await u.storage.organizationDomains.markVerified(i.id,"dns");return{verified:!0,domain:cg(c)}}}),Utu=fi({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:Yl.object({id:Yl.string()}),outputSchema:Yl.object({success:Yl.boolean()}),handler:async(i,u)=>{Si(u),await u.access.check();let t=yi(u),f=await u.storage.organizationDomains.getById(i.id);if(!f||f.organizationId!==t.id)throw Error("Domain not found");return await u.storage.organizationDomains.removeById(i.id),{success:!0}}})});function Eg(i){return(i instanceof Error?i.message.toLowerCase():"").includes("already a member")}import{z as L1}from"zod";var bIf,Ptu,Atu,Itu;var rO0=g(()=>{$u();z4();bIf=L1.object({id:L1.string(),userId:L1.string(),status:L1.enum(["pending","approved","denied"]),createdAt:L1.string(),user:L1.object({id:L1.string(),name:L1.string(),email:L1.string(),image:L1.string().nullable()}).nullable()}),Ptu=fi({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:L1.object({}),outputSchema:L1.object({requests:L1.array(bIf)}),handler:async(i,u)=>{Si(u),await u.access.check();let t=yi(u);return{requests:(await u.storage.organizationJoinRequests.listPendingWithUser(t.id)).map((l)=>({id:l.id,userId:l.userId,status:l.status,createdAt:new Date(l.createdAt).toISOString(),user:l.user}))}}}),Atu=fi({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:L1.object({requestId:L1.string()}),outputSchema:L1.object({success:L1.boolean()}),handler:async(i,u)=>{Si(u),await u.access.check();let t=yi(u),f=await u.storage.organizationJoinRequests.getById(i.requestId);if(!f||f.organizationId!==t.id)throw Error("Join request not found");if(f.status!=="pending")throw Error("Join request has already been decided");let l=Hu(u);if(!await u.storage.organizationJoinRequests.decide(f.id,"approved",l??f.userId))return{success:!0};try{await u.boundAuth.organization.addMember({organizationId:t.id,userId:f.userId,role:["user"]})}catch(E){if(!Eg(E))throw E}if(l)mu.capture({distinctId:l,event:"organization_join_request_approved",groups:{organization:t.id},properties:{organization_id:t.id,user_id:f.userId}});return{success:!0}}}),Itu=fi({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:L1.object({requestId:L1.string()}),outputSchema:L1.object({success:L1.boolean()}),handler:async(i,u)=>{Si(u),await u.access.check();let t=yi(u),f=await u.storage.organizationJoinRequests.getById(i.requestId);if(!f||f.organizationId!==t.id)throw Error("Join request not found");if(f.status!=="pending")throw Error("Join request has already been decided");let l=Hu(u);if(await u.storage.organizationJoinRequests.decide(f.id,"denied",l??f.userId)&&l)mu.capture({distinctId:l,event:"organization_join_request_denied",groups:{organization:t.id},properties:{organization_id:t.id,user_id:f.userId}});return{success:!0}}})});import{z as ww}from"zod";var xtu;var mO0=g(()=>{z4();$u();i_();xtu=fi({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:ww.object({organizationId:ww.string().optional(),userId:ww.string(),role:ww.array(ww.string())}),outputSchema:ww.object({id:ww.string(),organizationId:ww.string(),userId:ww.string(),role:ww.union([ww.string(),ww.array(ww.string())]),createdAt:ww.string().datetime().describe("ISO 8601 timestamp")}),handler:async(i,u)=>{Si(u),await u.access.check();let t=i.organizationId||u.organization?.id;if(!t)throw Error("Organization ID required (no active organization in context)");if(t!==u.organization?.id)throw Error("Organization ID does not match authenticated organization");let f=Array.isArray(i.role)?i.role[0]:i.role;if(f&&!xwi(u.auth.user?.role,f))throw Error(`Insufficient privileges to assign role "${f}"`);let l=await u.boundAuth.organization.addMember({organizationId:t,userId:i.userId,role:i.role});if(!l)throw Error("Failed to add member");let c=Hu(u);if(c)mu.capture({distinctId:c,event:"organization_member_added",groups:{organization:t},properties:{organization_id:t,added_user_id:i.userId,role:i.role}});return{...l,role:l.role,createdAt:l.createdAt instanceof Date?l.createdAt.toISOString():l.createdAt}}})});import{z as Bz}from"zod";var ktu;var eO0=g(()=>{z4();$u();ktu=fi({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:Bz.object({organizationId:Bz.string().optional(),memberIdOrEmail:Bz.string()}),outputSchema:Bz.object({success:Bz.boolean(),memberIdOrEmail:Bz.string()}),handler:async(i,u)=>{Si(u),await u.access.check();let t=i.organizationId||u.organization?.id;if(!t)throw Error("Organization ID required (no active organization in context)");await u.boundAuth.organization.removeMember({organizationId:t,memberIdOrEmail:i.memberIdOrEmail});let f=Hu(u);if(f)mu.capture({distinctId:f,event:"organization_member_removed",groups:{organization:t},properties:{organization_id:t,member_id_or_email:i.memberIdOrEmail}});return{success:!0,memberIdOrEmail:i.memberIdOrEmail}}})});import{z as AE}from"zod";var Gtu;var aO0=g(()=>{$u();Gtu=fi({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:AE.object({limit:AE.number().optional(),offset:AE.number().optional()}),outputSchema:AE.object({members:AE.array(AE.object({id:AE.string(),organizationId:AE.string(),userId:AE.string(),role:AE.string(),createdAt:AE.string().datetime().describe("ISO 8601 timestamp"),user:AE.object({id:AE.string(),name:AE.string(),email:AE.string(),image:AE.string().optional()}).optional()}))}),handler:async(i,u)=>{Si(u),await u.access.check();let t=u.organization?.id;if(!t)throw Error("Organization ID required (no active organization in context)");let f=await u.boundAuth.organization.listMembers({organizationId:t,limit:i.limit,offset:i.offset});return{members:(Array.isArray(f)?f:[]).map((c)=>({...c,createdAt:c.createdAt instanceof Date?c.createdAt.toISOString():c.createdAt}))}}})});import{z as sc}from"zod";var Stu;var oO0=g(()=>{z4();$u();i_();Stu=fi({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:sc.object({organizationId:sc.string().optional(),memberId:sc.string(),role:sc.array(sc.string())}),outputSchema:sc.object({id:sc.string(),organizationId:sc.string(),userId:sc.string(),role:sc.union([sc.literal("admin"),sc.literal("member"),sc.literal("owner")]),createdAt:sc.string().datetime().describe("ISO 8601 timestamp"),user:sc.object({email:sc.string(),name:sc.string(),image:sc.string().optional()})}),handler:async(i,u)=>{Si(u),await u.access.check();let t=i.organizationId||u.organization?.id;if(!t)throw Error("Organization ID required (no active organization in context)");let f=Array.isArray(i.role)?i.role[0]:i.role;if(f&&!xwi(u.auth.user?.role,f))throw Error(`Insufficient privileges to assign role "${f}"`);let l=await u.boundAuth.organization.updateMemberRole({organizationId:t,memberId:i.memberId,role:i.role});if(!l)throw Error("Failed to update member role");u.invalidateMemberRole?.(l.userId,t);let c=Hu(u);if(c)mu.capture({distinctId:c,event:"organization_member_role_updated",groups:{organization:t},properties:{organization_id:t,member_id:i.memberId,target_user_id:l.userId,new_role:Array.isArray(i.role)?i.role.join(","):i.role}});return{...l,createdAt:l.createdAt instanceof Date?l.createdAt.toISOString():l.createdAt}}})});var sO0=g(()=>{kO0();GO0();SO0();jO0();KO0();XO0();LO0();YO0();zO0();HO0();bO0();VO0();rO0();mO0();eO0();aO0();oO0()});var $g="super-agent",pO0="task-board.item.updated";import{z as sl}from"zod";var Ga,Sa,MIf,Fz;var ja=g(()=>{Ga=sl.enum(["triage","todo","in_progress","in_review","done"]),Sa=sl.enum(["low","medium","high","urgent"]),MIf=sl.object({threadId:sl.string(),virtualMcpId:sl.string().nullable(),status:sl.enum(["in_progress","requires_action","failed","completed","expired"]).nullable(),title:sl.string().nullable(),lastMessage:sl.string().nullable(),hasPreview:sl.boolean(),createdAt:sl.string()}),Fz=sl.object({id:sl.string(),organizationId:sl.string(),title:sl.string(),description:sl.string().nullable(),status:Ga,priority:Sa,assigneeId:sl.string().nullable(),assignedBy:sl.string().nullable(),dueDate:sl.string().datetime().nullable(),threads:sl.array(MIf),createdBy:sl.string(),createdAt:sl.string().datetime(),updatedBy:sl.string(),updatedAt:sl.string().datetime()})});async function W3i(i,u,t){if(t===$g)return;let{members:f}=await i.boundAuth.organization.listMembers({organizationId:u,filterField:"userId",filterValue:t});if(!f.some((l)=>l.userId===t))throw Error("assigneeId is not a member of the organization")}var jtu=g(()=>{ja()});async function wg(i,u){if(!(await i.storage.organizationSettings.get(u))?.task_board_enabled)throw Error("Task board is not enabled for this organization")}async function Ktu(i,u,t){let f;try{return await Promise.race([i.aiProviders.listModels(u,t),new Promise((c,E)=>{f=setTimeout(()=>E(Error("listModels timeout")),qIf)})])}finally{if(f)clearTimeout(f)}}function VIf(i,u){switch(i){case"fast":return u.chat.fast;case"smart":return u.chat.smart;case"thinking":return u.chat.thinking;case"image":return u.image;case"web_search":return u.webSearch;case"deep_research":return u.deepResearch}}function Jtu(i,u,t){let f=i.find((l)=>l.modelId===u);return{title:f?.title??t??u,providerId:f?.providerId,capabilities:f?.capabilities,limits:f?.limits??null}}async function Z_(i,u){let t=i.organization?.id;if(!t)throw Error("resolveTier called without an organization");let l=(await i.storage.organizationSettings.get(t))?.simple_mode?.tiers?.[u]??null,c=await i.storage.aiProviderKeys.list({organizationId:t});if(l&&c.some((h)=>h.id===l.keyId)){let h=await Ktu(i,l.keyId,t).catch(()=>[]);return{credentialId:l.keyId,modelId:l.modelId,modelMeta:Jtu(h,l.modelId,l.title)}}if(c.length===0)throw new Uz(u);let E={};await Promise.all(c.map(async(h)=>{E[h.id]=await Ktu(i,h.id,t).catch(()=>[])}));let $=c.map((h)=>({id:h.id,providerId:h.providerId,label:h.label,presetId:h.presetId,createdBy:h.createdBy,createdAt:h.createdAt})),w=nmi($,E),d=VIf(u,w);if(!d)throw new Uz(u);return{credentialId:d.keyId,modelId:d.modelId,modelMeta:Jtu(E[d.keyId]??[],d.modelId,d.title)}}async function iN0(i,u,t){let f=i.organization?.id;if(!f)throw Error("resolveSpecificModel called without an organization");let l=await Ktu(i,u,f).catch(()=>[]);return{credentialId:u,modelId:t,modelMeta:Jtu(l,t)}}async function j3(i,u){try{return await Z_(i,u)}catch(t){if(t instanceof Uz)return null;return console.warn(`[resolveTier] tier "${u}" resolution failed:`,t),null}}var Uz,qIf=5000;var Pz=g(()=>{Rt();Uz=class Uz extends Error{tier;constructor(i){super(`No model available for tier "${i}". Connect a provider or configure the tier in organization settings.`);this.tier=i;this.name="TierUnavailableError"}}});function Y3i(i){return i.sandboxProviderKind==="agent-sandbox"&&i.harnessId==="decopilot"}function uN0(i){return i.harnessId==="decopilot"&&(i.sandboxProviderKind==null||i.sandboxProviderKind==="agent-sandbox")}function mIf(i){return{type:"data-run-status",id:"run-status",data:{stage:i}}}function tN0(i){if(!i||typeof i!=="object")return!1;return i.type==="data-run-status"}async function TD(i,u,t){if(!i)return;try{await i.publishRawChunk(u,mIf(t))}catch{}}var rIf,Ka,nol;var Ja=g(()=>{rIf=["waiting-runner","starting-run","gathering-context","preparing-tools","starting-assistant","analyzing-scope"],Ka=["gathering-context","preparing-tools","starting-assistant","analyzing-scope"],nol=new Set(rIf)});function Q3i(){return crypto.randomUUID()}var Ltu=K((Ool,cN0)=>{var{defineProperty:Xtu,getOwnPropertyDescriptor:eIf,getOwnPropertyNames:aIf}=Object,oIf=Object.prototype.hasOwnProperty,sIf=(i,u)=>{for(var t in u)Xtu(i,t,{get:u[t],enumerable:!0})},pIf=(i,u,t,f)=>{if(u&&typeof u==="object"||typeof u==="function"){for(let l of aIf(u))if(!oIf.call(i,l)&&l!==t)Xtu(i,l,{get:()=>u[l],enumerable:!(f=eIf(u,l))||f.enumerable})}return i},ixf=(i)=>pIf(Xtu({},"__esModule",{value:!0}),i),fN0={};sIf(fN0,{SYMBOL_FOR_REQ_CONTEXT:()=>lN0,getContext:()=>uxf});cN0.exports=ixf(fN0);var lN0=Symbol.for("@vercel/request-context");function uxf(){return globalThis[lN0]?.get?.()??{}}});var Xa=K((Nol,wN0)=>{var{defineProperty:Wtu,getOwnPropertyDescriptor:txf,getOwnPropertyNames:fxf}=Object,lxf=Object.prototype.hasOwnProperty,cxf=(i,u)=>{for(var t in u)Wtu(i,t,{get:u[t],enumerable:!0})},Exf=(i,u,t,f)=>{if(u&&typeof u==="object"||typeof u==="function"){for(let l of fxf(u))if(!lxf.call(i,l)&&l!==t)Wtu(i,l,{get:()=>u[l],enumerable:!(f=txf(u,l))||f.enumerable})}return i},$xf=(i)=>Exf(Wtu({},"__esModule",{value:!0}),i),EN0={};cxf(EN0,{VercelOidcTokenError:()=>$N0});wN0.exports=$xf(EN0);class $N0 extends Error{constructor(i,u){super(i);this.name="VercelOidcTokenError",this.cause=u}toString(){if(this.cause)return`${this.name}: ${this.message}: ${this.cause}`;return`${this.name}: ${this.message}`}}});var vN0=K((yol,_N0)=>{var{create:wxf,defineProperty:z3i,getOwnPropertyDescriptor:dxf,getOwnPropertyNames:hxf,getPrototypeOf:_xf}=Object,vxf=Object.prototype.hasOwnProperty,nxf=(i,u)=>{for(var t in u)z3i(i,t,{get:u[t],enumerable:!0})},dN0=(i,u,t,f)=>{if(u&&typeof u==="object"||typeof u==="function"){for(let l of hxf(u))if(!vxf.call(i,l)&&l!==t)z3i(i,l,{get:()=>u[l],enumerable:!(f=dxf(u,l))||f.enumerable})}return i},Qtu=(i,u,t)=>(t=i!=null?wxf(_xf(i)):{},dN0(u||!i||!i.__esModule?z3i(t,"default",{value:i,enumerable:!0}):t,i)),Dxf=(i)=>dN0(z3i({},"__esModule",{value:!0}),i),hN0={};nxf(hN0,{findRootDir:()=>Nxf,getUserDataDir:()=>yxf});_N0.exports=Dxf(hN0);var La=Qtu(Ni("path")),gxf=Qtu(Ni("fs")),Ytu=Qtu(Ni("os")),Oxf=Xa();function Nxf(){try{let i=process.cwd();while(i!==La.default.dirname(i)){let u=La.default.join(i,".vercel");if(gxf.default.existsSync(u))return i;i=La.default.dirname(i)}}catch(i){throw new Oxf.VercelOidcTokenError("Token refresh only supported in node server environments")}return null}function yxf(){if(process.env.XDG_DATA_HOME)return process.env.XDG_DATA_HOME;switch(Ytu.default.platform()){case"darwin":return La.default.join(Ytu.default.homedir(),"Library/Application Support");case"linux":return La.default.join(Ytu.default.homedir(),".local/share");case"win32":if(process.env.LOCALAPPDATA)return process.env.LOCALAPPDATA;return null;default:return null}}});var ZN0=K((Zol,yN0)=>{var{create:Zxf,defineProperty:H3i,getOwnPropertyDescriptor:Txf,getOwnPropertyNames:Bxf,getPrototypeOf:Fxf}=Object,Uxf=Object.prototype.hasOwnProperty,Pxf=(i,u)=>{for(var t in u)H3i(i,t,{get:u[t],enumerable:!0})},nN0=(i,u,t,f)=>{if(u&&typeof u==="object"||typeof u==="function"){for(let l of Bxf(u))if(!Uxf.call(i,l)&&l!==t)H3i(i,l,{get:()=>u[l],enumerable:!(f=Txf(u,l))||f.enumerable})}return i},DN0=(i,u,t)=>(t=i!=null?Zxf(Fxf(i)):{},nN0(u||!i||!i.__esModule?H3i(t,"default",{value:i,enumerable:!0}):t,i)),Axf=(i)=>nN0(H3i({},"__esModule",{value:!0}),i),gN0={};Pxf(gN0,{isValidAccessToken:()=>Gxf,readAuthConfig:()=>xxf,writeAuthConfig:()=>kxf});yN0.exports=Axf(gN0);var Wa=DN0(Ni("fs")),ON0=DN0(Ni("path")),Ixf=Ya();function NN0(){let i=(0,Ixf.getVercelDataDir)();if(!i)throw Error(`Unable to find Vercel CLI data directory. Your platform: ${process.platform}. Supported: darwin, linux, win32.`);return ON0.join(i,"auth.json")}function xxf(){try{let i=NN0();if(!Wa.existsSync(i))return null;let u=Wa.readFileSync(i,"utf8");if(!u)return null;return JSON.parse(u)}catch(i){return null}}function kxf(i){let u=NN0(),t=ON0.dirname(u);if(!Wa.existsSync(t))Wa.mkdirSync(t,{mode:504,recursive:!0});Wa.writeFileSync(u,JSON.stringify(i,null,2),{mode:384})}function Gxf(i,u=0){if(!i.token)return!1;if(typeof i.expiresAt!=="number")return!0;let t=Math.floor(Date.now()/1000),f=u/1000;return i.expiresAt>=t+f}});var UN0=K((Tol,FN0)=>{var{defineProperty:Rtu,getOwnPropertyDescriptor:Sxf,getOwnPropertyNames:jxf}=Object,Kxf=Object.prototype.hasOwnProperty,Jxf=(i,u)=>{for(var t in u)Rtu(i,t,{get:u[t],enumerable:!0})},Xxf=(i,u,t,f)=>{if(u&&typeof u==="object"||typeof u==="function"){for(let l of jxf(u))if(!Kxf.call(i,l)&&l!==t)Rtu(i,l,{get:()=>u[l],enumerable:!(f=Sxf(u,l))||f.enumerable})}return i},Lxf=(i)=>Xxf(Rtu({},"__esModule",{value:!0}),i),TN0={};Jxf(TN0,{processTokenResponse:()=>Hxf,refreshTokenRequest:()=>zxf});FN0.exports=Lxf(TN0);var ztu=Ni("os"),Wxf="https://vercel.com",Yxf="cl_HYyOPBNtFMfHhaUn9L4QPfTZz6TP47bp",BN0=`@vercel/oidc node-${process.version} ${(0,ztu.platform)()} (${(0,ztu.arch)()}) ${(0,ztu.hostname)()}`,Htu=null;async function Qxf(){if(Htu)return Htu;let i=`${Wxf}/.well-known/openid-configuration`,u=await fetch(i,{headers:{"user-agent":BN0}});if(!u.ok)throw Error("Failed to discover OAuth endpoints");let t=await u.json();if(!t||typeof t.token_endpoint!=="string")throw Error("Invalid OAuth discovery response");let f=t.token_endpoint;return Htu=f,f}async function zxf(i){let u=await Qxf();return await fetch(u,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded","user-agent":BN0},body:new URLSearchParams({client_id:Yxf,grant_type:"refresh_token",...i})})}async function Hxf(i){let u=await i.json();if(!i.ok){let t=typeof u==="object"&&u&&"error"in u?String(u.error):"Token refresh failed";return[Error(t)]}if(typeof u!=="object"||u===null)return[Error("Invalid token response")];if(typeof u.access_token!=="string")return[Error("Missing access_token in response")];if(u.token_type!=="Bearer")return[Error("Invalid token_type in response")];if(typeof u.expires_in!=="number")return[Error("Missing expires_in in response")];return[null,u]}});var Ctu=K((Bol,xN0)=>{var{defineProperty:btu,getOwnPropertyDescriptor:Rxf,getOwnPropertyNames:bxf}=Object,Cxf=Object.prototype.hasOwnProperty,Mxf=(i,u)=>{for(var t in u)btu(i,t,{get:u[t],enumerable:!0})},qxf=(i,u,t,f)=>{if(u&&typeof u==="object"||typeof u==="function"){for(let l of bxf(u))if(!Cxf.call(i,l)&&l!==t)btu(i,l,{get:()=>u[l],enumerable:!(f=Rxf(u,l))||f.enumerable})}return i},Vxf=(i)=>qxf(btu({},"__esModule",{value:!0}),i),PN0={};Mxf(PN0,{AccessTokenMissingError:()=>AN0,RefreshAccessTokenFailedError:()=>IN0});xN0.exports=Vxf(PN0);class AN0 extends Error{constructor(){super("No authentication found. Please log in with the Vercel CLI (vercel login).");this.name="AccessTokenMissingError"}}class IN0 extends Error{constructor(i){super("Failed to refresh authentication token.",{cause:i});this.name="RefreshAccessTokenFailedError"}}});var Ya=K((Fol,KN0)=>{var{create:rxf,defineProperty:R3i,getOwnPropertyDescriptor:mxf,getOwnPropertyNames:exf,getPrototypeOf:axf}=Object,oxf=Object.prototype.hasOwnProperty,sxf=(i,u)=>{for(var t in u)R3i(i,t,{get:u[t],enumerable:!0})},GN0=(i,u,t,f)=>{if(u&&typeof u==="object"||typeof u==="function"){for(let l of exf(u))if(!oxf.call(i,l)&&l!==t)R3i(i,l,{get:()=>u[l],enumerable:!(f=mxf(u,l))||f.enumerable})}return i},SN0=(i,u,t)=>(t=i!=null?rxf(axf(i)):{},GN0(u||!i||!i.__esModule?R3i(t,"default",{value:i,enumerable:!0}):t,i)),pxf=(i)=>GN0(R3i({},"__esModule",{value:!0}),i),jN0={};sxf(jN0,{assertVercelOidcTokenResponse:()=>Mtu,findProjectInfo:()=>fkf,getTokenPayload:()=>Ekf,getVercelDataDir:()=>ikf,getVercelOidcToken:()=>tkf,getVercelToken:()=>ukf,isExpired:()=>$kf,loadToken:()=>ckf,saveToken:()=>lkf});KN0.exports=pxf(jN0);var Qa=SN0(Ni("path")),by=SN0(Ni("fs")),xz=Xa(),b3i=vN0(),Az=ZN0(),kN0=UN0(),Iz=Ctu();function ikf(){let u=(0,b3i.getUserDataDir)();if(!u)return null;return Qa.join(u,"com.vercel.cli")}async function ukf(i){let u=(0,Az.readAuthConfig)();if(!u?.token)throw new Iz.AccessTokenMissingError;if((0,Az.isValidAccessToken)(u,i?.expirationBufferMs))return u.token;if(!u.refreshToken)throw(0,Az.writeAuthConfig)({}),new Iz.RefreshAccessTokenFailedError("No refresh token available");try{let t=await(0,kN0.refreshTokenRequest)({refresh_token:u.refreshToken}),[f,l]=await(0,kN0.processTokenResponse)(t);if(f||!l)throw(0,Az.writeAuthConfig)({}),new Iz.RefreshAccessTokenFailedError(f);let c={token:l.access_token,expiresAt:Math.floor(Date.now()/1000)+l.expires_in};if(l.refresh_token)c.refreshToken=l.refresh_token;return(0,Az.writeAuthConfig)(c),c.token}catch(t){if((0,Az.writeAuthConfig)({}),t instanceof Iz.AccessTokenMissingError||t instanceof Iz.RefreshAccessTokenFailedError)throw t;throw new Iz.RefreshAccessTokenFailedError(t)}}async function tkf(i,u,t){let f=`https://api.vercel.com/v1/projects/${u}/token?source=vercel-oidc-refresh${t?`&teamId=${t}`:""}`,l=await fetch(f,{method:"POST",headers:{Authorization:`Bearer ${i}`}});if(!l.ok)throw new xz.VercelOidcTokenError(`Failed to refresh OIDC token: ${l.statusText}`);let c=await l.json();return Mtu(c),c}function Mtu(i){if(!i||typeof i!=="object")throw TypeError("Vercel OIDC token is malformed. Expected an object. Please run `vc env pull` and try again");if(!("token"in i)||typeof i.token!=="string")throw TypeError("Vercel OIDC token is malformed. Expected a string-valued token property. Please run `vc env pull` and try again")}function fkf(){let i=(0,b3i.findRootDir)();if(!i)throw new xz.VercelOidcTokenError("Unable to find project root directory. Have you linked your project with `vc link?`");let u=Qa.join(i,".vercel","project.json");if(!by.existsSync(u))throw new xz.VercelOidcTokenError("project.json not found, have you linked your project with `vc link?`");let t=JSON.parse(by.readFileSync(u,"utf8"));if(typeof t.projectId!=="string"&&typeof t.orgId!=="string")throw TypeError("Expected a string-valued projectId property. Try running `vc link` to re-link your project.");return{projectId:t.projectId,teamId:t.orgId}}function lkf(i,u){let t=(0,b3i.getUserDataDir)();if(!t)throw new xz.VercelOidcTokenError("Unable to find user data directory. Please reach out to Vercel support.");let f=Qa.join(t,"com.vercel.token",`${u}.json`),l=JSON.stringify(i);by.mkdirSync(Qa.dirname(f),{mode:504,recursive:!0}),by.writeFileSync(f,l),by.chmodSync(f,432);return}function ckf(i){let u=(0,b3i.getUserDataDir)();if(!u)throw new xz.VercelOidcTokenError("Unable to find user data directory. Please reach out to Vercel support.");let t=Qa.join(u,"com.vercel.token",`${i}.json`);if(!by.existsSync(t))return null;let f=JSON.parse(by.readFileSync(t,"utf8"));return Mtu(f),f}function Ekf(i){let u=i.split(".");if(u.length!==3)throw new xz.VercelOidcTokenError("Invalid token. Please run `vc env pull` and try again");let t=u[1].replace(/-/g,"+").replace(/_/g,"/"),f=t.padEnd(t.length+(4-t.length%4)%4,"=");return JSON.parse(Buffer.from(f,"base64").toString("utf8"))}function $kf(i,u=0){return i.exp*1000<Date.now()+u}});var WN0=K((Uol,LN0)=>{var{defineProperty:qtu,getOwnPropertyDescriptor:wkf,getOwnPropertyNames:dkf}=Object,hkf=Object.prototype.hasOwnProperty,_kf=(i,u)=>{for(var t in u)qtu(i,t,{get:u[t],enumerable:!0})},vkf=(i,u,t,f)=>{if(u&&typeof u==="object"||typeof u==="function"){for(let l of dkf(u))if(!hkf.call(i,l)&&l!==t)qtu(i,l,{get:()=>u[l],enumerable:!(f=wkf(u,l))||f.enumerable})}return i},nkf=(i)=>vkf(qtu({},"__esModule",{value:!0}),i),XN0={};_kf(XN0,{refreshToken:()=>Dkf});LN0.exports=nkf(XN0);var JN0=Xa(),dg=Ya();async function Dkf(i){let u=i?.project,t=i?.team;if(!u&&!t){let l=(0,dg.findProjectInfo)();u=l.projectId,t=l.teamId}else if(!u||!t){let l=(0,dg.findProjectInfo)();u=u??l.projectId,t=t??l.teamId}if(!u)throw new JN0.VercelOidcTokenError("Failed to refresh OIDC token: No project specified. Try re-linking your project with `vc link`");let f=(0,dg.loadToken)(u);if(!f||(0,dg.isExpired)((0,dg.getTokenPayload)(f.token),i?.expirationBufferMs)){let l=await(0,dg.getVercelToken)({expirationBufferMs:i?.expirationBufferMs});if(f=await(0,dg.getVercelOidcToken)(l,u,t),!f)throw new JN0.VercelOidcTokenError("Failed to refresh OIDC token");(0,dg.saveToken)(f,u)}process.env.VERCEL_OIDC_TOKEN=f.token;return}});var zN0=K((Pol,QN0)=>{var{defineProperty:rtu,getOwnPropertyDescriptor:gkf,getOwnPropertyNames:Okf}=Object,Nkf=Object.prototype.hasOwnProperty,ykf=(i,u)=>{for(var t in u)rtu(i,t,{get:u[t],enumerable:!0})},Zkf=(i,u,t,f)=>{if(u&&typeof u==="object"||typeof u==="function"){for(let l of Okf(u))if(!Nkf.call(i,l)&&l!==t)rtu(i,l,{get:()=>u[l],enumerable:!(f=gkf(u,l))||f.enumerable})}return i},Tkf=(i)=>Zkf(rtu({},"__esModule",{value:!0}),i),YN0={};ykf(YN0,{getVercelOidcToken:()=>Ukf,getVercelOidcTokenSync:()=>Vtu});QN0.exports=Tkf(YN0);var Bkf=Ltu(),Fkf=Xa();async function Ukf(i){let u="",t;try{u=Vtu()}catch(f){t=f}try{let[{getTokenPayload:f,isExpired:l},{refreshToken:c}]=await Promise.all([await Promise.resolve().then(() => G(Ya())),await Promise.resolve().then(() => G(WN0()))]);if(!u||l(f(u),i?.expirationBufferMs))await c(i),u=Vtu()}catch(f){let l=t instanceof Error?t.message:"";if(f instanceof Error)l=`${l}
86559
+ `.execute(i)).rows[0]?.exists)await rf`CREATE ROLE ${rf.id(t)} NOLOGIN`.execute(i);await rf`GRANT ${rf.id(t)} TO CURRENT_USER`.execute(i),await rf`GRANT USAGE, CREATE ON SCHEMA ${rf.id(u)} TO ${rf.id(t)}`.execute(i),await rf`GRANT ALL ON ALL TABLES IN SCHEMA ${rf.id(u)} TO ${rf.id(t)}`.execute(i),await rf`GRANT ALL ON ALL SEQUENCES IN SCHEMA ${rf.id(u)} TO ${rf.id(t)}`.execute(i),await rf`ALTER DEFAULT PRIVILEGES IN SCHEMA ${rf.id(u)} GRANT ALL ON TABLES TO ${rf.id(t)}`.execute(i),await rf`ALTER DEFAULT PRIVILEGES IN SCHEMA ${rf.id(u)} GRANT ALL ON SEQUENCES TO ${rf.id(t)}`.execute(i),await rf`REVOKE ALL ON SCHEMA public FROM ${rf.id(t)}`.execute(i)}async function dIf(i,u,t,f){try{return await i.transaction().execute(async(l)=>{return await rf`SET LOCAL ROLE ${rf.id(t)}`.execute(l),await rf`SET LOCAL search_path TO ${rf.id(u)}`.execute(l),await rf.raw(f).execute(l)})}catch(l){if($If(l))return await wIf(i,u,t),await i.transaction().execute(async(c)=>{return await rf`SET LOCAL ROLE ${rf.id(t)}`.execute(c),await rf`SET LOCAL search_path TO ${rf.id(u)}`.execute(c),await rf.raw(f).execute(c)});throw l}}var tIf,lIf,wO0;var dO0=g(()=>{$u();tIf=pv.object({results:pv.array(pv.unknown()).optional(),success:pv.boolean().optional()});lIf=pv.object({sql:pv.string().describe("The SQL query to run"),params:pv.array(pv.any()).describe("The parameters to pass to the SQL query").optional()});wO0=fi({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:lIf,outputSchema:pv.object({result:pv.array(tIf)}),handler:async(i,u)=>{Si(u),await u.access.check();let t=fIf(i.sql,i.params||[]);if(!u.connectionId)throw Error("Connection context required for database access");console.warn("DATABASES_RUN_SQL invoked",{"tool.deprecation_probe":"DATABASES_RUN_SQL","connection.id":u.connectionId,"organization.id":u.organization?.id??null,"user.id":u.auth.user?.id??null});let f=cIf(u.connectionId),l=EIf(u.connectionId);return{result:[{results:(await dIf(u.db,f,l,t)).rows,success:!0}]}}})});function G3i(i){let u=i.access.getRole();if(!u||!O3.includes(u))throw new tD("Only organization owners and admins can change org-wide pin status")}var W0u=g(()=>{i_();fy()});import{z as vO0}from"zod";function _If(){let i=hO0[Math.floor(Math.random()*hO0.length)];return`icon://${_O0[Math.floor(Math.random()*_O0.length)]}?color=${i}`}var hO0,_O0,vIf,nIf,Y0u;var nO0=g(()=>{$u();i7();W0u();va();hO0=["red","orange","amber","yellow","lime","green","emerald","cyan","sky","blue","indigo","violet","purple","fuchsia","pink","rose"],_O0=["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"];vIf=vO0.object({data:_V.describe("Data for the new virtual MCP")}),nIf=vO0.object({item:F6.describe("The created virtual MCP entity")}),Y0u=fi({name:"COLLECTION_VIRTUAL_MCP_CREATE",description:"Create a Virtual MCP (agent) that aggregates tools from multiple connections into one endpoint. Pass `prompts` to seed the agent with kickstart prompts (conversation starters shown as icebreakers). Author them from the agent's role/instructions and the descriptions of the tools it will have, so the starters are coherent and immediately useful.",annotations:{title:"Create Virtual MCP",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!1},inputSchema:vIf,outputSchema:nIf,handler:async(i,u)=>{Si(u);let t=yi(u);await u.access.check();let f=Hu(u);if(!f)throw Error("User ID required to create virtual MCP");if(i.data.pinned===!0)G3i(u);let{prompts:l,...c}=i.data,E={...c,icon:c.icon??_If()},$=await u.storage.virtualMcps.create(t.id,f,E);if(l?.length&&u.orgFs&&$.id)await l3i(u.orgFs,$.id,f,l);return{item:$}}})});function DIf(i){let u=[],t=0;while(t<i.length){let f=i[t];if(f==="%")u.push(".*");else if(f==="_")u.push(".");else if(/[.*+?^${}()|[\]\\]/.test(f))u.push("\\"+f);else u.push(f);t++}return u.join("")}function fg(i){return typeof i==="string"||typeof i==="number"}function Q0u(i,u){let t=u.split("."),f=i;for(let l of t){if(f==null||typeof f!=="object")return;f=f[l]}return f}function gIf(i,u){return i.connections.some((t)=>t.connection_id===u)}function S3i(i,u){if("conditions"in u){let{operator:$,conditions:w}=u;switch($){case"and":return w.every((d)=>S3i(i,d));case"or":return w.some((d)=>S3i(i,d));case"not":return!w.every((d)=>S3i(i,d));default:return!0}}let{field:t,operator:f,value:l}=u,c=t.join(".");if(c==="connection_id"){if(f!=="eq"||typeof l!=="string")return!1;return gIf(i,l)}let E=Q0u(i,c);switch(f){case"eq":return E===l;case"gt":return fg(E)&&fg(l)&&E>l;case"gte":return fg(E)&&fg(l)&&E>=l;case"lt":return fg(E)&&fg(l)&&E<l;case"lte":return fg(E)&&fg(l)&&E<=l;case"in":return Array.isArray(l)&&l.includes(E);case"like":if(typeof E!=="string"||typeof l!=="string")return!1;if(l.length>100)return!1;let $=DIf(l);return new RegExp(`^${$}$`,"i").test(E);case"contains":if(typeof E!=="string"||typeof l!=="string")return!1;return E.toLowerCase().includes(l.toLowerCase());default:return!0}}function OIf(i,u){return[...i].sort((t,f)=>{for(let l of u){let c=l.field.join("."),E=Q0u(t,c),$=Q0u(f,c),w=0;if(E==null&&$==null)continue;if(E==null)w=l.nulls==="first"?-1:1;else if($==null)w=l.nulls==="first"?1:-1;else if(typeof E==="string"&&typeof $==="string")w=E.localeCompare($);else if(typeof E==="number"&&typeof $==="number")w=E-$;else w=String(E).localeCompare(String($));if(w!==0)return l.direction==="desc"?-w:w}return 0})}var NIf,yIf,z0u;var DO0=g(()=>{nd();$u();i7();NIf=n_,yIf=OD(F6),z0u=fi({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:NIf,outputSchema:yIf,handler:async(i,u)=>{await u.access.check();let t=yi(u),f=i.where&&!("conditions"in i.where)&&i.where.field.join(".")==="connection_id"&&i.where.operator==="eq"&&typeof i.where.value==="string"?i.where.value:void 0,l=i.where&&!("conditions"in i.where)&&i.where.field.join(".")==="pinned"&&i.where.operator==="eq"&&typeof i.where.value==="boolean"?i.where.value:void 0,E=f?await u.storage.virtualMcps.listByConnectionId(t.id,f):await u.storage.virtualMcps.list(t.id,l!==void 0?{pinnedOnly:l}:void 0);if(i.where)E=E.filter((v)=>S3i(v,i.where));if(i.orderBy&&i.orderBy.length>0)E=OIf(E,i.orderBy);let $=E.length,w=i.offset??0,d=i.limit??100,h=E.slice(w,w+d),_=w+d<$;return{items:h,totalCount:$,hasMore:_}}})});import{z as H0u}from"zod";var ZIf,TIf,R0u;var gO0=g(()=>{$u();i7();ZIf=H0u.object({id:H0u.string().describe("ID of the virtual MCP to retrieve")}),TIf=H0u.object({item:F6.nullable().describe("The retrieved virtual MCP, or null if not found")}),R0u=fi({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:ZIf,outputSchema:TIf,handler:async(i,u)=>{Si(u);let t=yi(u);await u.access.check();let f=await u.storage.virtualMcps.findById(i.id);if(f&&f.organization_id!==t.id)return{item:null};if(!f)return{item:null};return{item:f}}})});import{z as b0u}from"zod";var BIf,FIf,C0u;var OO0=g(()=>{$u();va();i7();W0u();BIf=b0u.object({id:b0u.string().describe("ID of the virtual MCP to update"),data:vV.describe("Partial virtual MCP data to update")}),FIf=b0u.object({item:F6.describe("The updated virtual MCP entity")}),C0u=fi({name:"COLLECTION_VIRTUAL_MCP_UPDATE",description:"Update a Virtual MCP's name, slug, connection list, or kickstart prompts. Pass `prompts` to replace the agent's conversation starters (full set; empty array clears them).",annotations:{title:"Update Virtual MCP",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:BIf,outputSchema:FIf,handler:async(i,u)=>{Si(u);let t=yi(u);await u.access.check();let f=Hu(u);if(!f)throw Error("User ID required to update virtual MCP");let l=await u.storage.virtualMcps.findById(i.id);if(!l)throw Error(`Virtual MCP not found: ${i.id}`);if(l.organization_id!==t.id)throw Error(`Virtual MCP not found: ${i.id}`);let{prompts:c,...E}=i.data;if(E.metadata&&l.metadata)E.metadata={...l.metadata,...E.metadata};if(E.pinned!==void 0&&E.pinned!==l.pinned)G3i(u);let $=await u.storage.virtualMcps.update(i.id,f,E);if(c!==void 0&&u.orgFs)await l3i(u.orgFs,i.id,f,c);return{item:$}}})});import{z as M0u}from"zod";var UIf,PIf,q0u;var NO0=g(()=>{ug();v_();$u();va();i7();UIf=M0u.object({id:M0u.string().describe("ID of the virtual MCP to delete")}),PIf=M0u.object({item:F6.describe("The deleted virtual MCP entity")}),q0u=fi({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:UIf,outputSchema:PIf,handler:async(i,u)=>{Si(u);let t=yi(u);await u.access.check();let f=await u.storage.virtualMcps.findById(i.id);if(!f)throw Error(`Virtual MCP not found: ${i.id}`);if(f.organization_id!==t.id)throw Error(`Virtual MCP not found: ${i.id}`);if(await u.storage.virtualMcps.delete(i.id),u.orgFs)await N0u(u.orgFs,i.id,Hu(u)??"system");let l=f.metadata?.githubRepo?.connectionId;if(l)try{let c=await u.storage.connections.findById(l,t.id);if(c&&x3(c)){let $=await new ml(u.db,u.vault).get(l);if($?.accessToken)try{await fetch("https://api.github.com/installation/token",{method:"DELETE",headers:{Authorization:`Bearer ${$.accessToken}`,Accept:"application/vnd.github+json","X-GitHub-Api-Version":"2022-11-28"},signal:AbortSignal.timeout(5000)})}catch{}await u.storage.connections.delete(l)}}catch(c){console.error("[VIRTUAL_MCP_DELETE] failed to tear down repo-scoped connection",{childConnectionId:l,error:c.message})}return{item:f}}})});import{z as $w}from"zod";var AIf,V0u;var yO0=g(()=>{$u();AIf=$w.object({id:$w.string(),virtualMcpId:$w.string(),pluginId:$w.string(),connectionId:$w.string().nullable(),settings:$w.record($w.string(),$w.unknown()).nullable(),createdAt:$w.string(),updatedAt:$w.string()}),V0u=fi({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:$w.object({virtualMcpId:$w.string().describe("Virtual MCP ID"),pluginId:$w.string().describe("Plugin ID")}),outputSchema:$w.object({config:AIf.nullable()}),handler:async(i,u)=>{Si(u),await u.access.check();let{virtualMcpId:t,pluginId:f}=i,l=await u.storage.virtualMcpPluginConfigs.get(t,f);if(!l)return{config:null};return{config:{id:l.id,virtualMcpId:l.virtualMcpId,pluginId:l.pluginId,connectionId:l.connectionId,settings:l.settings,createdAt:l.createdAt instanceof Date?l.createdAt.toISOString():l.createdAt,updatedAt:l.updatedAt instanceof Date?l.updatedAt.toISOString():l.updatedAt}}}})});import{z as oc}from"zod";var IIf,r0u;var ZO0=g(()=>{$u();VW();cE();IIf=oc.object({id:oc.string(),virtualMcpId:oc.string(),pluginId:oc.string(),connectionId:oc.string().nullable(),settings:oc.record(oc.string(),oc.unknown()).nullable(),createdAt:oc.string(),updatedAt:oc.string()}),r0u=fi({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:oc.object({virtualMcpId:oc.string().describe("Virtual MCP ID"),pluginId:oc.string().describe("Plugin ID"),connectionId:oc.string().nullable().optional().describe("MCP connection to bind"),settings:oc.record(oc.string(),oc.unknown()).nullable().optional().describe("Plugin-specific settings")}),outputSchema:oc.object({config:IIf}),handler:async(i,u)=>{Si(u),await u.access.check();let{virtualMcpId:t,pluginId:f,connectionId:l,settings:c}=i,E=Hu(u),$=await u.storage.connections.findById(t);if(!$)throw Error(`Connection not found: ${t}`);let w=l?await u.storage.connections.findById(l):null;if(l&&$.organization_id&&!w&&Rh()){if(m6i(l,$.organization_id)){if(!E)throw Error("User ID required to create dev-assets connection");let h=qW($.organization_id,M1());await u.storage.connections.create({...h,organization_id:$.organization_id,created_by:E})}}let d=await u.storage.virtualMcpPluginConfigs.upsert(t,f,{connectionId:l,settings:c});return{config:{id:d.id,virtualMcpId:d.virtualMcpId,pluginId:d.pluginId,connectionId:d.connectionId,settings:d.settings,createdAt:d.createdAt instanceof Date?d.createdAt.toISOString():d.createdAt,updatedAt:d.updatedAt instanceof Date?d.updatedAt.toISOString():d.updatedAt}}}})});import{z as _$}from"zod";var xIf,m0u;var TO0=g(()=>{$u();i7();xIf=_$.object({connectionId:_$.string(),toolName:_$.string(),label:_$.string(),icon:_$.string().nullable().optional()}),m0u=fi({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:_$.object({virtualMcpId:_$.string().describe("Virtual MCP ID"),pinnedViews:_$.array(xIf).describe("Pinned views to set for the virtual MCP sidebar"),layout:_$.object({defaultMainView:_$.object({type:_$.string(),id:_$.string().optional(),toolName:_$.string().optional()}).nullable().optional(),chatDefaultOpen:_$.boolean().nullable().optional()}).optional()}),outputSchema:_$.object({item:F6.nullable()}),handler:async(i,u)=>{Si(u);let t=yi(u);await u.access.check();let{virtualMcpId:f,pinnedViews:l,layout:c}=i,E=Hu(u),$=await u.storage.virtualMcps.findById(f);if(!$)throw Error(`Virtual MCP not found: ${f}`);if($.organization_id!==t.id)throw Error(`Virtual MCP not found: ${f}`);let w=$.metadata?.ui??{},d={...w,pinnedViews:l.length>0?l:null,layout:c??w.layout??null};return{item:await u.storage.virtualMcps.update(f,E??"system",{metadata:{...$.metadata,ui:d}})}}})});import{z as yD}from"zod";var kIf,GIf,e0u;var BO0=g(()=>{$u();kIf=yD.object({ids:yD.array(yD.string()).describe("Virtual MCP ids to look up")}),GIf=yD.object({items:yD.array(yD.object({id:yD.string(),last_used_at:yD.string().optional(),last_used_by:yD.string().optional()}))}),e0u=fi({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:kIf,outputSchema:GIf,handler:async(i,u)=>{Si(u),yi(u),await u.access.check();let t=await u.storage.threads.findLastUsedByVirtualMcpIds(i.ids);return{items:i.ids.map((f)=>({id:f,last_used_at:t.get(f)?.last_used_at,last_used_by:t.get(f)?.last_used_by}))}}})});var FO0=g(()=>{nO0();DO0();gO0();OO0();NO0();yO0();ZO0();TO0();BO0()});import{z as Ul}from"zod";var a0u;var UO0=g(()=>{Sl();$u();a0u=fi({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:Ul.object({id:Ul.string().describe("Log ID to fetch")}),outputSchema:Ul.object({log:Ul.object({id:Ul.string().optional(),organizationId:Ul.string(),connectionId:Ul.string(),toolName:Ul.string(),input:Ul.record(Ul.string(),Ul.unknown()),output:Ul.record(Ul.string(),Ul.unknown()),isError:Ul.boolean(),errorMessage:Ul.string().nullish(),durationMs:Ul.number(),timestamp:Ul.string(),userId:Ul.string().nullish(),requestId:Ul.string(),userAgent:Ul.string().nullish(),virtualMcpId:Ul.string().nullish(),properties:Ul.record(Ul.string(),Ul.string()).nullish()}).nullable().describe("The monitoring log, or null if not found")}),handler:async(i,u)=>{await u.access.check(),await ad();let t=yi(u),f=await u.storage.monitoring.getById(t.id,i.id);if(!f)return{log:null};return{log:{...f,timestamp:f.timestamp instanceof Date?f.timestamp.toISOString():f.timestamp}}}})});import{z as Tt}from"zod";var jIf,o0u;var PO0=g(()=>{Sl();$u();jIf=Tt.object({id:Tt.string().optional().describe("Unique log identifier"),organizationId:Tt.string().describe("Organization ID"),connectionId:Tt.string().describe("Connection ID"),toolName:Tt.string().describe("Name of the tool that was called"),isError:Tt.boolean().describe("Whether the call resulted in an error"),errorMessage:Tt.string().nullish().describe("Error message if applicable"),durationMs:Tt.number().describe("Call duration in milliseconds"),timestamp:Tt.string().describe("ISO 8601 timestamp of the call"),userId:Tt.string().nullish().describe("User who triggered the call"),requestId:Tt.string().describe("Unique request identifier"),userAgent:Tt.string().nullish().describe("Client identifier (x-mesh-client header)"),virtualMcpId:Tt.string().nullish().describe("Virtual MCP (Agent) ID if routed through an agent"),properties:Tt.record(Tt.string(),Tt.string()).nullish().describe("Custom key-value metadata attached to the log")}),o0u=fi({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:Tt.object({connectionId:Tt.string().optional().describe("Filter by connection ID"),excludeConnectionIds:Tt.array(Tt.string()).optional().describe("Exclude logs from these connection IDs (e.g. system connections)"),virtualMcpId:Tt.string().optional().describe("Filter by Virtual MCP (Agent) ID"),toolName:Tt.string().optional().describe("Filter by tool name"),isError:Tt.boolean().optional().describe("Filter by error status"),startDate:Tt.string().datetime().optional().describe("Filter by start date (ISO 8601 datetime string)"),endDate:Tt.string().datetime().optional().describe("Filter by end date (ISO 8601 datetime string)"),limit:Tt.number().default(20).describe("Maximum number of results"),offset:Tt.number().default(0).describe("Offset for pagination"),properties:Tt.record(Tt.string(),Tt.string()).optional().describe("Filter by exact property key=value matches"),propertyKeys:Tt.array(Tt.string()).optional().describe("Filter by logs that have these property keys"),propertyPatterns:Tt.record(Tt.string(),Tt.string()).optional().describe("Filter by property value patterns (SQL LIKE, use % as wildcard)"),propertyInValues:Tt.record(Tt.string(),Tt.string()).optional().describe("Filter by exact match within comma-separated values (e.g., user_tags in 'Engineering')")}),outputSchema:Tt.object({logs:Tt.array(jIf).describe("Array of monitoring logs"),total:Tt.number().describe("Total number of logs matching filters"),offset:Tt.number().describe("Current offset for pagination"),limit:Tt.number().describe("Current limit for pagination")}),handler:async(i,u)=>{await ad();let t=yi(u),l=i.properties||i.propertyKeys||i.propertyPatterns||i.propertyInValues?{properties:i.properties,propertyKeys:i.propertyKeys,propertyPatterns:i.propertyPatterns,propertyInValues:i.propertyInValues}:void 0,c={organizationId:t.id,connectionId:i.connectionId,excludeConnectionIds:i.excludeConnectionIds,virtualMcpId:i.virtualMcpId,toolName:i.toolName,isError:i.isError,startDate:i.startDate?new Date(i.startDate):void 0,endDate:i.endDate?new Date(i.endDate):void 0,limit:i.limit,offset:i.offset,propertyFilters:l},E=await u.storage.monitoring.query(c);return{logs:E.logs.map(({input:$,output:w,...d})=>({...d,timestamp:d.timestamp instanceof Date?d.timestamp.toISOString():d.timestamp})),total:E.total,offset:i.offset,limit:i.limit}}})});import{z as n0}from"zod";var s0u;var AO0=g(()=>{Sl();$u();s0u=fi({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:n0.object({startDate:n0.string().datetime().optional().describe("Filter by start date (ISO 8601 datetime string)"),endDate:n0.string().datetime().optional().describe("Filter by end date (ISO 8601 datetime string)"),interval:n0.string().regex(/^\d+[mhd]$/).optional().describe("Bucket interval for timeseries data (e.g. 1m, 5m, 2h, 1d). When provided, returns timeseries array."),connectionIds:n0.array(n0.string()).max(100).optional().describe("Filter by specific connection IDs (max 100)"),excludeConnectionIds:n0.array(n0.string()).max(100).optional().describe("Exclude specific connection IDs (max 100)"),toolNames:n0.array(n0.string()).max(100).optional().describe("Filter by specific tool names (max 100)"),status:n0.enum(["success","error"]).optional().describe("Filter metrics by execution status"),topN:n0.number().int().min(1).max(20).optional().describe("When provided with interval, also return top tools and their timeseries"),userIds:n0.array(n0.string()).max(100).optional().describe("Filter LLM usage by user IDs (only applied when llmUsage is true)"),llmUsage:n0.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:n0.object({totalCalls:n0.number().describe("Total number of tool calls"),errorRate:n0.number().optional().describe("Error rate as a decimal (0 to 1)"),avgDurationMs:n0.number().describe("Average call duration in milliseconds"),errorRatePercent:n0.string().optional().describe("Error rate as a percentage string"),totalErrors:n0.number().optional().describe("Total number of errors"),p50DurationMs:n0.number().optional().describe("50th percentile duration in milliseconds"),p95DurationMs:n0.number().optional().describe("95th percentile duration in milliseconds"),connectionBreakdown:n0.array(n0.object({connectionId:n0.string(),calls:n0.number(),errors:n0.number(),errorRate:n0.number(),avgDurationMs:n0.number()})).optional().describe("Per-connection metric breakdown"),totalInputTokens:n0.number().optional().describe("Total input tokens (LLM usage mode)"),totalOutputTokens:n0.number().optional().describe("Total output tokens (LLM usage mode)"),totalTokens:n0.number().optional().describe("Total tokens (LLM usage mode)"),totalCostUsd:n0.number().optional().describe("Total USD cost (LLM usage mode; only non-zero for providers that report cost)"),topTools:n0.array(n0.object({toolName:n0.string(),connectionId:n0.string().nullable(),calls:n0.number(),inputTokens:n0.number().optional(),outputTokens:n0.number().optional(),costUsd:n0.number().optional()})).optional().describe("Top tools ranked by calls"),topToolsTimeseries:n0.array(n0.object({timestamp:n0.string(),toolName:n0.string(),calls:n0.number(),errors:n0.number(),avg:n0.number(),p95:n0.number()})).optional().describe("Per-tool metric timeseries for the top tools"),timeseries:n0.array(n0.object({timestamp:n0.string(),calls:n0.number(),errors:n0.number(),errorRate:n0.number(),avg:n0.number(),p50:n0.number(),p95:n0.number(),inputTokens:n0.number().optional(),outputTokens:n0.number().optional(),totalTokens:n0.number().optional(),costUsd:n0.number().optional()})).optional().describe("Timeseries data points bucketed by interval")}),handler:async(i,u)=>{let t=yi(u);if(await u.access.check(),await ad(),i.interval&&i.llmUsage)return u.storage.monitoring.queryLlmUsageStats({organizationId:t.id,interval:i.interval,connectionId:i.connectionIds?.[0]??"decopilot",startDate:i.startDate?new Date(i.startDate):void 0,endDate:i.endDate?new Date(i.endDate):void 0,userIds:i.userIds,topN:i.topN});if(i.interval){let l=await u.storage.monitoring.queryMetricTimeseries({organizationId:t.id,interval:i.interval,startDate:i.startDate?new Date(i.startDate):void 0,endDate:i.endDate?new Date(i.endDate):void 0,filters:{connectionIds:i.connectionIds,excludeConnectionIds:i.excludeConnectionIds,toolNames:i.toolNames,status:i.status}});if(!i.topN)return l;let c=await u.storage.monitoring.queryMetricTopToolsTimeseries({organizationId:t.id,interval:i.interval,startDate:i.startDate?new Date(i.startDate):void 0,endDate:i.endDate?new Date(i.endDate):void 0,topN:i.topN,filters:{connectionIds:i.connectionIds,excludeConnectionIds:i.excludeConnectionIds,toolNames:i.toolNames,status:i.status}});return{...l,topTools:c.topTools,topToolsTimeseries:c.timeseries}}let f=await u.storage.monitoring.getStats({organizationId:t.id,startDate:i.startDate?new Date(i.startDate):void 0,endDate:i.endDate?new Date(i.endDate):void 0});return{...f,errorRatePercent:(f.errorRate*100).toFixed(2)}}})});import{z as v$}from"zod";var p0u;var IO0=g(()=>{Sl();$u();p0u=fi({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:v$.object({threadIds:v$.array(v$.string()).min(1).max(500).describe("Thread IDs to aggregate usage for (max 500)"),connectionId:v$.string().optional().describe("LLM connection ID (defaults to 'decopilot')"),startDate:v$.string().datetime().optional().describe("Filter by start date (ISO 8601 datetime string)"),endDate:v$.string().datetime().optional().describe("Filter by end date (ISO 8601 datetime string)")}),outputSchema:v$.object({items:v$.array(v$.object({threadId:v$.string(),calls:v$.number(),inputTokens:v$.number(),outputTokens:v$.number(),totalTokens:v$.number(),costUsd:v$.number()}))}),handler:async(i,u)=>{let t=yi(u);return await u.access.check(),await ad(),{items:await u.storage.monitoring.queryThreadUsage({organizationId:t.id,connectionId:i.connectionId??"decopilot",threadIds:i.threadIds,startDate:i.startDate?new Date(i.startDate):void 0,endDate:i.endDate?new Date(i.endDate):void 0})}}})});var xO0=g(()=>{UO0();PO0();AO0();IO0()});function j3i(i){return typeof i==="string"&&JIf.has(i.trim().toLowerCase())}var JIf;var itu=g(()=>{JIf=new Set([".well-known","_admin","api","auth","cli","commerce-onboarding","dbos-queue-depth","health","hosted-run-pending","login","mcp","metrics","oauth","oauth-proxy","onboarding","org","report","reset-password"])});import{z as Dd}from"zod";var utu;var kO0=g(()=>{$u();itu();utu=fi({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:Dd.object({slug:Dd.string().min(1).max(50).regex(/^[a-z0-9-]+$/,"Slug must be lowercase alphanumeric with hyphens").refine((i)=>!j3i(i),"Slug is reserved by Studio"),name:Dd.string().min(1).max(255),description:Dd.string().optional()}),outputSchema:Dd.object({id:Dd.string(),name:Dd.string(),slug:Dd.string(),logo:Dd.string().nullable().optional(),metadata:Dd.any().optional(),createdAt:Dd.string().datetime().describe("ISO 8601 timestamp"),members:Dd.array(Dd.any()).optional()}),handler:async(i,u)=>{Si(u),await u.access.check();let t=Hu(u);if(!t)throw Error("User ID required to create organization");let f=await u.boundAuth.organization.create({name:i.name,slug:i.slug,metadata:i.description?{description:i.description}:void 0,userId:t});if(!f)throw Error("Failed to create organization");return{...f,createdAt:f.createdAt instanceof Date?f.createdAt.toISOString():f.createdAt}}})});import{z as D_}from"zod";var ttu;var GO0=g(()=>{$u();ttu=fi({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:D_.object({userId:D_.string().optional()}),outputSchema:D_.object({organizations:D_.array(D_.object({id:D_.string(),name:D_.string(),slug:D_.string(),logo:D_.string().nullable().optional(),metadata:D_.any().optional(),createdAt:D_.string().datetime().describe("ISO 8601 timestamp")}))}),handler:async(i,u)=>{Si(u),await u.access.check();let t=Hu(u),f=i.userId||t;if(!f)throw Error("User ID required to list organizations");return{organizations:(await u.boundAuth.organization.list(f)).map((c)=>({...c,createdAt:c.createdAt instanceof Date?c.createdAt.toISOString():c.createdAt}))}}})});import{z as S3}from"zod";var ftu;var SO0=g(()=>{$u();ftu=fi({name:"ORGANIZATION_GET",description:"Get an organization's details, members, and settings by slug or ID.",annotations:{title:"Get Organization",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:S3.object({}),outputSchema:S3.object({id:S3.string(),name:S3.string(),slug:S3.string(),logo:S3.string().nullable().optional(),metadata:S3.any().optional(),createdAt:S3.string().datetime().describe("ISO 8601 timestamp"),members:S3.array(S3.any()).optional(),invitations:S3.array(S3.any()).optional()}),handler:async(i,u)=>{Si(u),await u.access.check();let t=u.organization?.id;if(!t)throw Error("Organization ID required (no active organization in context)");let f=await u.boundAuth.organization.get(t);if(!f)throw Error("No active organization found");let l=new Date,c=f.invitations?.filter((E)=>new Date(E.expiresAt)>l);return{...f,invitations:c,createdAt:f.createdAt instanceof Date?f.createdAt.toISOString():f.createdAt}}})});import{z as g_}from"zod";var ltu;var jO0=g(()=>{$u();ltu=fi({name:"ORGANIZATION_UPDATE",description:"Update an organization's name or description.",annotations:{title:"Update Organization",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:g_.object({id:g_.string(),name:g_.string().min(1).max(255).optional(),description:g_.string().optional()}),outputSchema:g_.object({id:g_.string(),name:g_.string(),slug:g_.string(),logo:g_.string().nullable().optional(),metadata:g_.any().optional(),createdAt:g_.string().datetime().describe("ISO 8601 timestamp")}),handler:async(i,u)=>{Si(u),await u.access.check();let t={};if(i.name)t.name=i.name;if(i.description)t.metadata={description:i.description};let f=await u.boundAuth.organization.update({organizationId:i.id,data:t});if(!f)throw Error("Failed to update organization");return{...f,createdAt:f.createdAt instanceof Date?f.createdAt.toISOString():f.createdAt}}})});import{z as Pa}from"zod";var ctu;var KO0=g(()=>{$u();ctu=fi({name:"ORGANIZATION_DELETE",description:"Archive an organization (soft delete).",annotations:{title:"Delete Organization",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:Pa.object({id:Pa.string()}),outputSchema:Pa.object({success:Pa.boolean(),id:Pa.string()}),handler:async(i,u)=>{return Si(u),await u.access.check(),await u.boundAuth.organization.update({organizationId:i.id,data:{metadata:{archived:!0,archivedAt:new Date().toISOString()}}}),{success:!0,id:i.id}}})});import{z as M0}from"zod";var Aa,Ia,Tz,JO0,K3i,xa,ka,lg;var ZD=g(()=>{Aa=M0.object({title:M0.string(),url:M0.string(),icon:M0.string()}),Ia=M0.object({registries:M0.record(M0.string(),M0.object({enabled:M0.boolean()})).describe("Per-registry enabled/disabled state. Key is connection ID. Absent registries are treated as enabled."),blockedMcps:M0.array(M0.string()).describe("List of MCP app_name or app_id values to hide from the store.")}),Tz=M0.object({keyId:M0.string(),modelId:M0.string(),title:M0.string().optional()}).nullable(),JO0=M0.enum(["fast","smart","thinking","image","web_search","deep_research"]),K3i=M0.enum(["fast","smart","thinking"]),xa=M0.object({tiers:M0.object({fast:Tz,smart:Tz,thinking:Tz,image:Tz,web_search:Tz,deep_research:Tz})}),ka=M0.object({ids:M0.array(M0.string()).describe("Ordered list of custom virtual MCP agent ids to show on the home view.")}),lg=M0.object({id:M0.string().describe("Brand context ID"),name:M0.string().describe("Company name"),domain:M0.string().describe("Company domain (e.g. example.com)"),overview:M0.string().describe("Company overview / description"),logo:M0.string().nullable().optional().describe("Logo URL"),favicon:M0.string().nullable().optional().describe("Favicon URL"),ogImage:M0.string().nullable().optional().describe("OG image URL"),fonts:M0.object({heading:M0.string().optional().describe("Font family for headings"),body:M0.string().optional().describe("Font family for body text"),code:M0.string().optional().describe("Font family for code / monospace")}).nullable().optional().describe("Font families by semantic role"),colors:M0.object({primary:M0.string().optional().describe("Primary brand color (hex)"),secondary:M0.string().optional().describe("Secondary brand color (hex)"),accent:M0.string().optional().describe("Accent / highlight color (hex)"),background:M0.string().optional().describe("Background color (hex)"),foreground:M0.string().optional().describe("Foreground / text color (hex)")}).nullable().optional().describe("Semantic color palette"),images:M0.array(M0.record(M0.string(),M0.unknown())).nullable().optional().describe("Brand images"),metadata:M0.record(M0.string(),M0.unknown()).nullable().optional().describe("Extra design tokens (typography, components, spacing, layout, tone, etc.)"),archivedAt:M0.string().nullable().optional().describe("Archive timestamp (null to unarchive)"),isDefault:M0.boolean().optional().describe("Whether this is the default brand for the organization")})});import{z as i5}from"zod";var Etu;var XO0=g(()=>{$u();ZD();Etu=fi({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:i5.object({}),outputSchema:i5.object({organizationId:i5.string(),sidebar_items:i5.array(Aa).nullable().optional(),enabled_plugins:i5.array(i5.string()).nullable().optional(),registry_config:Ia.nullable().optional(),simple_mode:xa.nullable().optional(),default_home_agents:ka.nullable().optional(),reports_only:i5.boolean().nullable().optional(),task_board_enabled:i5.boolean().optional(),createdAt:i5.string().datetime().optional().describe("ISO 8601 timestamp"),updatedAt:i5.string().datetime().optional().describe("ISO 8601 timestamp")}),handler:async(i,u)=>{Si(u),await u.access.check();let t=u.organization?.id;if(!t)throw Error("Organization ID required (no active organization in context)");let f=await u.storage.organizationSettings.get(t);if(!f)return{organizationId:t};return{...f,createdAt:f.createdAt instanceof Date?f.createdAt.toISOString():f.createdAt,updatedAt:f.updatedAt instanceof Date?f.updatedAt.toISOString():f.updatedAt}}})});import{z as PE}from"zod";var $tu;var LO0=g(()=>{$u();ZD();$tu=fi({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:PE.object({organizationId:PE.string(),sidebar_items:PE.array(Aa).optional(),enabled_plugins:PE.array(PE.string()).optional(),registry_config:Ia.optional(),simple_mode:xa.optional(),default_home_agents:ka.optional(),reports_only:PE.boolean().optional(),task_board_enabled:PE.boolean().optional()}),outputSchema:PE.object({organizationId:PE.string(),sidebar_items:PE.array(Aa).nullable().optional(),enabled_plugins:PE.array(PE.string()).nullable().optional(),registry_config:Ia.nullable().optional(),simple_mode:xa.nullable().optional(),default_home_agents:ka.nullable().optional(),reports_only:PE.boolean().nullable().optional(),task_board_enabled:PE.boolean().optional(),createdAt:PE.string().datetime().describe("ISO 8601 timestamp"),updatedAt:PE.string().datetime().describe("ISO 8601 timestamp")}),handler:async(i,u)=>{if(Si(u),await u.access.check(),u.organization&&u.organization.id!==i.organizationId)throw Error("Cannot update settings for a different organization");let t=await u.storage.organizationSettings.upsert(i.organizationId,{sidebar_items:i.sidebar_items,enabled_plugins:i.enabled_plugins,registry_config:i.registry_config,simple_mode:i.simple_mode,default_home_agents:i.default_home_agents,reports_only:i.reports_only,task_board_enabled:i.task_board_enabled});return{...t,createdAt:t.createdAt instanceof Date?t.createdAt.toISOString():t.createdAt,updatedAt:t.updatedAt instanceof Date?t.updatedAt.toISOString():t.updatedAt}}})});import{z as O_}from"zod";var WO0,wtu,dtu;var YO0=g(()=>{$u();ZD();WO0=lg.extend({organizationId:O_.string(),archivedAt:O_.string().nullable().optional().describe("ISO 8601 timestamp"),createdAt:O_.string().describe("ISO 8601 timestamp"),updatedAt:O_.string().describe("ISO 8601 timestamp")}),wtu=fi({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:O_.object({includeArchived:O_.boolean().optional().describe("Include archived brands in the list")}),outputSchema:O_.object({items:O_.array(WO0)}),handler:async(i,u)=>{Si(u),await u.access.check();let t=u.organization?.id;if(!t)throw Error("Organization ID required (no active organization in context)");return{items:(await u.storage.brandContext.list(t,{includeArchived:i.includeArchived})).map((l)=>({...l,archivedAt:l.archivedAt instanceof Date?l.archivedAt.toISOString():l.archivedAt,createdAt:l.createdAt instanceof Date?l.createdAt.toISOString():l.createdAt,updatedAt:l.updatedAt instanceof Date?l.updatedAt.toISOString():l.updatedAt}))}}}),dtu=fi({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:O_.object({id:O_.string().describe("Brand context ID")}),outputSchema:WO0.extend({organizationId:O_.string()}),handler:async(i,u)=>{Si(u),await u.access.check();let t=u.organization?.id;if(!t)throw Error("Organization ID required (no active organization in context)");let f=await u.storage.brandContext.get(i.id,t);if(!f)throw Error("Brand context not found");return{...f,archivedAt:f.archivedAt instanceof Date?f.archivedAt.toISOString():f.archivedAt,createdAt:f.createdAt instanceof Date?f.createdAt.toISOString():f.createdAt,updatedAt:f.updatedAt instanceof Date?f.updatedAt.toISOString():f.updatedAt}}})});import{z as Ry}from"zod";var QO0,htu,_tu,vtu;var zO0=g(()=>{$u();ZD();QO0=lg.extend({organizationId:Ry.string(),createdAt:Ry.string().describe("ISO 8601 timestamp"),updatedAt:Ry.string().describe("ISO 8601 timestamp")}),htu=fi({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:lg.omit({id:!0}),outputSchema:QO0,handler:async(i,u)=>{Si(u),await u.access.check();let t=u.organization?.id;if(!t)throw Error("Organization ID required (no active organization in context)");let f=await u.storage.brandContext.create(t,{name:i.name,domain:i.domain,overview:i.overview,logo:i.logo??null,favicon:i.favicon??null,ogImage:i.ogImage??null,fonts:i.fonts??null,colors:i.colors??null,images:i.images??null,metadata:i.metadata??null});return{...f,archivedAt:f.archivedAt instanceof Date?f.archivedAt.toISOString():f.archivedAt,createdAt:f.createdAt instanceof Date?f.createdAt.toISOString():f.createdAt,updatedAt:f.updatedAt instanceof Date?f.updatedAt.toISOString():f.updatedAt}}}),_tu=fi({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:lg.partial().required({id:!0}),outputSchema:QO0,handler:async(i,u)=>{Si(u),await u.access.check();let t=u.organization?.id;if(!t)throw Error("Organization ID required (no active organization in context)");if(!await u.storage.brandContext.get(i.id,t))throw Error("Brand context not found");let{id:l,...c}=i;if(c.isDefault===!0)await u.storage.brandContext.setDefault(l,t);let E=await u.storage.brandContext.update(l,t,{name:c.name,domain:c.domain,overview:c.overview,logo:c.logo!==void 0?c.logo??null:void 0,favicon:c.favicon!==void 0?c.favicon??null:void 0,ogImage:c.ogImage!==void 0?c.ogImage??null:void 0,fonts:c.fonts!==void 0?c.fonts??null:void 0,colors:c.colors!==void 0?c.colors??null:void 0,images:c.images!==void 0?c.images??null:void 0,metadata:c.metadata!==void 0?c.metadata??null:void 0,archivedAt:c.archivedAt!==void 0?c.archivedAt??null:void 0,isDefault:c.isDefault===!1?!1:void 0});return{...E,archivedAt:E.archivedAt instanceof Date?E.archivedAt.toISOString():E.archivedAt,createdAt:E.createdAt instanceof Date?E.createdAt.toISOString():E.createdAt,updatedAt:E.updatedAt instanceof Date?E.updatedAt.toISOString():E.updatedAt}}}),vtu=fi({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:Ry.object({id:Ry.string().describe("Brand context ID")}),outputSchema:Ry.object({success:Ry.boolean()}),handler:async(i,u)=>{Si(u),await u.access.check();let t=u.organization?.id;if(!t)throw Error("Organization ID required (no active organization in context)");if(!await u.storage.brandContext.get(i.id,t))throw Error("Brand context not found");return await u.storage.brandContext.update(i.id,t,{archivedAt:new Date().toISOString(),isDefault:!1}),{success:!0}}})});async function J3i(i,u,t){let f=i.trim();if(!f.startsWith("http"))f=`https://${f}`;let l=await fetch("https://api.firecrawl.dev/v1/scrape",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${u}`},body:JSON.stringify({url:f,formats:["branding"]})});if(!l.ok){let v=await l.text().catch(()=>"");throw Error(`Firecrawl API error: ${l.status} ${v.slice(0,200)}`)}let c=await l.json();if(!c.success||!c.data?.branding)return null;let E=c.data.branding,$=c.data.metadata??{},w=WIf(E,$);return{name:$.title?.split(/[|\u2013\u2014]|\s+-\s+/).map((v)=>v.trim()).filter(Boolean)?.slice().sort((v,n)=>v.length-n.length)[0]??$.ogSiteName??t??i,domain:i,overview:$.description??"",logo:w.logo,favicon:w.favicon,ogImage:w.ogImage,fonts:w.fonts,colors:w.colors,images:null,metadata:Object.keys(w.metadata).length>0?w.metadata:null}}function WIf(i,u){let t=i.images??{},f=i.colors??{},l={};for(let[h,_]of Object.entries(f))if(typeof _==="string"&&_&&XIf.has(h))l[h]=_;let c={},$=(i.typography??{}).fontFamilies??{};for(let[h,_]of Object.entries($))if(typeof _==="string"&&_){let v=LIf[h.toLowerCase()];if(v&&!c[v])c[v]=_}let w=i.fonts;if(Array.isArray(w))for(let h of w){let _=h.family;if(typeof _==="string"&&_&&!c.body)c.body=_}let d={};for(let h of["typography","components","spacing","layout","animations","icons","tone","personality","colorScheme"])if(i[h]!==void 0)d[h]=i[h];return{logo:t.logo??null,favicon:t.favicon??null,ogImage:t.ogImage??u.ogImage??null,fonts:Object.keys(c).length>0?c:null,colors:Object.keys(l).length>0?l:null,metadata:d}}var XIf,LIf;var ntu=g(()=>{XIf=new Set(["primary","secondary","accent","background","foreground"]),LIf={heading:"heading",headings:"heading",head:"heading",title:"heading",body:"body",primary:"body",text:"body",code:"code",monospace:"code",mono:"code"}});import{z as X3i}from"zod";var YIf,Dtu;var HO0=g(()=>{$u();ntu();ZD();YIf=lg.pick({id:!0,name:!0,domain:!0,overview:!0,logo:!0,favicon:!0,ogImage:!0,fonts:!0,colors:!0}).extend({success:X3i.boolean()}),Dtu=fi({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:X3i.object({domain:X3i.string().describe("Website domain to extract brand from"),brandId:X3i.string().optional().describe("Existing brand context ID to update (creates new if omitted)")}),outputSchema:YIf,modelSummary:(i)=>i.success?`Brand saved (id=${i.id}, name=${i.name}, domain=${i.domain}). The UI rendered the logo, colors, fonts, and overview.`:"Brand extraction failed.",handler:async(i,u)=>{Si(u),await u.access.check();let t=u.organization?.id;if(!t)throw Error("Organization ID required (no active organization in context)");let f=u.firecrawlApiKey;if(!f)throw Error("FIRECRAWL_API_KEY is not configured. Set the environment variable to enable brand extraction.");let l=await J3i(i.domain,f,i.domain);if(!l)throw Error("Firecrawl did not return branding data for this URL");let c={name:l.name,domain:l.domain,overview:l.overview,logo:l.logo,favicon:l.favicon,ogImage:l.ogImage,fonts:l.fonts,colors:l.colors,images:l.images,metadata:l.metadata},E=i.brandId?await(async()=>{if(!await u.storage.brandContext.get(i.brandId,t))throw Error("Brand context not found");return u.storage.brandContext.update(i.brandId,t,c)})():await u.storage.brandContext.create(t,c);return{id:E.id,name:E.name,domain:E.domain,overview:E.overview,logo:E.logo,favicon:E.favicon,ogImage:E.ogImage,fonts:E.fonts,colors:E.colors,success:!0}}})});function RO0(i){let u=i.metadata??{};return{id:i.id,name:i.name,domain:i.domain||void 0,colors:i.colors??void 0,fonts:i.fonts??void 0,assets:i.logo||i.favicon||i.ogImage?{logo:i.logo??void 0,favicon:i.favicon??void 0,ogImage:i.ogImage??void 0}:void 0,overview:i.overview||void 0,tagline:typeof u.tagline==="string"?u.tagline:void 0,tone:typeof u.tone==="string"?u.tone:void 0,metadata:(()=>{let t=Object.fromEntries(Object.entries(u).filter(([f])=>f!=="tagline"&&f!=="tone"));return Object.keys(t).length>0?t:void 0})()}}var gtu,Otu;var bO0=g(()=>{k0u();$u();gtu=fi({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:U3i,outputSchema:Ba,handler:async(i,u)=>{Si(u),await u.access.check();let t=u.organization?.id;if(!t)throw Error("Organization ID required (no active organization in context)");let f=i.id?await u.storage.brandContext.get(i.id,t):await u.storage.brandContext.getDefault(t);if(!f)throw Error(i.id?"Brand not found":"No default brand configured");return RO0(f)}}),Otu=fi({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:P3i,outputSchema:A3i,handler:async(i,u)=>{Si(u),await u.access.check();let t=u.organization?.id;if(!t)throw Error("Organization ID required (no active organization in context)");return{items:(await u.storage.brandContext.list(t)).map(RO0)}}})});import{resolveTxt as QIf}from"dns/promises";function Ntu(i){return`${zIf}.${i.toLowerCase()}`}function CO0(){return`deco-verify-${crypto.randomUUID().replace(/-/g,"")}`}async function MO0(i,u,t=QIf){if(!u)return!1;try{return(await t(Ntu(i))).some((l)=>l.join("").trim()===u)}catch{return!1}}var zIf="_deco-verify";var qO0=()=>{};import{z as Yl}from"zod";function cg(i){let u=i.verificationStatus==="pending"&&Boolean(i.verificationToken);return{id:i.id,domain:i.domain,joinMode:i.joinMode,verificationStatus:i.verificationStatus,verificationMethod:i.verificationMethod,verifiedAt:i.verifiedAt?new Date(i.verifiedAt).toISOString():null,recordName:u?Ntu(i.domain):null,recordValue:u?i.verificationToken:null}}function RIf(i){let u=i.toLowerCase().trim();if(!HIf.test(u))throw Error(`Invalid domain format: "${u}". Must be a valid domain like "acme.com"`);if(N_.has(u))throw Error(`Cannot claim generic email domain "${u}". Only corporate domains are allowed.`);return u}var HIf,ytu,L3i,Ztu,Ttu,Btu,Ftu,Utu;var VO0=g(()=>{y_();qO0();$u();HIf=/^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)+$/,ytu=Yl.enum(["off","auto","request"]),L3i=Yl.object({id:Yl.string(),domain:Yl.string(),joinMode:ytu,verificationStatus:Yl.enum(["pending","verified"]),verificationMethod:Yl.enum(["email","dns"]).nullable(),verifiedAt:Yl.string().nullable(),recordName:Yl.string().nullable(),recordValue:Yl.string().nullable()});Ztu=fi({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:Yl.object({}),outputSchema:Yl.object({domains:Yl.array(L3i)}),handler:async(i,u)=>{Si(u),await u.access.check();let t=yi(u);return{domains:(await u.storage.organizationDomains.listByOrganizationId(t.id)).map(cg)}}}),Ttu=fi({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:Yl.object({domain:Yl.string().min(1).max(255).describe("Domain to claim, e.g. acme.com"),joinMode:ytu.optional().describe("Initial join mode (only applied when the domain is trusted immediately via email match).")}),outputSchema:L3i,handler:async(i,u)=>{Si(u),await u.access.check();let t=yi(u),f=RIf(i.domain),c=u.auth.user?.email?.split("@")[1]?.toLowerCase(),E=Boolean(u.auth.user?.emailVerified)&&c===f,$=await u.storage.organizationDomains.getByOrgAndDomain(t.id,f);if($){if($.verificationStatus!=="verified"&&E){let d=await u.storage.organizationDomains.markVerified($.id,"email");return cg(d)}return cg($)}let w=E?await u.storage.organizationDomains.add(t.id,f,{joinMode:i.joinMode??"off",verificationStatus:"verified",verificationMethod:"email"}):await u.storage.organizationDomains.add(t.id,f,{joinMode:"off",verificationStatus:"pending",verificationToken:CO0()});return cg(w)}}),Btu=fi({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:Yl.object({id:Yl.string(),joinMode:ytu}),outputSchema:L3i,handler:async(i,u)=>{Si(u),await u.access.check();let t=yi(u),f=await u.storage.organizationDomains.getById(i.id);if(!f||f.organizationId!==t.id)throw Error("Domain not found");if(i.joinMode!=="off"&&f.verificationStatus!=="verified")throw Error("Verify the domain before enabling auto-join or requests.");let l=await u.storage.organizationDomains.updateJoinMode(i.id,i.joinMode);return cg(l)}}),Ftu=fi({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:Yl.object({id:Yl.string()}),outputSchema:Yl.object({verified:Yl.boolean(),domain:L3i}),handler:async(i,u)=>{Si(u),await u.access.check();let t=yi(u),f=await u.storage.organizationDomains.getById(i.id);if(!f||f.organizationId!==t.id)throw Error("Domain not found");if(f.verificationStatus==="verified")return{verified:!0,domain:cg(f)};if(!f.verificationToken)throw Error("Domain has no pending DNS verification.");if(!await MO0(f.domain,f.verificationToken))return{verified:!1,domain:cg(f)};let c=await u.storage.organizationDomains.markVerified(i.id,"dns");return{verified:!0,domain:cg(c)}}}),Utu=fi({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:Yl.object({id:Yl.string()}),outputSchema:Yl.object({success:Yl.boolean()}),handler:async(i,u)=>{Si(u),await u.access.check();let t=yi(u),f=await u.storage.organizationDomains.getById(i.id);if(!f||f.organizationId!==t.id)throw Error("Domain not found");return await u.storage.organizationDomains.removeById(i.id),{success:!0}}})});function Eg(i){return(i instanceof Error?i.message.toLowerCase():"").includes("already a member")}import{z as L1}from"zod";var bIf,Ptu,Atu,Itu;var rO0=g(()=>{$u();z4();bIf=L1.object({id:L1.string(),userId:L1.string(),status:L1.enum(["pending","approved","denied"]),createdAt:L1.string(),user:L1.object({id:L1.string(),name:L1.string(),email:L1.string(),image:L1.string().nullable()}).nullable()}),Ptu=fi({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:L1.object({}),outputSchema:L1.object({requests:L1.array(bIf)}),handler:async(i,u)=>{Si(u),await u.access.check();let t=yi(u);return{requests:(await u.storage.organizationJoinRequests.listPendingWithUser(t.id)).map((l)=>({id:l.id,userId:l.userId,status:l.status,createdAt:new Date(l.createdAt).toISOString(),user:l.user}))}}}),Atu=fi({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:L1.object({requestId:L1.string()}),outputSchema:L1.object({success:L1.boolean()}),handler:async(i,u)=>{Si(u),await u.access.check();let t=yi(u),f=await u.storage.organizationJoinRequests.getById(i.requestId);if(!f||f.organizationId!==t.id)throw Error("Join request not found");if(f.status!=="pending")throw Error("Join request has already been decided");let l=Hu(u);if(!await u.storage.organizationJoinRequests.decide(f.id,"approved",l??f.userId))return{success:!0};try{await u.boundAuth.organization.addMember({organizationId:t.id,userId:f.userId,role:["user"]})}catch(E){if(!Eg(E))throw E}if(l)mu.capture({distinctId:l,event:"organization_join_request_approved",groups:{organization:t.id},properties:{organization_id:t.id,user_id:f.userId}});return{success:!0}}}),Itu=fi({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:L1.object({requestId:L1.string()}),outputSchema:L1.object({success:L1.boolean()}),handler:async(i,u)=>{Si(u),await u.access.check();let t=yi(u),f=await u.storage.organizationJoinRequests.getById(i.requestId);if(!f||f.organizationId!==t.id)throw Error("Join request not found");if(f.status!=="pending")throw Error("Join request has already been decided");let l=Hu(u);if(await u.storage.organizationJoinRequests.decide(f.id,"denied",l??f.userId)&&l)mu.capture({distinctId:l,event:"organization_join_request_denied",groups:{organization:t.id},properties:{organization_id:t.id,user_id:f.userId}});return{success:!0}}})});import{z as ww}from"zod";var xtu;var mO0=g(()=>{z4();$u();i_();xtu=fi({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:ww.object({organizationId:ww.string().optional(),userId:ww.string(),role:ww.array(ww.string())}),outputSchema:ww.object({id:ww.string(),organizationId:ww.string(),userId:ww.string(),role:ww.union([ww.string(),ww.array(ww.string())]),createdAt:ww.string().datetime().describe("ISO 8601 timestamp")}),handler:async(i,u)=>{Si(u),await u.access.check();let t=i.organizationId||u.organization?.id;if(!t)throw Error("Organization ID required (no active organization in context)");if(t!==u.organization?.id)throw Error("Organization ID does not match authenticated organization");let f=Array.isArray(i.role)?i.role[0]:i.role;if(f&&!xwi(u.auth.user?.role,f))throw Error(`Insufficient privileges to assign role "${f}"`);let l=await u.boundAuth.organization.addMember({organizationId:t,userId:i.userId,role:i.role});if(!l)throw Error("Failed to add member");let c=Hu(u);if(c)mu.capture({distinctId:c,event:"organization_member_added",groups:{organization:t},properties:{organization_id:t,added_user_id:i.userId,role:i.role}});return{...l,role:l.role,createdAt:l.createdAt instanceof Date?l.createdAt.toISOString():l.createdAt}}})});import{z as Bz}from"zod";var ktu;var eO0=g(()=>{z4();$u();ktu=fi({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:Bz.object({organizationId:Bz.string().optional(),memberIdOrEmail:Bz.string()}),outputSchema:Bz.object({success:Bz.boolean(),memberIdOrEmail:Bz.string()}),handler:async(i,u)=>{Si(u),await u.access.check();let t=i.organizationId||u.organization?.id;if(!t)throw Error("Organization ID required (no active organization in context)");await u.boundAuth.organization.removeMember({organizationId:t,memberIdOrEmail:i.memberIdOrEmail});let f=Hu(u);if(f)mu.capture({distinctId:f,event:"organization_member_removed",groups:{organization:t},properties:{organization_id:t,member_id_or_email:i.memberIdOrEmail}});return{success:!0,memberIdOrEmail:i.memberIdOrEmail}}})});import{z as AE}from"zod";var Gtu;var aO0=g(()=>{$u();Gtu=fi({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:AE.object({limit:AE.number().optional(),offset:AE.number().optional()}),outputSchema:AE.object({members:AE.array(AE.object({id:AE.string(),organizationId:AE.string(),userId:AE.string(),role:AE.string(),createdAt:AE.string().datetime().describe("ISO 8601 timestamp"),user:AE.object({id:AE.string(),name:AE.string(),email:AE.string(),image:AE.string().optional()}).optional()}))}),handler:async(i,u)=>{Si(u),await u.access.check();let t=u.organization?.id;if(!t)throw Error("Organization ID required (no active organization in context)");let f=await u.boundAuth.organization.listMembers({organizationId:t,limit:i.limit,offset:i.offset});return{members:(Array.isArray(f)?f:[]).map((c)=>({...c,createdAt:c.createdAt instanceof Date?c.createdAt.toISOString():c.createdAt}))}}})});import{z as sc}from"zod";var Stu;var oO0=g(()=>{z4();$u();i_();Stu=fi({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:sc.object({organizationId:sc.string().optional(),memberId:sc.string(),role:sc.array(sc.string())}),outputSchema:sc.object({id:sc.string(),organizationId:sc.string(),userId:sc.string(),role:sc.union([sc.literal("admin"),sc.literal("member"),sc.literal("owner")]),createdAt:sc.string().datetime().describe("ISO 8601 timestamp"),user:sc.object({email:sc.string(),name:sc.string(),image:sc.string().optional()})}),handler:async(i,u)=>{Si(u),await u.access.check();let t=i.organizationId||u.organization?.id;if(!t)throw Error("Organization ID required (no active organization in context)");let f=Array.isArray(i.role)?i.role[0]:i.role;if(f&&!xwi(u.auth.user?.role,f))throw Error(`Insufficient privileges to assign role "${f}"`);let l=await u.boundAuth.organization.updateMemberRole({organizationId:t,memberId:i.memberId,role:i.role});if(!l)throw Error("Failed to update member role");u.invalidateMemberRole?.(l.userId,t);let c=Hu(u);if(c)mu.capture({distinctId:c,event:"organization_member_role_updated",groups:{organization:t},properties:{organization_id:t,member_id:i.memberId,target_user_id:l.userId,new_role:Array.isArray(i.role)?i.role.join(","):i.role}});return{...l,createdAt:l.createdAt instanceof Date?l.createdAt.toISOString():l.createdAt}}})});var sO0=g(()=>{kO0();GO0();SO0();jO0();KO0();XO0();LO0();YO0();zO0();HO0();bO0();VO0();rO0();mO0();eO0();aO0();oO0()});var $g="super-agent",pO0="task-board.item.updated";import{z as sl}from"zod";var Ga,Sa,MIf,Fz;var ja=g(()=>{Ga=sl.enum(["triage","todo","in_progress","in_review","done"]),Sa=sl.enum(["none","low","medium","high","urgent"]),MIf=sl.object({threadId:sl.string(),virtualMcpId:sl.string().nullable(),status:sl.enum(["in_progress","requires_action","failed","completed","expired"]).nullable(),title:sl.string().nullable(),lastMessage:sl.string().nullable(),hasPreview:sl.boolean(),createdAt:sl.string()}),Fz=sl.object({id:sl.string(),organizationId:sl.string(),title:sl.string(),description:sl.string().nullable(),status:Ga,priority:Sa,assigneeId:sl.string().nullable(),assignedBy:sl.string().nullable(),dueDate:sl.string().datetime().nullable(),threads:sl.array(MIf),createdBy:sl.string(),createdAt:sl.string().datetime(),updatedBy:sl.string(),updatedAt:sl.string().datetime()})});async function W3i(i,u,t){if(t===$g)return;let{members:f}=await i.boundAuth.organization.listMembers({organizationId:u,filterField:"userId",filterValue:t});if(!f.some((l)=>l.userId===t))throw Error("assigneeId is not a member of the organization")}var jtu=g(()=>{ja()});async function wg(i,u){if(!(await i.storage.organizationSettings.get(u))?.task_board_enabled)throw Error("Task board is not enabled for this organization")}async function Ktu(i,u,t){let f;try{return await Promise.race([i.aiProviders.listModels(u,t),new Promise((c,E)=>{f=setTimeout(()=>E(Error("listModels timeout")),qIf)})])}finally{if(f)clearTimeout(f)}}function VIf(i,u){switch(i){case"fast":return u.chat.fast;case"smart":return u.chat.smart;case"thinking":return u.chat.thinking;case"image":return u.image;case"web_search":return u.webSearch;case"deep_research":return u.deepResearch}}function Jtu(i,u,t){let f=i.find((l)=>l.modelId===u);return{title:f?.title??t??u,providerId:f?.providerId,capabilities:f?.capabilities,limits:f?.limits??null}}async function Z_(i,u){let t=i.organization?.id;if(!t)throw Error("resolveTier called without an organization");let l=(await i.storage.organizationSettings.get(t))?.simple_mode?.tiers?.[u]??null,c=await i.storage.aiProviderKeys.list({organizationId:t});if(l&&c.some((h)=>h.id===l.keyId)){let h=await Ktu(i,l.keyId,t).catch(()=>[]);return{credentialId:l.keyId,modelId:l.modelId,modelMeta:Jtu(h,l.modelId,l.title)}}if(c.length===0)throw new Uz(u);let E={};await Promise.all(c.map(async(h)=>{E[h.id]=await Ktu(i,h.id,t).catch(()=>[])}));let $=c.map((h)=>({id:h.id,providerId:h.providerId,label:h.label,presetId:h.presetId,createdBy:h.createdBy,createdAt:h.createdAt})),w=nmi($,E),d=VIf(u,w);if(!d)throw new Uz(u);return{credentialId:d.keyId,modelId:d.modelId,modelMeta:Jtu(E[d.keyId]??[],d.modelId,d.title)}}async function iN0(i,u,t){let f=i.organization?.id;if(!f)throw Error("resolveSpecificModel called without an organization");let l=await Ktu(i,u,f).catch(()=>[]);return{credentialId:u,modelId:t,modelMeta:Jtu(l,t)}}async function j3(i,u){try{return await Z_(i,u)}catch(t){if(t instanceof Uz)return null;return console.warn(`[resolveTier] tier "${u}" resolution failed:`,t),null}}var Uz,qIf=5000;var Pz=g(()=>{Rt();Uz=class Uz extends Error{tier;constructor(i){super(`No model available for tier "${i}". Connect a provider or configure the tier in organization settings.`);this.tier=i;this.name="TierUnavailableError"}}});function Y3i(i){return i.sandboxProviderKind==="agent-sandbox"&&i.harnessId==="decopilot"}function uN0(i){return i.harnessId==="decopilot"&&(i.sandboxProviderKind==null||i.sandboxProviderKind==="agent-sandbox")}function mIf(i){return{type:"data-run-status",id:"run-status",data:{stage:i}}}function tN0(i){if(!i||typeof i!=="object")return!1;return i.type==="data-run-status"}async function TD(i,u,t){if(!i)return;try{await i.publishRawChunk(u,mIf(t))}catch{}}var rIf,Ka,nol;var Ja=g(()=>{rIf=["waiting-runner","starting-run","gathering-context","preparing-tools","starting-assistant","analyzing-scope"],Ka=["gathering-context","preparing-tools","starting-assistant","analyzing-scope"],nol=new Set(rIf)});function Q3i(){return crypto.randomUUID()}var Ltu=K((Ool,cN0)=>{var{defineProperty:Xtu,getOwnPropertyDescriptor:eIf,getOwnPropertyNames:aIf}=Object,oIf=Object.prototype.hasOwnProperty,sIf=(i,u)=>{for(var t in u)Xtu(i,t,{get:u[t],enumerable:!0})},pIf=(i,u,t,f)=>{if(u&&typeof u==="object"||typeof u==="function"){for(let l of aIf(u))if(!oIf.call(i,l)&&l!==t)Xtu(i,l,{get:()=>u[l],enumerable:!(f=eIf(u,l))||f.enumerable})}return i},ixf=(i)=>pIf(Xtu({},"__esModule",{value:!0}),i),fN0={};sIf(fN0,{SYMBOL_FOR_REQ_CONTEXT:()=>lN0,getContext:()=>uxf});cN0.exports=ixf(fN0);var lN0=Symbol.for("@vercel/request-context");function uxf(){return globalThis[lN0]?.get?.()??{}}});var Xa=K((Nol,wN0)=>{var{defineProperty:Wtu,getOwnPropertyDescriptor:txf,getOwnPropertyNames:fxf}=Object,lxf=Object.prototype.hasOwnProperty,cxf=(i,u)=>{for(var t in u)Wtu(i,t,{get:u[t],enumerable:!0})},Exf=(i,u,t,f)=>{if(u&&typeof u==="object"||typeof u==="function"){for(let l of fxf(u))if(!lxf.call(i,l)&&l!==t)Wtu(i,l,{get:()=>u[l],enumerable:!(f=txf(u,l))||f.enumerable})}return i},$xf=(i)=>Exf(Wtu({},"__esModule",{value:!0}),i),EN0={};cxf(EN0,{VercelOidcTokenError:()=>$N0});wN0.exports=$xf(EN0);class $N0 extends Error{constructor(i,u){super(i);this.name="VercelOidcTokenError",this.cause=u}toString(){if(this.cause)return`${this.name}: ${this.message}: ${this.cause}`;return`${this.name}: ${this.message}`}}});var vN0=K((yol,_N0)=>{var{create:wxf,defineProperty:z3i,getOwnPropertyDescriptor:dxf,getOwnPropertyNames:hxf,getPrototypeOf:_xf}=Object,vxf=Object.prototype.hasOwnProperty,nxf=(i,u)=>{for(var t in u)z3i(i,t,{get:u[t],enumerable:!0})},dN0=(i,u,t,f)=>{if(u&&typeof u==="object"||typeof u==="function"){for(let l of hxf(u))if(!vxf.call(i,l)&&l!==t)z3i(i,l,{get:()=>u[l],enumerable:!(f=dxf(u,l))||f.enumerable})}return i},Qtu=(i,u,t)=>(t=i!=null?wxf(_xf(i)):{},dN0(u||!i||!i.__esModule?z3i(t,"default",{value:i,enumerable:!0}):t,i)),Dxf=(i)=>dN0(z3i({},"__esModule",{value:!0}),i),hN0={};nxf(hN0,{findRootDir:()=>Nxf,getUserDataDir:()=>yxf});_N0.exports=Dxf(hN0);var La=Qtu(Ni("path")),gxf=Qtu(Ni("fs")),Ytu=Qtu(Ni("os")),Oxf=Xa();function Nxf(){try{let i=process.cwd();while(i!==La.default.dirname(i)){let u=La.default.join(i,".vercel");if(gxf.default.existsSync(u))return i;i=La.default.dirname(i)}}catch(i){throw new Oxf.VercelOidcTokenError("Token refresh only supported in node server environments")}return null}function yxf(){if(process.env.XDG_DATA_HOME)return process.env.XDG_DATA_HOME;switch(Ytu.default.platform()){case"darwin":return La.default.join(Ytu.default.homedir(),"Library/Application Support");case"linux":return La.default.join(Ytu.default.homedir(),".local/share");case"win32":if(process.env.LOCALAPPDATA)return process.env.LOCALAPPDATA;return null;default:return null}}});var ZN0=K((Zol,yN0)=>{var{create:Zxf,defineProperty:H3i,getOwnPropertyDescriptor:Txf,getOwnPropertyNames:Bxf,getPrototypeOf:Fxf}=Object,Uxf=Object.prototype.hasOwnProperty,Pxf=(i,u)=>{for(var t in u)H3i(i,t,{get:u[t],enumerable:!0})},nN0=(i,u,t,f)=>{if(u&&typeof u==="object"||typeof u==="function"){for(let l of Bxf(u))if(!Uxf.call(i,l)&&l!==t)H3i(i,l,{get:()=>u[l],enumerable:!(f=Txf(u,l))||f.enumerable})}return i},DN0=(i,u,t)=>(t=i!=null?Zxf(Fxf(i)):{},nN0(u||!i||!i.__esModule?H3i(t,"default",{value:i,enumerable:!0}):t,i)),Axf=(i)=>nN0(H3i({},"__esModule",{value:!0}),i),gN0={};Pxf(gN0,{isValidAccessToken:()=>Gxf,readAuthConfig:()=>xxf,writeAuthConfig:()=>kxf});yN0.exports=Axf(gN0);var Wa=DN0(Ni("fs")),ON0=DN0(Ni("path")),Ixf=Ya();function NN0(){let i=(0,Ixf.getVercelDataDir)();if(!i)throw Error(`Unable to find Vercel CLI data directory. Your platform: ${process.platform}. Supported: darwin, linux, win32.`);return ON0.join(i,"auth.json")}function xxf(){try{let i=NN0();if(!Wa.existsSync(i))return null;let u=Wa.readFileSync(i,"utf8");if(!u)return null;return JSON.parse(u)}catch(i){return null}}function kxf(i){let u=NN0(),t=ON0.dirname(u);if(!Wa.existsSync(t))Wa.mkdirSync(t,{mode:504,recursive:!0});Wa.writeFileSync(u,JSON.stringify(i,null,2),{mode:384})}function Gxf(i,u=0){if(!i.token)return!1;if(typeof i.expiresAt!=="number")return!0;let t=Math.floor(Date.now()/1000),f=u/1000;return i.expiresAt>=t+f}});var UN0=K((Tol,FN0)=>{var{defineProperty:Rtu,getOwnPropertyDescriptor:Sxf,getOwnPropertyNames:jxf}=Object,Kxf=Object.prototype.hasOwnProperty,Jxf=(i,u)=>{for(var t in u)Rtu(i,t,{get:u[t],enumerable:!0})},Xxf=(i,u,t,f)=>{if(u&&typeof u==="object"||typeof u==="function"){for(let l of jxf(u))if(!Kxf.call(i,l)&&l!==t)Rtu(i,l,{get:()=>u[l],enumerable:!(f=Sxf(u,l))||f.enumerable})}return i},Lxf=(i)=>Xxf(Rtu({},"__esModule",{value:!0}),i),TN0={};Jxf(TN0,{processTokenResponse:()=>Hxf,refreshTokenRequest:()=>zxf});FN0.exports=Lxf(TN0);var ztu=Ni("os"),Wxf="https://vercel.com",Yxf="cl_HYyOPBNtFMfHhaUn9L4QPfTZz6TP47bp",BN0=`@vercel/oidc node-${process.version} ${(0,ztu.platform)()} (${(0,ztu.arch)()}) ${(0,ztu.hostname)()}`,Htu=null;async function Qxf(){if(Htu)return Htu;let i=`${Wxf}/.well-known/openid-configuration`,u=await fetch(i,{headers:{"user-agent":BN0}});if(!u.ok)throw Error("Failed to discover OAuth endpoints");let t=await u.json();if(!t||typeof t.token_endpoint!=="string")throw Error("Invalid OAuth discovery response");let f=t.token_endpoint;return Htu=f,f}async function zxf(i){let u=await Qxf();return await fetch(u,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded","user-agent":BN0},body:new URLSearchParams({client_id:Yxf,grant_type:"refresh_token",...i})})}async function Hxf(i){let u=await i.json();if(!i.ok){let t=typeof u==="object"&&u&&"error"in u?String(u.error):"Token refresh failed";return[Error(t)]}if(typeof u!=="object"||u===null)return[Error("Invalid token response")];if(typeof u.access_token!=="string")return[Error("Missing access_token in response")];if(u.token_type!=="Bearer")return[Error("Invalid token_type in response")];if(typeof u.expires_in!=="number")return[Error("Missing expires_in in response")];return[null,u]}});var Ctu=K((Bol,xN0)=>{var{defineProperty:btu,getOwnPropertyDescriptor:Rxf,getOwnPropertyNames:bxf}=Object,Cxf=Object.prototype.hasOwnProperty,Mxf=(i,u)=>{for(var t in u)btu(i,t,{get:u[t],enumerable:!0})},qxf=(i,u,t,f)=>{if(u&&typeof u==="object"||typeof u==="function"){for(let l of bxf(u))if(!Cxf.call(i,l)&&l!==t)btu(i,l,{get:()=>u[l],enumerable:!(f=Rxf(u,l))||f.enumerable})}return i},Vxf=(i)=>qxf(btu({},"__esModule",{value:!0}),i),PN0={};Mxf(PN0,{AccessTokenMissingError:()=>AN0,RefreshAccessTokenFailedError:()=>IN0});xN0.exports=Vxf(PN0);class AN0 extends Error{constructor(){super("No authentication found. Please log in with the Vercel CLI (vercel login).");this.name="AccessTokenMissingError"}}class IN0 extends Error{constructor(i){super("Failed to refresh authentication token.",{cause:i});this.name="RefreshAccessTokenFailedError"}}});var Ya=K((Fol,KN0)=>{var{create:rxf,defineProperty:R3i,getOwnPropertyDescriptor:mxf,getOwnPropertyNames:exf,getPrototypeOf:axf}=Object,oxf=Object.prototype.hasOwnProperty,sxf=(i,u)=>{for(var t in u)R3i(i,t,{get:u[t],enumerable:!0})},GN0=(i,u,t,f)=>{if(u&&typeof u==="object"||typeof u==="function"){for(let l of exf(u))if(!oxf.call(i,l)&&l!==t)R3i(i,l,{get:()=>u[l],enumerable:!(f=mxf(u,l))||f.enumerable})}return i},SN0=(i,u,t)=>(t=i!=null?rxf(axf(i)):{},GN0(u||!i||!i.__esModule?R3i(t,"default",{value:i,enumerable:!0}):t,i)),pxf=(i)=>GN0(R3i({},"__esModule",{value:!0}),i),jN0={};sxf(jN0,{assertVercelOidcTokenResponse:()=>Mtu,findProjectInfo:()=>fkf,getTokenPayload:()=>Ekf,getVercelDataDir:()=>ikf,getVercelOidcToken:()=>tkf,getVercelToken:()=>ukf,isExpired:()=>$kf,loadToken:()=>ckf,saveToken:()=>lkf});KN0.exports=pxf(jN0);var Qa=SN0(Ni("path")),by=SN0(Ni("fs")),xz=Xa(),b3i=vN0(),Az=ZN0(),kN0=UN0(),Iz=Ctu();function ikf(){let u=(0,b3i.getUserDataDir)();if(!u)return null;return Qa.join(u,"com.vercel.cli")}async function ukf(i){let u=(0,Az.readAuthConfig)();if(!u?.token)throw new Iz.AccessTokenMissingError;if((0,Az.isValidAccessToken)(u,i?.expirationBufferMs))return u.token;if(!u.refreshToken)throw(0,Az.writeAuthConfig)({}),new Iz.RefreshAccessTokenFailedError("No refresh token available");try{let t=await(0,kN0.refreshTokenRequest)({refresh_token:u.refreshToken}),[f,l]=await(0,kN0.processTokenResponse)(t);if(f||!l)throw(0,Az.writeAuthConfig)({}),new Iz.RefreshAccessTokenFailedError(f);let c={token:l.access_token,expiresAt:Math.floor(Date.now()/1000)+l.expires_in};if(l.refresh_token)c.refreshToken=l.refresh_token;return(0,Az.writeAuthConfig)(c),c.token}catch(t){if((0,Az.writeAuthConfig)({}),t instanceof Iz.AccessTokenMissingError||t instanceof Iz.RefreshAccessTokenFailedError)throw t;throw new Iz.RefreshAccessTokenFailedError(t)}}async function tkf(i,u,t){let f=`https://api.vercel.com/v1/projects/${u}/token?source=vercel-oidc-refresh${t?`&teamId=${t}`:""}`,l=await fetch(f,{method:"POST",headers:{Authorization:`Bearer ${i}`}});if(!l.ok)throw new xz.VercelOidcTokenError(`Failed to refresh OIDC token: ${l.statusText}`);let c=await l.json();return Mtu(c),c}function Mtu(i){if(!i||typeof i!=="object")throw TypeError("Vercel OIDC token is malformed. Expected an object. Please run `vc env pull` and try again");if(!("token"in i)||typeof i.token!=="string")throw TypeError("Vercel OIDC token is malformed. Expected a string-valued token property. Please run `vc env pull` and try again")}function fkf(){let i=(0,b3i.findRootDir)();if(!i)throw new xz.VercelOidcTokenError("Unable to find project root directory. Have you linked your project with `vc link?`");let u=Qa.join(i,".vercel","project.json");if(!by.existsSync(u))throw new xz.VercelOidcTokenError("project.json not found, have you linked your project with `vc link?`");let t=JSON.parse(by.readFileSync(u,"utf8"));if(typeof t.projectId!=="string"&&typeof t.orgId!=="string")throw TypeError("Expected a string-valued projectId property. Try running `vc link` to re-link your project.");return{projectId:t.projectId,teamId:t.orgId}}function lkf(i,u){let t=(0,b3i.getUserDataDir)();if(!t)throw new xz.VercelOidcTokenError("Unable to find user data directory. Please reach out to Vercel support.");let f=Qa.join(t,"com.vercel.token",`${u}.json`),l=JSON.stringify(i);by.mkdirSync(Qa.dirname(f),{mode:504,recursive:!0}),by.writeFileSync(f,l),by.chmodSync(f,432);return}function ckf(i){let u=(0,b3i.getUserDataDir)();if(!u)throw new xz.VercelOidcTokenError("Unable to find user data directory. Please reach out to Vercel support.");let t=Qa.join(u,"com.vercel.token",`${i}.json`);if(!by.existsSync(t))return null;let f=JSON.parse(by.readFileSync(t,"utf8"));return Mtu(f),f}function Ekf(i){let u=i.split(".");if(u.length!==3)throw new xz.VercelOidcTokenError("Invalid token. Please run `vc env pull` and try again");let t=u[1].replace(/-/g,"+").replace(/_/g,"/"),f=t.padEnd(t.length+(4-t.length%4)%4,"=");return JSON.parse(Buffer.from(f,"base64").toString("utf8"))}function $kf(i,u=0){return i.exp*1000<Date.now()+u}});var WN0=K((Uol,LN0)=>{var{defineProperty:qtu,getOwnPropertyDescriptor:wkf,getOwnPropertyNames:dkf}=Object,hkf=Object.prototype.hasOwnProperty,_kf=(i,u)=>{for(var t in u)qtu(i,t,{get:u[t],enumerable:!0})},vkf=(i,u,t,f)=>{if(u&&typeof u==="object"||typeof u==="function"){for(let l of dkf(u))if(!hkf.call(i,l)&&l!==t)qtu(i,l,{get:()=>u[l],enumerable:!(f=wkf(u,l))||f.enumerable})}return i},nkf=(i)=>vkf(qtu({},"__esModule",{value:!0}),i),XN0={};_kf(XN0,{refreshToken:()=>Dkf});LN0.exports=nkf(XN0);var JN0=Xa(),dg=Ya();async function Dkf(i){let u=i?.project,t=i?.team;if(!u&&!t){let l=(0,dg.findProjectInfo)();u=l.projectId,t=l.teamId}else if(!u||!t){let l=(0,dg.findProjectInfo)();u=u??l.projectId,t=t??l.teamId}if(!u)throw new JN0.VercelOidcTokenError("Failed to refresh OIDC token: No project specified. Try re-linking your project with `vc link`");let f=(0,dg.loadToken)(u);if(!f||(0,dg.isExpired)((0,dg.getTokenPayload)(f.token),i?.expirationBufferMs)){let l=await(0,dg.getVercelToken)({expirationBufferMs:i?.expirationBufferMs});if(f=await(0,dg.getVercelOidcToken)(l,u,t),!f)throw new JN0.VercelOidcTokenError("Failed to refresh OIDC token");(0,dg.saveToken)(f,u)}process.env.VERCEL_OIDC_TOKEN=f.token;return}});var zN0=K((Pol,QN0)=>{var{defineProperty:rtu,getOwnPropertyDescriptor:gkf,getOwnPropertyNames:Okf}=Object,Nkf=Object.prototype.hasOwnProperty,ykf=(i,u)=>{for(var t in u)rtu(i,t,{get:u[t],enumerable:!0})},Zkf=(i,u,t,f)=>{if(u&&typeof u==="object"||typeof u==="function"){for(let l of Okf(u))if(!Nkf.call(i,l)&&l!==t)rtu(i,l,{get:()=>u[l],enumerable:!(f=gkf(u,l))||f.enumerable})}return i},Tkf=(i)=>Zkf(rtu({},"__esModule",{value:!0}),i),YN0={};ykf(YN0,{getVercelOidcToken:()=>Ukf,getVercelOidcTokenSync:()=>Vtu});QN0.exports=Tkf(YN0);var Bkf=Ltu(),Fkf=Xa();async function Ukf(i){let u="",t;try{u=Vtu()}catch(f){t=f}try{let[{getTokenPayload:f,isExpired:l},{refreshToken:c}]=await Promise.all([await Promise.resolve().then(() => G(Ya())),await Promise.resolve().then(() => G(WN0()))]);if(!u||l(f(u),i?.expirationBufferMs))await c(i),u=Vtu()}catch(f){let l=t instanceof Error?t.message:"";if(f instanceof Error)l=`${l}
86560
86560
  ${f.message}`;if(l)throw new Fkf.VercelOidcTokenError(l);throw f}return u}function Vtu(){let i=(0,Bkf.getContext)().headers?.["x-vercel-oidc-token"]??process.env.VERCEL_OIDC_TOKEN;if(!i)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 i}});var etu=K((Aol,CN0)=>{var{defineProperty:mtu,getOwnPropertyDescriptor:Pkf,getOwnPropertyNames:Akf}=Object,Ikf=Object.prototype.hasOwnProperty,xkf=(i,u)=>{for(var t in u)mtu(i,t,{get:u[t],enumerable:!0})},kkf=(i,u,t,f)=>{if(u&&typeof u==="object"||typeof u==="function"){for(let l of Akf(u))if(!Ikf.call(i,l)&&l!==t)mtu(i,l,{get:()=>u[l],enumerable:!(f=Pkf(u,l))||f.enumerable})}return i},Gkf=(i)=>kkf(mtu({},"__esModule",{value:!0}),i),bN0={};xkf(bN0,{AccessTokenMissingError:()=>RN0.AccessTokenMissingError,RefreshAccessTokenFailedError:()=>RN0.RefreshAccessTokenFailedError,getContext:()=>Skf.getContext,getVercelOidcToken:()=>HN0.getVercelOidcToken,getVercelOidcTokenSync:()=>HN0.getVercelOidcTokenSync,getVercelToken:()=>jkf.getVercelToken});CN0.exports=Gkf(bN0);var HN0=zN0(),Skf=Ltu(),RN0=Ctu(),jkf=Ya()});import{z as BD}from"zod/v4";import{z as uy0}from"zod/v4";import{z as otu}from"zod/v4";import{z as Y1}from"zod/v4";import{z as Ac}from"zod/v4";import{z as W1}from"zod/v4";import{z as C3i}from"zod/v4";import{z as Pl}from"zod/v4";import{z as ul}from"zod/v4";import{z as uf}from"zod/v4";import{z as Ql}from"zod/v4";import{z as _4}from"zod";import{z as E4}from"zod";async function yy0({response:i,statusCode:u,defaultMessage:t="Gateway request failed",cause:f,authMethod:l}){var c;let E=await n1({value:i,schema:mkf});if(!E.success){let _=typeof i==="object"&&i!==null&&"generationId"in i?i.generationId:void 0;return new rkf({message:`Invalid error response format: ${t}`,statusCode:u,response:i,validationError:E.error,cause:f,generationId:_})}let $=E.value,w=$.error.type,d=$.error.message,h=(c=$.generationId)!=null?c:void 0;switch(w){case"authentication_error":return M3i.createContextualError({apiKeyProvided:l==="api-key",oidcTokenProvided:l==="oidc",statusCode:u,cause:f,generationId:h});case"invalid_request_error":return new Lkf({message:d,statusCode:u,cause:f,generationId:h});case"rate_limit_exceeded":return new Ykf({message:d,statusCode:u,cause:f,generationId:h});case"model_not_found":{let _=await n1({value:$.error.param,schema:zkf});return new Hkf({message:d,statusCode:u,modelId:_.success?_.value.modelId:void 0,cause:f,generationId:h})}case"internal_server_error":return new wy0({message:d,statusCode:u,cause:f,generationId:h});case"failed_dependency":return new Ckf({message:d,statusCode:u,cause:f,generationId:h});case"forbidden":return new qkf({message:d,statusCode:u,cause:f,generationId:h});default:return new wy0({message:d,statusCode:u,cause:f,generationId:h})}}function ekf(i){if(i.data!==void 0)return i.data;if(i.responseBody!=null)try{return JSON.parse(i.responseBody)}catch(u){return i.responseBody}return{}}function Uy0(i){if(!(i instanceof Error))return!1;let u=i.code;if(typeof u==="string")return["UND_ERR_HEADERS_TIMEOUT","UND_ERR_BODY_TIMEOUT","UND_ERR_CONNECT_TIMEOUT"].includes(u);return!1}async function dw(i,u){var t;if(Q1.isInstance(i))return i;if(Uy0(i))return Fy0.createTimeoutError({originalMessage:i instanceof Error?i.message:"Unknown error",cause:i});if(nt.isInstance(i)){if(i.cause&&Uy0(i.cause))return Fy0.createTimeoutError({originalMessage:i.message,cause:i});return await yy0({response:ekf(i),statusCode:(t=i.statusCode)!=null?t:500,defaultMessage:"Gateway request failed",cause:i,authMethod:u})}return await yy0({response:{},statusCode:500,defaultMessage:i instanceof Error?`Gateway request failed: ${i.message}`:"Unknown Gateway error",cause:i,authMethod:u})}async function u5(i){let u=await n1({value:i[Ly0],schema:okf});return u.success?u.value:void 0}function Ay0(i){if(i.type==="file"&&i.data instanceof Uint8Array)return{...i,data:p$(i.data)};return i}function gGf(i){if(i.type==="file"&&i.data instanceof Uint8Array)return{...i,data:p$(i.data)};return i}async function KGf(){var i;return(i=Wy0.getContext().headers)==null?void 0:i["x-vercel-id"]}function stu(i={}){var u,t;let f=null,l=null,c=(u=i.metadataCacheRefreshMillis)!=null?u:300000,E=0,$=(t=Y7(i.baseURL))!=null?t:"https://ai-gateway.vercel.sh/v3/ai",w=async()=>{try{let Z=await LGf(i);return c4({Authorization:`Bearer ${Z.token}`,"ai-gateway-protocol-version":XGf,[Ly0]:Z.authMethod,...i.headers},`ai-sdk/gateway/${JGf}`)}catch(Z){throw M3i.createContextualError({apiKeyProvided:!1,oidcTokenProvided:!1,statusCode:401,cause:Z})}},d=()=>{let Z=Qv({settingValue:void 0,environmentVariableName:"VERCEL_DEPLOYMENT_ID"}),T=Qv({settingValue:void 0,environmentVariableName:"VERCEL_ENV"}),B=Qv({settingValue:void 0,environmentVariableName:"VERCEL_REGION"}),F=Qv({settingValue:void 0,environmentVariableName:"VERCEL_PROJECT_ID"});return async()=>{let A=await KGf();return{...Z&&{"ai-o11y-deployment-id":Z},...T&&{"ai-o11y-environment":T},...B&&{"ai-o11y-region":B},...A&&{"ai-o11y-request-id":A},...F&&{"ai-o11y-project-id":F}}}},h=(Z)=>{return new cGf(Z,{provider:"gateway",baseURL:$,headers:w,fetch:i.fetch,o11yHeaders:d()})},_=async()=>{var Z,T,B;let F=(B=(T=(Z=i._internal)==null?void 0:Z.currentDate)==null?void 0:T.call(Z).getTime())!=null?B:Date.now();if(!f||F-E>c)E=F,f=new Py0({baseURL:$,headers:w,fetch:i.fetch}).getAvailableModels().then((A)=>{return l=A,A}).catch(async(A)=>{throw await dw(A,await u5(await w()))});return l?Promise.resolve(l):f},v=async()=>{return new Py0({baseURL:$,headers:w,fetch:i.fetch}).getCredits().catch(async(Z)=>{throw await dw(Z,await u5(await w()))})},n=async(Z)=>{return new uGf({baseURL:$,headers:w,fetch:i.fetch}).getSpendReport(Z).catch(async(T)=>{throw await dw(T,await u5(await w()))})},D=async(Z)=>{return new fGf({baseURL:$,headers:w,fetch:i.fetch}).getGenerationInfo(Z).catch(async(T)=>{throw await dw(T,await u5(await w()))})},O=function(Z){if(new.target)throw Error("The Gateway Provider model function cannot be called with the new keyword.");return h(Z)};O.specificationVersion="v3",O.getAvailableModels=_,O.getCredits=v,O.getSpendReport=n,O.getGenerationInfo=D,O.imageModel=(Z)=>{return new dGf(Z,{provider:"gateway",baseURL:$,headers:w,fetch:i.fetch,o11yHeaders:d()})},O.languageModel=h;let N=(Z)=>{return new EGf(Z,{provider:"gateway",baseURL:$,headers:w,fetch:i.fetch,o11yHeaders:d()})};O.embeddingModel=N,O.textEmbeddingModel=N,O.videoModel=(Z)=>{return new DGf(Z,{provider:"gateway",baseURL:$,headers:w,fetch:i.fetch,o11yHeaders:d()})};let y=(Z)=>{return new TGf(Z,{provider:"gateway",baseURL:$,headers:w,fetch:i.fetch,o11yHeaders:d()})};return O.rerankingModel=y,O.reranking=y,O.chat=O.languageModel,O.embedding=O.embeddingModel,O.image=O.imageModel,O.video=O.videoModel,O.tools=jGf,O}async function LGf(i){let u=Qv({settingValue:i.apiKey,environmentVariableName:"AI_GATEWAY_API_KEY"});if(u)return{token:u,authMethod:"api-key"};return{token:await Yy0.getVercelOidcToken(),authMethod:"oidc"}}var Wy0,Yy0,Kkf="vercel.ai.gateway.error",atu,MN0,qN0,Q1,Iy0="GatewayAuthenticationError",Jkf,VN0,rN0,mN0,M3i,xy0="GatewayInvalidRequestError",Xkf,eN0,aN0,oN0,Lkf,ky0="GatewayRateLimitError",Wkf,sN0,pN0,iy0,Ykf,Gy0="GatewayModelNotFoundError",Qkf,ty0,zkf,fy0,ly0,Hkf,Sy0="GatewayInternalServerError",Rkf,cy0,Ey0,$y0,wy0,jy0="GatewayFailedDependencyError",bkf,dy0,hy0,_y0,Ckf,Ky0="GatewayForbiddenError",Mkf,vy0,ny0,Dy0,qkf,Jy0="GatewayResponseError",Vkf,gy0,Oy0,Ny0,rkf,mkf,Xy0="GatewayTimeoutError",akf,Zy0,Ty0,By0,Fy0,Ly0="ai-gateway-auth-method",okf,skf,Py0=class{constructor(i){this.config=i}async getAvailableModels(){try{let{value:i}=await cd({url:`${this.config.baseURL}/config`,headers:await R0(this.config.headers()),successfulResponseHandler:wt(pkf),failedResponseHandler:Wl({errorSchema:Y1.any(),errorToMessage:(u)=>u}),fetch:this.config.fetch});return i}catch(i){throw await dw(i)}}async getCredits(){try{let i=new URL(this.config.baseURL),{value:u}=await cd({url:`${i.origin}/v1/credits`,headers:await R0(this.config.headers()),successfulResponseHandler:wt(iGf),failedResponseHandler:Wl({errorSchema:Y1.any(),errorToMessage:(t)=>t}),fetch:this.config.fetch});return u}catch(i){throw await dw(i)}}},pkf,iGf,uGf=class{constructor(i){this.config=i}async getSpendReport(i){try{let u=new URL(this.config.baseURL),t=new URLSearchParams;if(t.set("start_date",i.startDate),t.set("end_date",i.endDate),i.groupBy)t.set("group_by",i.groupBy);if(i.datePart)t.set("date_part",i.datePart);if(i.userId)t.set("user_id",i.userId);if(i.model)t.set("model",i.model);if(i.provider)t.set("provider",i.provider);if(i.credentialType)t.set("credential_type",i.credentialType);if(i.tags&&i.tags.length>0)t.set("tags",i.tags.join(","));let{value:f}=await cd({url:`${u.origin}/v1/report?${t.toString()}`,headers:await R0(this.config.headers()),successfulResponseHandler:wt(tGf),failedResponseHandler:Wl({errorSchema:Ac.any(),errorToMessage:(l)=>l}),fetch:this.config.fetch});return f}catch(u){throw await dw(u)}}},tGf,fGf=class{constructor(i){this.config=i}async getGenerationInfo(i){try{let u=new URL(this.config.baseURL),{value:t}=await cd({url:`${u.origin}/v1/generation?id=${encodeURIComponent(i.id)}`,headers:await R0(this.config.headers()),successfulResponseHandler:wt(lGf),failedResponseHandler:Wl({errorSchema:W1.any(),errorToMessage:(f)=>f}),fetch:this.config.fetch});return t}catch(u){throw await dw(u)}}},lGf,cGf=class{constructor(i,u){this.modelId=i,this.config=u,this.specificationVersion="v3",this.supportedUrls={"*/*":[/.*/]}}get provider(){return this.config.provider}async getArgs(i){let{abortSignal:u,...t}=i;return{args:this.maybeEncodeFileParts(t),warnings:[]}}async doGenerate(i){let{args:u,warnings:t}=await this.getArgs(i),{abortSignal:f}=i,l=await R0(this.config.headers());try{let{responseHeaders:c,value:E,rawValue:$}=await Zt({url:this.getUrl(),headers:it(l,i.headers,this.getModelConfigHeaders(this.modelId,!1),await R0(this.config.o11yHeaders)),body:u,successfulResponseHandler:wt(C3i.any()),failedResponseHandler:Wl({errorSchema:C3i.any(),errorToMessage:(w)=>w}),...f&&{abortSignal:f},fetch:this.config.fetch});return{...E,request:{body:u},response:{headers:c,body:$},warnings:t}}catch(c){throw await dw(c,await u5(l))}}async doStream(i){let{args:u,warnings:t}=await this.getArgs(i),{abortSignal:f}=i,l=await R0(this.config.headers());try{let{value:c,responseHeaders:E}=await Zt({url:this.getUrl(),headers:it(l,i.headers,this.getModelConfigHeaders(this.modelId,!0),await R0(this.config.o11yHeaders)),body:u,successfulResponseHandler:DE(C3i.any()),failedResponseHandler:Wl({errorSchema:C3i.any(),errorToMessage:($)=>$}),...f&&{abortSignal:f},fetch:this.config.fetch});return{stream:c.pipeThrough(new TransformStream({start($){if(t.length>0)$.enqueue({type:"stream-start",warnings:t})},transform($,w){if($.success){let d=$.value;if(d.type==="raw"&&!i.includeRawChunks)return;if(d.type==="response-metadata"&&d.timestamp&&typeof d.timestamp==="string")d.timestamp=new Date(d.timestamp);w.enqueue(d)}else w.error($.error)}})),request:{body:u},response:{headers:E}}}catch(c){throw await dw(c,await u5(l))}}isFilePart(i){return i&&typeof i==="object"&&"type"in i&&i.type==="file"}maybeEncodeFileParts(i){for(let u of i.prompt)for(let t of u.content)if(this.isFilePart(t)){let f=t;if(f.data instanceof Uint8Array){let l=Uint8Array.from(f.data),c=Buffer.from(l).toString("base64");f.data=new URL(`data:${f.mediaType||"application/octet-stream"};base64,${c}`)}}return i}getUrl(){return`${this.config.baseURL}/language-model`}getModelConfigHeaders(i,u){return{"ai-language-model-specification-version":"3","ai-language-model-id":i,"ai-language-model-streaming":String(u)}}},EGf=class{constructor(i,u){this.modelId=i,this.config=u,this.specificationVersion="v3",this.maxEmbeddingsPerCall=2048,this.supportsParallelCalls=!0}get provider(){return this.config.provider}async doEmbed({values:i,headers:u,abortSignal:t,providerOptions:f}){var l,c;let E=await R0(this.config.headers());try{let{responseHeaders:$,value:w,rawValue:d}=await Zt({url:this.getUrl(),headers:it(E,u!=null?u:{},this.getModelConfigHeaders(),await R0(this.config.o11yHeaders)),body:{values:i,...f?{providerOptions:f}:{}},successfulResponseHandler:wt(wGf),failedResponseHandler:Wl({errorSchema:Pl.any(),errorToMessage:(h)=>h}),...t&&{abortSignal:t},fetch:this.config.fetch});return{embeddings:w.embeddings,usage:(l=w.usage)!=null?l:void 0,providerMetadata:w.providerMetadata,response:{headers:$,body:d},warnings:(c=w.warnings)!=null?c:[]}}catch($){throw await dw($,await u5(E))}}getUrl(){return`${this.config.baseURL}/embedding-model`}getModelConfigHeaders(){return{"ai-embedding-model-specification-version":"3","ai-model-id":this.modelId}}},$Gf,wGf,dGf=class{constructor(i,u){this.modelId=i,this.config=u,this.specificationVersion="v3",this.maxImagesPerCall=Number.MAX_SAFE_INTEGER}get provider(){return this.config.provider}async doGenerate({prompt:i,n:u,size:t,aspectRatio:f,seed:l,files:c,mask:E,providerOptions:$,headers:w,abortSignal:d}){var h,_,v,n;let D=await R0(this.config.headers());try{let{responseHeaders:O,value:N,rawValue:y}=await Zt({url:this.getUrl(),headers:it(D,w!=null?w:{},this.getModelConfigHeaders(),await R0(this.config.o11yHeaders)),body:{prompt:i,n:u,...t&&{size:t},...f&&{aspectRatio:f},...l&&{seed:l},...$&&{providerOptions:$},...c&&{files:c.map((Z)=>Ay0(Z))},...E&&{mask:Ay0(E)}},successfulResponseHandler:wt(nGf),failedResponseHandler:Wl({errorSchema:ul.any(),errorToMessage:(Z)=>Z}),...d&&{abortSignal:d},fetch:this.config.fetch});return{images:N.images,warnings:(h=N.warnings)!=null?h:[],providerMetadata:N.providerMetadata,response:{timestamp:new Date,modelId:this.modelId,headers:O},...N.usage!=null&&{usage:{inputTokens:(_=N.usage.inputTokens)!=null?_:void 0,outputTokens:(v=N.usage.outputTokens)!=null?v:void 0,totalTokens:(n=N.usage.totalTokens)!=null?n:void 0}}}}catch(O){throw await dw(O,await u5(D))}}getUrl(){return`${this.config.baseURL}/image-model`}getModelConfigHeaders(){return{"ai-image-model-specification-version":"3","ai-model-id":this.modelId}}},hGf,_Gf,vGf,nGf,DGf=class{constructor(i,u){this.modelId=i,this.config=u,this.specificationVersion="v3",this.maxVideosPerCall=Number.MAX_SAFE_INTEGER}get provider(){return this.config.provider}async doGenerate({prompt:i,n:u,aspectRatio:t,resolution:f,duration:l,fps:c,seed:E,image:$,providerOptions:w,headers:d,abortSignal:h}){var _;let v=await R0(this.config.headers());try{let{responseHeaders:n,value:D}=await Zt({url:this.getUrl(),headers:it(v,d!=null?d:{},this.getModelConfigHeaders(),await R0(this.config.o11yHeaders),{accept:"text/event-stream"}),body:{prompt:i,n:u,...t&&{aspectRatio:t},...f&&{resolution:f},...l&&{duration:l},...c&&{fps:c},...E&&{seed:E},...w&&{providerOptions:w},...$&&{image:gGf($)}},successfulResponseHandler:async({response:O,url:N,requestBodyValues:y})=>{if(O.body==null)throw new nt({message:"SSE response body is empty",url:N,requestBodyValues:y,statusCode:O.status});let T=ED({stream:O.body,schema:ZGf}).getReader(),{done:B,value:F}=await T.read();if(T.releaseLock(),B||!F)throw new nt({message:"SSE stream ended without a data event",url:N,requestBodyValues:y,statusCode:O.status});if(!F.success)throw new nt({message:"Failed to parse video SSE event",cause:F.error,url:N,requestBodyValues:y,statusCode:O.status});let A=F.value;if(A.type==="error")throw new nt({message:A.message,statusCode:A.statusCode,url:N,requestBodyValues:y,responseHeaders:Object.fromEntries([...O.headers]),responseBody:JSON.stringify(A),data:{error:{message:A.message,type:A.errorType,param:A.param}}});return{value:{videos:A.videos,warnings:A.warnings,providerMetadata:A.providerMetadata},responseHeaders:Object.fromEntries([...O.headers])}},failedResponseHandler:Wl({errorSchema:uf.any(),errorToMessage:(O)=>O}),...h&&{abortSignal:h},fetch:this.config.fetch});return{videos:D.videos,warnings:(_=D.warnings)!=null?_:[],providerMetadata:D.providerMetadata,response:{timestamp:new Date,modelId:this.modelId,headers:n}}}catch(n){throw await dw(n,await u5(v))}}getUrl(){return`${this.config.baseURL}/video-model`}getModelConfigHeaders(){return{"ai-video-model-specification-version":"3","ai-model-id":this.modelId}}},OGf,NGf,yGf,ZGf,TGf=class{constructor(i,u){this.modelId=i,this.config=u,this.specificationVersion="v3"}get provider(){return this.config.provider}async doRerank({documents:i,query:u,topN:t,headers:f,abortSignal:l,providerOptions:c}){var E;let $=await R0(this.config.headers());try{let{responseHeaders:w,value:d,rawValue:h}=await Zt({url:this.getUrl(),headers:it($,f!=null?f:{},this.getModelConfigHeaders(),await R0(this.config.o11yHeaders)),body:{documents:i,query:u,...t!=null?{topN:t}:{},...c?{providerOptions:c}:{}},successfulResponseHandler:wt(FGf),failedResponseHandler:Wl({errorSchema:Ql.any(),errorToMessage:(_)=>_}),...l&&{abortSignal:l},fetch:this.config.fetch});return{ranking:d.ranking,providerMetadata:d.providerMetadata,response:{headers:w,body:h},warnings:(E=d.warnings)!=null?E:[]}}catch(w){throw await dw(w,await u5($))}}getUrl(){return`${this.config.baseURL}/reranking-model`}getModelConfigHeaders(){return{"ai-reranking-model-specification-version":"3","ai-model-id":this.modelId}}},BGf,FGf,UGf,PGf,AGf,IGf=(i={})=>AGf(i),xGf,kGf,GGf,SGf=(i={})=>GGf(i),jGf,JGf="3.0.133",XGf="0.0.1",q3i;var za=g(()=>{tu();eu();tu();tu();tu();tu();tu();tu();tu();tu();tu();eu();tu();tu();tu();tu();Wy0=G(etu(),1),Yy0=G(etu(),1),atu=Symbol.for(Kkf),Q1=class i extends(qN0=Error,MN0=atu,qN0){constructor({message:u,statusCode:t=500,cause:f,generationId:l,isRetryable:c=t!=null&&(t===408||t===409||t===429||t>=500)}){super(l?`${u} [${l}]`:u);this[MN0]=!0,this.statusCode=t,this.cause=f,this.generationId=l,this.isRetryable=c}static isInstance(u){return i.hasMarker(u)}static hasMarker(u){return typeof u==="object"&&u!==null&&atu in u&&u[atu]===!0}},Jkf=`vercel.ai.gateway.error.${Iy0}`,VN0=Symbol.for(Jkf),M3i=class i extends(mN0=Q1,rN0=VN0,mN0){constructor({message:u="Authentication failed",statusCode:t=401,cause:f,generationId:l}={}){super({message:u,statusCode:t,cause:f,generationId:l});this[rN0]=!0,this.name=Iy0,this.type="authentication_error"}static isInstance(u){return Q1.hasMarker(u)&&VN0 in u}static createContextualError({apiKeyProvided:u,oidcTokenProvided:t,message:f="Authentication failed",statusCode:l=401,cause:c,generationId:E}){let $;if(u)$=`AI Gateway authentication failed: Invalid API key.
86561
86561
 
86562
86562
  Create a new API key: https://vercel.com/d?to=%2F%5Bteam%5D%2F%7E%2Fai%2Fapi-keys