decocms 2.178.1 → 2.178.2

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 (239) hide show
  1. package/dist/client/assets/{AlertCircle-CI8iQIN4.js → AlertCircle-12chRuly.js} +1 -1
  2. package/dist/client/assets/{AlignLeft-D1a9nQq5.js → AlignLeft-_LT9deOt.js} +1 -1
  3. package/dist/client/assets/{ArrowDown-bcBjuFxH.js → ArrowDown-7rbX3zqZ.js} +1 -1
  4. package/dist/client/assets/{ArrowLeft-BaV7db3X.js → ArrowLeft-erI8s3G2.js} +1 -1
  5. package/dist/client/assets/{ArrowUp-BtIkmj4Y.js → ArrowUp-DoIG5eQh.js} +1 -1
  6. package/dist/client/assets/{Building02-R_mkgdQ4.js → Building02-Dr7IyBdv.js} +1 -1
  7. package/dist/client/assets/{Check-GOz4_bBS.js → Check-DW8AVFkq.js} +1 -1
  8. package/dist/client/assets/{CheckCircle-DosFvCW2.js → CheckCircle-hBpanOsI.js} +1 -1
  9. package/dist/client/assets/{CheckSquare-Be1kXxvn.js → CheckSquare-Cr3IzSXp.js} +1 -1
  10. package/dist/client/assets/{CheckVerified02-CZakFFpv.js → CheckVerified02-r17ymUCs.js} +1 -1
  11. package/dist/client/assets/{ChevronDown-DElgod-p.js → ChevronDown-BIRGQoZ5.js} +1 -1
  12. package/dist/client/assets/{ChevronLeft-Bk7mc5_w.js → ChevronLeft-D-e7F7Gj.js} +1 -1
  13. package/dist/client/assets/{ChevronRight-Ys0vr-YD.js → ChevronRight-DsjLlugM.js} +1 -1
  14. package/dist/client/assets/{ChevronUp-CKkWbsZ5.js → ChevronUp-Bi3NMXzv.js} +1 -1
  15. package/dist/client/assets/{Clock-DRICOB0c.js → Clock-D4xJnA3P.js} +1 -1
  16. package/dist/client/assets/{Code01-CDxb4LVl.js → Code01-YGq5QwlZ.js} +1 -1
  17. package/dist/client/assets/{Container-C8ScaknS.js → Container-DHyMOW_p.js} +1 -1
  18. package/dist/client/assets/{Copy01-DhAVspEC.js → Copy01-DkcjIGiS.js} +1 -1
  19. package/dist/client/assets/{Dataflow03-ONoSH2VT.js → Dataflow03-CD3eo8oO.js} +1 -1
  20. package/dist/client/assets/{DotsHorizontal-BaiN7u8r.js → DotsHorizontal-CjYGc80C.js} +1 -1
  21. package/dist/client/assets/{DotsVertical-rvqtR29a.js → DotsVertical-2nyye7GD.js} +1 -1
  22. package/dist/client/assets/{Download01-CVEqgoRT.js → Download01-BvtNZalG.js} +1 -1
  23. package/dist/client/assets/{Edit01-BaPedGGl.js → Edit01-CoeKfJ-u.js} +1 -1
  24. package/dist/client/assets/{Edit05-DSl3Jqkp.js → Edit05-CbbEzOoe.js} +1 -1
  25. package/dist/client/assets/{Eye-BgAytXDm.js → Eye-hBqNQHpc.js} +1 -1
  26. package/dist/client/assets/{EyeOff-CucokIoZ.js → EyeOff-CJoTkAtN.js} +1 -1
  27. package/dist/client/assets/{File02-gbFS8GtC.js → File02-D19u2hUl.js} +1 -1
  28. package/dist/client/assets/{File06-Dpi3gJhU.js → File06-Bp4ioOvR.js} +1 -1
  29. package/dist/client/assets/{FilterLines-BeHTcRH-.js → FilterLines-Dvk7BhWf.js} +1 -1
  30. package/dist/client/assets/{Globe01-Ceb6Pyzg.js → Globe01-B8Ib7knn.js} +1 -1
  31. package/dist/client/assets/{Globe02-4oAOo4_d.js → Globe02-wRhoc1N5.js} +1 -1
  32. package/dist/client/assets/{Grid01-NwJJaoW7.js → Grid01-C5e9ReQ4.js} +1 -1
  33. package/dist/client/assets/{Home02-DQJpzzIE.js → Home02-JZJR9jmQ.js} +1 -1
  34. package/dist/client/assets/{Image01-BwGUDEUi.js → Image01-DjoSkYp_.js} +1 -1
  35. package/dist/client/assets/{Inbox01-CDOpLWwZ.js → Inbox01-ClVaT7W5.js} +1 -1
  36. package/dist/client/assets/{InfoCircle-CfTVXLYm.js → InfoCircle-DzyfpQes.js} +1 -1
  37. package/dist/client/assets/{Key01-BZkaWvm5.js → Key01-qNySmY39.js} +1 -1
  38. package/dist/client/assets/{LayersTwo01-D9dHuPjU.js → LayersTwo01-dfSlQT0y.js} +1 -1
  39. package/dist/client/assets/{LayoutLeft-BHhw95T0.js → LayoutLeft-B2KZfn2n.js} +1 -1
  40. package/dist/client/assets/{Link01-CU6UcWFS.js → Link01-Cz_ZRKoB.js} +1 -1
  41. package/dist/client/assets/{LinkExternal01-DOdBEG1U.js → LinkExternal01-CKvCiQnV.js} +1 -1
  42. package/dist/client/assets/{List-DD3BKPLz.js → List-NLa0AhO4.js} +1 -1
  43. package/dist/client/assets/{Loading01-B85tVuIU.js → Loading01-Bb8FCosd.js} +1 -1
  44. package/dist/client/assets/{Lock01-WwvDQaaT.js → Lock01-CnZITIks.js} +1 -1
  45. package/dist/client/assets/{Play-DTPauCd1.js → Play-Bw5lQw7j.js} +1 -1
  46. package/dist/client/assets/{Plus-C9dY5EOr.js → Plus-CajZ9VfC.js} +1 -1
  47. package/dist/client/assets/{RefreshCcw01-DJsZi8Hz.js → RefreshCcw01-B_NTitRE.js} +1 -1
  48. package/dist/client/assets/{Save01-COu7GfwR.js → Save01-8oEsqMkJ.js} +1 -1
  49. package/dist/client/assets/{SearchMd-CKp0BoPW.js → SearchMd-eZWeU0sP.js} +1 -1
  50. package/dist/client/assets/{Settings01-DunsMQ-m.js → Settings01-ClPVpLPy.js} +1 -1
  51. package/dist/client/assets/{Shield01-CCMtDdxH.js → Shield01-N4ace-oo.js} +1 -1
  52. package/dist/client/assets/{Terminal-COsHV7Wy.js → Terminal-CGwuP-_5.js} +1 -1
  53. package/dist/client/assets/{Tool01-Delk_MGO.js → Tool01-D1m8i7Ez.js} +1 -1
  54. package/dist/client/assets/{Trash01-BtiNjuw3.js → Trash01-B_4PTwjI.js} +1 -1
  55. package/dist/client/assets/{Upload01-DqqcM3M6.js → Upload01-CLIOr3Tj.js} +1 -1
  56. package/dist/client/assets/{Users03-CQa5jfkV.js → Users03-Bv-hUQkl.js} +1 -1
  57. package/dist/client/assets/{X-CaaFSPD_.js → X-LzehymHS.js} +1 -1
  58. package/dist/client/assets/{XClose-Dey3r3af.js → XClose-CcNXqPQc.js} +1 -1
  59. package/dist/client/assets/{Zap-DX02pf-a.js → Zap-BFN1DqIC.js} +1 -1
  60. package/dist/client/assets/{agent-connections-preview-BCTZ6BnP.js → agent-connections-preview-3pYXfstj.js} +1 -1
  61. package/dist/client/assets/{agent-detail-BBSZrHWb.js → agent-detail-DMK-u3yi.js} +1 -1
  62. package/dist/client/assets/{agents-DVOxH2hb.js → agents-Wfe5dNfh.js} +1 -1
  63. package/dist/client/assets/{ai-providers-logos-BWU0RfRJ.js → ai-providers-logos-CCp39UCk.js} +1 -1
  64. package/dist/client/assets/{alert-dialog-BGZzdkI2.js → alert-dialog-B_ae3oRt.js} +1 -1
  65. package/dist/client/assets/{auth-catchall-1PjzZ5eD.js → auth-catchall-DAx9m28t.js} +1 -1
  66. package/dist/client/assets/{automation-detail-dSH73muX.js → automation-detail-DfFkGT_5.js} +1 -1
  67. package/dist/client/assets/{automations-CEr8CMbK.js → automations-A8NOzTSS.js} +1 -1
  68. package/dist/client/assets/{avatar-DWAYNsNK.js → avatar-B2yArl-q.js} +1 -1
  69. package/dist/client/assets/{badge-B_BTuJZe.js → badge-DtRom7JO.js} +1 -1
  70. package/dist/client/assets/{binder-l1kCmNCE.js → binder-D4cqx_Kx.js} +1 -1
  71. package/dist/client/assets/{breadcrumb-ijphtzQp.js → breadcrumb-C2RG4nAQ.js} +1 -1
  72. package/dist/client/assets/{card-CwEWrOs9.js → card-B8qDZGCZ.js} +1 -1
  73. package/dist/client/assets/{checkbox-B_91sMwd.js → checkbox-B1rexahu.js} +1 -1
  74. package/dist/client/assets/{collapsible-DILfwVxb.js → collapsible-BtjeaBAE.js} +1 -1
  75. package/dist/client/assets/{collection-detail-lkCxiUzr.js → collection-detail-BaBGI9i2.js} +1 -1
  76. package/dist/client/assets/{collection-display-button-kCOiEzLn.js → collection-display-button-CpVZ4wHm.js} +1 -1
  77. package/dist/client/assets/{collection-search-Bdxpglbf.js → collection-search-BYV7N3mr.js} +1 -1
  78. package/dist/client/assets/{collection-table-wrapper-D-vPJPam.js → collection-table-wrapper-CHFJQd21.js} +1 -1
  79. package/dist/client/assets/{collection-tabs-IdlFD1jR.js → collection-tabs-CJEa3dRy.js} +1 -1
  80. package/dist/client/assets/{command-BgTh2_vK.js → command-Drksh_DO.js} +1 -1
  81. package/dist/client/assets/{connection-card-BWZAp_hO.js → connection-card-Bak2l1_M.js} +1 -1
  82. package/dist/client/assets/{connection-detail-DPSHmWyz.js → connection-detail-BKy2ZsS6.js} +1 -1
  83. package/dist/client/assets/{connections-BvYzdmU4.js → connections-Dxf4eIOE.js} +1 -1
  84. package/dist/client/assets/{constants-BCt7c81T.js → constants-D7qXOYRn.js} +1 -1
  85. package/dist/client/assets/{context-BTMVzdan.js → context-DxQMlFKC.js} +1 -1
  86. package/dist/client/assets/{create-organization-dialog-Du7uAMNm.js → create-organization-dialog-CNWB-72r.js} +1 -1
  87. package/dist/client/assets/{create-project-dialog-Bb7dubB7.js → create-project-dialog-BeIY4Oy9.js} +1 -1
  88. package/dist/client/assets/{danger-CfnLHwII.js → danger-YWbxrjNq.js} +1 -1
  89. package/dist/client/assets/{danger-zone-DjN4GhuT.js → danger-zone-DGg0ZzSy.js} +1 -1
  90. package/dist/client/assets/{dependencies-CwSG23CA.js → dependencies-DtAVTWu-.js} +1 -1
  91. package/dist/client/assets/{dialog-BDa2Gsq9.js → dialog-ChXYvlDt.js} +1 -1
  92. package/dist/client/assets/{dropdown-menu-DEQ5DCnG.js → dropdown-menu-BxlQMXgW.js} +1 -1
  93. package/dist/client/assets/{dynamic-plugin-layout-DP6UGwOE.js → dynamic-plugin-layout-JpZTv0Ay.js} +1 -1
  94. package/dist/client/assets/{editable-task-title-CaE6DIBf.js → editable-task-title-Cm-uIwFs.js} +1 -1
  95. package/dist/client/assets/{empty-state-DmgqwjeV.js → empty-state-qLM_bVsv.js} +1 -1
  96. package/dist/client/assets/{empty-state-C4c2sKjV.js → empty-state-xIvMMy-_.js} +1 -1
  97. package/dist/client/assets/{env-vars-editor-Ah5xyGmz.js → env-vars-editor-Yss1wn0m.js} +1 -1
  98. package/dist/client/assets/{extract-connection-data-BxJWN5u-.js → extract-connection-data-48N591A_.js} +1 -1
  99. package/dist/client/assets/{file-browser-BRFmGA__.js → file-browser-BbqpPFZK.js} +2 -2
  100. package/dist/client/assets/{form-BWoxqZfk.js → form-CaFPTMVC.js} +1 -1
  101. package/dist/client/assets/{general-BKqD1lIr.js → general-DI9irVIQ.js} +1 -1
  102. package/dist/client/assets/{generate-id-BaIFvm62.js → generate-id-BiV6m8fS.js} +1 -1
  103. package/dist/client/assets/{grid-view-DGZvuOwZ.js → grid-view-DurgUMuo.js} +1 -1
  104. package/dist/client/assets/{home-B7jB9Gxp.js → home-CspK560n.js} +1 -1
  105. package/dist/client/assets/{index-BgoahoDu.js → index-ChUIqRBi.js} +1 -1
  106. package/dist/client/assets/{index--PLXALUm.js → index-CqWJIMlG.js} +1 -1
  107. package/dist/client/assets/{index-WTO-ZRzC.js → index-CqtWW-Tq.js} +1 -1
  108. package/dist/client/assets/{index-10S4l3se.js → index-CqyqI90F.js} +1 -1
  109. package/dist/client/assets/{index-DZ6p-ZXx.js → index-De1iYnQy.js} +1 -1
  110. package/dist/client/assets/{index-DcxE8oe_.js → index-NjMxPJgF.js} +3 -3
  111. package/dist/client/assets/{index-DGLQ2uQ5.js → index-TV8hw8s3.js} +1 -1
  112. package/dist/client/assets/{index-Bc448aeG.js → index-YL7q5tyF.js} +1 -1
  113. package/dist/client/assets/{index-CTjqFNkw.js → index-YRudAQp7.js} +1 -1
  114. package/dist/client/assets/{index-B5vgf28x.js → index-yiVP4brl.js} +1 -1
  115. package/dist/client/assets/{index-CM7_8eMu.js → index-zWpUeKAz.js} +1 -1
  116. package/dist/client/assets/{infiniteQueryObserver-CzIVu_kK.js → infiniteQueryObserver-JZ0YxCW-.js} +1 -1
  117. package/dist/client/assets/{input-DPpAbHbD.js → input-B89sozd8.js} +1 -1
  118. package/dist/client/assets/{integration-icon-6jcHFHZV.js → integration-icon-BPVDVJvP.js} +1 -1
  119. package/dist/client/assets/{label-BtaiiWJ8.js → label-DkiEYJcU.js} +1 -1
  120. package/dist/client/assets/{layout-Cjef80qc.js → layout-Cqn-h1Jz.js} +1 -1
  121. package/dist/client/assets/{layout-DG9LlvE6.js → layout-DcmGLVHZ.js} +1 -1
  122. package/dist/client/assets/{login-D1Xb70mS.js → login-qT_ItpIx.js} +1 -1
  123. package/dist/client/assets/{logo-upload-79T6Ecg3.js → logo-upload-CoGaedUC.js} +1 -1
  124. package/dist/client/assets/{mcp-app-renderer-DgOOTmoQ.js → mcp-app-renderer-By1mQEU9.js} +1 -1
  125. package/dist/client/assets/{mcp-server-card-CqBs71hZ.js → mcp-server-card-B3Nrrgyk.js} +1 -1
  126. package/dist/client/assets/{mcp-server-detail-D_BCRi3w.js → mcp-server-detail-DMfy0V9h.js} +2 -2
  127. package/dist/client/assets/{members-BkdG_-Nh.js → members-Q81LXZu1.js} +1 -1
  128. package/dist/client/assets/{monaco-editor-D5smiy7k.js → monaco-editor-ZB27PMAe.js} +1 -1
  129. package/dist/client/assets/{monitoring-kw0ipyvO.js → monitoring-C31A03PZ.js} +1 -1
  130. package/dist/client/assets/{monitoring-dashboard-edit-S2Ut1cvD.js → monitoring-dashboard-edit-Dfi8Jxeb.js} +1 -1
  131. package/dist/client/assets/{monitoring-dashboard-view-gNG_IQ8M.js → monitoring-dashboard-view-CxjxBHLW.js} +1 -1
  132. package/dist/client/assets/{monitoring-stats-row-D3PlzPcP.js → monitoring-stats-row-CAn-8pVZ.js} +1 -1
  133. package/dist/client/assets/{oauth-callback-9ngEzskH.js → oauth-callback-B8DRnSok.js} +1 -1
  134. package/dist/client/assets/{oauth-callback-ai-provider-CpdQKMVl.js → oauth-callback-ai-provider-CsTCxPAY.js} +1 -1
  135. package/dist/client/assets/{org-ai-providers-CrQ3OeB5.js → org-ai-providers-DaYyItUL.js} +1 -1
  136. package/dist/client/assets/{page-C2HdbsvN.js → page-BjLk0DX_.js} +1 -1
  137. package/dist/client/assets/{page-DmVGFJaY.js → page-C2I5Nlmu.js} +1 -1
  138. package/dist/client/assets/{plugin-empty-state-DXhpvNlI.js → plugin-empty-state-K02oXRNN.js} +1 -1
  139. package/dist/client/assets/{plugin-empty-state-CWxRJkeE.js → plugin-empty-state-l30u7dec.js} +1 -1
  140. package/dist/client/assets/{plugin-header-C3JJ8Nq_.js → plugin-header-B_wkRb4Y.js} +1 -1
  141. package/dist/client/assets/{plugin-header-TcX-3hN2.js → plugin-header-CE-BhILm.js} +1 -1
  142. package/dist/client/assets/plugins-6p4XZdw1.js +1 -0
  143. package/dist/client/assets/{popover-CNIkv0WT.js → popover-Br8QkMK3.js} +1 -1
  144. package/dist/client/assets/{project-app-view-BVSK5NCb.js → project-app-view-CRe7LVZk.js} +1 -1
  145. package/dist/client/assets/{project-layout-Bd1vlG83.js → project-layout-Bg1hlIaM.js} +1 -1
  146. package/dist/client/assets/{project-plugins-az_ZXSwN.js → project-plugins-BHOZZsH7.js} +1 -1
  147. package/dist/client/assets/{projects-list-D8eiYeUr.js → projects-list-i4ZvUqtI.js} +1 -1
  148. package/dist/client/assets/{registry-layout-BXceDqEw.js → registry-layout-DQV7LhSo.js} +1 -1
  149. package/dist/client/assets/{registry-utils-CkCRcmq4.js → registry-utils-cjX9P5J9.js} +1 -1
  150. package/dist/client/assets/{reset-password-xlfm2d95.js → reset-password-Cgcrl5ZG.js} +1 -1
  151. package/dist/client/assets/{resizable-B7fIdnoq.js → resizable-Nu1SqaJD.js} +1 -1
  152. package/dist/client/assets/{save-actions-DIKaTzi7.js → save-actions-CVl6VtT2.js} +1 -1
  153. package/dist/client/assets/{scroll-area-B-pB6oMr.js → scroll-area-BTJQ86Ry.js} +1 -1
  154. package/dist/client/assets/{select-DeNgR918.js → select-Dx3T3-4n.js} +1 -1
  155. package/dist/client/assets/{select-virtual-mcp-CFDIRCp8.js → select-virtual-mcp-BS537pmy.js} +1 -1
  156. package/dist/client/assets/{sheet-BBLyN2xl.js → sheet-C3HM0Uwr.js} +1 -1
  157. package/dist/client/assets/{shell-layout-CiKn6BP6.js → shell-layout-Bco0BFOl.js} +2 -2
  158. package/dist/client/assets/{sidebar-settings-DOwlHFdj.js → sidebar-settings-JhN4X_jg.js} +1 -1
  159. package/dist/client/assets/{skeleton-CNgs5GJt.js → skeleton-Cjm8s7CT.js} +1 -1
  160. package/dist/client/assets/{spinner-BZdAS5i2.js → spinner-Dzx7B3Jl.js} +1 -1
  161. package/dist/client/assets/{store-invite-BXcKXIzr.js → store-invite-BPcFU0aw.js} +1 -1
  162. package/dist/client/assets/{switch-CmREXk8C.js → switch-CA_oYDia.js} +1 -1
  163. package/dist/client/assets/{table-C4WVepD4.js → table-C-1rP_rt.js} +1 -1
  164. package/dist/client/assets/{tabs-BeYHPY-1.js → tabs-BSOe8gLq.js} +1 -1
  165. package/dist/client/assets/{task-status-DauQRqAW.js → task-status-DYx9R7EL.js} +1 -1
  166. package/dist/client/assets/tasks-D1X8oLa3.js +1 -0
  167. package/dist/client/assets/{tasks-panel-DqbQRMGq.js → tasks-panel-BJ3TfA-_.js} +1 -1
  168. package/dist/client/assets/{textarea-C7YqhWTc.js → textarea-DIJzFUWn.js} +1 -1
  169. package/dist/client/assets/{time-range-picker-CM-9xODE.js → time-range-picker-CGBh-D6p.js} +1 -1
  170. package/dist/client/assets/{toggle-group-B7g3fYap.js → toggle-group-DlZGDyPQ.js} +1 -1
  171. package/dist/client/assets/{tools-list-4D_tBiUe.js → tools-list-D-T64862.js} +1 -1
  172. package/dist/client/assets/{tooltip-CXZH0tSC.js → tooltip-BJMSu0c2.js} +1 -1
  173. package/dist/client/assets/{topbar-portal-CjA9qO3_.js → topbar-portal-ChPXVsi1.js} +1 -1
  174. package/dist/client/assets/{types-CPj3Y6i2.js → types-BHeMLyAV.js} +1 -1
  175. package/dist/client/assets/{use-automations-B0CZymwk.js → use-automations-Bmw3x7Dk.js} +1 -1
  176. package/dist/client/assets/{use-collections-CObsJD7p.js → use-collections-C0cYiFfV.js} +1 -1
  177. package/dist/client/assets/{use-connection-Cv_-e2MS.js → use-connection-CHFdKnsr.js} +1 -1
  178. package/dist/client/assets/{use-copy-sxHnzQ3E.js → use-copy-xhdji_Bl.js} +1 -1
  179. package/dist/client/assets/{use-create-virtual-mcp-dSjfTRl8.js → use-create-virtual-mcp-B7odZ_c3.js} +1 -1
  180. package/dist/client/assets/{use-infinite-scroll-CqxPDCSp.js → use-infinite-scroll-CPhZNIw7.js} +1 -1
  181. package/dist/client/assets/{use-install-from-registry-wW1d1HtB.js → use-install-from-registry-BzwuBLOx.js} +1 -1
  182. package/dist/client/assets/{use-list-state-CWVUvMhj.js → use-list-state-CbsN6RbJ.js} +1 -1
  183. package/dist/client/assets/{use-mcp-prompts-C4X4lEEg.js → use-mcp-prompts-Bel4H4rh.js} +1 -1
  184. package/dist/client/assets/{use-mcp-resources-DoUnZI9j.js → use-mcp-resources-qGdymfRz.js} +1 -1
  185. package/dist/client/assets/{use-mcp-tools-Cnh4vEBm.js → use-mcp-tools-BCZI_Wqc.js} +1 -1
  186. package/dist/client/assets/{use-members-BHa-Fb-h.js → use-members-B4ncWtMV.js} +1 -1
  187. package/dist/client/assets/{use-mobile-v2XXLV0O.js → use-mobile-DOUfTohp.js} +1 -1
  188. package/dist/client/assets/{use-project-B-9YXhNP.js → use-project-b5C3lq5-.js} +1 -1
  189. package/dist/client/assets/{use-store-discovery-z8nwAYJJ.js → use-store-discovery-B402mTHd.js} +1 -1
  190. package/dist/client/assets/{use-view-mode-XMRPR1ke.js → use-view-mode-ss3eRodO.js} +1 -1
  191. package/dist/client/assets/{use-virtual-mcp-DfPJ-WDb.js → use-virtual-mcp-BP6aaUzw.js} +1 -1
  192. package/dist/client/assets/useInfiniteQuery-BXDrDvlH.js +1 -0
  193. package/dist/client/assets/{useMutation-CV3IN68C.js → useMutation-68NxhXCf.js} +1 -1
  194. package/dist/client/assets/useQuery-BYBCFxgb.js +1 -0
  195. package/dist/client/assets/useSuspenseInfiniteQuery-X3jXt04i.js +1 -0
  196. package/dist/client/assets/{user-_Hc5WOWn.js → user-iDZRuimU.js} +1 -1
  197. package/dist/client/assets/{workflow-DKAllKJO.js → workflow-CrrTPehP.js} +1 -1
  198. package/dist/client/index.html +1 -1
  199. package/dist/server/cli.js +2 -2
  200. package/dist/server/migrate.js +1 -1
  201. package/dist/server/node_modules/pg-connection-string/LICENSE +21 -0
  202. package/dist/server/node_modules/pg-connection-string/README.md +105 -0
  203. package/dist/server/node_modules/pg-connection-string/esm/index.mjs +8 -0
  204. package/dist/server/node_modules/pg-connection-string/index.d.ts +36 -0
  205. package/dist/server/node_modules/pg-connection-string/index.js +231 -0
  206. package/dist/server/node_modules/pg-connection-string/package.json +52 -0
  207. package/dist/server/node_modules/{pg → pg-pool}/LICENSE +1 -1
  208. package/dist/server/node_modules/pg-pool/README.md +357 -0
  209. package/dist/server/node_modules/pg-pool/esm/index.mjs +5 -0
  210. package/dist/server/node_modules/pg-pool/index.js +517 -0
  211. package/dist/server/node_modules/pg-pool/package.json +51 -0
  212. package/dist/server/server.js +2 -2
  213. package/package.json +1 -1
  214. package/dist/client/assets/plugins-BfcAD8Xs.js +0 -1
  215. package/dist/client/assets/tasks-fQ7kFf17.js +0 -1
  216. package/dist/client/assets/useInfiniteQuery-BIejUr4H.js +0 -1
  217. package/dist/client/assets/useQuery-CEE9SUlS.js +0 -1
  218. package/dist/client/assets/useSuspenseInfiniteQuery-B7NkSjI9.js +0 -1
  219. package/dist/server/node_modules/pg/README.md +0 -95
  220. package/dist/server/node_modules/pg/esm/index.mjs +0 -20
  221. package/dist/server/node_modules/pg/lib/client.js +0 -743
  222. package/dist/server/node_modules/pg/lib/connection-parameters.js +0 -171
  223. package/dist/server/node_modules/pg/lib/connection.js +0 -221
  224. package/dist/server/node_modules/pg/lib/crypto/cert-signatures.js +0 -122
  225. package/dist/server/node_modules/pg/lib/crypto/sasl.js +0 -212
  226. package/dist/server/node_modules/pg/lib/crypto/utils-legacy.js +0 -43
  227. package/dist/server/node_modules/pg/lib/crypto/utils-webcrypto.js +0 -89
  228. package/dist/server/node_modules/pg/lib/crypto/utils.js +0 -9
  229. package/dist/server/node_modules/pg/lib/defaults.js +0 -91
  230. package/dist/server/node_modules/pg/lib/index.js +0 -73
  231. package/dist/server/node_modules/pg/lib/native/client.js +0 -323
  232. package/dist/server/node_modules/pg/lib/native/index.js +0 -2
  233. package/dist/server/node_modules/pg/lib/native/query.js +0 -165
  234. package/dist/server/node_modules/pg/lib/query.js +0 -252
  235. package/dist/server/node_modules/pg/lib/result.js +0 -109
  236. package/dist/server/node_modules/pg/lib/stream.js +0 -83
  237. package/dist/server/node_modules/pg/lib/type-overrides.js +0 -35
  238. package/dist/server/node_modules/pg/lib/utils.js +0 -217
  239. package/dist/server/node_modules/pg/package.json +0 -76
@@ -1579,7 +1579,7 @@ ${Q}
1579
1579
  `;break}case"tool":throw new hz({functionality:"tool messages"});default:break}return W+=`${G}:
1580
1580
  `,{prompt:W}}function gr4(Y){if(Y.type==="url")return{type:"image_url",image_url:{url:Y.url}};return{type:"image_url",image_url:{url:JX6({data:Y.data,mediaType:Y.mediaType,defaultMediaType:xr4})}}}function ur4(Y){return Object.fromEntries(Object.entries(Y).filter(([,X])=>X!=null))}function mr4(Y){if(!Y)return{};if(Y instanceof Headers)return Object.fromEntries(Y.entries());if(Array.isArray(Y))return Object.fromEntries(Y);return Y}function lr4(Y,X){let J=X.toLowerCase();return Object.keys(Y).find((G)=>G.toLowerCase()===J)}function dr4(Y,...X){let J=mr4(Y),G=ur4(J),W=lr4(G,"user-agent"),K=W?G[W]:void 0,Z=(K==null?void 0:K.trim())?K:X.filter(Boolean).join(" "),Q=Object.fromEntries(Object.entries(G).filter(([H])=>H.toLowerCase()!=="user-agent"));return K9(t0({},Q),{"user-agent":Z})}function OS1(Y={}){var X,J,G;let W=(J=Vr4((X=Y.baseURL)!=null?X:Y.baseUrl))!=null?J:"https://openrouter.ai/api/v1",K=(G=Y.compatibility)!=null?G:"compatible",Z=()=>dr4(t0(t0({Authorization:`Bearer ${Ha4({apiKey:Y.apiKey,environmentVariableName:"OPENROUTER_API_KEY",description:"OpenRouter"})}`},Y.headers),Y.api_keys&&Object.keys(Y.api_keys).length>0&&{"X-Provider-API-Keys":JSON.stringify(Y.api_keys)}),`ai-sdk/openrouter/${cr4}`),Q=(q,B={})=>new Sr4(q,B,{provider:"openrouter.chat",url:({path:O})=>`${W}${O}`,headers:Z,compatibility:K,fetch:Y.fetch,extraBody:Y.extraBody}),H=(q,B={})=>new kr4(q,B,{provider:"openrouter.completion",url:({path:O})=>`${W}${O}`,headers:Z,compatibility:K,fetch:Y.fetch,extraBody:Y.extraBody}),$=(q,B={})=>new yr4(q,B,{provider:"openrouter.embedding",url:({path:O})=>`${W}${O}`,headers:Z,fetch:Y.fetch,extraBody:Y.extraBody}),V=(q,B={})=>new br4(q,B,{provider:"openrouter.image",url:({path:O})=>`${W}${O}`,headers:Z,fetch:Y.fetch,extraBody:Y.extraBody}),z=(q,B)=>{if(new.target)throw Error("The OpenRouter model function cannot be called with the new keyword.");if(q==="openai/gpt-3.5-turbo-instruct")return H(q,B);return Q(q,B)},U=(q,B)=>z(q,B);return U.languageModel=z,U.chat=Q,U.completion=H,U.textEmbeddingModel=$,U.embedding=$,U.imageModel=V,U}var Ii4,Si4,ji4,i61,VY6,zY6,UY6=(Y)=>{throw TypeError(Y)},C96=(Y,X,J)=>(X in Y)?Ii4(Y,X,{enumerable:!0,configurable:!0,writable:!0,value:J}):Y[X]=J,t0=(Y,X)=>{for(var J in X||(X={}))if(VY6.call(X,J))C96(Y,J,X[J]);if(i61){for(var J of i61(X))if(zY6.call(X,J))C96(Y,J,X[J])}return Y},K9=(Y,X)=>Si4(Y,ji4(X)),Ux=(Y,X)=>{var J={};for(var G in Y)if(VY6.call(Y,G)&&X.indexOf(G)<0)J[G]=Y[G];if(Y!=null&&i61){for(var G of i61(Y))if(X.indexOf(G)<0&&zY6.call(Y,G))J[G]=Y[G]}return J},ki4=(Y,X,J)=>X.has(Y)||UY6("Cannot "+J),I96=(Y,X,J)=>(ki4(Y,X,"read from private field"),J?J.call(Y):X.get(Y)),_i4=(Y,X,J)=>X.has(Y)?UY6("Cannot add the same private member more than once"):X instanceof WeakSet?X.add(Y):X.set(Y,J),qY6="vercel.ai.error",vi4,S96,j96,GY,DY6="AI_APICallError",BY6,fi4,k96,_96,iH,LY6="AI_EmptyResponseBodyError",OY6,yi4,v96,f96,hi4,wY6="AI_InvalidArgumentError",MY6,bi4,y96,h96,AY6,PY6="AI_InvalidPromptError",EY6,xi4,b96,x96,gi4,TY6="AI_InvalidResponseDataError",RY6,ui4,g96,u96,zx,CY6="AI_JSONParseError",IY6,mi4,m96,l96,a61,SY6="AI_LoadAPIKeyError",jY6,li4,d96,c96,d61,kY6="AI_LoadSettingError",_Y6,di4,p96,n96,lWY,vY6="AI_NoContentGeneratedError",fY6,ci4,i96,a96,VS1,yY6="AI_NoSuchModelError",hY6,pi4,r96,o96,dWY,bY6="AI_TooManyEmbeddingValuesForCallError",xY6,ni4,s96,t96,cWY,gY6="AI_TypeValidationError",uY6,ii4,e96,YY6,qx,mY6="AI_UnsupportedFunctionalityError",lY6,ai4,XY6,JY6,hz,GY6,si4,ti4,aWY,dY6="AI_DownloadError",cY6,Ya4,WY6,ZY6,rWY,Xa4=({prefix:Y,size:X=16,alphabet:J="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",separator:G="-"}={})=>{let W=()=>{let K=J.length,Z=Array(X);for(let Q=0;Q<X;Q++)Z[Q]=J[Math.random()*K|0];return Z.join("")};if(Y==null)return W;if(J.includes(G))throw new AY6({argument:"separator",message:`The separator "${G}" must not be part of the alphabet "${J}".`});return()=>`${Y}${G}${W()}`},nH,Ja4,Ka4="4.0.1",$a4,Fa4,za4,KY6,Ua4=(Y)=>typeof Y==="string"?K9(t0({},KY6),{name:Y}):t0(t0({},KY6),Y),La4=(Y,X)=>{return d9(Y.innerType._def,X)},Oa4=(Y)=>{let X={type:"integer",format:"unix-time"};for(let J of Y.checks)switch(J.kind){case"min":X.minimum=J.value;break;case"max":X.maximum=J.value;break}return X},Aa4=(Y)=>{if("type"in Y&&Y.type==="string")return!1;return"allOf"in Y},JS1=void 0,cH,Ta4,KS1,_a4=(Y,X)=>{let J=(Y.options instanceof Map?Array.from(Y.options.values()):Y.options).map((G,W)=>d9(G._def,K9(t0({},X),{currentPath:[...X.currentPath,"anyOf",`${W}`]}))).filter((G)=>!!G&&(!X.strictUnions||typeof G==="object"&&Object.keys(G).length>0));return J.length?{anyOf:J}:void 0},xa4=(Y,X)=>{var J;if(X.currentPath.toString()===((J=X.propertyPath)==null?void 0:J.toString()))return d9(Y.innerType._def,X);let G=d9(Y.innerType._def,K9(t0({},X),{currentPath:[...X.currentPath,"anyOf","1"]}));return G?{anyOf:[{not:lZ()},G]}:lZ()},ga4=(Y,X)=>{if(X.pipeStrategy==="input")return d9(Y.in._def,X);else if(X.pipeStrategy==="output")return d9(Y.out._def,X);let J=d9(Y.in._def,K9(t0({},X),{currentPath:[...X.currentPath,"allOf","0"]})),G=d9(Y.out._def,K9(t0({},X),{currentPath:[...X.currentPath,"allOf",J?"1":"0"]}));return{allOf:[J,G].filter((W)=>W!==void 0)}},pa4=(Y,X)=>{return d9(Y.innerType._def,X)},na4=(Y,X,J)=>{switch(X){case x1.ZodString:return iY6(Y,J);case x1.ZodNumber:return fa4(Y);case x1.ZodObject:return ya4(Y,J);case x1.ZodBigInt:return Da4(Y);case x1.ZodBoolean:return Ba4();case x1.ZodDate:return nY6(Y,J);case x1.ZodUndefined:return da4();case x1.ZodNull:return ja4();case x1.ZodArray:return qa4(Y,J);case x1.ZodUnion:case x1.ZodDiscriminatedUnion:return ka4(Y,J);case x1.ZodIntersection:return Pa4(Y,J);case x1.ZodTuple:return la4(Y,J);case x1.ZodRecord:return aY6(Y,J);case x1.ZodLiteral:return Ea4(Y);case x1.ZodEnum:return Ma4(Y);case x1.ZodNativeEnum:return Ia4(Y);case x1.ZodNullable:return va4(Y,J);case x1.ZodOptional:return xa4(Y,J);case x1.ZodMap:return Ca4(Y,J);case x1.ZodSet:return ma4(Y,J);case x1.ZodLazy:return()=>Y.getter()._def;case x1.ZodPromise:return ua4(Y,J);case x1.ZodNaN:case x1.ZodNever:return Sa4();case x1.ZodEffects:return wa4(Y,J);case x1.ZodAny:return lZ();case x1.ZodUnknown:return ca4();case x1.ZodDefault:return Na4(Y,J);case x1.ZodBranded:return pY6(Y,J);case x1.ZodReadonly:return pa4(Y,J);case x1.ZodCatch:return La4(Y,J);case x1.ZodPipeline:return ga4(Y,J);case x1.ZodFunction:case x1.ZodVoid:case x1.ZodSymbol:return;default:return((G)=>{return})(X)}},ia4=(Y,X)=>{let J=0;for(;J<Y.length&&J<X.length;J++)if(Y[J]!==X[J])break;return[(Y.length-J).toString(),...X.slice(J)].join("/")},aa4=(Y,X)=>{switch(X.$refStrategy){case"root":return{$ref:Y.path.join("/")};case"relative":return{$ref:ia4(X.currentPath,Y.path)};case"none":case"seen":{if(Y.path.length<X.currentPath.length&&Y.path.every((J,G)=>X.currentPath[G]===J))return console.warn(`Recursive reference detected at ${X.currentPath.join("/")}! Defaulting to any`),lZ();return X.$refStrategy==="seen"?lZ():void 0}}},ra4=(Y,X,J)=>{if(Y.description)J.description=Y.description;return J},oa4=(Y)=>{let X=Ua4(Y),J=X.name!==void 0?[...X.basePath,X.definitionPath,X.name]:X.basePath;return K9(t0({},X),{currentPath:J,propertyPath:void 0,seen:new Map(Object.entries(X.definitions).map(([G,W])=>[W._def,{def:W._def,path:[...X.basePath,X.definitionPath,G],jsonSchema:void 0}]))})},sa4=(Y,X)=>{var J;let G=oa4(X),W=typeof X==="object"&&X.definitions?Object.entries(X.definitions).reduce(($,[V,z])=>{var U;return K9(t0({},$),{[V]:(U=d9(z._def,K9(t0({},G),{currentPath:[...G.basePath,G.definitionPath,V]}),!0))!=null?U:lZ()})},{}):void 0,K=typeof X==="string"?X:(X==null?void 0:X.nameStrategy)==="title"?void 0:X==null?void 0:X.name,Z=(J=d9(Y._def,K===void 0?G:K9(t0({},G),{currentPath:[...G.basePath,G.definitionPath,K]}),!1))!=null?J:lZ(),Q=typeof X==="object"&&X.name!==void 0&&X.nameStrategy==="title"?X.name:void 0;if(Q!==void 0)Z.title=Q;let H=K===void 0?W?K9(t0({},Z),{[G.definitionPath]:W}):Z:{$ref:[...G.$refStrategy==="relative"?[]:G.basePath,G.definitionPath,K].join("/"),[G.definitionPath]:K9(t0({},W),{[K]:Z})};return H.$schema="http://json-schema.org/draft-07/schema#",H},HS1,Hr4=()=>globalThis.fetch,mR=async({url:Y,headers:X,body:J,failedResponseHandler:G,successfulResponseHandler:W,abortSignal:K,fetch:Z})=>$r4({url:Y,headers:t0({"Content-Type":"application/json"},X),body:{content:JSON.stringify(J),values:J},failedResponseHandler:G,successfulResponseHandler:W,abortSignal:K,fetch:Z}),$r4=async({url:Y,headers:X={},body:J,successfulResponseHandler:G,failedResponseHandler:W,abortSignal:K,fetch:Z=Hr4()})=>{try{let Q=await Z(Y,{method:"POST",headers:Qa4(X,`ai-sdk/provider-utils/${Ka4}`,Wa4()),body:J.content,signal:K}),H=t61(Q);if(!Q.ok){let $;try{$=await W({response:Q,url:Y,requestBodyValues:J.values})}catch(V){if(QS1(V)||iH.isInstance(V))throw V;throw new iH({message:"Failed to process error response",cause:V,statusCode:Q.status,url:Y,responseHeaders:H,requestBodyValues:J.values})}throw $.value}try{return await G({response:Q,url:Y,requestBodyValues:J.values})}catch($){if($ instanceof Error){if(QS1($)||iH.isInstance($))throw $}throw new iH({message:"Failed to process successful response",cause:$,statusCode:Q.status,url:Y,responseHeaders:H,requestBodyValues:J.values})}}catch(Q){throw Ga4({error:Q,url:Y,requestBodyValues:J.values})}},Fr4=({errorSchema:Y,errorToMessage:X,isRetryable:J})=>async({response:G,url:W,requestBodyValues:K})=>{let Z=await G.text(),Q=t61(G);if(Z.trim()==="")return{responseHeaders:Q,value:new iH({message:G.statusText,url:W,requestBodyValues:K,statusCode:G.status,responseHeaders:Q,responseBody:Z,isRetryable:J==null?void 0:J(G)})};try{let H=await Qr4({text:Z,schema:Y});return{responseHeaders:Q,value:new iH({message:X(H),url:W,requestBodyValues:K,statusCode:G.status,responseHeaders:Q,responseBody:Z,data:H,isRetryable:J==null?void 0:J(G,H)})}}catch(H){return{responseHeaders:Q,value:new iH({message:G.statusText,url:W,requestBodyValues:K,statusCode:G.status,responseHeaders:Q,responseBody:Z,isRetryable:J==null?void 0:J(G)})}}},sY6=(Y)=>async({response:X})=>{let J=t61(X);if(X.body==null)throw new hi4({});return{responseHeaders:J,value:Kr4({stream:X.body,schema:Y})}},Y41=(Y)=>async({response:X,url:J,requestBodyValues:G})=>{let W=await X.text(),K=await oY6({text:W,schema:Y}),Z=t61(X);if(!K.success)throw new iH({message:"Invalid JSON response",cause:K.error,statusCode:X.status,responseHeaders:Z,responseBody:W,url:J,requestBodyValues:G});return{responseHeaders:Z,value:K.value,rawValue:K.rawValue}},tY6,US1,zr4,Ur4,qr4,qS1,p61,DS1,sWY,X41,lR,eY6,BS1,YX6,n61,Lr4=class{constructor(){_i4(this,n61,new Set)}upsert(Y){let X=this.getCanonicalKey(Y);if(X===null)return!1;if(I96(this,n61).has(X))return!1;return I96(this,n61).add(X),!0}getCanonicalKey(Y){switch(Y.type){case"reasoning.summary":return Y.summary;case"reasoning.encrypted":if(Y.id)return Y.id;return Y.data;case"reasoning.text":{if(Y.text)return Y.text;if(Y.signature)return Y.signature;return null}default:return null}}},Or4,Nr4,XZY,Tr4,Rr4,GX6,WX6,Cr4,Ir4,Sr4=class{constructor(Y,X,J){this.specificationVersion="v3",this.provider="openrouter",this.defaultObjectGenerationMode="tool",this.supportsImageUrls=!0,this.supportedUrls={"image/*":[/^data:image\/[a-zA-Z]+;base64,/,/^https?:\/\/.+\.(jpg|jpeg|png|gif|webp)$/i],"application/*":[/^data:application\//,/^https?:\/\/.+$/]},this.modelId=Y,this.settings=X,this.config=J}getArgs({prompt:Y,maxOutputTokens:X,temperature:J,topP:G,frequencyPenalty:W,presencePenalty:K,seed:Z,stopSequences:Q,responseFormat:H,topK:$,tools:V,toolChoice:z}){var U;let q=t0(t0({model:this.modelId,models:this.settings.models,logit_bias:this.settings.logitBias,logprobs:this.settings.logprobs===!0||typeof this.settings.logprobs==="number"?!0:void 0,top_logprobs:typeof this.settings.logprobs==="number"?this.settings.logprobs:typeof this.settings.logprobs==="boolean"?this.settings.logprobs?0:void 0:void 0,user:this.settings.user,parallel_tool_calls:this.settings.parallelToolCalls,max_tokens:X,temperature:J,top_p:G,frequency_penalty:W,presence_penalty:K,seed:Z,stop:Q,response_format:(H==null?void 0:H.type)==="json"?H.schema!=null?{type:"json_schema",json_schema:t0({schema:H.schema,strict:!0,name:(U=H.name)!=null?U:"response"},H.description&&{description:H.description})}:{type:"json_object"}:void 0,top_k:$,messages:Mr4(Y),include_reasoning:this.settings.includeReasoning,reasoning:this.settings.reasoning,usage:this.settings.usage,plugins:this.settings.plugins,web_search_options:this.settings.web_search_options,provider:this.settings.provider,debug:this.settings.debug,cache_control:this.settings.cache_control},this.config.extraBody),this.settings.extraBody);if(V&&V.length>0){let B=V.filter((O)=>O.type==="function").map((O)=>({type:"function",function:{name:O.name,description:O.description,parameters:O.inputSchema}}));return K9(t0({},q),{tools:B,tool_choice:z?Er4(z):void 0})}return q}async doGenerate(Y){var X,J,G,W,K,Z,Q,H,$,V,z,U,q,B,O,M,P,C,k,T,E,S;let x=(Y.providerOptions||{}).openrouter||{},{cacheControl:d}=x,u=Ux(x,["cacheControl"]),e=t0(t0(t0({},this.getArgs(Y)),u),d!=null&&!("cache_control"in u)?{cache_control:d}:{}),{value:n,responseHeaders:m}=await mR({url:this.config.url({path:"/chat/completions",modelId:this.modelId}),headers:uR(this.config.headers(),Y.headers),body:e,failedResponseHandler:lR,successfulResponseHandler:Y41(Cr4),abortSignal:Y.abortSignal,fetch:this.config.fetch});if("error"in n){let Q1=n.error;throw new iH({message:Q1.message,url:this.config.url({path:"/chat/completions",modelId:this.modelId}),requestBodyValues:e,statusCode:200,responseHeaders:m,data:Q1})}let o=n,H1=o.choices[0];if(!H1)throw new VS1({message:"No choice in response"});let Z1=o.usage?r61(o.usage):XX6(),O1=(X=H1.message.reasoning_details)!=null?X:[],M1=O1.length>0?O1.map((Q1)=>{switch(Q1.type){case"reasoning.text":{if(Q1.text)return{type:"reasoning",text:Q1.text,providerMetadata:{openrouter:{reasoning_details:[Q1]}}};break}case"reasoning.summary":{if(Q1.summary)return{type:"reasoning",text:Q1.summary,providerMetadata:{openrouter:{reasoning_details:[Q1]}}};break}case"reasoning.encrypted":{if(Q1.data)return{type:"reasoning",text:"[REDACTED]",providerMetadata:{openrouter:{reasoning_details:[Q1]}}};break}default:}return null}).filter((Q1)=>Q1!==null):H1.message.reasoning?[{type:"reasoning",text:H1.message.reasoning}]:[],C1=[];if(C1.push(...M1),H1.message.content)C1.push({type:"text",text:H1.message.content});if(H1.message.tool_calls){let Q1=!1;for(let J0 of H1.message.tool_calls)C1.push({type:"tool-call",toolCallId:(J=J0.id)!=null?J:nH(),toolName:J0.function.name,input:(G=J0.function.arguments)!=null?G:"{}",providerMetadata:!Q1?{openrouter:{reasoning_details:O1}}:void 0}),Q1=!0}if(H1.message.images)for(let Q1 of H1.message.images)C1.push({type:"file",mediaType:$Y6(Q1.image_url.url,"image/jpeg"),data:s61(Q1.image_url.url)});if(H1.message.annotations){for(let Q1 of H1.message.annotations)if(Q1.type==="url_citation")C1.push({type:"source",sourceType:"url",id:Q1.url_citation.url,url:Q1.url_citation.url,title:(W=Q1.url_citation.title)!=null?W:"",providerMetadata:{openrouter:{content:(K=Q1.url_citation.content)!=null?K:"",startIndex:(Z=Q1.url_citation.start_index)!=null?Z:0,endIndex:(Q=Q1.url_citation.end_index)!=null?Q:0}}})}let f1=(H=H1.message.annotations)==null?void 0:H.filter((Q1)=>Q1.type==="file"),y1=H1.message.tool_calls&&H1.message.tool_calls.length>0,z0=O1.some((Q1)=>Q1.type==="reasoning.encrypted"&&Q1.data),v1=y1&&z0&&H1.finish_reason==="stop"?XB("tool-calls",($=H1.finish_reason)!=null?$:void 0):o61(H1.finish_reason);return{content:C1,finishReason:v1,usage:Z1,warnings:[],providerMetadata:{openrouter:BS1.parse({provider:(V=o.provider)!=null?V:"",reasoning_details:(z=H1.message.reasoning_details)!=null?z:[],annotations:f1&&f1.length>0?f1:void 0,usage:t0(t0(t0(t0({promptTokens:(U=Z1.inputTokens.total)!=null?U:0,completionTokens:(q=Z1.outputTokens.total)!=null?q:0,totalTokens:((B=Z1.inputTokens.total)!=null?B:0)+((O=Z1.outputTokens.total)!=null?O:0)},((M=o.usage)==null?void 0:M.cost)!=null?{cost:o.usage.cost}:{}),((C=(P=o.usage)==null?void 0:P.prompt_tokens_details)==null?void 0:C.cached_tokens)!=null?{promptTokensDetails:{cachedTokens:o.usage.prompt_tokens_details.cached_tokens}}:{}),((T=(k=o.usage)==null?void 0:k.completion_tokens_details)==null?void 0:T.reasoning_tokens)!=null?{completionTokensDetails:{reasoningTokens:o.usage.completion_tokens_details.reasoning_tokens}}:{}),((S=(E=o.usage)==null?void 0:E.cost_details)==null?void 0:S.upstream_inference_cost)!=null?{costDetails:{upstreamInferenceCost:o.usage.cost_details.upstream_inference_cost}}:{})})},request:{body:e},response:{id:o.id,modelId:o.model,headers:m}}}async doStream(Y){var X;let W=(Y.providerOptions||{}).openrouter||{},{cacheControl:K}=W,Z=Ux(W,["cacheControl"]),Q=t0(t0(t0({},this.getArgs(Y)),Z),K!=null&&!("cache_control"in Z)?{cache_control:K}:{}),{value:H,responseHeaders:$}=await mR({url:this.config.url({path:"/chat/completions",modelId:this.modelId}),headers:uR(this.config.headers(),Y.headers),body:K9(t0({},Q),{stream:!0,stream_options:this.config.compatibility==="strict"?t0({include_usage:!0},((X=this.settings.usage)==null?void 0:X.include)?{include_usage:!0}:{}):void 0}),failedResponseHandler:lR,successfulResponseHandler:sY6(Ir4),abortSignal:Y.abortSignal,fetch:this.config.fetch}),V=[],z=XB("other"),U={inputTokens:{total:void 0,noCache:void 0,cacheRead:void 0,cacheWrite:void 0},outputTokens:{total:void 0,text:void 0,reasoning:void 0},raw:void 0},q={},B,O=[],M=!1,P=[],C=!1,k=!1,T,E,S,h;return{stream:H.pipeThrough(new TransformStream({transform(_,x){var d,u,e,n,m,o,H1,Z1,O1,M1,C1,f1,y1,z0,p1,v1,Q1,J0,P0,S0,o1;if(Y.includeRawChunks)x.enqueue({type:"raw",rawValue:_.rawValue});if(!_.success){z=XB("error"),x.enqueue({type:"error",error:_.error});return}let E1=_.value;if("error"in E1){z=XB("error"),x.enqueue({type:"error",error:E1.error});return}if(E1.provider)h=E1.provider;if(E1.id)S=E1.id,x.enqueue({type:"response-metadata",id:E1.id});if(E1.model)x.enqueue({type:"response-metadata",modelId:E1.model});if(E1.usage!=null){let V1=r61(E1.usage);Object.assign(U.inputTokens,V1.inputTokens),Object.assign(U.outputTokens,V1.outputTokens),B=E1.usage;let a1=(d=E1.usage.prompt_tokens)!=null?d:0,l1=(u=E1.usage.completion_tokens)!=null?u:0;if(q.promptTokens=a1,E1.usage.prompt_tokens_details)q.promptTokensDetails={cachedTokens:(e=E1.usage.prompt_tokens_details.cached_tokens)!=null?e:0};if(q.completionTokens=l1,E1.usage.completion_tokens_details)q.completionTokensDetails={reasoningTokens:(n=E1.usage.completion_tokens_details.reasoning_tokens)!=null?n:0};if(E1.usage.cost!=null)q.cost=E1.usage.cost;q.totalTokens=E1.usage.total_tokens;let i1=(m=E1.usage.cost_details)==null?void 0:m.upstream_inference_cost;if(i1!=null)q.costDetails={upstreamInferenceCost:i1}}let D1=E1.choices[0];if((D1==null?void 0:D1.finish_reason)!=null)z=o61(D1.finish_reason);if((D1==null?void 0:D1.delta)==null)return;let K1=D1.delta,w1=(V1,a1)=>{if(!k)E=S||nH(),x.enqueue({providerMetadata:a1,type:"reasoning-start",id:E}),k=!0;x.enqueue({providerMetadata:a1,type:"reasoning-delta",delta:V1,id:E||nH()})};if(K1.reasoning_details&&K1.reasoning_details.length>0){for(let a1 of K1.reasoning_details)if(a1.type==="reasoning.text"){let l1=O[O.length-1];if((l1==null?void 0:l1.type)==="reasoning.text")l1.text=(l1.text||"")+(a1.text||""),l1.signature=l1.signature||a1.signature,l1.format=l1.format||a1.format;else O.push(t0({},a1))}else O.push(a1);let V1={openrouter:{reasoning_details:O.map((a1)=>t0({},a1))}};for(let a1 of K1.reasoning_details)switch(a1.type){case"reasoning.text":{w1(a1.text||"",V1);break}case"reasoning.encrypted":{if(a1.data)w1("[REDACTED]",V1);break}case"reasoning.summary":{if(a1.summary)w1(a1.summary,V1);break}default:break}}else if(K1.reasoning)w1(K1.reasoning);if(K1.content){if(k&&!C)x.enqueue({type:"reasoning-end",id:E||nH(),providerMetadata:O.length>0?{openrouter:{reasoning_details:O}}:void 0}),k=!1;if(!C)T=S||nH(),x.enqueue({type:"text-start",id:T}),C=!0;x.enqueue({type:"text-delta",delta:K1.content,id:T||nH()})}if(K1.annotations){for(let V1 of K1.annotations)if(V1.type==="url_citation")x.enqueue({type:"source",sourceType:"url",id:V1.url_citation.url,url:V1.url_citation.url,title:(o=V1.url_citation.title)!=null?o:"",providerMetadata:{openrouter:{content:(H1=V1.url_citation.content)!=null?H1:"",startIndex:(Z1=V1.url_citation.start_index)!=null?Z1:0,endIndex:(O1=V1.url_citation.end_index)!=null?O1:0}}});else if(V1.type==="file"){let a1=V1.file;if(a1&&typeof a1==="object"&&"hash"in a1&&"name"in a1)P.push(V1)}}if(K1.tool_calls!=null)for(let V1 of K1.tool_calls){let a1=(M1=V1.index)!=null?M1:V.length-1;if(V[a1]==null){if(V1.type!=="function")throw new zx({data:V1,message:"Expected 'function' type."});if(V1.id==null)throw new zx({data:V1,message:"Expected 'id' to be a string."});if(((C1=V1.function)==null?void 0:C1.name)==null)throw new zx({data:V1,message:"Expected 'function.name' to be a string."});V[a1]={id:V1.id,type:"function",function:{name:V1.function.name,arguments:(f1=V1.function.arguments)!=null?f1:""},inputStarted:!1,sent:!1};let i1=V[a1];if(i1==null)throw new zx({data:{index:a1,toolCallsLength:V.length},message:`Tool call at index ${a1} is missing after creation.`});if(((y1=i1.function)==null?void 0:y1.name)!=null&&((z0=i1.function)==null?void 0:z0.arguments)!=null&&WS1(i1.function.arguments))i1.inputStarted=!0,x.enqueue({type:"tool-input-start",id:i1.id,toolName:i1.function.name}),x.enqueue({type:"tool-input-delta",id:i1.id,delta:i1.function.arguments}),x.enqueue({type:"tool-input-end",id:i1.id}),x.enqueue({type:"tool-call",toolCallId:i1.id,toolName:i1.function.name,input:i1.function.arguments,providerMetadata:!M?{openrouter:{reasoning_details:O}}:void 0}),M=!0,i1.sent=!0;continue}let l1=V[a1];if(l1==null)throw new zx({data:{index:a1,toolCallsLength:V.length,toolCallDelta:V1},message:`Tool call at index ${a1} is missing during merge.`});if(!l1.inputStarted)l1.inputStarted=!0,x.enqueue({type:"tool-input-start",id:l1.id,toolName:l1.function.name});if(((p1=V1.function)==null?void 0:p1.arguments)!=null)l1.function.arguments+=(Q1=(v1=V1.function)==null?void 0:v1.arguments)!=null?Q1:"";if(x.enqueue({type:"tool-input-delta",id:l1.id,delta:(J0=V1.function.arguments)!=null?J0:""}),((P0=l1.function)==null?void 0:P0.name)!=null&&((S0=l1.function)==null?void 0:S0.arguments)!=null&&WS1(l1.function.arguments))x.enqueue({type:"tool-call",toolCallId:(o1=l1.id)!=null?o1:nH(),toolName:l1.function.name,input:l1.function.arguments,providerMetadata:!M?{openrouter:{reasoning_details:O}}:void 0}),M=!0,l1.sent=!0}if(K1.images!=null)for(let V1 of K1.images)x.enqueue({type:"file",mediaType:$Y6(V1.image_url.url,"image/jpeg"),data:s61(V1.image_url.url)})},flush(_){var x;let d=V.length>0,u=O.some((n)=>n.type==="reasoning.encrypted"&&n.data);if(d&&u&&z.unified==="stop")z=XB("tool-calls",z.raw);if(z.unified==="tool-calls"){for(let n of V)if(n&&!n.sent)_.enqueue({type:"tool-call",toolCallId:(x=n.id)!=null?x:nH(),toolName:n.function.name,input:WS1(n.function.arguments)?n.function.arguments:"{}",providerMetadata:!M?{openrouter:{reasoning_details:O}}:void 0}),M=!0,n.sent=!0}if(k)_.enqueue({type:"reasoning-end",id:E||nH(),providerMetadata:O.length>0?{openrouter:{reasoning_details:O}}:void 0});if(C)_.enqueue({type:"text-end",id:T||nH()});let e={usage:q};if(h!==void 0)e.provider=h;if(O.length>0)e.reasoning_details=O;if(P.length>0)e.annotations=P;U.raw=B,_.enqueue({type:"finish",finishReason:z,usage:U,providerMetadata:{openrouter:e}})}})),warnings:[],request:{body:Q},response:{headers:$}}}},FY6,kr4=class{constructor(Y,X,J){this.specificationVersion="v3",this.provider="openrouter",this.supportsImageUrls=!0,this.supportedUrls={"image/*":[/^data:image\/[a-zA-Z]+;base64,/,/^https?:\/\/.+\.(jpg|jpeg|png|gif|webp)$/i],"text/*":[/^data:text\//,/^https?:\/\/.+$/],"application/*":[/^data:application\//,/^https?:\/\/.+$/]},this.defaultObjectGenerationMode=void 0,this.modelId=Y,this.settings=X,this.config=J}getArgs({prompt:Y,maxOutputTokens:X,temperature:J,topP:G,frequencyPenalty:W,presencePenalty:K,seed:Z,responseFormat:Q,topK:H,stopSequences:$,tools:V,toolChoice:z}){let{prompt:U}=jr4({prompt:Y,inputFormat:"prompt"});if(V==null?void 0:V.length)throw new hz({functionality:"tools"});if(z)throw new hz({functionality:"toolChoice"});return t0(t0({model:this.modelId,models:this.settings.models,logit_bias:this.settings.logitBias,logprobs:typeof this.settings.logprobs==="number"?this.settings.logprobs:typeof this.settings.logprobs==="boolean"?this.settings.logprobs?0:void 0:void 0,suffix:this.settings.suffix,user:this.settings.user,max_tokens:X,temperature:J,top_p:G,frequency_penalty:W,presence_penalty:K,seed:Z,stop:$,response_format:Q,top_k:H,prompt:U,include_reasoning:this.settings.includeReasoning,reasoning:this.settings.reasoning},this.config.extraBody),this.settings.extraBody)}async doGenerate(Y){var X,J,G,W,K,Z,Q,H,$,V,z,U,q,B,O,M,P;let k=(Y.providerOptions||{}).openrouter||{},T=t0(t0({},this.getArgs(Y)),k),{value:E,responseHeaders:S}=await mR({url:this.config.url({path:"/completions",modelId:this.modelId}),headers:uR(this.config.headers(),Y.headers),body:T,failedResponseHandler:lR,successfulResponseHandler:Y41(FY6),abortSignal:Y.abortSignal,fetch:this.config.fetch});if("error"in E){let _=E.error;throw new iH({message:_.message,url:this.config.url({path:"/completions",modelId:this.modelId}),requestBodyValues:T,statusCode:200,responseHeaders:S,data:_})}let h=E.choices[0];if(!h)throw new VS1({message:"No choice in OpenRouter completion response"});return{content:[{type:"text",text:(X=h.text)!=null?X:""}],finishReason:o61(h.finish_reason),usage:E.usage?r61(E.usage):XX6(),warnings:[],providerMetadata:{openrouter:BS1.parse({provider:(J=E.provider)!=null?J:"",usage:t0(t0(t0(t0({promptTokens:(W=(G=E.usage)==null?void 0:G.prompt_tokens)!=null?W:0,completionTokens:(Z=(K=E.usage)==null?void 0:K.completion_tokens)!=null?Z:0,totalTokens:((H=(Q=E.usage)==null?void 0:Q.prompt_tokens)!=null?H:0)+((V=($=E.usage)==null?void 0:$.completion_tokens)!=null?V:0)},((z=E.usage)==null?void 0:z.cost)!=null?{cost:E.usage.cost}:{}),((q=(U=E.usage)==null?void 0:U.prompt_tokens_details)==null?void 0:q.cached_tokens)!=null?{promptTokensDetails:{cachedTokens:E.usage.prompt_tokens_details.cached_tokens}}:{}),((O=(B=E.usage)==null?void 0:B.completion_tokens_details)==null?void 0:O.reasoning_tokens)!=null?{completionTokensDetails:{reasoningTokens:E.usage.completion_tokens_details.reasoning_tokens}}:{}),((P=(M=E.usage)==null?void 0:M.cost_details)==null?void 0:P.upstream_inference_cost)!=null?{costDetails:{upstreamInferenceCost:E.usage.cost_details.upstream_inference_cost}}:{})})},response:{headers:S}}}async doStream(Y){let J=(Y.providerOptions||{}).openrouter||{},G=t0(t0({},this.getArgs(Y)),J),{value:W,responseHeaders:K}=await mR({url:this.config.url({path:"/completions",modelId:this.modelId}),headers:uR(this.config.headers(),Y.headers),body:K9(t0({},G),{stream:!0,stream_options:this.config.compatibility==="strict"?{include_usage:!0}:void 0}),failedResponseHandler:lR,successfulResponseHandler:sY6(FY6),abortSignal:Y.abortSignal,fetch:this.config.fetch}),Z=XB("other"),Q={inputTokens:{total:void 0,noCache:void 0,cacheRead:void 0,cacheWrite:void 0},outputTokens:{total:void 0,text:void 0,reasoning:void 0},raw:void 0},H={},$,V;return{stream:W.pipeThrough(new TransformStream({transform(z,U){var q,B,O,M,P;if(Y.includeRawChunks)U.enqueue({type:"raw",rawValue:z.rawValue});if(!z.success){Z=XB("error"),U.enqueue({type:"error",error:z.error});return}let C=z.value;if("error"in C){Z=XB("error"),U.enqueue({type:"error",error:C.error});return}if(C.provider)$=C.provider;if(C.usage!=null){let T=r61(C.usage);Object.assign(Q.inputTokens,T.inputTokens),Object.assign(Q.outputTokens,T.outputTokens),V=C.usage;let E=(q=C.usage.prompt_tokens)!=null?q:0,S=(B=C.usage.completion_tokens)!=null?B:0;if(H.promptTokens=E,C.usage.prompt_tokens_details)H.promptTokensDetails={cachedTokens:(O=C.usage.prompt_tokens_details.cached_tokens)!=null?O:0};if(H.completionTokens=S,C.usage.completion_tokens_details)H.completionTokensDetails={reasoningTokens:(M=C.usage.completion_tokens_details.reasoning_tokens)!=null?M:0};if(C.usage.cost!=null)H.cost=C.usage.cost;H.totalTokens=C.usage.total_tokens;let h=(P=C.usage.cost_details)==null?void 0:P.upstream_inference_cost;if(h!=null)H.costDetails={upstreamInferenceCost:h}}let k=C.choices[0];if((k==null?void 0:k.finish_reason)!=null)Z=o61(k.finish_reason);if((k==null?void 0:k.text)!=null)U.enqueue({type:"text-delta",delta:k.text,id:nH()})},flush(z){Q.raw=V;let U={usage:H};if($!==void 0)U.provider=$;z.enqueue({type:"finish",finishReason:Z,usage:Q,providerMetadata:{openrouter:U}})}})),response:{headers:K}}}},_r4,vr4,fr4,yr4=class{constructor(Y,X,J){this.specificationVersion="v3",this.provider="openrouter",this.maxEmbeddingsPerCall=void 0,this.supportsParallelCalls=!0,this.modelId=Y,this.settings=X,this.config=J}async doEmbed(Y){var X,J,G,W,K,Z;let{values:Q,abortSignal:H,headers:$}=Y,V=t0(t0({model:this.modelId,input:Q,user:this.settings.user,provider:this.settings.provider},this.config.extraBody),this.settings.extraBody),{value:z,responseHeaders:U}=await mR({url:this.config.url({path:"/embeddings",modelId:this.modelId}),headers:uR(this.config.headers(),$),body:V,failedResponseHandler:lR,successfulResponseHandler:Y41(fr4),abortSignal:H,fetch:this.config.fetch});return{embeddings:z.data.map((q)=>q.embedding),usage:z.usage?{tokens:z.usage.prompt_tokens}:void 0,providerMetadata:{openrouter:BS1.parse({provider:(X=z.provider)!=null?X:"",usage:t0({promptTokens:(G=(J=z.usage)==null?void 0:J.prompt_tokens)!=null?G:0,completionTokens:0,totalTokens:(K=(W=z.usage)==null?void 0:W.total_tokens)!=null?K:0},((Z=z.usage)==null?void 0:Z.cost)!=null?{cost:z.usage.cost}:{})})},response:{headers:U,body:z},warnings:[]}}},hr4,br4=class{constructor(Y,X,J){this.specificationVersion="v3",this.provider="openrouter",this.maxImagesPerCall=1,this.modelId=Y,this.settings=X,this.config=J}async doGenerate(Y){var X;let{prompt:J,n:G,size:W,aspectRatio:K,seed:Z,files:Q,mask:H,abortSignal:$,headers:V,providerOptions:z}=Y,U=(z==null?void 0:z.openrouter)||{},q=[];if(H!==void 0)throw new hz({functionality:"image inpainting (mask parameter)"});if(G>1)q.push({type:"unsupported",feature:"n > 1",details:`OpenRouter image generation returns 1 image per call. Requested ${G} images.`});if(W!==void 0)q.push({type:"unsupported",feature:"size",details:"Use aspectRatio instead. Size parameter is not supported by OpenRouter image generation."});let B=K!==void 0?{aspect_ratio:K}:void 0,M=Q!==void 0&&Q.length>0?[...Q.map((h)=>gr4(h)),{type:"text",text:J!=null?J:""}]:J!=null?J:"",P=t0(t0(t0(t0(t0(t0(t0({model:this.modelId,messages:[{role:"user",content:M}],modalities:["image","text"]},B!==void 0&&{image_config:B}),Z!==void 0&&{seed:Z}),this.settings.user!==void 0&&{user:this.settings.user}),this.settings.provider!==void 0&&{provider:this.settings.provider}),this.config.extraBody),this.settings.extraBody),U),{value:C,responseHeaders:k}=await mR({url:this.config.url({path:"/chat/completions",modelId:this.modelId}),headers:uR(this.config.headers(),V),body:P,failedResponseHandler:lR,successfulResponseHandler:Y41(hr4),abortSignal:$,fetch:this.config.fetch}),T=C.choices[0];if(!T)throw new VS1({message:"No choice in response"});let E=[];if((X=T.message)==null?void 0:X.images)for(let h of T.message.images){let _=h.image_url.url;E.push(s61(_))}let S=C.usage?{inputTokens:C.usage.prompt_tokens,outputTokens:C.usage.completion_tokens,totalTokens:C.usage.total_tokens}:void 0;return{images:E,warnings:q,response:{timestamp:new Date,modelId:C.model,headers:k},usage:S}}},xr4="image/png",cr4="2.3.1",KZY;var ZX6=A(()=>{J6();TK();TK();TK();J6();J6();J6();J6();J6();J6();J6();J6();J6();Ii4=Object.defineProperty,Si4=Object.defineProperties,ji4=Object.getOwnPropertyDescriptors,i61=Object.getOwnPropertySymbols,VY6=Object.prototype.hasOwnProperty,zY6=Object.prototype.propertyIsEnumerable,vi4=Symbol.for(qY6),GY=class Y extends(j96=Error,S96=vi4,j96){constructor({name:X,message:J,cause:G}){super(J);this[S96]=!0,this.name=X,this.cause=G}static isInstance(X){return Y.hasMarker(X,qY6)}static hasMarker(X,J){let G=Symbol.for(J);return X!=null&&typeof X==="object"&&G in X&&typeof X[G]==="boolean"&&X[G]===!0}},BY6=`vercel.ai.error.${DY6}`,fi4=Symbol.for(BY6),iH=class extends(_96=GY,k96=fi4,_96){constructor({message:Y,url:X,requestBodyValues:J,statusCode:G,responseHeaders:W,responseBody:K,cause:Z,isRetryable:Q=G!=null&&(G===408||G===409||G===429||G>=500),data:H}){super({name:DY6,message:Y,cause:Z});this[k96]=!0,this.url=X,this.requestBodyValues=J,this.statusCode=G,this.responseHeaders=W,this.responseBody=K,this.isRetryable=Q,this.data=H}static isInstance(Y){return GY.hasMarker(Y,BY6)}},OY6=`vercel.ai.error.${LY6}`,yi4=Symbol.for(OY6),hi4=class extends(f96=GY,v96=yi4,f96){constructor({message:Y="Empty response body"}={}){super({name:LY6,message:Y});this[v96]=!0}static isInstance(Y){return GY.hasMarker(Y,OY6)}};MY6=`vercel.ai.error.${wY6}`,bi4=Symbol.for(MY6),AY6=class extends(h96=GY,y96=bi4,h96){constructor({message:Y,cause:X,argument:J}){super({name:wY6,message:Y,cause:X});this[y96]=!0,this.argument=J}static isInstance(Y){return GY.hasMarker(Y,MY6)}},EY6=`vercel.ai.error.${PY6}`,xi4=Symbol.for(EY6),gi4=class extends(x96=GY,b96=xi4,x96){constructor({prompt:Y,message:X,cause:J}){super({name:PY6,message:`Invalid prompt: ${X}`,cause:J});this[b96]=!0,this.prompt=Y}static isInstance(Y){return GY.hasMarker(Y,EY6)}},RY6=`vercel.ai.error.${TY6}`,ui4=Symbol.for(RY6),zx=class extends(u96=GY,g96=ui4,u96){constructor({data:Y,message:X=`Invalid response data: ${JSON.stringify(Y)}.`}){super({name:TY6,message:X});this[g96]=!0,this.data=Y}static isInstance(Y){return GY.hasMarker(Y,RY6)}},IY6=`vercel.ai.error.${CY6}`,mi4=Symbol.for(IY6),a61=class extends(l96=GY,m96=mi4,l96){constructor({text:Y,cause:X}){super({name:CY6,message:`JSON parsing failed: Text: ${Y}.
1581
1581
  Error message: ${NY6(X)}`,cause:X});this[m96]=!0,this.text=Y}static isInstance(Y){return GY.hasMarker(Y,IY6)}},jY6=`vercel.ai.error.${SY6}`,li4=Symbol.for(jY6),d61=class extends(c96=GY,d96=li4,c96){constructor({message:Y}){super({name:SY6,message:Y});this[d96]=!0}static isInstance(Y){return GY.hasMarker(Y,jY6)}},_Y6=`vercel.ai.error.${kY6}`,di4=Symbol.for(_Y6),lWY=class extends(n96=GY,p96=di4,n96){constructor({message:Y}){super({name:kY6,message:Y});this[p96]=!0}static isInstance(Y){return GY.hasMarker(Y,_Y6)}},fY6=`vercel.ai.error.${vY6}`,ci4=Symbol.for(fY6),VS1=class extends(a96=GY,i96=ci4,a96){constructor({message:Y="No content generated."}={}){super({name:vY6,message:Y});this[i96]=!0}static isInstance(Y){return GY.hasMarker(Y,fY6)}},hY6=`vercel.ai.error.${yY6}`,pi4=Symbol.for(hY6),dWY=class extends(o96=GY,r96=pi4,o96){constructor({errorName:Y=yY6,modelId:X,modelType:J,message:G=`No such ${J}: ${X}`}){super({name:Y,message:G});this[r96]=!0,this.modelId=X,this.modelType=J}static isInstance(Y){return GY.hasMarker(Y,hY6)}},xY6=`vercel.ai.error.${bY6}`,ni4=Symbol.for(xY6),cWY=class extends(t96=GY,s96=ni4,t96){constructor(Y){super({name:bY6,message:`Too many values for a single embedding call. The ${Y.provider} model "${Y.modelId}" can only embed up to ${Y.maxEmbeddingsPerCall} values per call, but ${Y.values.length} values were provided.`});this[s96]=!0,this.provider=Y.provider,this.modelId=Y.modelId,this.maxEmbeddingsPerCall=Y.maxEmbeddingsPerCall,this.values=Y.values}static isInstance(Y){return GY.hasMarker(Y,xY6)}},uY6=`vercel.ai.error.${gY6}`,ii4=Symbol.for(uY6),qx=class Y extends(YY6=GY,e96=ii4,YY6){constructor({value:X,cause:J}){super({name:gY6,message:`Type validation failed: Value: ${JSON.stringify(X)}.
1582
- Error message: ${NY6(J)}`,cause:J});this[e96]=!0,this.value=X}static isInstance(X){return GY.hasMarker(X,uY6)}static wrap({value:X,cause:J}){return Y.isInstance(J)&&J.value===X?J:new Y({value:X,cause:J})}},lY6=`vercel.ai.error.${mY6}`,ai4=Symbol.for(lY6),hz=class extends(JY6=GY,XY6=ai4,JY6){constructor({functionality:Y,message:X=`'${Y}' functionality not supported.`}){super({name:mY6,message:X});this[XY6]=!0,this.functionality=Y}static isInstance(Y){return GY.hasMarker(Y,lY6)}},GY6=class extends Error{constructor(Y,X){super(Y),this.name="ParseError",this.type=X.type,this.field=X.field,this.value=X.value,this.line=X.line}};si4=class extends TransformStream{constructor({onError:Y,onRetry:X,onComment:J}={}){let G;super({start(W){G=ri4({onEvent:(K)=>{W.enqueue(K)},onError(K){Y==="terminate"?W.error(K):typeof Y=="function"&&Y(K)},onRetry:X,onComment:J})},transform(W){G.feed(W)}})}};({btoa:ti4,atob:aWY}=globalThis);cY6=`vercel.ai.error.${dY6}`,Ya4=Symbol.for(cY6),rWY=class extends(ZY6=GY,WY6=Ya4,ZY6){constructor({url:Y,statusCode:X,statusText:J,cause:G,message:W=G==null?`Failed to download ${Y}: ${X} ${J}`:`Failed to download ${Y}: ${G}`}){super({name:dY6,message:W,cause:G});this[WY6]=!0,this.url=Y,this.statusCode=X,this.statusText=J}static isInstance(Y){return GY.hasMarker(Y,cY6)}},nH=Xa4();Ja4=["fetch failed","failed to fetch"];$a4=/"__proto__"\s*:/,Fa4=/"constructor"\s*:/;za4=Symbol("Let zodToJsonSchema decide on which parser to use"),KY6={name:void 0,$refStrategy:"root",basePath:["#"],effectStrategy:"input",pipeStrategy:"all",dateStrategy:"format:date-time",mapStrategy:"entries",removeAdditionalStrategy:"passthrough",allowedAdditionalProperties:!0,rejectedAdditionalProperties:!1,definitionPath:"definitions",strictUnions:!1,definitions:{},errorMessages:!1,patternStrategy:"escape",applyRegexFlags:!1,emailStrategy:"format:email",base64Strategy:"contentEncoding:base64",nameStrategy:"ref"};cH={cuid:/^[cC][^\s-]{8,}$/,cuid2:/^[0-9a-z]+$/,ulid:/^[0-9A-HJKMNP-TV-Z]{26}$/,email:/^(?!\.)(?!.*\.\.)([a-zA-Z0-9_'+\-\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\-]*\.)+[a-zA-Z]{2,}$/,emoji:()=>{if(JS1===void 0)JS1=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u");return JS1},uuid:/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/,ipv4:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ipv4Cidr:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,ipv6:/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,ipv6Cidr:/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,base64:/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,base64url:/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,nanoid:/^[a-zA-Z0-9_-]{21}$/,jwt:/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/};Ta4=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");KS1={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};HS1=Symbol.for("vercel.ai.schema");tY6=((Y)=>{return Y.Unknown="unknown",Y.OpenAIResponsesV1="openai-responses-v1",Y.XAIResponsesV1="xai-responses-v1",Y.AnthropicClaudeV1="anthropic-claude-v1",Y.GoogleGeminiV1="google-gemini-v1",Y})(tY6||{}),US1=F.object({id:F.string().nullish(),format:F.enum(tY6).nullish(),index:F.number().optional()}).loose(),zr4=F.object({type:F.literal("reasoning.summary"),summary:F.string()}).extend(US1.shape),Ur4=F.object({type:F.literal("reasoning.encrypted"),data:F.string()}).extend(US1.shape),qr4=F.object({type:F.literal("reasoning.text"),text:F.string().nullish(),signature:F.string().nullish()}).extend(US1.shape),qS1=F.union([zr4,Ur4,qr4]),p61=F.union([qS1,F.unknown().transform(()=>null)]),DS1=F.array(p61).transform((Y)=>Y.filter((X)=>!!X)),sWY=F.union([F.object({delta:F.object({reasoning_details:F.array(p61)})}).transform((Y)=>Y.delta.reasoning_details.filter(ZS1)),F.object({message:F.object({reasoning_details:F.array(p61)})}).transform((Y)=>Y.message.reasoning_details.filter(ZS1)),F.object({text:F.string(),reasoning_details:F.array(p61)}).transform((Y)=>Y.reasoning_details.filter(ZS1))]),X41=F.object({error:F.object({code:F.union([F.string(),F.number()]).nullable().optional().default(null),message:F.string(),type:F.string().nullable().optional().default(null),param:F.any().nullable().optional().default(null)}).passthrough()}).passthrough();lR=Fr4({errorSchema:X41,errorToMessage:Dr4}),eY6=F.object({type:F.literal("file"),file:F.object({hash:F.string(),name:F.string(),content:F.array(F.object({type:F.string(),text:F.string().optional()}).catchall(F.any())).optional()}).catchall(F.any())}).catchall(F.any()),BS1=F.object({provider:F.string(),reasoning_details:F.array(qS1).optional(),annotations:F.array(eY6).optional(),usage:F.object({promptTokens:F.number(),promptTokensDetails:F.object({cachedTokens:F.number()}).catchall(F.any()).optional(),completionTokens:F.number(),completionTokensDetails:F.object({reasoningTokens:F.number()}).catchall(F.any()).optional(),totalTokens:F.number(),cost:F.number().optional(),costDetails:F.object({upstreamInferenceCost:F.number()}).catchall(F.any()).optional()}).catchall(F.any())}).catchall(F.any()),YX6=F.object({openrouter:F.object({reasoning_details:F.array(qS1).optional(),annotations:F.array(eY6).optional()}).optional()}).optional();n61=new WeakMap;Or4=["wav","mp3","aiff","aac","ogg","flac","m4a","pcm16","pcm24"];Nr4={mpeg:"mp3",mp3:"mp3","x-wav":"wav",wave:"wav",wav:"wav",ogg:"ogg",vorbis:"ogg",aac:"aac","x-aac":"aac",m4a:"m4a","x-m4a":"m4a",mp4:"m4a",aiff:"aiff","x-aiff":"aiff",flac:"flac","x-flac":"flac",pcm16:"pcm16",pcm24:"pcm24"};XZY=F.union([F.literal("auto"),F.literal("none"),F.literal("required"),F.object({type:F.literal("function"),function:F.object({name:F.string()})})]);Tr4=F.object({type:F.literal("image_url"),image_url:F.object({url:F.string()}).passthrough()}).passthrough(),Rr4=F.union([Tr4,F.unknown().transform(()=>null)]),GX6=F.array(Rr4).transform((Y)=>Y.filter((X)=>!!X)),WX6=F.object({id:F.string().optional(),model:F.string().optional(),provider:F.string().optional(),usage:F.object({prompt_tokens:F.number(),prompt_tokens_details:F.object({cached_tokens:F.number(),cache_write_tokens:F.number().nullish()}).passthrough().nullish(),completion_tokens:F.number(),completion_tokens_details:F.object({reasoning_tokens:F.number()}).passthrough().nullish(),total_tokens:F.number(),cost:F.number().optional(),cost_details:F.object({upstream_inference_cost:F.number().nullish()}).passthrough().nullish()}).passthrough().nullish()}).passthrough(),Cr4=F.union([WX6.extend({choices:F.array(F.object({message:F.object({role:F.literal("assistant"),content:F.string().nullable().optional(),reasoning:F.string().nullable().optional(),reasoning_details:DS1.nullish(),images:GX6.nullish(),tool_calls:F.array(F.object({id:F.string().optional().nullable(),type:F.literal("function"),function:F.object({name:F.string(),arguments:F.string().optional()}).passthrough()}).passthrough()).optional(),annotations:F.array(F.union([F.object({type:F.literal("url_citation"),url_citation:F.object({url:F.string(),title:F.string().optional(),start_index:F.number().optional(),end_index:F.number().optional(),content:F.string().optional()}).passthrough()}).passthrough(),F.object({type:F.literal("file_annotation"),file_annotation:F.object({file_id:F.string(),quote:F.string().optional()}).passthrough()}).passthrough(),F.object({type:F.literal("file"),file:F.object({hash:F.string(),name:F.string(),content:F.array(F.object({type:F.string(),text:F.string().optional()}).passthrough()).optional()}).passthrough()}).passthrough()])).nullish()}).passthrough(),index:F.number().nullish(),logprobs:F.object({content:F.array(F.object({token:F.string(),logprob:F.number(),top_logprobs:F.array(F.object({token:F.string(),logprob:F.number()}).passthrough())}).passthrough()).nullable()}).passthrough().nullable().optional(),finish_reason:F.string().optional().nullable()}).passthrough())}),X41.extend({user_id:F.string().optional()})]),Ir4=F.union([WX6.extend({choices:F.array(F.object({delta:F.object({role:F.enum(["assistant"]).optional(),content:F.string().nullish(),reasoning:F.string().nullish().optional(),reasoning_details:DS1.nullish(),images:GX6.nullish(),tool_calls:F.array(F.object({index:F.number().nullish(),id:F.string().nullish(),type:F.literal("function").optional(),function:F.object({name:F.string().nullish(),arguments:F.string().nullish()}).passthrough()}).passthrough()).nullish(),annotations:F.array(F.union([F.object({type:F.literal("url_citation"),url_citation:F.object({url:F.string(),title:F.string().optional(),start_index:F.number().optional(),end_index:F.number().optional(),content:F.string().optional()}).passthrough()}).passthrough(),F.object({type:F.literal("file_annotation"),file_annotation:F.object({file_id:F.string(),quote:F.string().optional()}).passthrough()}).passthrough(),F.object({type:F.literal("file"),file:F.object({hash:F.string(),name:F.string(),content:F.array(F.object({type:F.string(),text:F.string().optional()}).passthrough()).optional()}).passthrough()}).passthrough()])).nullish()}).passthrough().nullish(),logprobs:F.object({content:F.array(F.object({token:F.string(),logprob:F.number(),top_logprobs:F.array(F.object({token:F.string(),logprob:F.number()}).passthrough())}).passthrough()).nullable()}).passthrough().nullish(),finish_reason:F.string().nullable().optional(),index:F.number().nullish()}).passthrough())}),X41]);FY6=F.union([F.object({id:F.string().optional(),model:F.string().optional(),provider:F.string().optional(),choices:F.array(F.object({text:F.string(),reasoning:F.string().nullish().optional(),reasoning_details:DS1.nullish(),finish_reason:F.string().nullish(),index:F.number().nullish(),logprobs:F.object({tokens:F.array(F.string()),token_logprobs:F.array(F.number()),top_logprobs:F.array(F.record(F.string(),F.number())).nullable()}).passthrough().nullable().optional()}).passthrough()),usage:F.object({prompt_tokens:F.number(),prompt_tokens_details:F.object({cached_tokens:F.number(),cache_write_tokens:F.number().nullish()}).passthrough().nullish(),completion_tokens:F.number(),completion_tokens_details:F.object({reasoning_tokens:F.number()}).passthrough().nullish(),total_tokens:F.number(),cost:F.number().optional(),cost_details:F.object({upstream_inference_cost:F.number().nullish()}).passthrough().nullish()}).passthrough().nullish()}).passthrough(),X41]),_r4=F.object({prompt_tokens:F.number(),total_tokens:F.number(),cost:F.number().optional()}),vr4=F.object({object:F.literal("embedding"),embedding:F.array(F.number()),index:F.number().optional()}),fr4=F.object({id:F.string().optional(),object:F.literal("list"),data:F.array(vr4),model:F.string(),provider:F.string().optional(),usage:_r4.optional()}),hr4=F.object({id:F.string().optional(),object:F.string().optional(),created:F.number().optional(),model:F.string(),choices:F.array(F.object({index:F.number(),message:F.object({role:F.string(),content:F.string().nullable().optional(),images:F.array(F.object({type:F.literal("image_url"),image_url:F.object({url:F.string()})}).passthrough()).optional()}).passthrough(),finish_reason:F.string().nullable().optional()}).passthrough()),usage:F.object({prompt_tokens:F.number(),completion_tokens:F.number(),total_tokens:F.number()}).passthrough().optional()}).passthrough();KZY=OS1({compatibility:"strict"})});var pr4="https://assets.decocache.com/decocms/b2e2f64f-6025-45f7-9e8c-3b3ebdd073d8/openrouter_logojpg.jpg",J41;var NS1=A(()=>{ZX6();J41={info:{id:"openrouter",name:"OpenRouter",description:"Unified API for multiple AI providers",logo:pr4},supportedMethods:["oauth-pkce","api-key"],getOAuthUrl({callbackUrl:Y,codeChallenge:X,codeChallengeMethod:J}){return`https://openrouter.ai/auth?${new URLSearchParams({callback_url:Y,code_challenge:X,code_challenge_method:J})}`},async exchangeOAuthCode({code:Y,codeVerifier:X,codeChallengeMethod:J}){let G=await fetch("https://openrouter.ai/api/v1/auth/keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:Y,code_verifier:X,code_challenge_method:J}),signal:AbortSignal.timeout(30000)});if(!G.ok)throw Error(`OpenRouter OAuth exchange failed: ${G.status}`);let W=await G.json();return{apiKey:W.key,userId:W.user_id}},create(Y){let X=OS1({apiKey:Y}),J={Authorization:`Bearer ${Y}`};return{info:this.info,aiSdk:X,async listModels(){let G=(Q)=>{return{providerId:"openrouter",modelId:Q.id,title:Q.name,description:Q.description??null,logo:null,capabilities:[...new Set([...Q.architecture.input_modalities,...Q.architecture.output_modalities,...Q.supported_parameters?.includes("tools")?["tools"]:[],...Q.supported_parameters?.includes("reasoning")?["reasoning"]:[]])],limits:{contextWindow:Q.context_length??0,maxOutputTokens:Q.top_provider.max_completion_tokens||null},costs:{input:Q.pricing.prompt??0,output:Q.pricing.completion??0}}},W=await fetch("https://openrouter.ai/api/v1/models",{headers:J,signal:AbortSignal.timeout(30000)});if(!W.ok)throw Error(`OpenRouter listModels failed: ${W.status}`);let{data:K}=await W.json();return K.map(G)}}}}});var G41,QX6;var KX6=A(()=>{NS1();FW();G41=x4.DECO_AI_GATEWAY_URL??"https://ai-site.decocache.com",QX6={info:{id:"deco",name:"Deco AI Gateway",description:"Deco-managed keys with access to 100+ models",logo:"/logos/deco logo.svg"},supportedMethods:["oauth-pkce","api-key"],getOAuthUrl({callbackUrl:Y,codeChallenge:X,codeChallengeMethod:J,organizationId:G}){let W=new URLSearchParams({redirect_uri:Y,code_challenge:X,code_challenge_method:J,organization_id:G});return`${G41}/oauth/authorize?${W}`},async exchangeOAuthCode({code:Y,codeVerifier:X}){let J=await fetch(`${G41}/oauth/token`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:Y,code_verifier:X,grant_type:"authorization_code"}),signal:AbortSignal.timeout(30000)});if(!J.ok)throw Error(`Deco AI Gateway OAuth exchange failed: ${J.status}`);return{apiKey:(await J.json()).key}},async getTopUpUrl(Y,X,J="usd"){let G=await fetch(`${G41}/api/credits/topup`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${Y}`},body:JSON.stringify({amountCents:X,currency:J}),signal:AbortSignal.timeout(1e4)});if(!G.ok)throw Error(`Failed to create top-up checkout: ${G.status}`);return(await G.json()).url},async getCreditsBalance(Y,X){let J=await fetch(`${G41}/api/teams/${X}/balance`,{headers:{Authorization:`Bearer ${Y}`},signal:AbortSignal.timeout(1e4)});if(!J.ok)throw Error(`Failed to fetch credits balance: ${J.status}`);return{balanceCents:(await J.json()).balance_cents}},create(Y){return{...J41.create(Y),info:this.info}}}});var nr4,JK;var hw=A(()=>{V96();R96();NS1();KX6();FW();nr4=x4.DECO_AI_GATEWAY_ENABLED,JK={...nr4&&{deco:QX6},anthropic:F96,google:T96,openrouter:J41}});var wS1;var HX6=A(()=>{r1();p0();hw();wS1=h1({name:"AI_PROVIDERS_LIST",description:"List all available AI providers that can be connected with an API key",inputSchema:u0.object({}),outputSchema:u0.object({providers:u0.array(u0.object({id:u0.string(),name:u0.string(),description:u0.string(),logo:u0.string().optional(),supportedMethods:u0.array(u0.enum(["api-key","oauth-pkce"])),supportsTopUp:u0.boolean().optional(),supportsCredits:u0.boolean().optional()}))}),handler:async(Y,X)=>{return X0(X),U0(X),await X.access.check(),{providers:Object.values(JK).filter((G)=>!!G).map((G)=>({...G.info,supportedMethods:G.supportedMethods,supportsTopUp:!!G.getTopUpUrl,supportsCredits:!!G.getCreditsBalance}))}}})});var W41;var MS1=A(()=>{W41=["owner","admin"]});function ir4(Y){if(!Y)return;if(!("models"in Y))return;return Y.models??void 0}function $X6(Y,X){if(!Y)return!0;if(Y.includes("*:*"))return!0;return Y.some((J)=>J.startsWith(`${X}:`))}function FX6(Y,X,J){if(!Y)return!0;return Y.includes("*:*")||Y.includes(`${X}:*`)||Y.includes(`${X}:${J}`)}async function Z41(Y,X,J){if(!J||W41.includes(J))return;let G=await Y.selectFrom("organizationRole").select(["permission"]).where("organizationId","=",X).where("role","=",J).executeTakeFirst();if(!G?.permission)return;try{let W=JSON.parse(G.permission);return ir4(W)}catch{return console.error(`[model-permissions] Failed to parse permissions for role: ${J}`),[]}}var AS1=A(()=>{MS1()});var PS1;var VX6=A(()=>{r1();p0();AS1();PS1=h1({name:"AI_PROVIDERS_LIST_MODELS",description:"List models available from an AI provider using a specific API key",inputSchema:u0.object({keyId:u0.string().describe("The provider key ID to use")}),outputSchema:u0.object({models:u0.array(u0.object({providerId:u0.string(),modelId:u0.string(),title:u0.string(),description:u0.string().nullish(),logo:u0.string().nullish(),capabilities:u0.array(u0.string()),limits:u0.object({contextWindow:u0.coerce.number(),maxOutputTokens:u0.coerce.number().nullable()}).nullish(),costs:u0.object({input:u0.coerce.number(),output:u0.coerce.number()}).nullish()}))}),handler:async(Y,X)=>{X0(X);let J=U0(X);await X.access.check();let G=await Z41(X.db,J.id,X.auth.user?.role);return{models:(await X.aiProviders.listModels(Y.keyId,J.id)).filter((Z)=>FX6(G,Y.keyId,Z.modelId))}}})});var ES1;var zX6=A(()=>{r1();p0();hw();ES1=h1({name:"AI_PROVIDERS_ACTIVE",description:"List AI providers that have at least one API key configured",inputSchema:u0.object({}),outputSchema:u0.object({providers:u0.array(u0.object({id:u0.string(),name:u0.string(),description:u0.string(),logo:u0.string().optional(),keyCount:u0.number()}))}),handler:async(Y,X)=>{X0(X);let J=U0(X);await X.access.check();let G=await X.storage.aiProviderKeys.list({organizationId:J.id}),W=new Map;for(let Z of G)W.set(Z.providerId,(W.get(Z.providerId)??0)+1);return{providers:[...W.entries()].flatMap(([Z,Q])=>{let H=JK[Z];if(!H)return console.warn(`AI provider "${Z}" has stored keys but is not in the registry; skipping.`),[];return[{...H.info,keyCount:Q}]})}}})});var bw=A(()=>{wX()});var TS1,RS1;var CS1=A(()=>{r1();p0();bw();TS1=u0.object({id:u0.string(),providerId:u0.string(),label:u0.string(),createdAt:u0.string()}),RS1=h1({name:"AI_PROVIDER_KEY_CREATE",description:"Store an API key for an AI provider",inputSchema:u0.object({providerId:u0.enum(a7),label:u0.string().min(1).max(100),apiKey:u0.string().min(1)}),outputSchema:TS1,handler:async(Y,X)=>{X0(X);let J=U0(X);await X.access.check();let G=await X.storage.aiProviderKeys.create({providerId:Y.providerId,label:Y.label,apiKey:Y.apiKey,organizationId:J.id,createdBy:X.auth.user.id});return{id:G.id,providerId:G.providerId,label:G.label,createdAt:G.createdAt}}})});var IS1;var UX6=A(()=>{r1();p0();IS1=h1({name:"AI_PROVIDER_KEY_DELETE",description:"Delete a stored AI provider API key",inputSchema:u0.object({keyId:u0.string().describe("The provider key ID to delete")}),outputSchema:u0.object({success:u0.boolean()}),handler:async(Y,X)=>{X0(X);let J=U0(X);return await X.access.check(),await X.storage.aiProviderKeys.delete(Y.keyId,J.id),{success:!0}}})});var SS1;var qX6=A(()=>{r1();p0();bw();AS1();SS1=h1({name:"AI_PROVIDER_KEY_LIST",description:"List stored API keys for AI providers (metadata only, no secrets)",inputSchema:u0.object({providerId:u0.enum(a7).optional()}),outputSchema:u0.object({keys:u0.array(u0.object({id:u0.string(),providerId:u0.string(),label:u0.string(),createdBy:u0.string(),createdAt:u0.string()}))}),handler:async(Y,X)=>{X0(X);let J=U0(X);await X.access.check();let[G,W]=await Promise.all([X.storage.aiProviderKeys.list({organizationId:J.id,providerId:Y.providerId}),Z41(X.db,J.id,X.auth.user?.role)]);return{keys:G.filter((Z)=>$X6(W,Z.id)).map(({organizationId:Z,...Q})=>Q)}}})});import{createHash as ar4,randomBytes as rr4}from"crypto";function DX6(){return rr4(32).toString("base64url")}function BX6(Y){return ar4("sha256").update(Y).digest("base64url")}var LX6=()=>{};var jS1;var OX6=A(()=>{r1();p0();bw();hw();LX6();FW();jS1=h1({name:"AI_PROVIDER_OAUTH_URL",description:"Get the OAuth authorization URL for a provider that supports OAuth PKCE",inputSchema:u0.object({providerId:u0.enum(a7),callbackUrl:u0.string().url().refine((Y)=>{let X=x4.BASE_URL??`http://localhost:${x4.PORT}`;return new URL(Y).origin===new URL(X).origin},{message:"callbackUrl must be on the same origin as BASE_URL"})}),outputSchema:u0.object({url:u0.string(),stateToken:u0.string().describe("Opaque token \u2014 pass to AI_PROVIDER_OAUTH_EXCHANGE")}),handler:async(Y,X)=>{X0(X);let J=U0(X);await X.access.check();let G=JK[Y.providerId];if(!G)throw Error(`Unknown provider: ${Y.providerId}`);if(!G.supportedMethods.includes("oauth-pkce")||!G.getOAuthUrl)throw Error(`Provider ${Y.providerId} does not support OAuth PKCE`);let W=DX6(),K=BX6(W),Z=await X.storage.oauthPkceStates.create(W,J.id,X.auth.user.id),Q=new URL(Y.callbackUrl);Q.searchParams.set("state",Z);let H={callbackUrl:Q.toString(),codeChallenge:K,codeChallengeMethod:"S256",organizationId:J.id};return{url:G.getOAuthUrl(H),stateToken:Z}}})});var kS1;var NX6=A(()=>{r1();p0();bw();hw();CS1();kS1=h1({name:"AI_PROVIDER_OAUTH_EXCHANGE",description:"Exchange an OAuth authorization code for an API key and store it",inputSchema:u0.object({providerId:u0.enum(a7),code:u0.string(),stateToken:u0.string().describe("The stateToken returned by AI_PROVIDER_OAUTH_URL"),label:u0.string().min(1).max(100).default("Connected via OAuth")}),outputSchema:TS1,handler:async(Y,X)=>{X0(X);let J=U0(X);await X.access.check();let G=JK[Y.providerId];if(!G)throw Error(`Unknown provider: ${Y.providerId}`);if(!G.supportedMethods.includes("oauth-pkce")||!G.exchangeOAuthCode)throw Error(`Provider ${Y.providerId} does not support OAuth PKCE`);let W=Z9(X);if(!W)throw Error("Unable to determine user ID");let K=await X.storage.oauthPkceStates.consume(Y.stateToken,J.id,W),{apiKey:Z}=await G.exchangeOAuthCode({code:Y.code,codeVerifier:K,codeChallengeMethod:"S256"}),Q=await X.storage.aiProviderKeys.upsert({providerId:Y.providerId,label:Y.label,apiKey:Z,organizationId:J.id,createdBy:W});return{id:Q.id,providerId:Q.providerId,label:Q.label,createdAt:Q.createdAt}}})});var _S1;var wX6=A(()=>{r1();p0();bw();hw();_S1=h1({name:"AI_PROVIDER_TOPUP_URL",description:"Get a checkout URL to top up credits for a provider that supports it (e.g. Deco AI Gateway)",inputSchema:u0.object({providerId:u0.enum(a7),keyId:u0.string().describe("The ID of the stored provider key to top up"),amountCents:u0.number().int().positive().describe("Amount in cents (e.g. 1000 = $10.00)"),currency:u0.enum(["usd","brl"]).default("usd")}),outputSchema:u0.object({url:u0.string().describe("Checkout URL \u2014 open in browser to complete payment")}),handler:async(Y,X)=>{X0(X);let J=U0(X);await X.access.check();let G=JK[Y.providerId];if(!G)throw Error(`Unknown provider: ${Y.providerId}`);if(!G.getTopUpUrl)throw Error(`Provider ${Y.providerId} does not support credit top-ups`);let{apiKey:W}=await X.storage.aiProviderKeys.resolve(Y.keyId,J.id);return{url:await G.getTopUpUrl(W,Y.amountCents,Y.currency)}}})});var vS1;var MX6=A(()=>{r1();p0();bw();hw();EE1();vS1=h1({name:"AI_PROVIDER_CREDITS",description:"Get the current credit balance for a provider (providers that support it, e.g. Deco AI Gateway)",inputSchema:u0.object({providerId:u0.enum(a7)}),outputSchema:u0.object({balanceCents:u0.number().describe("Remaining balance in cents (e.g. 1000 = $10.00)")}),handler:async(Y,X)=>{X0(X);let J=U0(X);await X.access.check();let G=Z9(X);if(!G)throw Error("Unable to determine user ID");let W=JK[Y.providerId];if(!W)throw Error(`Unknown provider: ${Y.providerId}`);if(!W.getCreditsBalance)throw Error(`Provider ${Y.providerId} does not expose a credits balance`);let K=await po0(G);return W.getCreditsBalance(K,J.id)}})});var AX6=A(()=>{HX6();VX6();zX6();CS1();UX6();qX6();OX6();NX6();wX6();MX6()});var EX6={};M6(EX6,{managementMCP:()=>er4,ALL_TOOLS:()=>PX6});var sr4,tr4,PX6,er4=async(Y)=>{let X=null;if(Y.organization){let W=await Y.storage.organizationSettings.get(Y.organization.id),K=await Y.storage.projects.list(Y.organization.id),Z=new Set(W?.enabled_plugins??[]);for(let Q of K)if(Q.enabledPlugins)for(let H of Q.enabledPlugins)Z.add(H);X=Z.size>0?[...Z]:null}let J=JX0(PX6,X),G=new gA({name:"mcp-mesh-management",version:"1.0.0"},{capabilities:{tools:{}}});for(let W of J){let K=W.inputSchema&&typeof W.inputSchema==="object"&&"shape"in W.inputSchema?W.inputSchema:F.object({}),Z=W.outputSchema&&typeof W.outputSchema==="object"&&"shape"in W.outputSchema?W.outputSchema:void 0,Q=K.shape,H=Z?.shape;G.registerTool(W.name,{description:W.description??"",inputSchema:Q,outputSchema:H,annotations:W.annotations,_meta:W._meta},async($)=>{Y.access.setToolName(W.name);try{let V=await W.execute($,Y);return{content:[{type:"text",text:JSON.stringify(V)}],structuredContent:V}}catch(V){return{content:[{type:"text",text:`Error: ${V.message}`}],isError:!0}}})}return G};var TX6=A(()=>{Qa();xc();r1();Fo0();ko0();G66();K66();L66();E66();j66();v66();l66();Y46();U46();N46();k46();n46();a46();AX6();sr4=[WC1,ZC1,QC1,KC1,HC1,FC1,VC1,zC1,UC1,qC1,DC1,LE1,wE1,ME1,CR1,IR1,SR1,bR1,gR1,uR1,mR1,lR1,dR1,cR1,pR1,nR1,iR1,Q66,aR1,rR1,sR1,tR1,eR1,YC1,XC1,JC1,GC1,$E1,VE1,zE1,FE1,jR1,kR1,_R1,vR1,fR1,yR1,hR1,aC1,qE1,DE1,BE1,_C1,vC1,fC1,yC1,hC1,bC1,CC1,IC1,SC1,jC1,kC1,xC1,gC1,uC1,mC1,lC1,pC1,nC1,iC1,BC1,LC1,OC1,NC1,wC1,MC1,AC1,PC1,EC1,TC1,RC1,wS1,PS1,ES1,RS1,IS1,SS1,jS1,kS1,_S1,vS1],tr4=GX0(),PX6=[...sr4,...tr4]});function Yo4(Y){return[{permissions:{self:["*"]},getTools:async()=>{let{ALL_TOOLS:X}=await Promise.resolve().then(() => (TX6(),EX6));return X.map((J)=>{return{name:J.name,inputSchema:F.toJSONSchema(J.inputSchema,{unrepresentable:"any"}),outputSchema:J.outputSchema?F.toJSONSchema(J.outputSchema,{unrepresentable:"any"}):void 0,description:J.description}})},data:mZ1(LH(),Y)},{data:uZ1()},{data:gZ1(Y)}]}async function RX6(Y,X){try{let J=Ww(),G=new iP1(x4.ENCRYPTION_KEY),W=new aP1(J.db,G),K=new rP1(J.db),Z=Yo4(Y);try{await K.create({organizationId:Y,slug:PK,name:RM,description:"Organization administration and settings",enabledPlugins:null,ui:null})}catch(Q){console.warn("Could not create org-admin project (may already exist):",Q)}await Promise.all(Z.map(async(Q)=>{let H=null;if(Q.permissions)H=(await dR.api.createApiKey({body:{name:`${Q.data.app_name??crypto.randomUUID()}-mcp`,userId:X,permissions:Q.permissions,rateLimitEnabled:!1,metadata:{organization:{id:Y},purpose:"default-org-connections"}}}))?.key;let $=await oT({id:"pending",title:Q.data.title,connection_type:Q.data.connection_type,connection_url:Q.data.connection_url,connection_token:Q.data.connection_token,connection_headers:Q.data.connection_headers}).catch(()=>null),V=await Q.getTools?.()??$?.tools??null,z=$?.scopes?.length?$.scopes:null,U=Q.data.id?Q.data.id.startsWith(`${Y}_`)?Q.data.id:`${Y}_${Q.data.id}`:void 0;await W.create({...Q.data,id:U,tools:V,configuration_scopes:z,organization_id:Y,created_by:X,connection_token:Q.data.connection_token??H})}))}catch(J){console.error("Error creating default MCP connections:",J)}}var CX6=A(()=>{wX();kE();fh();Gr0();Wr0();Zr0();d11();r1();FW();t11()});async function Jo4(Y){let{user:X,token:J}=Y;if(!J?.idToken)return;let G;try{G=_9(J.idToken)}catch{return}let{preferred_username:W,upn:K}=G,Z=[W,K].filter(($)=>typeof $==="string"&&$.length>0&&$.toLowerCase()!==X.email.toLowerCase()).map(($)=>$.toLowerCase());if(Z.length===0)return;let{db:Q}=Ww(),H=await Q.selectFrom("user").selectAll().where("email","in",Z).where("id","!=",X.id).executeTakeFirst();if(!H)return;console.info(`[SSO] Merging duplicate user ${X.id} (${X.email}) into original ${H.id} (${H.email})`);try{await Q.transaction().execute(async($)=>{await S1`UPDATE "account" SET "userId" = ${H.id} WHERE "userId" = ${X.id}`.execute($),await S1`UPDATE "session" SET "userId" = ${H.id} WHERE "userId" = ${X.id}`.execute($),await S1`
1582
+ Error message: ${NY6(J)}`,cause:J});this[e96]=!0,this.value=X}static isInstance(X){return GY.hasMarker(X,uY6)}static wrap({value:X,cause:J}){return Y.isInstance(J)&&J.value===X?J:new Y({value:X,cause:J})}},lY6=`vercel.ai.error.${mY6}`,ai4=Symbol.for(lY6),hz=class extends(JY6=GY,XY6=ai4,JY6){constructor({functionality:Y,message:X=`'${Y}' functionality not supported.`}){super({name:mY6,message:X});this[XY6]=!0,this.functionality=Y}static isInstance(Y){return GY.hasMarker(Y,lY6)}},GY6=class extends Error{constructor(Y,X){super(Y),this.name="ParseError",this.type=X.type,this.field=X.field,this.value=X.value,this.line=X.line}};si4=class extends TransformStream{constructor({onError:Y,onRetry:X,onComment:J}={}){let G;super({start(W){G=ri4({onEvent:(K)=>{W.enqueue(K)},onError(K){Y==="terminate"?W.error(K):typeof Y=="function"&&Y(K)},onRetry:X,onComment:J})},transform(W){G.feed(W)}})}};({btoa:ti4,atob:aWY}=globalThis);cY6=`vercel.ai.error.${dY6}`,Ya4=Symbol.for(cY6),rWY=class extends(ZY6=GY,WY6=Ya4,ZY6){constructor({url:Y,statusCode:X,statusText:J,cause:G,message:W=G==null?`Failed to download ${Y}: ${X} ${J}`:`Failed to download ${Y}: ${G}`}){super({name:dY6,message:W,cause:G});this[WY6]=!0,this.url=Y,this.statusCode=X,this.statusText=J}static isInstance(Y){return GY.hasMarker(Y,cY6)}},nH=Xa4();Ja4=["fetch failed","failed to fetch"];$a4=/"__proto__"\s*:/,Fa4=/"constructor"\s*:/;za4=Symbol("Let zodToJsonSchema decide on which parser to use"),KY6={name:void 0,$refStrategy:"root",basePath:["#"],effectStrategy:"input",pipeStrategy:"all",dateStrategy:"format:date-time",mapStrategy:"entries",removeAdditionalStrategy:"passthrough",allowedAdditionalProperties:!0,rejectedAdditionalProperties:!1,definitionPath:"definitions",strictUnions:!1,definitions:{},errorMessages:!1,patternStrategy:"escape",applyRegexFlags:!1,emailStrategy:"format:email",base64Strategy:"contentEncoding:base64",nameStrategy:"ref"};cH={cuid:/^[cC][^\s-]{8,}$/,cuid2:/^[0-9a-z]+$/,ulid:/^[0-9A-HJKMNP-TV-Z]{26}$/,email:/^(?!\.)(?!.*\.\.)([a-zA-Z0-9_'+\-\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\-]*\.)+[a-zA-Z]{2,}$/,emoji:()=>{if(JS1===void 0)JS1=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u");return JS1},uuid:/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/,ipv4:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ipv4Cidr:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,ipv6:/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,ipv6Cidr:/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,base64:/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,base64url:/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,nanoid:/^[a-zA-Z0-9_-]{21}$/,jwt:/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/};Ta4=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");KS1={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};HS1=Symbol.for("vercel.ai.schema");tY6=((Y)=>{return Y.Unknown="unknown",Y.OpenAIResponsesV1="openai-responses-v1",Y.XAIResponsesV1="xai-responses-v1",Y.AnthropicClaudeV1="anthropic-claude-v1",Y.GoogleGeminiV1="google-gemini-v1",Y})(tY6||{}),US1=F.object({id:F.string().nullish(),format:F.enum(tY6).nullish(),index:F.number().optional()}).loose(),zr4=F.object({type:F.literal("reasoning.summary"),summary:F.string()}).extend(US1.shape),Ur4=F.object({type:F.literal("reasoning.encrypted"),data:F.string()}).extend(US1.shape),qr4=F.object({type:F.literal("reasoning.text"),text:F.string().nullish(),signature:F.string().nullish()}).extend(US1.shape),qS1=F.union([zr4,Ur4,qr4]),p61=F.union([qS1,F.unknown().transform(()=>null)]),DS1=F.array(p61).transform((Y)=>Y.filter((X)=>!!X)),sWY=F.union([F.object({delta:F.object({reasoning_details:F.array(p61)})}).transform((Y)=>Y.delta.reasoning_details.filter(ZS1)),F.object({message:F.object({reasoning_details:F.array(p61)})}).transform((Y)=>Y.message.reasoning_details.filter(ZS1)),F.object({text:F.string(),reasoning_details:F.array(p61)}).transform((Y)=>Y.reasoning_details.filter(ZS1))]),X41=F.object({error:F.object({code:F.union([F.string(),F.number()]).nullable().optional().default(null),message:F.string(),type:F.string().nullable().optional().default(null),param:F.any().nullable().optional().default(null)}).passthrough()}).passthrough();lR=Fr4({errorSchema:X41,errorToMessage:Dr4}),eY6=F.object({type:F.literal("file"),file:F.object({hash:F.string(),name:F.string(),content:F.array(F.object({type:F.string(),text:F.string().optional()}).catchall(F.any())).optional()}).catchall(F.any())}).catchall(F.any()),BS1=F.object({provider:F.string(),reasoning_details:F.array(qS1).optional(),annotations:F.array(eY6).optional(),usage:F.object({promptTokens:F.number(),promptTokensDetails:F.object({cachedTokens:F.number()}).catchall(F.any()).optional(),completionTokens:F.number(),completionTokensDetails:F.object({reasoningTokens:F.number()}).catchall(F.any()).optional(),totalTokens:F.number(),cost:F.number().optional(),costDetails:F.object({upstreamInferenceCost:F.number()}).catchall(F.any()).optional()}).catchall(F.any())}).catchall(F.any()),YX6=F.object({openrouter:F.object({reasoning_details:F.array(qS1).optional(),annotations:F.array(eY6).optional()}).optional()}).optional();n61=new WeakMap;Or4=["wav","mp3","aiff","aac","ogg","flac","m4a","pcm16","pcm24"];Nr4={mpeg:"mp3",mp3:"mp3","x-wav":"wav",wave:"wav",wav:"wav",ogg:"ogg",vorbis:"ogg",aac:"aac","x-aac":"aac",m4a:"m4a","x-m4a":"m4a",mp4:"m4a",aiff:"aiff","x-aiff":"aiff",flac:"flac","x-flac":"flac",pcm16:"pcm16",pcm24:"pcm24"};XZY=F.union([F.literal("auto"),F.literal("none"),F.literal("required"),F.object({type:F.literal("function"),function:F.object({name:F.string()})})]);Tr4=F.object({type:F.literal("image_url"),image_url:F.object({url:F.string()}).passthrough()}).passthrough(),Rr4=F.union([Tr4,F.unknown().transform(()=>null)]),GX6=F.array(Rr4).transform((Y)=>Y.filter((X)=>!!X)),WX6=F.object({id:F.string().optional(),model:F.string().optional(),provider:F.string().optional(),usage:F.object({prompt_tokens:F.number(),prompt_tokens_details:F.object({cached_tokens:F.number(),cache_write_tokens:F.number().nullish()}).passthrough().nullish(),completion_tokens:F.number(),completion_tokens_details:F.object({reasoning_tokens:F.number()}).passthrough().nullish(),total_tokens:F.number(),cost:F.number().optional(),cost_details:F.object({upstream_inference_cost:F.number().nullish()}).passthrough().nullish()}).passthrough().nullish()}).passthrough(),Cr4=F.union([WX6.extend({choices:F.array(F.object({message:F.object({role:F.literal("assistant"),content:F.string().nullable().optional(),reasoning:F.string().nullable().optional(),reasoning_details:DS1.nullish(),images:GX6.nullish(),tool_calls:F.array(F.object({id:F.string().optional().nullable(),type:F.literal("function"),function:F.object({name:F.string(),arguments:F.string().optional()}).passthrough()}).passthrough()).optional(),annotations:F.array(F.union([F.object({type:F.literal("url_citation"),url_citation:F.object({url:F.string(),title:F.string().optional(),start_index:F.number().optional(),end_index:F.number().optional(),content:F.string().optional()}).passthrough()}).passthrough(),F.object({type:F.literal("file_annotation"),file_annotation:F.object({file_id:F.string(),quote:F.string().optional()}).passthrough()}).passthrough(),F.object({type:F.literal("file"),file:F.object({hash:F.string(),name:F.string(),content:F.array(F.object({type:F.string(),text:F.string().optional()}).passthrough()).optional()}).passthrough()}).passthrough()])).nullish()}).passthrough(),index:F.number().nullish(),logprobs:F.object({content:F.array(F.object({token:F.string(),logprob:F.number(),top_logprobs:F.array(F.object({token:F.string(),logprob:F.number()}).passthrough())}).passthrough()).nullable()}).passthrough().nullable().optional(),finish_reason:F.string().optional().nullable()}).passthrough())}),X41.extend({user_id:F.string().optional()})]),Ir4=F.union([WX6.extend({choices:F.array(F.object({delta:F.object({role:F.enum(["assistant"]).optional(),content:F.string().nullish(),reasoning:F.string().nullish().optional(),reasoning_details:DS1.nullish(),images:GX6.nullish(),tool_calls:F.array(F.object({index:F.number().nullish(),id:F.string().nullish(),type:F.literal("function").optional(),function:F.object({name:F.string().nullish(),arguments:F.string().nullish()}).passthrough()}).passthrough()).nullish(),annotations:F.array(F.union([F.object({type:F.literal("url_citation"),url_citation:F.object({url:F.string(),title:F.string().optional(),start_index:F.number().optional(),end_index:F.number().optional(),content:F.string().optional()}).passthrough()}).passthrough(),F.object({type:F.literal("file_annotation"),file_annotation:F.object({file_id:F.string(),quote:F.string().optional()}).passthrough()}).passthrough(),F.object({type:F.literal("file"),file:F.object({hash:F.string(),name:F.string(),content:F.array(F.object({type:F.string(),text:F.string().optional()}).passthrough()).optional()}).passthrough()}).passthrough()])).nullish()}).passthrough().nullish(),logprobs:F.object({content:F.array(F.object({token:F.string(),logprob:F.number(),top_logprobs:F.array(F.object({token:F.string(),logprob:F.number()}).passthrough())}).passthrough()).nullable()}).passthrough().nullish(),finish_reason:F.string().nullable().optional(),index:F.number().nullish()}).passthrough())}),X41]);FY6=F.union([F.object({id:F.string().optional(),model:F.string().optional(),provider:F.string().optional(),choices:F.array(F.object({text:F.string(),reasoning:F.string().nullish().optional(),reasoning_details:DS1.nullish(),finish_reason:F.string().nullish(),index:F.number().nullish(),logprobs:F.object({tokens:F.array(F.string()),token_logprobs:F.array(F.number()),top_logprobs:F.array(F.record(F.string(),F.number())).nullable()}).passthrough().nullable().optional()}).passthrough()),usage:F.object({prompt_tokens:F.number(),prompt_tokens_details:F.object({cached_tokens:F.number(),cache_write_tokens:F.number().nullish()}).passthrough().nullish(),completion_tokens:F.number(),completion_tokens_details:F.object({reasoning_tokens:F.number()}).passthrough().nullish(),total_tokens:F.number(),cost:F.number().optional(),cost_details:F.object({upstream_inference_cost:F.number().nullish()}).passthrough().nullish()}).passthrough().nullish()}).passthrough(),X41]),_r4=F.object({prompt_tokens:F.number(),total_tokens:F.number(),cost:F.number().optional()}),vr4=F.object({object:F.literal("embedding"),embedding:F.array(F.number()),index:F.number().optional()}),fr4=F.object({id:F.string().optional(),object:F.literal("list"),data:F.array(vr4),model:F.string(),provider:F.string().optional(),usage:_r4.optional()}),hr4=F.object({id:F.string().optional(),object:F.string().optional(),created:F.number().optional(),model:F.string(),choices:F.array(F.object({index:F.number(),message:F.object({role:F.string(),content:F.string().nullable().optional(),images:F.array(F.object({type:F.literal("image_url"),image_url:F.object({url:F.string()})}).passthrough()).optional()}).passthrough(),finish_reason:F.string().nullable().optional()}).passthrough()),usage:F.object({prompt_tokens:F.number(),completion_tokens:F.number(),total_tokens:F.number()}).passthrough().optional()}).passthrough();KZY=OS1({compatibility:"strict"})});var pr4="https://assets.decocache.com/decocms/b2e2f64f-6025-45f7-9e8c-3b3ebdd073d8/openrouter_logojpg.jpg",J41;var NS1=A(()=>{ZX6();J41={info:{id:"openrouter",name:"OpenRouter",description:"Unified API for multiple AI providers",logo:pr4},supportedMethods:["oauth-pkce","api-key"],getOAuthUrl({callbackUrl:Y,codeChallenge:X,codeChallengeMethod:J}){return`https://openrouter.ai/auth?${new URLSearchParams({callback_url:Y,code_challenge:X,code_challenge_method:J})}`},async exchangeOAuthCode({code:Y,codeVerifier:X,codeChallengeMethod:J}){let G=await fetch("https://openrouter.ai/api/v1/auth/keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:Y,code_verifier:X,code_challenge_method:J}),signal:AbortSignal.timeout(30000)});if(!G.ok)throw Error(`OpenRouter OAuth exchange failed: ${G.status}`);let W=await G.json();return{apiKey:W.key,userId:W.user_id}},create(Y){let X=OS1({apiKey:Y}),J={Authorization:`Bearer ${Y}`};return{info:this.info,aiSdk:X,async listModels(){let G=(Q)=>{return{providerId:"openrouter",modelId:Q.id,title:Q.name,description:Q.description??null,logo:null,capabilities:[...new Set([...Q.architecture.input_modalities,...Q.architecture.output_modalities,...Q.supported_parameters?.includes("tools")?["tools"]:[],...Q.supported_parameters?.includes("reasoning")?["reasoning"]:[]])],limits:{contextWindow:Q.context_length??0,maxOutputTokens:Q.top_provider.max_completion_tokens||null},costs:{input:Number(Q.pricing.prompt)||0,output:Number(Q.pricing.completion)||0}}},W=await fetch("https://openrouter.ai/api/v1/models",{headers:J,signal:AbortSignal.timeout(30000)});if(!W.ok)throw Error(`OpenRouter listModels failed: ${W.status}`);let{data:K}=await W.json();return K.map(G)}}}}});var G41,QX6;var KX6=A(()=>{NS1();FW();G41=x4.DECO_AI_GATEWAY_URL??"https://ai-site.decocache.com",QX6={info:{id:"deco",name:"Deco AI Gateway",description:"Deco-managed keys with access to 100+ models",logo:"/logos/deco logo.svg"},supportedMethods:["oauth-pkce","api-key"],getOAuthUrl({callbackUrl:Y,codeChallenge:X,codeChallengeMethod:J,organizationId:G}){let W=new URLSearchParams({redirect_uri:Y,code_challenge:X,code_challenge_method:J,organization_id:G});return`${G41}/oauth/authorize?${W}`},async exchangeOAuthCode({code:Y,codeVerifier:X}){let J=await fetch(`${G41}/oauth/token`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:Y,code_verifier:X,grant_type:"authorization_code"}),signal:AbortSignal.timeout(30000)});if(!J.ok)throw Error(`Deco AI Gateway OAuth exchange failed: ${J.status}`);return{apiKey:(await J.json()).key}},async getTopUpUrl(Y,X,J="usd"){let G=await fetch(`${G41}/api/credits/topup`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${Y}`},body:JSON.stringify({amountCents:X,currency:J}),signal:AbortSignal.timeout(1e4)});if(!G.ok)throw Error(`Failed to create top-up checkout: ${G.status}`);return(await G.json()).url},async getCreditsBalance(Y,X){let J=await fetch(`${G41}/api/teams/${X}/balance`,{headers:{Authorization:`Bearer ${Y}`},signal:AbortSignal.timeout(1e4)});if(!J.ok)throw Error(`Failed to fetch credits balance: ${J.status}`);return{balanceCents:(await J.json()).balance_cents}},create(Y){return{...J41.create(Y),info:this.info}}}});var nr4,JK;var hw=A(()=>{V96();R96();NS1();KX6();FW();nr4=x4.DECO_AI_GATEWAY_ENABLED,JK={...nr4&&{deco:QX6},anthropic:F96,google:T96,openrouter:J41}});var wS1;var HX6=A(()=>{r1();p0();hw();wS1=h1({name:"AI_PROVIDERS_LIST",description:"List all available AI providers that can be connected with an API key",inputSchema:u0.object({}),outputSchema:u0.object({providers:u0.array(u0.object({id:u0.string(),name:u0.string(),description:u0.string(),logo:u0.string().optional(),supportedMethods:u0.array(u0.enum(["api-key","oauth-pkce"])),supportsTopUp:u0.boolean().optional(),supportsCredits:u0.boolean().optional()}))}),handler:async(Y,X)=>{return X0(X),U0(X),await X.access.check(),{providers:Object.values(JK).filter((G)=>!!G).map((G)=>({...G.info,supportedMethods:G.supportedMethods,supportsTopUp:!!G.getTopUpUrl,supportsCredits:!!G.getCreditsBalance}))}}})});var W41;var MS1=A(()=>{W41=["owner","admin"]});function ir4(Y){if(!Y)return;if(!("models"in Y))return;return Y.models??void 0}function $X6(Y,X){if(!Y)return!0;if(Y.includes("*:*"))return!0;return Y.some((J)=>J.startsWith(`${X}:`))}function FX6(Y,X,J){if(!Y)return!0;return Y.includes("*:*")||Y.includes(`${X}:*`)||Y.includes(`${X}:${J}`)}async function Z41(Y,X,J){if(!J||W41.includes(J))return;let G=await Y.selectFrom("organizationRole").select(["permission"]).where("organizationId","=",X).where("role","=",J).executeTakeFirst();if(!G?.permission)return;try{let W=JSON.parse(G.permission);return ir4(W)}catch{return console.error(`[model-permissions] Failed to parse permissions for role: ${J}`),[]}}var AS1=A(()=>{MS1()});var PS1;var VX6=A(()=>{r1();p0();AS1();PS1=h1({name:"AI_PROVIDERS_LIST_MODELS",description:"List models available from an AI provider using a specific API key",inputSchema:u0.object({keyId:u0.string().describe("The provider key ID to use")}),outputSchema:u0.object({models:u0.array(u0.object({providerId:u0.string(),modelId:u0.string(),title:u0.string(),description:u0.string().nullish(),logo:u0.string().nullish(),capabilities:u0.array(u0.string()),limits:u0.object({contextWindow:u0.coerce.number(),maxOutputTokens:u0.coerce.number().nullable()}).nullish(),costs:u0.object({input:u0.coerce.number(),output:u0.coerce.number()}).nullish()}))}),handler:async(Y,X)=>{X0(X);let J=U0(X);await X.access.check();let G=await Z41(X.db,J.id,X.auth.user?.role);return{models:(await X.aiProviders.listModels(Y.keyId,J.id)).filter((Z)=>FX6(G,Y.keyId,Z.modelId))}}})});var ES1;var zX6=A(()=>{r1();p0();hw();ES1=h1({name:"AI_PROVIDERS_ACTIVE",description:"List AI providers that have at least one API key configured",inputSchema:u0.object({}),outputSchema:u0.object({providers:u0.array(u0.object({id:u0.string(),name:u0.string(),description:u0.string(),logo:u0.string().optional(),keyCount:u0.number()}))}),handler:async(Y,X)=>{X0(X);let J=U0(X);await X.access.check();let G=await X.storage.aiProviderKeys.list({organizationId:J.id}),W=new Map;for(let Z of G)W.set(Z.providerId,(W.get(Z.providerId)??0)+1);return{providers:[...W.entries()].flatMap(([Z,Q])=>{let H=JK[Z];if(!H)return console.warn(`AI provider "${Z}" has stored keys but is not in the registry; skipping.`),[];return[{...H.info,keyCount:Q}]})}}})});var bw=A(()=>{wX()});var TS1,RS1;var CS1=A(()=>{r1();p0();bw();TS1=u0.object({id:u0.string(),providerId:u0.string(),label:u0.string(),createdAt:u0.string()}),RS1=h1({name:"AI_PROVIDER_KEY_CREATE",description:"Store an API key for an AI provider",inputSchema:u0.object({providerId:u0.enum(a7),label:u0.string().min(1).max(100),apiKey:u0.string().min(1)}),outputSchema:TS1,handler:async(Y,X)=>{X0(X);let J=U0(X);await X.access.check();let G=await X.storage.aiProviderKeys.create({providerId:Y.providerId,label:Y.label,apiKey:Y.apiKey,organizationId:J.id,createdBy:X.auth.user.id});return{id:G.id,providerId:G.providerId,label:G.label,createdAt:G.createdAt}}})});var IS1;var UX6=A(()=>{r1();p0();IS1=h1({name:"AI_PROVIDER_KEY_DELETE",description:"Delete a stored AI provider API key",inputSchema:u0.object({keyId:u0.string().describe("The provider key ID to delete")}),outputSchema:u0.object({success:u0.boolean()}),handler:async(Y,X)=>{X0(X);let J=U0(X);return await X.access.check(),await X.storage.aiProviderKeys.delete(Y.keyId,J.id),{success:!0}}})});var SS1;var qX6=A(()=>{r1();p0();bw();AS1();SS1=h1({name:"AI_PROVIDER_KEY_LIST",description:"List stored API keys for AI providers (metadata only, no secrets)",inputSchema:u0.object({providerId:u0.enum(a7).optional()}),outputSchema:u0.object({keys:u0.array(u0.object({id:u0.string(),providerId:u0.string(),label:u0.string(),createdBy:u0.string(),createdAt:u0.string()}))}),handler:async(Y,X)=>{X0(X);let J=U0(X);await X.access.check();let[G,W]=await Promise.all([X.storage.aiProviderKeys.list({organizationId:J.id,providerId:Y.providerId}),Z41(X.db,J.id,X.auth.user?.role)]);return{keys:G.filter((Z)=>$X6(W,Z.id)).map(({organizationId:Z,...Q})=>Q)}}})});import{createHash as ar4,randomBytes as rr4}from"crypto";function DX6(){return rr4(32).toString("base64url")}function BX6(Y){return ar4("sha256").update(Y).digest("base64url")}var LX6=()=>{};var jS1;var OX6=A(()=>{r1();p0();bw();hw();LX6();FW();jS1=h1({name:"AI_PROVIDER_OAUTH_URL",description:"Get the OAuth authorization URL for a provider that supports OAuth PKCE",inputSchema:u0.object({providerId:u0.enum(a7),callbackUrl:u0.string().url().refine((Y)=>{let X=x4.BASE_URL??`http://localhost:${x4.PORT}`;return new URL(Y).origin===new URL(X).origin},{message:"callbackUrl must be on the same origin as BASE_URL"})}),outputSchema:u0.object({url:u0.string(),stateToken:u0.string().describe("Opaque token \u2014 pass to AI_PROVIDER_OAUTH_EXCHANGE")}),handler:async(Y,X)=>{X0(X);let J=U0(X);await X.access.check();let G=JK[Y.providerId];if(!G)throw Error(`Unknown provider: ${Y.providerId}`);if(!G.supportedMethods.includes("oauth-pkce")||!G.getOAuthUrl)throw Error(`Provider ${Y.providerId} does not support OAuth PKCE`);let W=DX6(),K=BX6(W),Z=await X.storage.oauthPkceStates.create(W,J.id,X.auth.user.id),Q=new URL(Y.callbackUrl);Q.searchParams.set("state",Z);let H={callbackUrl:Q.toString(),codeChallenge:K,codeChallengeMethod:"S256",organizationId:J.id};return{url:G.getOAuthUrl(H),stateToken:Z}}})});var kS1;var NX6=A(()=>{r1();p0();bw();hw();CS1();kS1=h1({name:"AI_PROVIDER_OAUTH_EXCHANGE",description:"Exchange an OAuth authorization code for an API key and store it",inputSchema:u0.object({providerId:u0.enum(a7),code:u0.string(),stateToken:u0.string().describe("The stateToken returned by AI_PROVIDER_OAUTH_URL"),label:u0.string().min(1).max(100).default("Connected via OAuth")}),outputSchema:TS1,handler:async(Y,X)=>{X0(X);let J=U0(X);await X.access.check();let G=JK[Y.providerId];if(!G)throw Error(`Unknown provider: ${Y.providerId}`);if(!G.supportedMethods.includes("oauth-pkce")||!G.exchangeOAuthCode)throw Error(`Provider ${Y.providerId} does not support OAuth PKCE`);let W=Z9(X);if(!W)throw Error("Unable to determine user ID");let K=await X.storage.oauthPkceStates.consume(Y.stateToken,J.id,W),{apiKey:Z}=await G.exchangeOAuthCode({code:Y.code,codeVerifier:K,codeChallengeMethod:"S256"}),Q=await X.storage.aiProviderKeys.upsert({providerId:Y.providerId,label:Y.label,apiKey:Z,organizationId:J.id,createdBy:W});return{id:Q.id,providerId:Q.providerId,label:Q.label,createdAt:Q.createdAt}}})});var _S1;var wX6=A(()=>{r1();p0();bw();hw();_S1=h1({name:"AI_PROVIDER_TOPUP_URL",description:"Get a checkout URL to top up credits for a provider that supports it (e.g. Deco AI Gateway)",inputSchema:u0.object({providerId:u0.enum(a7),keyId:u0.string().describe("The ID of the stored provider key to top up"),amountCents:u0.number().int().positive().describe("Amount in cents (e.g. 1000 = $10.00)"),currency:u0.enum(["usd","brl"]).default("usd")}),outputSchema:u0.object({url:u0.string().describe("Checkout URL \u2014 open in browser to complete payment")}),handler:async(Y,X)=>{X0(X);let J=U0(X);await X.access.check();let G=JK[Y.providerId];if(!G)throw Error(`Unknown provider: ${Y.providerId}`);if(!G.getTopUpUrl)throw Error(`Provider ${Y.providerId} does not support credit top-ups`);let{apiKey:W}=await X.storage.aiProviderKeys.resolve(Y.keyId,J.id);return{url:await G.getTopUpUrl(W,Y.amountCents,Y.currency)}}})});var vS1;var MX6=A(()=>{r1();p0();bw();hw();EE1();vS1=h1({name:"AI_PROVIDER_CREDITS",description:"Get the current credit balance for a provider (providers that support it, e.g. Deco AI Gateway)",inputSchema:u0.object({providerId:u0.enum(a7)}),outputSchema:u0.object({balanceCents:u0.number().describe("Remaining balance in cents (e.g. 1000 = $10.00)")}),handler:async(Y,X)=>{X0(X);let J=U0(X);await X.access.check();let G=Z9(X);if(!G)throw Error("Unable to determine user ID");let W=JK[Y.providerId];if(!W)throw Error(`Unknown provider: ${Y.providerId}`);if(!W.getCreditsBalance)throw Error(`Provider ${Y.providerId} does not expose a credits balance`);let K=await po0(G);return W.getCreditsBalance(K,J.id)}})});var AX6=A(()=>{HX6();VX6();zX6();CS1();UX6();qX6();OX6();NX6();wX6();MX6()});var EX6={};M6(EX6,{managementMCP:()=>er4,ALL_TOOLS:()=>PX6});var sr4,tr4,PX6,er4=async(Y)=>{let X=null;if(Y.organization){let W=await Y.storage.organizationSettings.get(Y.organization.id),K=await Y.storage.projects.list(Y.organization.id),Z=new Set(W?.enabled_plugins??[]);for(let Q of K)if(Q.enabledPlugins)for(let H of Q.enabledPlugins)Z.add(H);X=Z.size>0?[...Z]:null}let J=JX0(PX6,X),G=new gA({name:"mcp-mesh-management",version:"1.0.0"},{capabilities:{tools:{}}});for(let W of J){let K=W.inputSchema&&typeof W.inputSchema==="object"&&"shape"in W.inputSchema?W.inputSchema:F.object({}),Z=W.outputSchema&&typeof W.outputSchema==="object"&&"shape"in W.outputSchema?W.outputSchema:void 0,Q=K.shape,H=Z?.shape;G.registerTool(W.name,{description:W.description??"",inputSchema:Q,outputSchema:H,annotations:W.annotations,_meta:W._meta},async($)=>{Y.access.setToolName(W.name);try{let V=await W.execute($,Y);return{content:[{type:"text",text:JSON.stringify(V)}],structuredContent:V}}catch(V){return{content:[{type:"text",text:`Error: ${V.message}`}],isError:!0}}})}return G};var TX6=A(()=>{Qa();xc();r1();Fo0();ko0();G66();K66();L66();E66();j66();v66();l66();Y46();U46();N46();k46();n46();a46();AX6();sr4=[WC1,ZC1,QC1,KC1,HC1,FC1,VC1,zC1,UC1,qC1,DC1,LE1,wE1,ME1,CR1,IR1,SR1,bR1,gR1,uR1,mR1,lR1,dR1,cR1,pR1,nR1,iR1,Q66,aR1,rR1,sR1,tR1,eR1,YC1,XC1,JC1,GC1,$E1,VE1,zE1,FE1,jR1,kR1,_R1,vR1,fR1,yR1,hR1,aC1,qE1,DE1,BE1,_C1,vC1,fC1,yC1,hC1,bC1,CC1,IC1,SC1,jC1,kC1,xC1,gC1,uC1,mC1,lC1,pC1,nC1,iC1,BC1,LC1,OC1,NC1,wC1,MC1,AC1,PC1,EC1,TC1,RC1,wS1,PS1,ES1,RS1,IS1,SS1,jS1,kS1,_S1,vS1],tr4=GX0(),PX6=[...sr4,...tr4]});function Yo4(Y){return[{permissions:{self:["*"]},getTools:async()=>{let{ALL_TOOLS:X}=await Promise.resolve().then(() => (TX6(),EX6));return X.map((J)=>{return{name:J.name,inputSchema:F.toJSONSchema(J.inputSchema,{unrepresentable:"any"}),outputSchema:J.outputSchema?F.toJSONSchema(J.outputSchema,{unrepresentable:"any"}):void 0,description:J.description}})},data:mZ1(LH(),Y)},{data:uZ1()},{data:gZ1(Y)}]}async function RX6(Y,X){try{let J=Ww(),G=new iP1(x4.ENCRYPTION_KEY),W=new aP1(J.db,G),K=new rP1(J.db),Z=Yo4(Y);try{await K.create({organizationId:Y,slug:PK,name:RM,description:"Organization administration and settings",enabledPlugins:null,ui:null})}catch(Q){console.warn("Could not create org-admin project (may already exist):",Q)}await Promise.all(Z.map(async(Q)=>{let H=null;if(Q.permissions)H=(await dR.api.createApiKey({body:{name:`${Q.data.app_name??crypto.randomUUID()}-mcp`,userId:X,permissions:Q.permissions,rateLimitEnabled:!1,metadata:{organization:{id:Y},purpose:"default-org-connections"}}}))?.key;let $=await oT({id:"pending",title:Q.data.title,connection_type:Q.data.connection_type,connection_url:Q.data.connection_url,connection_token:Q.data.connection_token,connection_headers:Q.data.connection_headers}).catch(()=>null),V=await Q.getTools?.()??$?.tools??null,z=$?.scopes?.length?$.scopes:null,U=Q.data.id?Q.data.id.startsWith(`${Y}_`)?Q.data.id:`${Y}_${Q.data.id}`:void 0;await W.create({...Q.data,id:U,tools:V,configuration_scopes:z,organization_id:Y,created_by:X,connection_token:Q.data.connection_token??H})}))}catch(J){console.error("Error creating default MCP connections:",J)}}var CX6=A(()=>{wX();kE();fh();Gr0();Wr0();Zr0();d11();r1();FW();t11()});async function Jo4(Y){let{user:X,token:J}=Y;if(!J?.idToken)return;let G;try{G=_9(J.idToken)}catch{return}let{preferred_username:W,upn:K}=G,Z=[W,K].filter(($)=>typeof $==="string"&&$.length>0&&$.toLowerCase()!==X.email.toLowerCase()).map(($)=>$.toLowerCase());if(Z.length===0)return;let{db:Q}=Ww(),H=await Q.selectFrom("user").selectAll().where("email","in",Z).where("id","!=",X.id).executeTakeFirst();if(!H)return;console.info(`[SSO] Merging duplicate user ${X.id} (${X.email}) into original ${H.id} (${H.email})`);try{await Q.transaction().execute(async($)=>{await S1`UPDATE "account" SET "userId" = ${H.id} WHERE "userId" = ${X.id}`.execute($),await S1`UPDATE "session" SET "userId" = ${H.id} WHERE "userId" = ${X.id}`.execute($),await S1`
1583
1583
  UPDATE "member" SET "userId" = ${H.id}
1584
1584
  WHERE "userId" = ${X.id}
1585
1585
  AND "organizationId" NOT IN (
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2014 Iced Development
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,105 @@
1
+ pg-connection-string
2
+ ====================
3
+
4
+ [![NPM](https://nodei.co/npm/pg-connection-string.png?compact=true)](https://nodei.co/npm/pg-connection-string/)
5
+
6
+ Functions for dealing with a PostgresSQL connection string
7
+
8
+ `parse` method taken from [node-postgres](https://github.com/brianc/node-postgres.git)
9
+ Copyright (c) 2010-2014 Brian Carlson (brian.m.carlson@gmail.com)
10
+ MIT License
11
+
12
+ ## Usage
13
+
14
+ ```js
15
+ const parse = require('pg-connection-string').parse;
16
+
17
+ const config = parse('postgres://someuser:somepassword@somehost:381/somedatabase')
18
+ ```
19
+
20
+ The resulting config contains a subset of the following properties:
21
+
22
+ * `user` - User with which to authenticate to the server
23
+ * `password` - Corresponding password
24
+ * `host` - Postgres server hostname or, for UNIX domain sockets, the socket filename
25
+ * `port` - port on which to connect
26
+ * `database` - Database name within the server
27
+ * `client_encoding` - string encoding the client will use
28
+ * `ssl`, either a boolean or an object with properties
29
+ * `rejectUnauthorized`
30
+ * `cert`
31
+ * `key`
32
+ * `ca`
33
+ * any other query parameters (for example, `application_name`) are preserved intact.
34
+
35
+ ### ClientConfig Compatibility for TypeScript
36
+
37
+ The pg-connection-string `ConnectionOptions` interface is not compatible with the `ClientConfig` interface that [pg.Client](https://node-postgres.com/apis/client) expects. To remedy this, use the `parseIntoClientConfig` function instead of `parse`:
38
+
39
+ ```ts
40
+ import { ClientConfig } from 'pg';
41
+ import { parseIntoClientConfig } from 'pg-connection-string';
42
+
43
+ const config: ClientConfig = parseIntoClientConfig('postgres://someuser:somepassword@somehost:381/somedatabase')
44
+ ```
45
+
46
+ You can also use `toClientConfig` to convert an existing `ConnectionOptions` interface into a `ClientConfig` interface:
47
+
48
+ ```ts
49
+ import { ClientConfig } from 'pg';
50
+ import { parse, toClientConfig } from 'pg-connection-string';
51
+
52
+ const config = parse('postgres://someuser:somepassword@somehost:381/somedatabase')
53
+ const clientConfig: ClientConfig = toClientConfig(config)
54
+ ```
55
+
56
+ ## Connection Strings
57
+
58
+ The short summary of acceptable URLs is:
59
+
60
+ * `socket:<path>?<query>` - UNIX domain socket
61
+ * `postgres://<user>:<password>@<host>:<port>/<database>?<query>` - TCP connection
62
+
63
+ But see below for more details.
64
+
65
+ ### UNIX Domain Sockets
66
+
67
+ When user and password are not given, the socket path follows `socket:`, as in `socket:/var/run/pgsql`.
68
+ This form can be shortened to just a path: `/var/run/pgsql`.
69
+
70
+ When user and password are given, they are included in the typical URL positions, with an empty `host`, as in `socket://user:pass@/var/run/pgsql`.
71
+
72
+ Query parameters follow a `?` character, including the following special query parameters:
73
+
74
+ * `db=<database>` - sets the database name (urlencoded)
75
+ * `encoding=<encoding>` - sets the `client_encoding` property
76
+
77
+ ### TCP Connections
78
+
79
+ TCP connections to the Postgres server are indicated with `pg:` or `postgres:` schemes (in fact, any scheme but `socket:` is accepted).
80
+ If username and password are included, they should be urlencoded.
81
+ The database name, however, should *not* be urlencoded.
82
+
83
+ Query parameters follow a `?` character, including the following special query parameters:
84
+ * `host=<host>` - sets `host` property, overriding the URL's host
85
+ * `encoding=<encoding>` - sets the `client_encoding` property
86
+ * `ssl=1`, `ssl=true`, `ssl=0`, `ssl=false` - sets `ssl` to true or false, accordingly
87
+ * `uselibpqcompat=true` - use libpq semantics
88
+ * `sslmode=<sslmode>` when `uselibpqcompat=true` is not set
89
+ * `sslmode=disable` - sets `ssl` to false
90
+ * `sslmode=no-verify` - sets `ssl` to `{ rejectUnauthorized: false }`
91
+ * `sslmode=prefer`, `sslmode=require`, `sslmode=verify-ca`, `sslmode=verify-full` - sets `ssl` to true
92
+ * `sslmode=<sslmode>` when `uselibpqcompat=true`
93
+ * `sslmode=disable` - sets `ssl` to false
94
+ * `sslmode=prefer` - sets `ssl` to `{ rejectUnauthorized: false }`
95
+ * `sslmode=require` - sets `ssl` to `{ rejectUnauthorized: false }` unless `sslrootcert` is specified, in which case it behaves like `verify-ca`
96
+ * `sslmode=verify-ca` - sets `ssl` to `{ checkServerIdentity: no-op }` (verify CA, but not server identity). This verifies the presented certificate against the effective CA specified in sslrootcert.
97
+ * `sslmode=verify-full` - sets `ssl` to `{}` (verify CA and server identity)
98
+ * `sslcert=<filename>` - reads data from the given file and includes the result as `ssl.cert`
99
+ * `sslkey=<filename>` - reads data from the given file and includes the result as `ssl.key`
100
+ * `sslrootcert=<filename>` - reads data from the given file and includes the result as `ssl.ca`
101
+
102
+ A bare relative URL, such as `salesdata`, will indicate a database name while leaving other properties empty.
103
+
104
+ > [!CAUTION]
105
+ > Choosing an sslmode other than verify-full has serious security implications. Please read https://www.postgresql.org/docs/current/libpq-ssl.html#LIBPQ-SSL-SSLMODE-STATEMENTS to understand the trade-offs.
@@ -0,0 +1,8 @@
1
+ // ESM wrapper for pg-connection-string
2
+ import connectionString from '../index.js'
3
+
4
+ // Re-export the parse function
5
+ export default connectionString.parse
6
+ export const parse = connectionString.parse
7
+ export const toClientConfig = connectionString.toClientConfig
8
+ export const parseIntoClientConfig = connectionString.parseIntoClientConfig
@@ -0,0 +1,36 @@
1
+ import { ClientConfig } from 'pg'
2
+
3
+ export function parse(connectionString: string, options?: Options): ConnectionOptions
4
+
5
+ export interface Options {
6
+ // Use libpq semantics when interpreting the connection string
7
+ useLibpqCompat?: boolean
8
+ }
9
+
10
+ interface SSLConfig {
11
+ ca?: string
12
+ cert?: string | null
13
+ key?: string
14
+ rejectUnauthorized?: boolean
15
+ }
16
+
17
+ export interface ConnectionOptions {
18
+ host: string | null
19
+ password?: string
20
+ user?: string
21
+ port?: string | null
22
+ database: string | null | undefined
23
+ client_encoding?: string
24
+ ssl?: boolean | string | SSLConfig
25
+
26
+ application_name?: string
27
+ fallback_application_name?: string
28
+ options?: string
29
+ keepalives?: number
30
+
31
+ // We allow any other options to be passed through
32
+ [key: string]: unknown
33
+ }
34
+
35
+ export function toClientConfig(config: ConnectionOptions): ClientConfig
36
+ export function parseIntoClientConfig(connectionString: string): ClientConfig
@@ -0,0 +1,231 @@
1
+ 'use strict'
2
+
3
+ //Parse method copied from https://github.com/brianc/node-postgres
4
+ //Copyright (c) 2010-2014 Brian Carlson (brian.m.carlson@gmail.com)
5
+ //MIT License
6
+
7
+ //parses a connection string
8
+ function parse(str, options = {}) {
9
+ //unix socket
10
+ if (str.charAt(0) === '/') {
11
+ const config = str.split(' ')
12
+ return { host: config[0], database: config[1] }
13
+ }
14
+
15
+ // Check for empty host in URL
16
+
17
+ const config = {}
18
+ let result
19
+ let dummyHost = false
20
+ if (/ |%[^a-f0-9]|%[a-f0-9][^a-f0-9]/i.test(str)) {
21
+ // Ensure spaces are encoded as %20
22
+ str = encodeURI(str).replace(/%25(\d\d)/g, '%$1')
23
+ }
24
+
25
+ try {
26
+ try {
27
+ result = new URL(str, 'postgres://base')
28
+ } catch (e) {
29
+ // The URL is invalid so try again with a dummy host
30
+ result = new URL(str.replace('@/', '@___DUMMY___/'), 'postgres://base')
31
+ dummyHost = true
32
+ }
33
+ } catch (err) {
34
+ // Remove the input from the error message to avoid leaking sensitive information
35
+ err.input && (err.input = '*****REDACTED*****')
36
+ throw err
37
+ }
38
+
39
+ // We'd like to use Object.fromEntries() here but Node.js 10 does not support it
40
+ for (const entry of result.searchParams.entries()) {
41
+ config[entry[0]] = entry[1]
42
+ }
43
+
44
+ config.user = config.user || decodeURIComponent(result.username)
45
+ config.password = config.password || decodeURIComponent(result.password)
46
+
47
+ if (result.protocol == 'socket:') {
48
+ config.host = decodeURI(result.pathname)
49
+ config.database = result.searchParams.get('db')
50
+ config.client_encoding = result.searchParams.get('encoding')
51
+ return config
52
+ }
53
+ const hostname = dummyHost ? '' : result.hostname
54
+ if (!config.host) {
55
+ // Only set the host if there is no equivalent query param.
56
+ config.host = decodeURIComponent(hostname)
57
+ } else if (hostname && /^%2f/i.test(hostname)) {
58
+ // Only prepend the hostname to the pathname if it is not a URL encoded Unix socket host.
59
+ result.pathname = hostname + result.pathname
60
+ }
61
+ if (!config.port) {
62
+ // Only set the port if there is no equivalent query param.
63
+ config.port = result.port
64
+ }
65
+
66
+ const pathname = result.pathname.slice(1) || null
67
+ config.database = pathname ? decodeURI(pathname) : null
68
+
69
+ if (config.ssl === 'true' || config.ssl === '1') {
70
+ config.ssl = true
71
+ }
72
+
73
+ if (config.ssl === '0') {
74
+ config.ssl = false
75
+ }
76
+
77
+ if (config.sslcert || config.sslkey || config.sslrootcert || config.sslmode) {
78
+ config.ssl = {}
79
+ }
80
+
81
+ // Only try to load fs if we expect to read from the disk
82
+ const fs = config.sslcert || config.sslkey || config.sslrootcert ? require('fs') : null
83
+
84
+ if (config.sslcert) {
85
+ config.ssl.cert = fs.readFileSync(config.sslcert).toString()
86
+ }
87
+
88
+ if (config.sslkey) {
89
+ config.ssl.key = fs.readFileSync(config.sslkey).toString()
90
+ }
91
+
92
+ if (config.sslrootcert) {
93
+ config.ssl.ca = fs.readFileSync(config.sslrootcert).toString()
94
+ }
95
+
96
+ if (options.useLibpqCompat && config.uselibpqcompat) {
97
+ throw new Error('Both useLibpqCompat and uselibpqcompat are set. Please use only one of them.')
98
+ }
99
+
100
+ if (config.uselibpqcompat === 'true' || options.useLibpqCompat) {
101
+ switch (config.sslmode) {
102
+ case 'disable': {
103
+ config.ssl = false
104
+ break
105
+ }
106
+ case 'prefer': {
107
+ config.ssl.rejectUnauthorized = false
108
+ break
109
+ }
110
+ case 'require': {
111
+ if (config.sslrootcert) {
112
+ // If a root CA is specified, behavior of `sslmode=require` will be the same as that of `verify-ca`
113
+ config.ssl.checkServerIdentity = function () {}
114
+ } else {
115
+ config.ssl.rejectUnauthorized = false
116
+ }
117
+ break
118
+ }
119
+ case 'verify-ca': {
120
+ if (!config.ssl.ca) {
121
+ throw new Error(
122
+ 'SECURITY WARNING: Using sslmode=verify-ca requires specifying a CA with sslrootcert. If a public CA is used, verify-ca allows connections to a server that somebody else may have registered with the CA, making you vulnerable to Man-in-the-Middle attacks. Either specify a custom CA certificate with sslrootcert parameter or use sslmode=verify-full for proper security.'
123
+ )
124
+ }
125
+ config.ssl.checkServerIdentity = function () {}
126
+ break
127
+ }
128
+ case 'verify-full': {
129
+ break
130
+ }
131
+ }
132
+ } else {
133
+ switch (config.sslmode) {
134
+ case 'disable': {
135
+ config.ssl = false
136
+ break
137
+ }
138
+ case 'prefer':
139
+ case 'require':
140
+ case 'verify-ca':
141
+ case 'verify-full': {
142
+ if (config.sslmode !== 'verify-full') {
143
+ deprecatedSslModeWarning(config.sslmode)
144
+ }
145
+ break
146
+ }
147
+ case 'no-verify': {
148
+ config.ssl.rejectUnauthorized = false
149
+ break
150
+ }
151
+ }
152
+ }
153
+
154
+ return config
155
+ }
156
+
157
+ // convert pg-connection-string ssl config to a ClientConfig.ConnectionOptions
158
+ function toConnectionOptions(sslConfig) {
159
+ const connectionOptions = Object.entries(sslConfig).reduce((c, [key, value]) => {
160
+ // we explicitly check for undefined and null instead of `if (value)` because some
161
+ // options accept falsy values. Example: `ssl.rejectUnauthorized = false`
162
+ if (value !== undefined && value !== null) {
163
+ c[key] = value
164
+ }
165
+
166
+ return c
167
+ }, {})
168
+
169
+ return connectionOptions
170
+ }
171
+
172
+ // convert pg-connection-string config to a ClientConfig
173
+ function toClientConfig(config) {
174
+ const poolConfig = Object.entries(config).reduce((c, [key, value]) => {
175
+ if (key === 'ssl') {
176
+ const sslConfig = value
177
+
178
+ if (typeof sslConfig === 'boolean') {
179
+ c[key] = sslConfig
180
+ }
181
+
182
+ if (typeof sslConfig === 'object') {
183
+ c[key] = toConnectionOptions(sslConfig)
184
+ }
185
+ } else if (value !== undefined && value !== null) {
186
+ if (key === 'port') {
187
+ // when port is not specified, it is converted into an empty string
188
+ // we want to avoid NaN or empty string as a values in ClientConfig
189
+ if (value !== '') {
190
+ const v = parseInt(value, 10)
191
+ if (isNaN(v)) {
192
+ throw new Error(`Invalid ${key}: ${value}`)
193
+ }
194
+
195
+ c[key] = v
196
+ }
197
+ } else {
198
+ c[key] = value
199
+ }
200
+ }
201
+
202
+ return c
203
+ }, {})
204
+
205
+ return poolConfig
206
+ }
207
+
208
+ // parses a connection string into ClientConfig
209
+ function parseIntoClientConfig(str) {
210
+ return toClientConfig(parse(str))
211
+ }
212
+
213
+ function deprecatedSslModeWarning(sslmode) {
214
+ if (!deprecatedSslModeWarning.warned && typeof process !== 'undefined' && process.emitWarning) {
215
+ deprecatedSslModeWarning.warned = true
216
+ process.emitWarning(`SECURITY WARNING: The SSL modes 'prefer', 'require', and 'verify-ca' are treated as aliases for 'verify-full'.
217
+ In the next major version (pg-connection-string v3.0.0 and pg v9.0.0), these modes will adopt standard libpq semantics, which have weaker security guarantees.
218
+
219
+ To prepare for this change:
220
+ - If you want the current behavior, explicitly use 'sslmode=verify-full'
221
+ - If you want libpq compatibility now, use 'uselibpqcompat=true&sslmode=${sslmode}'
222
+
223
+ See https://www.postgresql.org/docs/current/libpq-ssl.html for libpq SSL mode definitions.`)
224
+ }
225
+ }
226
+
227
+ module.exports = parse
228
+
229
+ parse.parse = parse
230
+ parse.toClientConfig = toClientConfig
231
+ parse.parseIntoClientConfig = parseIntoClientConfig