decocms 2.306.18 → 2.307.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (199) hide show
  1. package/dist/client/assets/{AlertCircle-D5P-n_4t.js → AlertCircle-CMCkCBRI.js} +1 -1
  2. package/dist/client/assets/{ArrowNarrowLeft-Cei5z2C8.js → ArrowNarrowLeft-BOEo-CBC.js} +1 -1
  3. package/dist/client/assets/{ArrowUpRight-Dp3G1ifa.js → ArrowUpRight-WdPk_kpa.js} +1 -1
  4. package/dist/client/assets/{Check-CHUfypwG.js → Check-CAMqJWCl.js} +1 -1
  5. package/dist/client/assets/{CheckCircle-CAevZeBb.js → CheckCircle-DZo2q-YR.js} +1 -1
  6. package/dist/client/assets/{ChevronDown-DGxIrQou.js → ChevronDown-Cx6Pbu_K.js} +1 -1
  7. package/dist/client/assets/{ChevronRight-D0NO-NBa.js → ChevronRight-B4kHNMva.js} +1 -1
  8. package/dist/client/assets/{ChevronUp-R3D-J8U2.js → ChevronUp-DE9NYg_0.js} +1 -1
  9. package/dist/client/assets/{Container-BOvWwKV4.js → Container-Ci-j0vPm.js} +1 -1
  10. package/dist/client/assets/{DotsVertical-rqLS7JIj.js → DotsVertical-D128coNp.js} +1 -1
  11. package/dist/client/assets/{LinkExternal01-BAOljpRH.js → LinkExternal01-Ch_n4-pR.js} +1 -1
  12. package/dist/client/assets/{Lock01-D8HWIvFW.js → Lock01-B6OWF8qs.js} +1 -1
  13. package/dist/client/assets/{Palette-DFI0YLk6.js → Palette-DpT03Fqa.js} +1 -1
  14. package/dist/client/assets/{Play-CI6lv5t3.js → Play-C8kJ2Esj.js} +1 -1
  15. package/dist/client/assets/{Plus-DyrPdLFx.js → Plus-C4z2sygw.js} +1 -1
  16. package/dist/client/assets/{RefreshCcw01-CGNxI6Ck.js → RefreshCcw01-ljF052Et.js} +1 -1
  17. package/dist/client/assets/{SearchMd-Xtv0xaPE.js → SearchMd-CqEX_8tR.js} +1 -1
  18. package/dist/client/assets/{Settings02-CJ_7W7Nn.js → Settings02-ByJHULD_.js} +1 -1
  19. package/dist/client/assets/{Shield01-C53xx91N.js → Shield01-DNagRkrI.js} +1 -1
  20. package/dist/client/assets/{Star01-BuYjjFhM.js → Star01-BthGo7Cr.js} +1 -1
  21. package/dist/client/assets/{Sun-C-z27smq.js → Sun-DIAjvzoS.js} +1 -1
  22. package/dist/client/assets/{Tool01-Ce_Me7cD.js → Tool01-DaKtGMUM.js} +1 -1
  23. package/dist/client/assets/{Trash01-Q2vImoqI.js → Trash01-CslzP03u.js} +1 -1
  24. package/dist/client/assets/{User01-CBFfH1NO.js → User01-BIVBcamj.js} +1 -1
  25. package/dist/client/assets/{Users03-FLHuEcPu.js → Users03-C4VkXkge.js} +1 -1
  26. package/dist/client/assets/{X-Y4H2YxIf.js → X-DwGqF9nr.js} +1 -1
  27. package/dist/client/assets/{XCircle-ABCC_xEK.js → XCircle-DZ8qXuj0.js} +1 -1
  28. package/dist/client/assets/{XClose-Dz62x8sU.js → XClose-CtlDoPHz.js} +1 -1
  29. package/dist/client/assets/{Zap-XI7LaIzu.js → Zap-BiGMObSD.js} +1 -1
  30. package/dist/client/assets/{ZapSquare-rh7PDy43.js → ZapSquare-CQqweAlr.js} +1 -1
  31. package/dist/client/assets/{accordion-BKGH1GWc.js → accordion-BJ1n_ugI.js} +1 -1
  32. package/dist/client/assets/{agent-icon-Tpw3Xml_.js → agent-icon-DEN9w1Xd.js} +1 -1
  33. package/dist/client/assets/{agents-list-BMtx_0ol.js → agents-list-Y2O9Vsq3.js} +1 -1
  34. package/dist/client/assets/ai-providers-CMrgygQq.js +1 -0
  35. package/dist/client/assets/{alert-dialog-Cv_ZG6Li.js → alert-dialog-4oindKfE.js} +1 -1
  36. package/dist/client/assets/{auth-catchall-CWSY8cPU.js → auth-catchall-BboupSOD.js} +1 -1
  37. package/dist/client/assets/{automation-list-row-cjwWU5Jn.js → automation-list-row-DZtgkt6i.js} +1 -1
  38. package/dist/client/assets/{automations-BWSQaVvj.js → automations-ChNNn4md.js} +1 -1
  39. package/dist/client/assets/{avatar-C5CAYMYh.js → avatar-B_3UpRA5.js} +1 -1
  40. package/dist/client/assets/{badge-DTOCxRAj.js → badge-Chay17Vz.js} +1 -1
  41. package/dist/client/assets/{brand-context-CPJ-WXdh.js → brand-context-CtihgiQK.js} +1 -1
  42. package/dist/client/assets/{card-CmdabgMS.js → card-CskiuoWn.js} +1 -1
  43. package/dist/client/assets/{chat-context-v3shdBDS.js → chat-context-bXL3-eRr.js} +1 -1
  44. package/dist/client/assets/{checkbox-CdfCoEXC.js → checkbox-t7fuWMLj.js} +1 -1
  45. package/dist/client/assets/{collection-detail-4V9zCrdC.js → collection-detail-DzqJPltw.js} +1 -1
  46. package/dist/client/assets/{collection-display-button-D4lZfaVu.js → collection-display-button-81MgYnbQ.js} +1 -1
  47. package/dist/client/assets/{collection-search-CtXh96Gm.js → collection-search-BcB09Avg.js} +1 -1
  48. package/dist/client/assets/{collection-search-CXt30faC.js → collection-search-DzEyUHPw.js} +1 -1
  49. package/dist/client/assets/{collection-table-wrapper-DfZVmP1H.js → collection-table-wrapper-B7PvqWRA.js} +1 -1
  50. package/dist/client/assets/{collection-tabs-C5ZYsU-l.js → collection-tabs-CqOncbDL.js} +1 -1
  51. package/dist/client/assets/{collections-ECsba_DJ.js → collections-D9BTFOqK.js} +1 -1
  52. package/dist/client/assets/{command-jqyaWRfY.js → command-BoJ1ciHh.js} +1 -1
  53. package/dist/client/assets/{connection-card-D9YKYwnO.js → connection-card-jO4vXtn1.js} +1 -1
  54. package/dist/client/assets/{connection-detail-DXs485Ka.js → connection-detail-D6Vn_GzM.js} +1 -1
  55. package/dist/client/assets/{connection-form-helpers-DX9_FJ-7.js → connection-form-helpers-BYYfT8Z2.js} +1 -1
  56. package/dist/client/assets/{connections-CtYO_Eid.js → connections-DDgYP8Zf.js} +1 -1
  57. package/dist/client/assets/{constants-CmR1uSOF.js → constants-EDUNpUuM.js} +1 -1
  58. package/dist/client/assets/{constants-DULkH_5i.js → constants-tprixB5_.js} +1 -1
  59. package/dist/client/assets/{dialog-5eNXtqKl.js → dialog-DlX5SAb0.js} +1 -1
  60. package/dist/client/assets/{domain-settings-Zmfq2b2Q.js → domain-settings-DH1ljuOi.js} +1 -1
  61. package/dist/client/assets/{drawer-XB2DW5E_.js → drawer-CI3Y5KcZ.js} +1 -1
  62. package/dist/client/assets/{dropdown-menu-B5GSfnIt.js → dropdown-menu-D50uKv4Z.js} +1 -1
  63. package/dist/client/assets/{dynamic-plugin-layout-BUFoiyje.js → dynamic-plugin-layout-Bw3XgtbQ.js} +1 -1
  64. package/dist/client/assets/{empty-state-BzQGAVLh.js → empty-state-C07mnXqN.js} +1 -1
  65. package/dist/client/assets/{empty-state-DFWupnXC.js → empty-state-CQNTMuNZ.js} +1 -1
  66. package/dist/client/assets/{extract-connection-data-eaIPqvNo.js → extract-connection-data-DypK3ZOO.js} +1 -1
  67. package/dist/client/assets/{features-WEkPNtWs.js → features-ed1Z33Jr.js} +1 -1
  68. package/dist/client/assets/{form-D7WJCWvC.js → form-Ab2TEl_6.js} +1 -1
  69. package/dist/client/assets/{general-qMj6waFc.js → general-DYxQ3pFy.js} +1 -1
  70. package/dist/client/assets/{index-DPpnO2aq.js → index-6FiJ8WLC.js} +1 -1
  71. package/dist/client/assets/{index-BsCdi-Ss.js → index-B4757iid.js} +1 -1
  72. package/dist/client/assets/{index-DLVc0mBN.js → index-B5NFytyy.js} +1 -1
  73. package/dist/client/assets/{index-BZOcmiWe.js → index-B8wYFose.js} +2 -2
  74. package/dist/client/assets/{index-BtHnxUeh.js → index-BOF6ofTq.js} +1 -1
  75. package/dist/client/assets/{index-7K7UIKVV.js → index-BSJbFbDh.js} +1 -1
  76. package/dist/client/assets/{index-C77tsMmw.js → index-Bcn8Bkwx.js} +1 -1
  77. package/dist/client/assets/{index-RPF-NZ4H.js → index-C49BJ7nT.js} +1 -1
  78. package/dist/client/assets/{index-Dx7luzbY.js → index-C5S4fHHJ.js} +1 -1
  79. package/dist/client/assets/index-CM5-k2EG.js +1 -0
  80. package/dist/client/assets/{index-CDXDJ4IA.js → index-CPa_Ly3S.js} +1 -1
  81. package/dist/client/assets/index-CpHJcJk3.css +1 -0
  82. package/dist/client/assets/{index-BC4hQ6Pz.js → index-D-Yyr1Of.js} +3 -3
  83. package/dist/client/assets/index-DJWAjcuG.js +1 -0
  84. package/dist/client/assets/{index-DVlsCdud.js → index-Dh5b6FKZ.js} +1 -1
  85. package/dist/client/assets/{index-BssrisCo.js → index-EtUE8o2i.js} +1 -1
  86. package/dist/client/assets/{index-B5iHWh5E.js → index-N8VfJ_WS.js} +1 -1
  87. package/dist/client/assets/{infiniteQueryObserver-D2p5_zwx.js → infiniteQueryObserver-B3yUqEed.js} +1 -1
  88. package/dist/client/assets/{input-CrpFSP0W.js → input-jyF6PW8g.js} +1 -1
  89. package/dist/client/assets/{integration-icon-CVmwF3_e.js → integration-icon-BNLQkBSh.js} +1 -1
  90. package/dist/client/assets/{label-B-_20bUy.js → label-RBqBCNRl.js} +1 -1
  91. package/dist/client/assets/{layout-CbPXdrhy.js → layout-C_xEd7nj.js} +1 -1
  92. package/dist/client/assets/{lean-canvas-recruit-modal-BxpDu-kR.js → lean-canvas-recruit-modal-DUsywhP3.js} +1 -1
  93. package/dist/client/assets/{login-CuUDpoMc.js → login-C3PZzKVS.js} +1 -1
  94. package/dist/client/assets/{members-BeDE1Qvs.js → members-DxP_61CO.js} +1 -1
  95. package/dist/client/assets/{monaco-editor-BmBsVL_8.js → monaco-editor-CMoZIi5v.js} +1 -1
  96. package/dist/client/assets/{monitoring-stats-row-BdLsHbqc.js → monitoring-stats-row-B4N7Cr9X.js} +1 -1
  97. package/dist/client/assets/{oauth-callback-Cz-iMFvk.js → oauth-callback-Y6ElVo-T.js} +1 -1
  98. package/dist/client/assets/{oauth-callback-ai-provider-D5sARU9m.js → oauth-callback-ai-provider-thCkYTMA.js} +1 -1
  99. package/dist/client/assets/{onboarding-B2dI9ERG.js → onboarding-Bpx2v7g7.js} +1 -1
  100. package/dist/client/assets/{org-layout-CBC7ZhZm.js → org-layout-WkhCwbOe.js} +1 -1
  101. package/dist/client/assets/{org-plugin-layout-DHZ0k56l.js → org-plugin-layout-Bvake79q.js} +1 -1
  102. package/dist/client/assets/{pair-CAi6xFSC.js → pair-B6BbDOpB.js} +1 -1
  103. package/dist/client/assets/{plugin-empty-state-DcHczrca.js → plugin-empty-state-QUTzmu71.js} +1 -1
  104. package/dist/client/assets/{plugin-header-gaZYNLeh.js → plugin-header-BVUkGlDu.js} +1 -1
  105. package/dist/client/assets/{plugin-layout-CvwzX9Qn.js → plugin-layout-DD14rMXC.js} +1 -1
  106. package/dist/client/assets/{popover-LcCFPFES.js → popover-qWmYLRmA.js} +1 -1
  107. package/dist/client/assets/{profile-BKiR8aSR.js → profile-CuR6lu-V.js} +1 -1
  108. package/dist/client/assets/{project-app-view-CJDnIq_9.js → project-app-view-C0X2xA3N.js} +1 -1
  109. package/dist/client/assets/registry-BPCmPkI0.js +2 -0
  110. package/dist/client/assets/{registry-layout-Cx01KKyS.js → registry-layout-CNhn_-ss.js} +1 -1
  111. package/dist/client/assets/{required-auth-layout-Af4UnFi9.js → required-auth-layout-rSID11cv.js} +1 -1
  112. package/dist/client/assets/{reset-password-BLW7KDI7.js → reset-password-CPGH6Po2.js} +1 -1
  113. package/dist/client/assets/{roles-CNktySuz.js → roles-CVG_GsDj.js} +1 -1
  114. package/dist/client/assets/{scroll-area-BXZ-RbOr.js → scroll-area-BO2c1evq.js} +1 -1
  115. package/dist/client/assets/{search-input-BNNV_F6W.js → search-input-CyuqOS29.js} +1 -1
  116. package/dist/client/assets/{select-DBYBPYY4.js → select-DyrffkPY.js} +1 -1
  117. package/dist/client/assets/{select-model-CG6HX7bQ.js → select-model-MtHn5YCh.js} +1 -1
  118. package/dist/client/assets/settings-layout-BeQugeMG.js +1 -0
  119. package/dist/client/assets/{settings-section-B0-S604v.js → settings-section-Bv1B_Iyu.js} +1 -1
  120. package/dist/client/assets/{shell-layout-DKPO37-r.js → shell-layout-BMFORwGZ.js} +1 -1
  121. package/dist/client/assets/{skeleton-CrRFtQk0.js → skeleton-Bb_UHLlD.js} +1 -1
  122. package/dist/client/assets/{sso-Bwxm1t61.js → sso-CnH39dzt.js} +1 -1
  123. package/dist/client/assets/{store-CUewbtbE.js → store-B4Sd_o9F.js} +1 -1
  124. package/dist/client/assets/store-registry-Dgj_ZLqa.js +2 -0
  125. package/dist/client/assets/{switch-Bwaq8U3c.js → switch-CjEJxiT5.js} +1 -1
  126. package/dist/client/assets/{table-CuBz05JY.js → table-BSe6la9q.js} +1 -1
  127. package/dist/client/assets/{tabs-CFK-4Uvj.js → tabs-CItgwp2q.js} +1 -1
  128. package/dist/client/assets/{task-status-BsG941tf.js → task-status-gNlQ8E3J.js} +1 -1
  129. package/dist/client/assets/{textarea-D7eHvlow.js → textarea-CkHpujob.js} +1 -1
  130. package/dist/client/assets/{toggle-group-K9WiqSuu.js → toggle-group-BVZV_S5a.js} +1 -1
  131. package/dist/client/assets/{tools-list-hCGHW9Jl.js → tools-list-DTAPbDxP.js} +1 -1
  132. package/dist/client/assets/{tooltip-CdOJqDy5.js → tooltip-Br8vvjUC.js} +1 -1
  133. package/dist/client/assets/{types-C-mEWZM_.js → types-CdDmClXu.js} +1 -1
  134. package/dist/client/assets/{use-ai-providers-CLe9OJ_9.js → use-ai-providers-BhO8IOvl.js} +1 -1
  135. package/dist/client/assets/{use-collections-JK0nrhOu.js → use-collections-C8-XPfet.js} +1 -1
  136. package/dist/client/assets/{use-connection-B5nKWk3Z.js → use-connection-D4awwlNm.js} +1 -1
  137. package/dist/client/assets/{use-copy-EJp5-EOo.js → use-copy-BqN03NIx.js} +1 -1
  138. package/dist/client/assets/{use-create-virtual-mcp-Q_F8SKCO.js → use-create-virtual-mcp-NAr-kct_.js} +1 -1
  139. package/dist/client/assets/{use-debounced-autosave-Batv9_51.js → use-debounced-autosave-BkTbpR8X.js} +1 -1
  140. package/dist/client/assets/{use-decopilot-events-CeWCSdOD.js → use-decopilot-events-Cy5EvIFc.js} +1 -1
  141. package/dist/client/assets/{use-delete-connection-CkxuXNRZ.js → use-delete-connection-BMqrlfjF.js} +1 -1
  142. package/dist/client/assets/{use-infinite-scroll-F6JWUz0y.js → use-infinite-scroll-D-cTYkh7.js} +1 -1
  143. package/dist/client/assets/{use-list-state-CwvWCBhv.js → use-list-state-KRujZXrp.js} +1 -1
  144. package/dist/client/assets/{use-mcp-tools-DVxd_j8t.js → use-mcp-tools-clbdK_dO.js} +1 -1
  145. package/dist/client/assets/{use-members-kfmfVai8.js → use-members-B5Kck8c2.js} +1 -1
  146. package/dist/client/assets/{use-navigate-to-agent-CmO0cf8k.js → use-navigate-to-agent-0IK3_Y6S.js} +1 -1
  147. package/dist/client/assets/{use-org-auth-client-DahzRa45.js → use-org-auth-client-YO3EIm35.js} +1 -1
  148. package/dist/client/assets/{use-org-sso-q2q8U5Lz.js → use-org-sso-BpLPs06v.js} +1 -1
  149. package/dist/client/assets/{use-organization-roles-DxoRIw_w.js → use-organization-roles-DlPZ2ynD.js} +1 -1
  150. package/dist/client/assets/{use-organization-settings-VQvWdDuI.js → use-organization-settings-szqcLcms.js} +1 -1
  151. package/dist/client/assets/{use-registry-connections-D_xn2bCS.js → use-registry-connections-Bg83zLVA.js} +1 -1
  152. package/dist/client/assets/{use-status-sounds-B0UgOSIP.js → use-status-sounds-Bpl9kxdd.js} +1 -1
  153. package/dist/client/assets/{use-tasks-CSnCGk4W.js → use-tasks-CNBdTEaU.js} +1 -1
  154. package/dist/client/assets/{use-view-mode-CIjwNrGA.js → use-view-mode-Bdt8Bgm2.js} +1 -1
  155. package/dist/client/assets/{use-virtual-mcp-BoDRyRzA.js → use-virtual-mcp-vzw_J4dC.js} +1 -1
  156. package/dist/client/assets/useInfiniteQuery-qt2fJSoW.js +1 -0
  157. package/dist/client/assets/useSuspenseInfiniteQuery-RjKQa7yO.js +1 -0
  158. package/dist/client/assets/{user-BZxSHSfd.js → user-DNC84t6V.js} +1 -1
  159. package/dist/client/assets/{view-mode-toggle-ChqhIYbZ.js → view-mode-toggle-D60CVsHW.js} +1 -1
  160. package/dist/client/assets/{workflow-QOiCAn4W.js → workflow-DgdhY2yy.js} +1 -1
  161. package/dist/client/assets/workflow-detail-CGa1IVbR.js +1 -0
  162. package/dist/client/index.html +2 -2
  163. package/dist/client/manifest.webmanifest +1 -0
  164. package/dist/server/cli.js +1 -1
  165. package/dist/server/node_modules/is-fullwidth-code-point/index.d.ts +17 -0
  166. package/dist/server/node_modules/is-fullwidth-code-point/index.js +12 -0
  167. package/dist/server/node_modules/is-fullwidth-code-point/license +9 -0
  168. package/dist/server/node_modules/is-fullwidth-code-point/package.json +53 -0
  169. package/dist/server/node_modules/is-fullwidth-code-point/readme.md +31 -0
  170. package/dist/server/node_modules/mimic-fn/index.d.ts +54 -0
  171. package/dist/server/node_modules/mimic-fn/index.js +13 -0
  172. package/dist/server/node_modules/mimic-fn/license +9 -0
  173. package/dist/server/node_modules/mimic-fn/package.json +42 -0
  174. package/dist/server/node_modules/mimic-fn/readme.md +69 -0
  175. package/dist/server/node_modules/pg-int8/LICENSE +13 -0
  176. package/dist/server/node_modules/pg-int8/README.md +16 -0
  177. package/dist/server/node_modules/pg-int8/index.js +100 -0
  178. package/dist/server/node_modules/pg-int8/package.json +24 -0
  179. package/dist/server/node_modules/postgres-date/index.js +116 -0
  180. package/dist/server/node_modules/{xtend/LICENSE → postgres-date/license} +2 -1
  181. package/dist/server/node_modules/postgres-date/package.json +33 -0
  182. package/dist/server/node_modules/postgres-date/readme.md +49 -0
  183. package/package.json +1 -1
  184. package/dist/client/assets/ai-providers-CPD083hB.js +0 -1
  185. package/dist/client/assets/index-BKEC_fM2.js +0 -1
  186. package/dist/client/assets/index-B_4-KoG_.css +0 -1
  187. package/dist/client/assets/index-DHf5lGYs.js +0 -1
  188. package/dist/client/assets/registry-CW84oX2Y.js +0 -2
  189. package/dist/client/assets/settings-layout-DCSUHSAI.js +0 -1
  190. package/dist/client/assets/store-registry-CGpSuJSg.js +0 -2
  191. package/dist/client/assets/useInfiniteQuery-BdN7n6zj.js +0 -1
  192. package/dist/client/assets/useSuspenseInfiniteQuery-DAeYCHoW.js +0 -1
  193. package/dist/client/assets/workflow-detail-CfhhVDGj.js +0 -1
  194. package/dist/server/node_modules/xtend/.jshintrc +0 -30
  195. package/dist/server/node_modules/xtend/README.md +0 -32
  196. package/dist/server/node_modules/xtend/immutable.js +0 -19
  197. package/dist/server/node_modules/xtend/mutable.js +0 -17
  198. package/dist/server/node_modules/xtend/package.json +0 -55
  199. package/dist/server/node_modules/xtend/test.js +0 -103
@@ -1 +1 @@
1
- import{e as oe,j as t,B as Ce,f as Be,b as ct,s as ze,r as dt,x as Le,o as ut,a as mt,K as Fe,Y as Ke,Z as pt}from"./index-BZOcmiWe.js";import{u as Ve,S as qe}from"./constants-DULkH_5i.js";import{B as ft,g as Me}from"./constants-CmR1uSOF.js";import{C as Ge}from"./collection-display-button-D4lZfaVu.js";import{C as ht}from"./collection-search-CXt30faC.js";import{C as gt}from"./card-CmdabgMS.js";import{I as Qe}from"./integration-icon-CVmwF3_e.js";import{D as Ye,a as He,b as Je,c as O}from"./dropdown-menu-B5GSfnIt.js";import{c as Ze}from"./XCircle-ABCC_xEK.js";import{i as Xe}from"./DotsVertical-rqLS7JIj.js";import{i as et}from"./Tool01-Ce_Me7cD.js";import{s as tt}from"./RefreshCcw01-CGNxI6Ck.js";import{s as st}from"./Trash01-Q2vImoqI.js";import{C as xt}from"./collection-table-wrapper-DfZVmP1H.js";import{E as Ue}from"./empty-state-BzQGAVLh.js";import{G as We}from"./agent-icon-Tpw3Xml_.js";import{U as jt}from"./user-BZxSHSfd.js";import{E as it}from"./empty-state-DFWupnXC.js";import{u as Ct}from"./use-list-state-CwvWCBhv.js";import{g as bt}from"./connection-slug-eyAPH6o3.js";import{f as vt,g as yt,c as Nt,b as wt,d as St,e as Pt,a as _t,A as Dt}from"./alert-dialog-Cv_ZG6Li.js";import{a as It,c as At}from"./use-collections-JK0nrhOu.js";import{a as Tt}from"./use-connection-B5nKWk3Z.js";import{s as Et}from"./Plus-DyrPdLFx.js";import{a as Ot}from"./layout-CbPXdrhy.js";import{P as je}from"./index-B5iHWh5E.js";import"./collections-ECsba_DJ.js";import"./XClose-Dz62x8sU.js";import"./Check-CHUfypwG.js";import"./tooltip-CdOJqDy5.js";import"./view-mode-toggle-ChqhIYbZ.js";import"./badge-DTOCxRAj.js";import"./SearchMd-Xtv0xaPE.js";import"./Container-BOvWwKV4.js";import"./ChevronRight-D0NO-NBa.js";import"./table-CuBz05JY.js";import"./AlertCircle-D5P-n_4t.js";import"./ArrowNarrowLeft-Cei5z2C8.js";import"./ArrowUpRight-Dp3G1ifa.js";import"./ZapSquare-rh7PDy43.js";import"./Users03-FLHuEcPu.js";import"./CheckCircle-CAevZeBb.js";import"./ChevronDown-DGxIrQou.js";import"./ChevronUp-R3D-J8U2.js";import"./Star01-BuYjjFhM.js";import"./Palette-DFI0YLk6.js";import"./LinkExternal01-BAOljpRH.js";import"./Lock01-D8HWIvFW.js";import"./Sun-C-z27smq.js";import"./Play-CI6lv5t3.js";import"./Settings02-CJ_7W7Nn.js";import"./Shield01-C53xx91N.js";import"./User01-CBFfH1NO.js";import"./X-Y4H2YxIf.js";import"./Zap-XI7LaIzu.js";import"./avatar-C5CAYMYh.js";import"./use-view-mode-CIjwNrGA.js";function $t(i,e){const s=i.properties||{};for(const n in s){const c=s[n];if(c&&c.type==="string"&&(c.format==="url"||c.format==="uri")&&e&&typeof e=="object"&&n in e&&e[n])return e[n]}const l=["image","img","avatar","icon","logo","thumbnail","cover"];for(const n of l)if(e&&typeof e=="object"&&n in e&&typeof e[n]=="string")return e[n]}function kt(i){const e=oe.c(25),{item:s,schema:l,actions:n}=i;let c;e[0]!==s||e[1]!==l?(c=$t(l,s),e[0]=s,e[1]=l,e[2]=c):c=e[2];const r=c,p=s&&typeof s=="object"&&"description"in s&&typeof s.description=="string"?s.description:void 0;let d;e[3]!==n?(d=n&&Object.keys(n).length>0,e[3]=n,e[4]=d):d=e[4];const o=d;let m;e[5]!==r||e[6]!==s.title?(m=t.jsx(Qe,{icon:r,name:s.title,size:"md",className:"shrink-0 shadow-sm"}),e[5]=r,e[6]=s.title,e[7]=m):m=e[7];let u;e[8]!==s.title?(u=t.jsx("h3",{className:"text-base font-medium text-foreground truncate",children:s.title}),e[8]=s.title,e[9]=u):u=e[9];const f=p||"No description";let a;e[10]!==f?(a=t.jsx("p",{className:"text-base text-muted-foreground line-clamp-2",children:f}),e[10]=f,e[11]=a):a=e[11];let v;e[12]!==u||e[13]!==a?(v=t.jsxs("div",{className:"flex flex-col gap-0 flex-1",children:[u,a]}),e[12]=u,e[13]=a,e[14]=v):v=e[14];let y;e[15]!==m||e[16]!==v?(y=t.jsxs("div",{className:"flex flex-col gap-4 p-6 flex-1",children:[m,v]}),e[15]=m,e[16]=v,e[17]=y):y=e[17];let b;e[18]!==n||e[19]!==o||e[20]!==s?(b=o&&t.jsx("div",{className:"absolute top-6 right-6 sm:opacity-0 sm:group-hover:opacity-100 transition-opacity",onClick:Kt,onMouseDown:Ft,children:t.jsxs(Ye,{children:[t.jsx(He,{asChild:!0,children:t.jsx(Ce,{variant:"ghost",size:"icon",className:"h-8 w-8",onClick:Lt,children:t.jsx(Xe,{size:20})})}),t.jsxs(Je,{align:"end",onClick:zt,children:[n.open&&t.jsxs(O,{onClick:g=>{g.stopPropagation(),n.open?.(s)},children:[t.jsx(tt,{size:16}),"Open"]}),n.edit&&t.jsxs(O,{onClick:g=>{g.stopPropagation(),n.edit?.(s)},children:[t.jsx(et,{size:16}),"Edit"]}),n.duplicate&&t.jsxs(O,{onClick:g=>{g.stopPropagation(),n.duplicate?.(s)},children:[t.jsx(Ze,{size:16}),"Duplicate"]}),n.delete&&t.jsxs(O,{variant:"destructive",onClick:g=>{g.stopPropagation(),n.delete?.(s)},children:[t.jsx(st,{size:16}),"Delete"]})]})]})}),e[18]=n,e[19]=o,e[20]=s,e[21]=b):b=e[21];let x;return e[22]!==y||e[23]!==b?(x=t.jsxs(gt,{className:"cursor-pointer transition-colors hover:bg-accent/50 h-full flex flex-col group relative",children:[y,b]}),e[22]=y,e[23]=b,e[24]=x):x=e[24],x}function zt(i){return i.stopPropagation()}function Lt(i){return i.stopPropagation()}function Ft(i){return i.stopPropagation()}function Kt(i){return i.stopPropagation()}const Mt=["icon","avatar","logo"],Re=["created_at","created_by","id"];function Ut(i){return Object.keys(i).find(e=>Mt.includes(e.toLowerCase()))}function ot(i,e){return Object.keys(i.properties||{}).filter(s=>["id","created_at","updated_at","created_by","updated_by"].includes(s)?!1:e?e.includes(s):!0).map(s=>({id:s,label:s.charAt(0).toUpperCase()+s.slice(1).replace(/_/g," ")}))}function Wt(i){const e=oe.c(30),{data:s,schema:l,viewMode:n,search:c,sortKey:r,sortDirection:p,onSort:d,actions:o,onItemClick:m,headerActions:u,emptyState:f,readOnly:a,columns:v,hideToolbar:y,sortableFields:b}=i,x=p===void 0?"asc":p,g=d===void 0?qt:d;let $;e[0]!==o?($=o===void 0?{}:o,e[0]=o,e[1]=$):$=e[1];const h=$,T=m===void 0?Vt:m,E=u===void 0?null:u,N=f===void 0?null:f,k=a===void 0?!1:a,j=v===void 0?void 0:v,z=y===void 0?!1:y,P=b===void 0?void 0:b;let D;e[2]!==j||e[3]!==l||e[4]!==P?(D=j?j.filter(Bt).filter(A=>!P||P.includes(A.id)).map(Rt):ot(l,P),e[2]=j,e[3]=l,e[4]=P,e[5]=D):D=e[5];const w=D;let S;e[6]!==E||e[7]!==z||e[8]!==g||e[9]!==x||e[10]!==r||e[11]!==w?(S=!z&&t.jsx("div",{className:"shrink-0 w-full border-b border-border h-12",children:t.jsxs("div",{className:"flex items-center gap-3 h-12 px-4",children:[t.jsx("div",{className:"flex items-center gap-2 flex-1",children:E}),t.jsx("div",{className:"flex items-center gap-2 shrink-0",children:t.jsx(Ge,{sortKey:r,sortDirection:x,onSort:g,sortOptions:w})})]})}),e[6]=E,e[7]=z,e[8]=g,e[9]=x,e[10]=r,e[11]=w,e[12]=S):S=e[12];let _;e[13]!==h||e[14]!==j||e[15]!==s||e[16]!==N||e[17]!==T||e[18]!==g||e[19]!==k||e[20]!==l||e[21]!==c||e[22]!==x||e[23]!==r||e[24]!==P||e[25]!==n?(_=n==="cards"?t.jsx("div",{className:"flex-1 overflow-auto p-5",children:s.length===0?t.jsx("div",{className:"flex items-center justify-center h-full",children:N||t.jsx(Ue,{icon:t.jsx(We,{size:36,className:"text-muted-foreground"}),title:"No items found",description:c?"Try adjusting your search":"No items to display"})}):t.jsx("div",{className:"grid grid-cols-[repeat(auto-fill,minmax(280px,1fr))] gap-4",children:s.map(A=>t.jsx("div",{onClick:()=>T?.(A),className:"cursor-pointer h-full",children:t.jsx(kt,{item:A,schema:l,readOnly:k,actions:h})},A.id))})}):t.jsx(xt,{columns:Yt(j,l,P,h),data:s,sortKey:r,sortDirection:x,onSort:g,onRowClick:T,emptyState:N||t.jsx(Ue,{icon:t.jsx(We,{size:36,className:"text-muted-foreground"}),title:"No items found",description:c?"Try adjusting your search":"No items to display"})}),e[13]=h,e[14]=j,e[15]=s,e[16]=N,e[17]=T,e[18]=g,e[19]=k,e[20]=l,e[21]=c,e[22]=x,e[23]=r,e[24]=P,e[25]=n,e[26]=_):_=e[26];let I;return e[27]!==S||e[28]!==_?(I=t.jsxs("div",{className:"h-full flex flex-col overflow-hidden",children:[S,_]}),e[27]=S,e[28]=_,e[29]=I):I=e[29],I}function Rt(i){return{id:i.id,label:typeof i.header=="string"?i.header:i.id}}function Bt(i){return i.sortable!==!1}function Vt(){}function qt(){}function Gt(i){return{id:"actions",header:"",render:e=>t.jsxs(Ye,{children:[t.jsx(He,{asChild:!0,children:t.jsx(Ce,{variant:"ghost",size:"sm",className:"h-8 w-8 p-0",onClick:s=>s.stopPropagation(),children:t.jsx(Xe,{size:20})})}),t.jsxs(Je,{align:"end",onClick:s=>s.stopPropagation(),children:[i.open&&t.jsxs(O,{onClick:s=>{s.stopPropagation(),i.open?.(e)},children:[t.jsx(tt,{size:16}),"Open"]}),i.edit&&t.jsxs(O,{onClick:s=>{s.stopPropagation(),i.edit?.(e)},children:[t.jsx(et,{size:16}),"Edit"]}),i.duplicate&&t.jsxs(O,{onClick:s=>{s.stopPropagation(),i.duplicate?.(e)},children:[t.jsx(Ze,{size:16}),"Duplicate"]}),i.delete&&t.jsxs(O,{variant:"destructive",onClick:s=>{s.stopPropagation(),i.delete?.(e)},children:[t.jsx(st,{size:16}),"Delete"]})]})]}),cellClassName:"w-[60px]",sortable:!1}}function nt(i){const e=i.type;return Array.isArray(e)?e.every(s=>nt({type:s})):e==="string"||e==="number"||e==="integer"||e==="boolean"||e==="null"}function Qt(i,e){const s=i.properties||{},l=Object.keys(s).filter(o=>{const m=s[o];return m&&nt(m)}),n=Ut(s),c=[],r=new Set;n&&l.includes(n)&&(c.push(n),r.add(n));const p=["title","description","updated_at","updated_by"];for(const o of p)l.includes(o)&&!r.has(o)&&(c.push(o),r.add(o));const d=l.filter(o=>!r.has(o)&&!Re.includes(o)).sort((o,m)=>o.localeCompare(m));for(const o of d)c.push(o),r.add(o);for(const o of Re)l.includes(o)&&!r.has(o)&&(c.push(o),r.add(o));return c.map(o=>{const m=s[o],u=e?e.includes(o):!["id"].includes(o);return o===n?{id:o,header:"",render:f=>{const a=f[o];return t.jsx(Qe,{icon:a,name:f.title,size:"sm",className:"shrink-0 shadow-sm"})},sortable:!1,cellClassName:"w-16 shrink-0",wrap:!0}:o==="description"?{id:o,header:"Description",render:f=>{const a=f[o];return a==null?"—":t.jsx("span",{className:"block truncate max-w-[50ch]",children:String(a)})},sortable:u,cellClassName:"max-w-[50ch]"}:o==="created_by"||o==="updated_by"?{id:o,header:o.charAt(0).toUpperCase()+o.slice(1).replace(/_/g," "),render:f=>{const a=f[o];return a?t.jsx(jt,{id:String(a),size:"xs"}):"—"},sortable:u,cellClassName:"max-w-[250px]"}:m?.format==="date-time"||o.endsWith("_at")?{id:o,header:o.charAt(0).toUpperCase()+o.slice(1).replace(/_/g," "),render:f=>{const a=f[o];return a?t.jsx("span",{className:"block truncate max-w-full",children:new Date(a).toLocaleDateString()}):"—"},sortable:u,cellClassName:"max-w-[200px]"}:{id:o,header:o.charAt(0).toUpperCase()+o.slice(1).replace(/_/g," "),render:f=>{const a=f[o];return a==null?"—":t.jsx("span",{className:"block truncate max-w-full",children:String(a)})},sortable:u,cellClassName:"max-w-[200px]"}})}function Yt(i,e,s,l){const n=i||Qt(e,s);return n.some(p=>p.id==="actions")?n:Object.keys(l).length>0?[...n,Gt(l)]:n}function Ht(i){const e=oe.c(119),{connectionId:s,org:l,activeCollection:n,onItemClick:c}=i,r=n.name,p=n.schema??ft,d=n.hasCreateTool,o=n.hasUpdateTool,m=n.hasDeleteTool,u=Be(),{data:f}=ct.useSession(),a=f?.user?.id||"unknown",v=Tt(s);let y;e[0]!==v||e[1]!==s?(y=v?bt(v):s,e[0]=v,e[1]=s,e[2]=y):y=e[2];const b=y,{org:x}=ze();let g;e[3]!==s||e[4]!==x.id||e[5]!==x.slug?(g={connectionId:s,orgId:x.id,orgSlug:x.slug},e[3]=s,e[4]=x.id,e[5]=x.slug,e[6]=g):g=e[6];const $=Ve(g),h=It(s,r,$),T=`${s}-${r}`;let E;e[7]!==l||e[8]!==T?(E={namespace:l,resource:T,defaultSortKey:"updated_at"},e[7]=l,e[8]=T,e[9]=E):E=e[9];const{search:N,searchTerm:k,setSearch:j,viewMode:z,setViewMode:P,sortKey:D,sortDirection:w,handleSort:S}=Ct(E);let _;e[10]!==k||e[11]!==w||e[12]!==D?(_={searchTerm:k,sortKey:D,sortDirection:w},e[10]=k,e[11]=w,e[12]=D,e[13]=_):_=e[13];const I=At(s,r,$,_),A=!d&&!o&&!m;let ne;e[14]!==b||e[15]!==r||e[16]!==u||e[17]!==c||e[18]!==l?(ne=C=>{if(c){c(C);return}u({to:"/$org/settings/connections/$appSlug/$collectionName/$itemId",params:{org:l,appSlug:b,collectionName:r,itemId:C.id}})},e[14]=b,e[15]=r,e[16]=u,e[17]=c,e[18]=l,e[19]=ne):ne=e[19];const L=ne;let re;e[20]!==h.create||e[21]!==a?(re=async C=>{const xe=new Date().toISOString();await h.create.mutateAsync({...C,id:Me("conn"),title:`${C.title} (Copy)`,created_at:xe,updated_at:xe,created_by:a,updated_by:a})},e[20]=h.create,e[21]=a,e[22]=re):re=e[22];const be=re,[F,ve]=dt.useState(null);let le;e[23]===Symbol.for("react.memo_cache_sentinel")?(le=C=>{ve(C)},e[23]=le):le=e[23];const rt=le;let K;e[24]!==L||e[25]!==o?(K=o&&{edit:L},e[24]=L,e[25]=o,e[26]=K):K=e[26];let M;e[27]!==be||e[28]!==d?(M=d&&{duplicate:be},e[27]=be,e[28]=d,e[29]=M):M=e[29];let U;e[30]!==m?(U=m&&{delete:rt},e[30]=m,e[31]=U):U=e[31];let ae;e[32]!==M||e[33]!==U||e[34]!==K?(ae={...K,...M,...U},e[32]=M,e[33]=U,e[34]=K,e[35]=ae):ae=e[35];const ye=ae;let ce;e[36]!==h.delete||e[37]!==F?(ce=async()=>{F&&(await h.delete.mutateAsync(F.id),ve(null))},e[36]=h.delete,e[37]=F,e[38]=ce):ce=e[38];const Ne=ce;let de;e[39]!==h.create||e[40]!==b||e[41]!==r||e[42]!==d||e[43]!==u||e[44]!==l||e[45]!==a?(de=async()=>{if(!d){Le.error("Create operation is not available for this collection");return}const C=new Date().toISOString(),xe={id:Me("conn"),title:"New Item",description:"A brief description of the item",created_at:C,updated_at:C,created_by:a,updated_by:a};try{const ke=await h.create.mutateAsync(xe);u({to:"/$org/settings/connections/$appSlug/$collectionName/$itemId",params:{org:l,appSlug:b,collectionName:r,itemId:ke.id}})}catch(ke){console.error("Failed to create item:",ke)}},e[39]=h.create,e[40]=b,e[41]=r,e[42]=d,e[43]=u,e[44]=l,e[45]=a,e[46]=de):de=e[46];const we=de;let ue;e[47]!==p?(ue=ot(p),e[47]=p,e[48]=ue):ue=e[48];const Se=ue,lt=(I?.length??0)>0,at=d&&!lt&&!N;let me;e[49]!==h.create||e[50]!==we||e[51]!==d?(me=d?t.jsxs(Ce,{onClick:we,size:"sm",disabled:h.create.isPending,className:"h-7",children:[t.jsx(Et,{className:"mr-2 h-4 w-4"}),h.create.isPending?"Creating...":"Create"]}):null,e[49]=h.create,e[50]=we,e[51]=d,e[52]=me):me=e[52];const pe=me,Pe=D;let W;e[53]!==S||e[54]!==w||e[55]!==Se||e[56]!==Pe?(W=t.jsx(Ot,{children:t.jsx(Ge,{sortKey:Pe,sortDirection:w,onSort:S,sortOptions:Se})}),e[53]=S,e[54]=w,e[55]=Se,e[56]=Pe,e[57]=W):W=e[57];const _e=`Search ${r}...`;let R;e[58]!==j?(R=C=>{C.key==="Escape"&&(j(""),C.target.blur())},e[58]=j,e[59]=R):R=e[59];let B;e[60]!==N||e[61]!==j||e[62]!==_e||e[63]!==R?(B=t.jsx("div",{className:"flex-1",children:t.jsx(ht,{value:N,onChange:j,placeholder:_e,onKeyDown:R})}),e[60]=N,e[61]=j,e[62]=_e,e[63]=R,e[64]=B):B=e[64];let V;e[65]!==pe||e[66]!==d?(V=d&&t.jsx("div",{className:"pr-3",children:pe}),e[65]=pe,e[66]=d,e[67]=V):V=e[67];let q;e[68]!==B||e[69]!==V?(q=t.jsxs("div",{className:"flex items-center gap-2",children:[B,V]}),e[68]=B,e[69]=V,e[70]=q):q=e[70];let G;e[71]!==I?(G=I??[],e[71]=I,e[72]=G):G=e[72];const De=D;let Q;e[73]!==L?(Q=C=>L(C),e[73]=L,e[74]=Q):Q=e[74];const Ie="No items found",Ae=N?"Try adjusting your search terms":"This collection doesn't have any items yet.",Te=at?pe:void 0;let Y;e[75]!==Ie||e[76]!==Ae||e[77]!==Te?(Y=t.jsx(it,{image:null,title:Ie,description:Ae,actions:Te}),e[75]=Ie,e[76]=Ae,e[77]=Te,e[78]=Y):Y=e[78];let H;e[79]!==S||e[80]!==A||e[81]!==ye||e[82]!==p||e[83]!==N||e[84]!==j||e[85]!==P||e[86]!==w||e[87]!==G||e[88]!==De||e[89]!==Q||e[90]!==Y||e[91]!==z?(H=t.jsx("div",{className:"flex-1 overflow-auto",children:t.jsx(Wt,{hideToolbar:!0,data:G,schema:p,viewMode:z,onViewModeChange:P,search:N,onSearchChange:j,sortKey:De,sortDirection:w,onSort:S,actions:ye,onItemClick:Q,readOnly:A,emptyState:Y})}),e[79]=S,e[80]=A,e[81]=ye,e[82]=p,e[83]=N,e[84]=j,e[85]=P,e[86]=w,e[87]=G,e[88]=De,e[89]=Q,e[90]=Y,e[91]=z,e[92]=H):H=e[92];let J;e[93]!==q||e[94]!==H?(J=t.jsxs("div",{className:"flex flex-col h-full overflow-hidden",children:[q,H]}),e[93]=q,e[94]=H,e[95]=J):J=e[95];const Ee=!!F;let fe;e[96]===Symbol.for("react.memo_cache_sentinel")?(fe=C=>{C||ve(null)},e[96]=fe):fe=e[96];let he;e[97]===Symbol.for("react.memo_cache_sentinel")?(he=t.jsx(Nt,{children:"Delete item?"}),e[97]=he):he=e[97];const Oe=F?.title;let Z;e[98]!==Oe?(Z=t.jsxs(wt,{children:[he,t.jsxs(St,{children:['Are you sure you want to delete "',Oe,'"? This action cannot be undone.']})]}),e[98]=Oe,e[99]=Z):Z=e[99];let X;e[100]!==h.delete.isPending?(X=t.jsx(vt,{disabled:h.delete.isPending,children:"Cancel"}),e[100]=h.delete.isPending,e[101]=X):X=e[101];const $e=h.delete.isPending?"Deleting...":"Delete";let ee;e[102]!==h.delete.isPending||e[103]!==Ne||e[104]!==$e?(ee=t.jsx(yt,{onClick:Ne,disabled:h.delete.isPending,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:$e}),e[102]=h.delete.isPending,e[103]=Ne,e[104]=$e,e[105]=ee):ee=e[105];let te;e[106]!==X||e[107]!==ee?(te=t.jsxs(Pt,{children:[X,ee]}),e[106]=X,e[107]=ee,e[108]=te):te=e[108];let se;e[109]!==Z||e[110]!==te?(se=t.jsxs(_t,{children:[Z,te]}),e[109]=Z,e[110]=te,e[111]=se):se=e[111];let ie;e[112]!==Ee||e[113]!==se?(ie=t.jsx(Dt,{open:Ee,onOpenChange:fe,children:se}),e[112]=Ee,e[113]=se,e[114]=ie):ie=e[114];let ge;return e[115]!==W||e[116]!==J||e[117]!==ie?(ge=t.jsxs(t.Fragment,{children:[W,J,ie]}),e[115]=W,e[116]=J,e[117]=ie,e[118]=ge):ge=e[118],ge}function Jt(){const i=oe.c(13),{org:e,project:s}=ze(),l=ut();let n;i[0]!==e.id||i[1]!==e.slug?(n={connectionId:qe,orgId:e.id,orgSlug:e.slug},i[0]=e.id,i[1]=e.slug,i[2]=n):n=i[2];const c=Ve(n);let r;i[3]!==c||i[4]!==s?(r=async m=>{const u=s.enabledPlugins??[];if(u.includes(m))return;const f=[...u,m],a=await c.callTool({name:"COLLECTION_VIRTUAL_MCP_UPDATE",arguments:{id:s.id,data:{metadata:{enabled_plugins:f}}}});return a.structuredContent??a},i[3]=c,i[4]=s,i[5]=r):r=i[5];let p;i[6]!==e.id||i[7]!==s||i[8]!==l?(p=()=>{l.invalidateQueries({queryKey:Fe.project(e.id,s.slug)}),l.invalidateQueries({queryKey:Fe.projects(e.id)})},i[6]=e.id,i[7]=s,i[8]=l,i[9]=p):p=i[9];let d;return i[10]!==r||i[11]!==p?(d={mutationFn:r,onSuccess:p,onError:Zt},i[10]=r,i[11]=p,i[12]=d):d=i[12],mt(d)}function Zt(i){Le.error("Failed to enable plugin: "+(i instanceof Error?i.message:"Unknown error"))}function Xt(i){const e=oe.c(12),{pluginId:s,title:l,description:n,icon:c}=i,r=Jt();let p;e[0]!==r||e[1]!==s?(p=async()=>{try{await r.mutateAsync(s),Le.success("Plugin enabled!")}catch{}},e[0]=r,e[1]=s,e[2]=p):p=e[2];const d=p,o=c??null,m=r.isPending?"Enabling…":"Enable plugin";let u;e[3]!==r.isPending||e[4]!==d||e[5]!==m?(u=t.jsx(Ce,{onClick:d,disabled:r.isPending,children:m}),e[3]=r.isPending,e[4]=d,e[5]=m,e[6]=u):u=e[6];let f;return e[7]!==n||e[8]!==o||e[9]!==u||e[10]!==l?(f=t.jsx(it,{image:o,title:l,description:n,actions:u}),e[7]=n,e[8]=o,e[9]=u,e[10]=l,e[11]=f):f=e[11],f}const es={name:"WORKFLOW",displayName:"Workflow",hasCreateTool:!0,hasUpdateTool:!0,hasDeleteTool:!0};function ni(){const{project:i,org:e}=ze();if(!(i.enabledPlugins??[]).includes(Ke))return t.jsx(je,{children:t.jsx(je.Content,{children:t.jsx("div",{className:"flex flex-col items-center justify-center h-full",children:t.jsx(Xt,{pluginId:Ke,title:"Enable Workflows",description:"Automate multi-step processes by enabling the Workflows plugin. Once enabled you can create, run, and monitor workflows.",icon:t.jsx("div",{className:"bg-muted p-4 rounded-full",children:t.jsx(pt,{className:"size-8 text-muted-foreground"})})})})})});const n=Be();return t.jsx(je,{children:t.jsx(je.Content,{children:t.jsx(Ht,{connectionId:qe,org:e.slug,activeCollection:es,onItemClick:c=>n({to:"/$org/settings/workflows/$itemId",params:{org:e.slug,itemId:c.id}})})})})}export{ni as default};
1
+ import{e as oe,j as t,B as Ce,f as Be,b as ct,s as ze,r as dt,x as Le,o as ut,a as mt,K as Fe,Y as Ke,Z as pt}from"./index-B8wYFose.js";import{u as Ve,S as qe}from"./constants-tprixB5_.js";import{B as ft,g as Me}from"./constants-EDUNpUuM.js";import{C as Ge}from"./collection-display-button-81MgYnbQ.js";import{C as ht}from"./collection-search-DzEyUHPw.js";import{C as gt}from"./card-CskiuoWn.js";import{I as Qe}from"./integration-icon-BNLQkBSh.js";import{D as Ye,a as He,b as Je,c as O}from"./dropdown-menu-D50uKv4Z.js";import{c as Ze}from"./XCircle-DZ8qXuj0.js";import{i as Xe}from"./DotsVertical-D128coNp.js";import{i as et}from"./Tool01-DaKtGMUM.js";import{s as tt}from"./RefreshCcw01-ljF052Et.js";import{s as st}from"./Trash01-CslzP03u.js";import{C as xt}from"./collection-table-wrapper-B7PvqWRA.js";import{E as Ue}from"./empty-state-C07mnXqN.js";import{G as We}from"./agent-icon-DEN9w1Xd.js";import{U as jt}from"./user-DNC84t6V.js";import{E as it}from"./empty-state-CQNTMuNZ.js";import{u as Ct}from"./use-list-state-KRujZXrp.js";import{g as bt}from"./connection-slug-eyAPH6o3.js";import{f as vt,g as yt,c as Nt,b as wt,d as St,e as Pt,a as _t,A as Dt}from"./alert-dialog-4oindKfE.js";import{a as It,c as At}from"./use-collections-C8-XPfet.js";import{a as Tt}from"./use-connection-D4awwlNm.js";import{s as Et}from"./Plus-C4z2sygw.js";import{a as Ot}from"./layout-C_xEd7nj.js";import{P as je}from"./index-N8VfJ_WS.js";import"./collections-D9BTFOqK.js";import"./XClose-CtlDoPHz.js";import"./Check-CAMqJWCl.js";import"./tooltip-Br8vvjUC.js";import"./view-mode-toggle-D60CVsHW.js";import"./badge-Chay17Vz.js";import"./SearchMd-CqEX_8tR.js";import"./Container-Ci-j0vPm.js";import"./ChevronRight-B4kHNMva.js";import"./table-BSe6la9q.js";import"./AlertCircle-CMCkCBRI.js";import"./ArrowNarrowLeft-BOEo-CBC.js";import"./ArrowUpRight-WdPk_kpa.js";import"./ZapSquare-CQqweAlr.js";import"./Users03-C4VkXkge.js";import"./CheckCircle-DZo2q-YR.js";import"./ChevronDown-Cx6Pbu_K.js";import"./ChevronUp-DE9NYg_0.js";import"./Star01-BthGo7Cr.js";import"./Palette-DpT03Fqa.js";import"./LinkExternal01-Ch_n4-pR.js";import"./Lock01-B6OWF8qs.js";import"./Sun-DIAjvzoS.js";import"./Play-C8kJ2Esj.js";import"./Settings02-ByJHULD_.js";import"./Shield01-DNagRkrI.js";import"./User01-BIVBcamj.js";import"./X-DwGqF9nr.js";import"./Zap-BiGMObSD.js";import"./avatar-B_3UpRA5.js";import"./use-view-mode-Bdt8Bgm2.js";function $t(i,e){const s=i.properties||{};for(const n in s){const c=s[n];if(c&&c.type==="string"&&(c.format==="url"||c.format==="uri")&&e&&typeof e=="object"&&n in e&&e[n])return e[n]}const l=["image","img","avatar","icon","logo","thumbnail","cover"];for(const n of l)if(e&&typeof e=="object"&&n in e&&typeof e[n]=="string")return e[n]}function kt(i){const e=oe.c(25),{item:s,schema:l,actions:n}=i;let c;e[0]!==s||e[1]!==l?(c=$t(l,s),e[0]=s,e[1]=l,e[2]=c):c=e[2];const r=c,p=s&&typeof s=="object"&&"description"in s&&typeof s.description=="string"?s.description:void 0;let d;e[3]!==n?(d=n&&Object.keys(n).length>0,e[3]=n,e[4]=d):d=e[4];const o=d;let m;e[5]!==r||e[6]!==s.title?(m=t.jsx(Qe,{icon:r,name:s.title,size:"md",className:"shrink-0 shadow-sm"}),e[5]=r,e[6]=s.title,e[7]=m):m=e[7];let u;e[8]!==s.title?(u=t.jsx("h3",{className:"text-base font-medium text-foreground truncate",children:s.title}),e[8]=s.title,e[9]=u):u=e[9];const f=p||"No description";let a;e[10]!==f?(a=t.jsx("p",{className:"text-base text-muted-foreground line-clamp-2",children:f}),e[10]=f,e[11]=a):a=e[11];let v;e[12]!==u||e[13]!==a?(v=t.jsxs("div",{className:"flex flex-col gap-0 flex-1",children:[u,a]}),e[12]=u,e[13]=a,e[14]=v):v=e[14];let y;e[15]!==m||e[16]!==v?(y=t.jsxs("div",{className:"flex flex-col gap-4 p-6 flex-1",children:[m,v]}),e[15]=m,e[16]=v,e[17]=y):y=e[17];let b;e[18]!==n||e[19]!==o||e[20]!==s?(b=o&&t.jsx("div",{className:"absolute top-6 right-6 sm:opacity-0 sm:group-hover:opacity-100 transition-opacity",onClick:Kt,onMouseDown:Ft,children:t.jsxs(Ye,{children:[t.jsx(He,{asChild:!0,children:t.jsx(Ce,{variant:"ghost",size:"icon",className:"h-8 w-8",onClick:Lt,children:t.jsx(Xe,{size:20})})}),t.jsxs(Je,{align:"end",onClick:zt,children:[n.open&&t.jsxs(O,{onClick:g=>{g.stopPropagation(),n.open?.(s)},children:[t.jsx(tt,{size:16}),"Open"]}),n.edit&&t.jsxs(O,{onClick:g=>{g.stopPropagation(),n.edit?.(s)},children:[t.jsx(et,{size:16}),"Edit"]}),n.duplicate&&t.jsxs(O,{onClick:g=>{g.stopPropagation(),n.duplicate?.(s)},children:[t.jsx(Ze,{size:16}),"Duplicate"]}),n.delete&&t.jsxs(O,{variant:"destructive",onClick:g=>{g.stopPropagation(),n.delete?.(s)},children:[t.jsx(st,{size:16}),"Delete"]})]})]})}),e[18]=n,e[19]=o,e[20]=s,e[21]=b):b=e[21];let x;return e[22]!==y||e[23]!==b?(x=t.jsxs(gt,{className:"cursor-pointer transition-colors hover:bg-accent/50 h-full flex flex-col group relative",children:[y,b]}),e[22]=y,e[23]=b,e[24]=x):x=e[24],x}function zt(i){return i.stopPropagation()}function Lt(i){return i.stopPropagation()}function Ft(i){return i.stopPropagation()}function Kt(i){return i.stopPropagation()}const Mt=["icon","avatar","logo"],Re=["created_at","created_by","id"];function Ut(i){return Object.keys(i).find(e=>Mt.includes(e.toLowerCase()))}function ot(i,e){return Object.keys(i.properties||{}).filter(s=>["id","created_at","updated_at","created_by","updated_by"].includes(s)?!1:e?e.includes(s):!0).map(s=>({id:s,label:s.charAt(0).toUpperCase()+s.slice(1).replace(/_/g," ")}))}function Wt(i){const e=oe.c(30),{data:s,schema:l,viewMode:n,search:c,sortKey:r,sortDirection:p,onSort:d,actions:o,onItemClick:m,headerActions:u,emptyState:f,readOnly:a,columns:v,hideToolbar:y,sortableFields:b}=i,x=p===void 0?"asc":p,g=d===void 0?qt:d;let $;e[0]!==o?($=o===void 0?{}:o,e[0]=o,e[1]=$):$=e[1];const h=$,T=m===void 0?Vt:m,E=u===void 0?null:u,N=f===void 0?null:f,k=a===void 0?!1:a,j=v===void 0?void 0:v,z=y===void 0?!1:y,P=b===void 0?void 0:b;let D;e[2]!==j||e[3]!==l||e[4]!==P?(D=j?j.filter(Bt).filter(A=>!P||P.includes(A.id)).map(Rt):ot(l,P),e[2]=j,e[3]=l,e[4]=P,e[5]=D):D=e[5];const w=D;let S;e[6]!==E||e[7]!==z||e[8]!==g||e[9]!==x||e[10]!==r||e[11]!==w?(S=!z&&t.jsx("div",{className:"shrink-0 w-full border-b border-border h-12",children:t.jsxs("div",{className:"flex items-center gap-3 h-12 px-4",children:[t.jsx("div",{className:"flex items-center gap-2 flex-1",children:E}),t.jsx("div",{className:"flex items-center gap-2 shrink-0",children:t.jsx(Ge,{sortKey:r,sortDirection:x,onSort:g,sortOptions:w})})]})}),e[6]=E,e[7]=z,e[8]=g,e[9]=x,e[10]=r,e[11]=w,e[12]=S):S=e[12];let _;e[13]!==h||e[14]!==j||e[15]!==s||e[16]!==N||e[17]!==T||e[18]!==g||e[19]!==k||e[20]!==l||e[21]!==c||e[22]!==x||e[23]!==r||e[24]!==P||e[25]!==n?(_=n==="cards"?t.jsx("div",{className:"flex-1 overflow-auto p-5",children:s.length===0?t.jsx("div",{className:"flex items-center justify-center h-full",children:N||t.jsx(Ue,{icon:t.jsx(We,{size:36,className:"text-muted-foreground"}),title:"No items found",description:c?"Try adjusting your search":"No items to display"})}):t.jsx("div",{className:"grid grid-cols-[repeat(auto-fill,minmax(280px,1fr))] gap-4",children:s.map(A=>t.jsx("div",{onClick:()=>T?.(A),className:"cursor-pointer h-full",children:t.jsx(kt,{item:A,schema:l,readOnly:k,actions:h})},A.id))})}):t.jsx(xt,{columns:Yt(j,l,P,h),data:s,sortKey:r,sortDirection:x,onSort:g,onRowClick:T,emptyState:N||t.jsx(Ue,{icon:t.jsx(We,{size:36,className:"text-muted-foreground"}),title:"No items found",description:c?"Try adjusting your search":"No items to display"})}),e[13]=h,e[14]=j,e[15]=s,e[16]=N,e[17]=T,e[18]=g,e[19]=k,e[20]=l,e[21]=c,e[22]=x,e[23]=r,e[24]=P,e[25]=n,e[26]=_):_=e[26];let I;return e[27]!==S||e[28]!==_?(I=t.jsxs("div",{className:"h-full flex flex-col overflow-hidden",children:[S,_]}),e[27]=S,e[28]=_,e[29]=I):I=e[29],I}function Rt(i){return{id:i.id,label:typeof i.header=="string"?i.header:i.id}}function Bt(i){return i.sortable!==!1}function Vt(){}function qt(){}function Gt(i){return{id:"actions",header:"",render:e=>t.jsxs(Ye,{children:[t.jsx(He,{asChild:!0,children:t.jsx(Ce,{variant:"ghost",size:"sm",className:"h-8 w-8 p-0",onClick:s=>s.stopPropagation(),children:t.jsx(Xe,{size:20})})}),t.jsxs(Je,{align:"end",onClick:s=>s.stopPropagation(),children:[i.open&&t.jsxs(O,{onClick:s=>{s.stopPropagation(),i.open?.(e)},children:[t.jsx(tt,{size:16}),"Open"]}),i.edit&&t.jsxs(O,{onClick:s=>{s.stopPropagation(),i.edit?.(e)},children:[t.jsx(et,{size:16}),"Edit"]}),i.duplicate&&t.jsxs(O,{onClick:s=>{s.stopPropagation(),i.duplicate?.(e)},children:[t.jsx(Ze,{size:16}),"Duplicate"]}),i.delete&&t.jsxs(O,{variant:"destructive",onClick:s=>{s.stopPropagation(),i.delete?.(e)},children:[t.jsx(st,{size:16}),"Delete"]})]})]}),cellClassName:"w-[60px]",sortable:!1}}function nt(i){const e=i.type;return Array.isArray(e)?e.every(s=>nt({type:s})):e==="string"||e==="number"||e==="integer"||e==="boolean"||e==="null"}function Qt(i,e){const s=i.properties||{},l=Object.keys(s).filter(o=>{const m=s[o];return m&&nt(m)}),n=Ut(s),c=[],r=new Set;n&&l.includes(n)&&(c.push(n),r.add(n));const p=["title","description","updated_at","updated_by"];for(const o of p)l.includes(o)&&!r.has(o)&&(c.push(o),r.add(o));const d=l.filter(o=>!r.has(o)&&!Re.includes(o)).sort((o,m)=>o.localeCompare(m));for(const o of d)c.push(o),r.add(o);for(const o of Re)l.includes(o)&&!r.has(o)&&(c.push(o),r.add(o));return c.map(o=>{const m=s[o],u=e?e.includes(o):!["id"].includes(o);return o===n?{id:o,header:"",render:f=>{const a=f[o];return t.jsx(Qe,{icon:a,name:f.title,size:"sm",className:"shrink-0 shadow-sm"})},sortable:!1,cellClassName:"w-16 shrink-0",wrap:!0}:o==="description"?{id:o,header:"Description",render:f=>{const a=f[o];return a==null?"—":t.jsx("span",{className:"block truncate max-w-[50ch]",children:String(a)})},sortable:u,cellClassName:"max-w-[50ch]"}:o==="created_by"||o==="updated_by"?{id:o,header:o.charAt(0).toUpperCase()+o.slice(1).replace(/_/g," "),render:f=>{const a=f[o];return a?t.jsx(jt,{id:String(a),size:"xs"}):"—"},sortable:u,cellClassName:"max-w-[250px]"}:m?.format==="date-time"||o.endsWith("_at")?{id:o,header:o.charAt(0).toUpperCase()+o.slice(1).replace(/_/g," "),render:f=>{const a=f[o];return a?t.jsx("span",{className:"block truncate max-w-full",children:new Date(a).toLocaleDateString()}):"—"},sortable:u,cellClassName:"max-w-[200px]"}:{id:o,header:o.charAt(0).toUpperCase()+o.slice(1).replace(/_/g," "),render:f=>{const a=f[o];return a==null?"—":t.jsx("span",{className:"block truncate max-w-full",children:String(a)})},sortable:u,cellClassName:"max-w-[200px]"}})}function Yt(i,e,s,l){const n=i||Qt(e,s);return n.some(p=>p.id==="actions")?n:Object.keys(l).length>0?[...n,Gt(l)]:n}function Ht(i){const e=oe.c(119),{connectionId:s,org:l,activeCollection:n,onItemClick:c}=i,r=n.name,p=n.schema??ft,d=n.hasCreateTool,o=n.hasUpdateTool,m=n.hasDeleteTool,u=Be(),{data:f}=ct.useSession(),a=f?.user?.id||"unknown",v=Tt(s);let y;e[0]!==v||e[1]!==s?(y=v?bt(v):s,e[0]=v,e[1]=s,e[2]=y):y=e[2];const b=y,{org:x}=ze();let g;e[3]!==s||e[4]!==x.id||e[5]!==x.slug?(g={connectionId:s,orgId:x.id,orgSlug:x.slug},e[3]=s,e[4]=x.id,e[5]=x.slug,e[6]=g):g=e[6];const $=Ve(g),h=It(s,r,$),T=`${s}-${r}`;let E;e[7]!==l||e[8]!==T?(E={namespace:l,resource:T,defaultSortKey:"updated_at"},e[7]=l,e[8]=T,e[9]=E):E=e[9];const{search:N,searchTerm:k,setSearch:j,viewMode:z,setViewMode:P,sortKey:D,sortDirection:w,handleSort:S}=Ct(E);let _;e[10]!==k||e[11]!==w||e[12]!==D?(_={searchTerm:k,sortKey:D,sortDirection:w},e[10]=k,e[11]=w,e[12]=D,e[13]=_):_=e[13];const I=At(s,r,$,_),A=!d&&!o&&!m;let ne;e[14]!==b||e[15]!==r||e[16]!==u||e[17]!==c||e[18]!==l?(ne=C=>{if(c){c(C);return}u({to:"/$org/settings/connections/$appSlug/$collectionName/$itemId",params:{org:l,appSlug:b,collectionName:r,itemId:C.id}})},e[14]=b,e[15]=r,e[16]=u,e[17]=c,e[18]=l,e[19]=ne):ne=e[19];const L=ne;let re;e[20]!==h.create||e[21]!==a?(re=async C=>{const xe=new Date().toISOString();await h.create.mutateAsync({...C,id:Me("conn"),title:`${C.title} (Copy)`,created_at:xe,updated_at:xe,created_by:a,updated_by:a})},e[20]=h.create,e[21]=a,e[22]=re):re=e[22];const be=re,[F,ve]=dt.useState(null);let le;e[23]===Symbol.for("react.memo_cache_sentinel")?(le=C=>{ve(C)},e[23]=le):le=e[23];const rt=le;let K;e[24]!==L||e[25]!==o?(K=o&&{edit:L},e[24]=L,e[25]=o,e[26]=K):K=e[26];let M;e[27]!==be||e[28]!==d?(M=d&&{duplicate:be},e[27]=be,e[28]=d,e[29]=M):M=e[29];let U;e[30]!==m?(U=m&&{delete:rt},e[30]=m,e[31]=U):U=e[31];let ae;e[32]!==M||e[33]!==U||e[34]!==K?(ae={...K,...M,...U},e[32]=M,e[33]=U,e[34]=K,e[35]=ae):ae=e[35];const ye=ae;let ce;e[36]!==h.delete||e[37]!==F?(ce=async()=>{F&&(await h.delete.mutateAsync(F.id),ve(null))},e[36]=h.delete,e[37]=F,e[38]=ce):ce=e[38];const Ne=ce;let de;e[39]!==h.create||e[40]!==b||e[41]!==r||e[42]!==d||e[43]!==u||e[44]!==l||e[45]!==a?(de=async()=>{if(!d){Le.error("Create operation is not available for this collection");return}const C=new Date().toISOString(),xe={id:Me("conn"),title:"New Item",description:"A brief description of the item",created_at:C,updated_at:C,created_by:a,updated_by:a};try{const ke=await h.create.mutateAsync(xe);u({to:"/$org/settings/connections/$appSlug/$collectionName/$itemId",params:{org:l,appSlug:b,collectionName:r,itemId:ke.id}})}catch(ke){console.error("Failed to create item:",ke)}},e[39]=h.create,e[40]=b,e[41]=r,e[42]=d,e[43]=u,e[44]=l,e[45]=a,e[46]=de):de=e[46];const we=de;let ue;e[47]!==p?(ue=ot(p),e[47]=p,e[48]=ue):ue=e[48];const Se=ue,lt=(I?.length??0)>0,at=d&&!lt&&!N;let me;e[49]!==h.create||e[50]!==we||e[51]!==d?(me=d?t.jsxs(Ce,{onClick:we,size:"sm",disabled:h.create.isPending,className:"h-7",children:[t.jsx(Et,{className:"mr-2 h-4 w-4"}),h.create.isPending?"Creating...":"Create"]}):null,e[49]=h.create,e[50]=we,e[51]=d,e[52]=me):me=e[52];const pe=me,Pe=D;let W;e[53]!==S||e[54]!==w||e[55]!==Se||e[56]!==Pe?(W=t.jsx(Ot,{children:t.jsx(Ge,{sortKey:Pe,sortDirection:w,onSort:S,sortOptions:Se})}),e[53]=S,e[54]=w,e[55]=Se,e[56]=Pe,e[57]=W):W=e[57];const _e=`Search ${r}...`;let R;e[58]!==j?(R=C=>{C.key==="Escape"&&(j(""),C.target.blur())},e[58]=j,e[59]=R):R=e[59];let B;e[60]!==N||e[61]!==j||e[62]!==_e||e[63]!==R?(B=t.jsx("div",{className:"flex-1",children:t.jsx(ht,{value:N,onChange:j,placeholder:_e,onKeyDown:R})}),e[60]=N,e[61]=j,e[62]=_e,e[63]=R,e[64]=B):B=e[64];let V;e[65]!==pe||e[66]!==d?(V=d&&t.jsx("div",{className:"pr-3",children:pe}),e[65]=pe,e[66]=d,e[67]=V):V=e[67];let q;e[68]!==B||e[69]!==V?(q=t.jsxs("div",{className:"flex items-center gap-2",children:[B,V]}),e[68]=B,e[69]=V,e[70]=q):q=e[70];let G;e[71]!==I?(G=I??[],e[71]=I,e[72]=G):G=e[72];const De=D;let Q;e[73]!==L?(Q=C=>L(C),e[73]=L,e[74]=Q):Q=e[74];const Ie="No items found",Ae=N?"Try adjusting your search terms":"This collection doesn't have any items yet.",Te=at?pe:void 0;let Y;e[75]!==Ie||e[76]!==Ae||e[77]!==Te?(Y=t.jsx(it,{image:null,title:Ie,description:Ae,actions:Te}),e[75]=Ie,e[76]=Ae,e[77]=Te,e[78]=Y):Y=e[78];let H;e[79]!==S||e[80]!==A||e[81]!==ye||e[82]!==p||e[83]!==N||e[84]!==j||e[85]!==P||e[86]!==w||e[87]!==G||e[88]!==De||e[89]!==Q||e[90]!==Y||e[91]!==z?(H=t.jsx("div",{className:"flex-1 overflow-auto",children:t.jsx(Wt,{hideToolbar:!0,data:G,schema:p,viewMode:z,onViewModeChange:P,search:N,onSearchChange:j,sortKey:De,sortDirection:w,onSort:S,actions:ye,onItemClick:Q,readOnly:A,emptyState:Y})}),e[79]=S,e[80]=A,e[81]=ye,e[82]=p,e[83]=N,e[84]=j,e[85]=P,e[86]=w,e[87]=G,e[88]=De,e[89]=Q,e[90]=Y,e[91]=z,e[92]=H):H=e[92];let J;e[93]!==q||e[94]!==H?(J=t.jsxs("div",{className:"flex flex-col h-full overflow-hidden",children:[q,H]}),e[93]=q,e[94]=H,e[95]=J):J=e[95];const Ee=!!F;let fe;e[96]===Symbol.for("react.memo_cache_sentinel")?(fe=C=>{C||ve(null)},e[96]=fe):fe=e[96];let he;e[97]===Symbol.for("react.memo_cache_sentinel")?(he=t.jsx(Nt,{children:"Delete item?"}),e[97]=he):he=e[97];const Oe=F?.title;let Z;e[98]!==Oe?(Z=t.jsxs(wt,{children:[he,t.jsxs(St,{children:['Are you sure you want to delete "',Oe,'"? This action cannot be undone.']})]}),e[98]=Oe,e[99]=Z):Z=e[99];let X;e[100]!==h.delete.isPending?(X=t.jsx(vt,{disabled:h.delete.isPending,children:"Cancel"}),e[100]=h.delete.isPending,e[101]=X):X=e[101];const $e=h.delete.isPending?"Deleting...":"Delete";let ee;e[102]!==h.delete.isPending||e[103]!==Ne||e[104]!==$e?(ee=t.jsx(yt,{onClick:Ne,disabled:h.delete.isPending,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:$e}),e[102]=h.delete.isPending,e[103]=Ne,e[104]=$e,e[105]=ee):ee=e[105];let te;e[106]!==X||e[107]!==ee?(te=t.jsxs(Pt,{children:[X,ee]}),e[106]=X,e[107]=ee,e[108]=te):te=e[108];let se;e[109]!==Z||e[110]!==te?(se=t.jsxs(_t,{children:[Z,te]}),e[109]=Z,e[110]=te,e[111]=se):se=e[111];let ie;e[112]!==Ee||e[113]!==se?(ie=t.jsx(Dt,{open:Ee,onOpenChange:fe,children:se}),e[112]=Ee,e[113]=se,e[114]=ie):ie=e[114];let ge;return e[115]!==W||e[116]!==J||e[117]!==ie?(ge=t.jsxs(t.Fragment,{children:[W,J,ie]}),e[115]=W,e[116]=J,e[117]=ie,e[118]=ge):ge=e[118],ge}function Jt(){const i=oe.c(13),{org:e,project:s}=ze(),l=ut();let n;i[0]!==e.id||i[1]!==e.slug?(n={connectionId:qe,orgId:e.id,orgSlug:e.slug},i[0]=e.id,i[1]=e.slug,i[2]=n):n=i[2];const c=Ve(n);let r;i[3]!==c||i[4]!==s?(r=async m=>{const u=s.enabledPlugins??[];if(u.includes(m))return;const f=[...u,m],a=await c.callTool({name:"COLLECTION_VIRTUAL_MCP_UPDATE",arguments:{id:s.id,data:{metadata:{enabled_plugins:f}}}});return a.structuredContent??a},i[3]=c,i[4]=s,i[5]=r):r=i[5];let p;i[6]!==e.id||i[7]!==s||i[8]!==l?(p=()=>{l.invalidateQueries({queryKey:Fe.project(e.id,s.slug)}),l.invalidateQueries({queryKey:Fe.projects(e.id)})},i[6]=e.id,i[7]=s,i[8]=l,i[9]=p):p=i[9];let d;return i[10]!==r||i[11]!==p?(d={mutationFn:r,onSuccess:p,onError:Zt},i[10]=r,i[11]=p,i[12]=d):d=i[12],mt(d)}function Zt(i){Le.error("Failed to enable plugin: "+(i instanceof Error?i.message:"Unknown error"))}function Xt(i){const e=oe.c(12),{pluginId:s,title:l,description:n,icon:c}=i,r=Jt();let p;e[0]!==r||e[1]!==s?(p=async()=>{try{await r.mutateAsync(s),Le.success("Plugin enabled!")}catch{}},e[0]=r,e[1]=s,e[2]=p):p=e[2];const d=p,o=c??null,m=r.isPending?"Enabling…":"Enable plugin";let u;e[3]!==r.isPending||e[4]!==d||e[5]!==m?(u=t.jsx(Ce,{onClick:d,disabled:r.isPending,children:m}),e[3]=r.isPending,e[4]=d,e[5]=m,e[6]=u):u=e[6];let f;return e[7]!==n||e[8]!==o||e[9]!==u||e[10]!==l?(f=t.jsx(it,{image:o,title:l,description:n,actions:u}),e[7]=n,e[8]=o,e[9]=u,e[10]=l,e[11]=f):f=e[11],f}const es={name:"WORKFLOW",displayName:"Workflow",hasCreateTool:!0,hasUpdateTool:!0,hasDeleteTool:!0};function ni(){const{project:i,org:e}=ze();if(!(i.enabledPlugins??[]).includes(Ke))return t.jsx(je,{children:t.jsx(je.Content,{children:t.jsx("div",{className:"flex flex-col items-center justify-center h-full",children:t.jsx(Xt,{pluginId:Ke,title:"Enable Workflows",description:"Automate multi-step processes by enabling the Workflows plugin. Once enabled you can create, run, and monitor workflows.",icon:t.jsx("div",{className:"bg-muted p-4 rounded-full",children:t.jsx(pt,{className:"size-8 text-muted-foreground"})})})})})});const n=Be();return t.jsx(je,{children:t.jsx(je.Content,{children:t.jsx(Ht,{connectionId:qe,org:e.slug,activeCollection:es,onItemClick:c=>n({to:"/$org/settings/workflows/$itemId",params:{org:e.slug,itemId:c.id}})})})})}export{ni as default};
@@ -0,0 +1 @@
1
+ import{e as s,g as l,j as o,l as a,E as n,r as c}from"./index-B8wYFose.js";import{a as f}from"./index-Dh5b6FKZ.js";import"./index-BOF6ofTq.js";import"./constants-tprixB5_.js";import"./collections-D9BTFOqK.js";import"./index-B5NFytyy.js";import"./use-virtual-mcp-vzw_J4dC.js";import"./use-collections-C8-XPfet.js";import"./monaco-editor-CMoZIi5v.js";import"./index-EtUE8o2i.js";import"./accordion-BJ1n_ugI.js";import"./agent-icon-DEN9w1Xd.js";import"./AlertCircle-CMCkCBRI.js";import"./Tool01-DaKtGMUM.js";import"./XClose-CtlDoPHz.js";import"./RefreshCcw01-ljF052Et.js";import"./ArrowNarrowLeft-BOEo-CBC.js";import"./XCircle-DZ8qXuj0.js";import"./ArrowUpRight-WdPk_kpa.js";import"./ZapSquare-CQqweAlr.js";import"./Users03-C4VkXkge.js";import"./CheckCircle-DZo2q-YR.js";import"./Check-CAMqJWCl.js";import"./ChevronDown-Cx6Pbu_K.js";import"./ChevronRight-B4kHNMva.js";import"./ChevronUp-DE9NYg_0.js";import"./DotsVertical-D128coNp.js";import"./Container-Ci-j0vPm.js";import"./Star01-BthGo7Cr.js";import"./Palette-DpT03Fqa.js";import"./SearchMd-CqEX_8tR.js";import"./index-N8VfJ_WS.js";import"./tooltip-Br8vvjUC.js";import"./X-DwGqF9nr.js";import"./LinkExternal01-Ch_n4-pR.js";import"./Lock01-B6OWF8qs.js";import"./Sun-DIAjvzoS.js";import"./Play-C8kJ2Esj.js";import"./Plus-C4z2sygw.js";import"./Settings02-ByJHULD_.js";import"./Shield01-DNagRkrI.js";import"./Trash01-CslzP03u.js";import"./User01-BIVBcamj.js";import"./Zap-BiGMObSD.js";import"./badge-Chay17Vz.js";import"./select-DyrffkPY.js";import"./view-mode-toggle-D60CVsHW.js";import"./layout-C_xEd7nj.js";import"./use-connection-D4awwlNm.js";import"./use-mcp-tools-clbdK_dO.js";import"./dialog-DlX5SAb0.js";import"./index-Bcn8Bkwx.js";import"./dropdown-menu-D50uKv4Z.js";import"./integration-icon-BNLQkBSh.js";import"./scroll-area-BO2c1evq.js";import"./index-C49BJ7nT.js";import"./empty-state-C07mnXqN.js";import"./create-sse-subscription-CxkOgzKf.js";import"./input-jyF6PW8g.js";function gt(){const t=s.c(4);let r;t[0]===Symbol.for("react.memo_cache_sentinel")?(r={from:"/shell/$org/settings/workflows/$itemId"},t[0]=r):r=t[0];const{itemId:e}=l(r);let i;t[1]===Symbol.for("react.memo_cache_sentinel")?(i=o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(a,{size:32,className:"animate-spin text-muted-foreground"})}),t[1]=i):i=t[1];const p=decodeURIComponent(e);let m;return t[2]!==p?(m=o.jsx(n,{children:o.jsx(c.Suspense,{fallback:i,children:o.jsx(f,{itemId:p})})}),t[2]=p,t[3]=m):m=t[3],m}export{gt as default};
@@ -27,8 +27,8 @@
27
27
  <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
28
28
  <link rel="manifest" href="/manifest.webmanifest" />
29
29
  <meta name="theme-color" content="#D0EC1A" />
30
- <script type="module" crossorigin src="/assets/index-BZOcmiWe.js"></script>
31
- <link rel="stylesheet" crossorigin href="/assets/index-B_4-KoG_.css">
30
+ <script type="module" crossorigin src="/assets/index-B8wYFose.js"></script>
31
+ <link rel="stylesheet" crossorigin href="/assets/index-CpHJcJk3.css">
32
32
  </head>
33
33
  <body>
34
34
  <div id="root"></div>
@@ -5,6 +5,7 @@
5
5
  "start_url": "/",
6
6
  "scope": "/",
7
7
  "display": "standalone",
8
+ "display_override": ["window-controls-overlay"],
8
9
  "background_color": "#ffffff",
9
10
  "theme_color": "#D0EC1A",
10
11
  "icons": [
@@ -1643,7 +1643,7 @@ AS SELECT
1643
1643
  FROM monitoring_metrics
1644
1644
  GROUP BY organization_id, name, bucket, connection_id, tool_name, status
1645
1645
  `}),console.log("[clickhouse-schema] monitoring_metrics_rollup_1m_mv view ready")}finally{await G.close()}}catch(Y){console.error("[clickhouse-schema] Failed to create rollup DDL (queries will fall back to raw table):",Y)}}async function iA1(X){let Y={...process.env},G=e$1(X,Y),Q=G.settings.encryptionKey;console.log(`[settings] ENCRYPTION_KEY = ${JSON.stringify(Q)} (${Q.length} chars)`);let{ensureServices:J}=await Promise.resolve().then(() => (l$1(),u$1)),{outputs:W,services:Z}=await J({home:G.settings.dataDir,externalDatabaseUrl:G.externalDatabaseUrl,externalNatsUrl:G.externalNatsUrl});if(!G.skipMigrations){let{migrateBetterAuth:K}=await Promise.resolve().then(() => (JW0(),Kg4));await K(W.databaseUrl);let{createDatabase:H}=await Promise.resolve().then(() => (ZU(),$g4)),{migrateToLatest:U}=await Promise.resolve().then(() => (Os4(),zs4)),B=H(W.databaseUrl);await U({keepOpen:!0,database:B,skipBetterAuth:!0})}if(G.settings.clickhouseUrl){let{ensureClickHouseRollup:K}=await Promise.resolve().then(() => D16);await K(G.settings.clickhouseUrl)}let $={...G.settings,databaseUrl:W.databaseUrl,natsUrls:W.natsUrls};return ut1($),{settings:$,services:Z.map((K)=>({name:K.name==="PostgreSQL"?"Postgres":K.name,port:K.port})),managedServiceNames:Z.filter((K)=>K.owner==="managed").map((K)=>K.name)}}var _N0=w(()=>{gt1();l9()});var tA1={};T0(tA1,{updateService:()=>Qa,toggleViewMode:()=>bN0,toggleVibeState:()=>xN0,toggleLogFlow:()=>yN0,subscribeCliState:()=>vX1,setVibe:()=>Ha5,setTuiConsoleIntercepted:()=>pA1,setServerUrl:()=>fX1,setMigrationsDone:()=>_X1,setEnv:()=>bX1,setDevMode:()=>$a5,setDataDir:()=>Ka5,isTuiConsoleIntercepted:()=>nA1,getCliState:()=>CX1,addLogEntry:()=>Wz});function TU(){for(let X of fN0)X()}function CX1(){return e9}function vX1(X){return fN0.add(X),()=>fN0.delete(X)}function Qa(X){e9={...e9,services:e9.services.map((Y)=>Y.name===X.name?X:Y)},TU()}function _X1(){e9={...e9,migrationsStatus:"done"},TU()}function fX1(X){e9={...e9,serverUrl:X},TU()}function bX1(X){e9={...e9,env:X},TU()}function Wz(X){let Y=[...e9.logs,X];e9={...e9,logs:Y.length>500?Y.slice(-500):Y},TU()}function $a5(){e9={...e9,services:[...e9.services,{name:"Vite",status:"pending",port:0}]},TU()}function bN0(){e9={...e9,viewMode:e9.viewMode==="requests"?"config":"requests"},TU()}function yN0(){e9={...e9,logFlow:!e9.logFlow},TU()}function Ka5(X){e9={...e9,dataDir:X},TU()}function Ha5(X){e9={...e9,vibe:X},TU()}function xN0(){e9={...e9,vibe:!e9.vibe},TU()}function pA1(X){w16=X}function nA1(){return w16}var e9,fN0,w16=!1;var $z=w(()=>{e9={services:[{name:"Postgres",status:"pending",port:0},{name:"NATS",status:"pending",port:0}],migrationsStatus:"pending",serverUrl:null,env:null,logs:[],viewMode:"requests",logFlow:!1,vibe:!1,dataDir:null},fN0=new Set});import{createServer as L16}from"net";function Fa5(X){return new Promise((Y)=>{let G=L16();G.once("error",()=>Y(!1)),G.listen(X,"0.0.0.0",()=>{G.close(()=>Y(!0))})})}async function aA1(X){if(await Fa5(X))return X;let Y=await new Promise((G,Q)=>{let J=L16();J.once("error",Q),J.listen(0,"0.0.0.0",()=>{let W=J.address(),Z=typeof W==="object"&&W?W.port:0;J.close(()=>G(Z))})});return console.warn(`Port ${X} is in use, using port ${Y} instead.`),Y}var hN0=()=>{};var gN0={};T0(gN0,{startDevServer:()=>Ba5});import{join as Ua5}from"path";function E16(X){return X.replace(/\x1b\[[0-9;]*m/g,"")}function P16(X){let Y=X.getReader(),G=new TextDecoder,Q="";function J(){let W=Q.split(`
1646
- `);Q=W.pop()??"";for(let Z of W){let $=E16(Z).replace(/^\[\d+\]\s*/,"").trim();if(!$)continue;Wz({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:$})}}(async()=>{for(;;){let{done:W,value:Z}=await Y.read();if(W)break;Q+=G.decode(Z,{stream:!0}),J()}if(Q.trim()){let W=E16(Q).replace(/^\[\d+\]\s*/,"").trim();if(W)Wz({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:W})}})()}async function Ba5(X){let{vitePort:Y,baseUrl:G,noTui:Q}=X,J=await aA1(Number(X.port)),{settings:W,services:Z,managedServiceNames:$}=await iA1({port:String(J),home:X.home,baseUrl:X.baseUrl,localMode:X.localMode,skipMigrations:X.skipMigrations,noTui:X.noTui,vitePort:X.vitePort});for(let z of Z)Qa({name:z.name,status:"ready",port:z.port});bX1(W),_X1();let K=Ua5(import.meta.dir,"..","..","..","..",".."),H=Q===!0,U=Bun.spawn(["bun","run","--cwd=apps/mesh","dev:servers"],{cwd:K,env:{...process.env,PORT:String(W.port),VITE_PORT:String(Y),DATABASE_URL:W.databaseUrl,NATS_URL:W.natsUrls.join(","),NODE_ENV:W.nodeEnv,DECOCMS_LOCAL_MODE:String(W.localMode),DECOCMS_HOME:W.dataDir,DATA_DIR:W.dataDir,DECO_CLI:"1",...W.baseUrl?{BASE_URL:W.baseUrl}:{}},stdio:["inherit",H?"inherit":"pipe",H?"inherit":"pipe"]});if(!H)P16(U.stdout),P16(U.stderr);let B=G||`http://localhost:${W.port}`;fX1(B),Qa({name:"Vite",status:"ready",port:Number(Y)});let N=async(z)=>{if(U.kill(z),$.length>0){let{stopServices:O}=await Promise.resolve().then(() => (l$1(),u$1));await O(W.dataDir)}};return process.on("SIGINT",()=>N("SIGINT")),process.on("SIGTERM",()=>N("SIGTERM")),{port:Number(W.port),process:U}}var uN0=w(()=>{_N0();$z();hN0()});import{Box as lN0,Text as mN0}from"ink";import{jsx as A16,jsxs as rA1}from"react/jsx-runtime";function q16(X){if(!X)return"not set";try{let Y=new URL(X);if(Y.password)Y.password="***";if(Y.username&&Y.username.length>3)Y.username=Y.username.slice(0,3)+"***";return Y.pathname="/",Y.search="",Y.hash="",Y.toString()}catch{if(X.length<=10)return X;return X.slice(0,6)+"***"+X.slice(-4)}}function Oa5(X,Y){if(Na5.has(X))return Y?{text:"\u25CF\u25CF\u25CF\u25CF\u25CF\u25CF",dimColor:!0}:{text:"not set",dimColor:!0};if(za5.has(X)){if(Array.isArray(Y)){if(Y.length===0)return{text:"not set",dimColor:!0};return{text:Y.map((W)=>q16(W)).join(", "),color:"cyan"}}let Q=q16(Y);return Q==="not set"?{text:Q,dimColor:!0}:{text:Q,color:"cyan"}}if(Y===void 0||Y===null||Y==="")return{text:"not set",dimColor:!0};let G=String(Y);if(G==="true")return{text:G,color:"green"};if(G==="false")return{text:G,color:"yellow"};try{return new URL(G),{text:G,color:"cyan"}}catch{return{text:G}}}function Da5(X){return[{title:"Core",entries:[{key:"NODE_ENV",value:X.nodeEnv},{key:"PORT",value:X.port},{key:"BASE_URL",value:X.baseUrl??`http://localhost:${X.port}`},{key:"DATA_DIR",value:X.dataDir}]},{title:"Database",entries:[{key:"DATABASE_URL",value:X.databaseUrl},{key:"DATABASE_PG_SSL",value:X.databasePgSsl}]},{title:"Auth & Secrets",entries:[{key:"BETTER_AUTH_SECRET",value:X.betterAuthSecret},{key:"ENCRYPTION_KEY",value:X.encryptionKey},{key:"MESH_JWT_SECRET",value:X.meshJwtSecret},{key:"STUDIO_PROVISION_SECRET_KEY",value:X.studioProvisionSecretKey},{key:"DISABLE_RATE_LIMIT",value:X.disableRateLimit}]},{title:"Auth Providers",entries:[{key:"AUTH_EMAIL_PASSWORD_ENABLED",value:process.env.AUTH_EMAIL_PASSWORD_ENABLED??"true"},{key:"AUTH_GOOGLE_CLIENT_ID",value:!!process.env.AUTH_GOOGLE_CLIENT_ID},{key:"AUTH_GITHUB_CLIENT_ID",value:!!process.env.AUTH_GITHUB_CLIENT_ID},{key:"AUTH_RESEND_API_KEY",value:!!process.env.AUTH_RESEND_API_KEY},{key:"AUTH_SENDGRID_API_KEY",value:!!process.env.AUTH_SENDGRID_API_KEY},{key:"AUTH_SSO_MS_CLIENT_ID",value:!!process.env.AUTH_SSO_MS_CLIENT_ID},{key:"AUTH_MAGIC_LINK_ENABLED",value:process.env.AUTH_MAGIC_LINK_ENABLED==="true"},{key:"AUTH_EMAIL_OTP_ENABLED",value:process.env.AUTH_EMAIL_OTP_ENABLED==="true"}]},{title:"Observability",entries:[{key:"CLICKHOUSE_URL",value:X.clickhouseUrl},{key:"OTEL_SERVICE_NAME",value:X.otelServiceName}]},{title:"Event Bus & Networking",entries:[{key:"NATS_URL",value:X.natsUrls}]},{title:"Config Files",entries:[{key:"CONFIG_PATH",value:X.configPath}]},{title:"AI Gateway",entries:[{key:"DECO_AI_GATEWAY_ENABLED",value:X.aiGatewayEnabled},{key:"DECO_AI_GATEWAY_URL",value:X.aiGatewayUrl}]}]}function T16({env:X}){let Y=Da5(X);return A16(lN0,{flexDirection:"column",children:Y.map((G)=>rA1(lN0,{flexDirection:"column",marginTop:1,children:[rA1(mN0,{dimColor:!0,children:[" ","\u2500\u2500 ",G.title," ","\u2500".repeat(Math.max(0,38-G.title.length))]}),G.entries.map(({key:Q,value:J})=>{let W=Oa5(Q,J);return rA1(lN0,{children:[rA1(mN0,{dimColor:!0,children:[" ",Q.padEnd(36)]}),A16(mN0,{color:W.color,dimColor:W.dimColor,children:W.text})]},Q)})]},G.title))})}var Na5,za5;var I16=w(()=>{Na5=new Set(["BETTER_AUTH_SECRET","ENCRYPTION_KEY","MESH_JWT_SECRET","STUDIO_PROVISION_SECRET_KEY"]),za5=new Set(["DATABASE_URL","CLICKHOUSE_URL","NATS_URL"])});var dN0;var V16=w(()=>{dN0={name:"decocms",version:"2.306.18",description:"Deco CMS \u2014 Self-hostable MCP Gateway for managing AI connections and tools",author:"Deco team",repository:{type:"git",url:"git+https://github.com/decocms/studio.git",directory:"apps/mesh"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:'bun run migrate && concurrently "bun run dev:client" "bun run dev:server"',"dev:servers":'concurrently "bun run dev:client" "bun run dev:server"',"dev:client":"bun --bun vite dev","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts","build:client":"bun --bun vite build","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","db:migrate":"bun run ./dist/server/migrate.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts",test:"bun test","test:e2e":"playwright test","test:e2e:ui":"playwright test --ui","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts",prepublishOnly:"bun run build:client && bun run build:server"},optionalDependencies:{"@duckdb/node-api":"^1.5.0-r.1","@freestyle-sh/with-bun":"^0.2.12","@freestyle-sh/with-deno":"^0.0.4","@freestyle-sh/with-nodejs":"^0.2.9","freestyle-sandboxes":"^0.1.46"},dependencies:{"@ai-sdk/anthropic":"^3.0.58","@ai-sdk/google":"^3.0.60","@ai-sdk/openai":"^3.0.50","@anthropic-ai/sdk":"^0.79.0","@aws-sdk/client-s3":"^3.1013.0","@aws-sdk/s3-request-presigner":"^3.1013.0","@clickhouse/client":"^1.8.1","@deco-cx/warp-node":"^0.3.20","@dnd-kit/core":"^6.3.1","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@inkjs/ui":"^2.0.0","@modelcontextprotocol/ext-apps":"^1.2.2","@openrouter/ai-sdk-provider":"^2.2.5","@opentelemetry/core":"^2.6.0","@tanstack/react-virtual":"^3.13.21","@xterm/addon-fit":"^0.11.0","@xterm/xterm":"^6.0.0","ai-sdk-provider-claude-code":"^3.4.4","ai-sdk-provider-codex-cli":"^1.1.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12",nats:"^2.29.3","node-pty":"^1.0.0","posthog-js":"^1.371.1","posthog-node":"^5.0.0",react:"^19.2.0","react-dom":"^19.2.0"},devDependencies:{"@ai-sdk/provider":"^3.0.8","@ai-sdk/react":"^3.0.118","@anthropic-ai/claude-agent-sdk":"^0.2.80","@better-auth/sso":"1.4.1","@daveyplate/better-auth-ui":"^3.2.7","@deco/ui":"workspace:*","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/mesh-sdk":"workspace:*","@decocms/runtime":"workspace:*","@decocms/vite-plugin":"workspace:*","@electric-sql/pglite":"^0.3.15","@floating-ui/react":"^0.27.16","@hookform/resolvers":"^5.2.2","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.27.1","@monaco-editor/react":"^4.7.0","@opentelemetry/api":"^1.9.0","@opentelemetry/api-logs":"^0.211.0","@opentelemetry/exporter-logs-otlp-proto":"^0.211.0","@opentelemetry/exporter-prometheus":"^0.208.0","@opentelemetry/exporter-trace-otlp-proto":"^0.207.0","@opentelemetry/instrumentation-runtime-node":"^0.24.0","@opentelemetry/sdk-logs":"^0.211.0","@opentelemetry/sdk-metrics":"^2.2.0","@opentelemetry/sdk-node":"^0.207.0","@opentelemetry/sdk-trace-base":"^2.5.0","@playwright/test":"^1.58.2","@radix-ui/react-avatar":"^1.1.10","@radix-ui/react-checkbox":"^1.3.3","@radix-ui/react-dialog":"^1.1.15","@radix-ui/react-dropdown-menu":"^2.1.16","@radix-ui/react-label":"^2.1.7","@radix-ui/react-select":"^2.2.6","@radix-ui/react-separator":"^1.1.7","@radix-ui/react-slot":"^1.2.3","@radix-ui/react-tabs":"^1.1.13","@rjsf/core":"^6.1.2","@rjsf/shadcn":"^6.1.2","@rjsf/utils":"^6.1.2","@rjsf/validator-ajv8":"^6.1.2","@tailwindcss/vite":"^4.1.17","@tanstack/react-query":"5.90.11","@tanstack/react-router":"^1.139.7","@tiptap/core":"3.20.2","@tiptap/extension-mention":"3.20.2","@tiptap/extension-placeholder":"3.20.2","@tiptap/pm":"3.20.2","@tiptap/react":"3.20.2","@tiptap/starter-kit":"3.20.2","@tiptap/suggestion":"3.20.2","@types/bun":"^1.3.1","@types/pg":"^8.15.6","@types/react-syntax-highlighter":"^15.5.13","@untitledui/icons":"^0.0.19","@vercel/nft":"^1.1.1","@vitejs/plugin-react":"^5.1.0",ai:"^6.0.116","babel-plugin-react-compiler":"^1.0.0","better-auth":"1.4.5","class-variance-authority":"^0.7.1",clsx:"^2.1.1",concurrently:"^9.2.1",croner:"^9.1.0","date-fns":"^4.1.0",degit:"^2.8.4",hono:"^4.10.7","input-otp":"^1.4.2",jose:"^6.0.11","kysely-pglite":"^0.6.1","lucide-react":"^0.468.0",marked:"^15.0.6","@decocms/sandbox":"workspace:*","mesh-plugin-workflows":"workspace:*",nanoid:"^5.1.6",pg:"^8.16.3",prettier:"^3.4.2","react-hook-form":"^7.66.0","react-markdown":"^10.1.0","react-resizable-panels":"^2.1.7","react-syntax-highlighter":"^15.6.1",recharts:"^3.6.0","rehype-raw":"^7.0.0","remark-gfm":"^4.0.0","sass-embedded":"^1.97.2",sonner:"^2.0.7","tailwind-merge":"^3.3.1",tailwindcss:"^4.1.17",typescript:"^5.9.3",vite:"^7.2.1","vite-tsconfig-paths":"^5.1.4",zod:"^4.0.0",zustand:"^5.0.9"},homepage:"https://github.com/decocms/studio",keywords:["mcp","model-context-protocol","ai","gateway","self-hosted","mesh","tools"],license:"MIT",publishConfig:{access:"public"}}});import{Box as IU,Text as RX}from"ink";import{Spinner as La5}from"@inkjs/ui";import{useSyncExternalStore as j16}from"react";import{jsx as TY,jsxs as sQ}from"react/jsx-runtime";function Ta5(X,Y){if(!X||!Aa5.has(X))return X;let G=cN0[Y]??cN0[cN0.length-1];return X==="#875f00"?G[0]:G[1]}function M16({status:X}){if(X==="pending")return TY(La5,{label:""});return TY(RX,{color:"green",children:"\u2713"})}function R16({services:X,migrationsStatus:Y,home:G,serverUrl:Q,vibe:J}){let W=j16(pm0,im0),Z=j16(sm0,om0);return sQ(IU,{flexDirection:"column",paddingBottom:1,children:[J?sQ(IU,{flexDirection:"column",children:[W.map(($,K)=>{let H=Z[K],U=$.reduce((N,z)=>N+z.text.length,0),B=Math.max(0,qa5-U);return sQ(IU,{flexDirection:"row",children:[$.map((N,z)=>{let O=Ta5(N.color,K);return O?TY(RX,{color:O,children:N.text},z):TY(RX,{children:N.text},z)}),TY(RX,{children:" ".repeat(B+2)}),H?.map((N,z)=>N.color?TY(RX,{color:N.color,children:N.char},z):TY(RX,{children:N.char},z))]},K)}),sQ(RX,{dimColor:!0,children:[" v",dN0.version]})]}):sQ(IU,{flexDirection:"column",marginTop:1,children:[Ea5.map(($,K)=>TY(RX,{color:Pa5[K],children:$},K)),sQ(RX,{dimColor:!0,children:[" v",dN0.version]})]}),TY(IU,{marginBottom:1,children:TY(RX,{dimColor:!0,children:"\u2500".repeat(80)})}),TY(IU,{children:sQ(RX,{dimColor:!0,children:["Home: ",G]})}),sQ(IU,{gap:2,children:[X.map(($)=>sQ(IU,{gap:1,children:[sQ(RX,{children:[$.name," :",$.port||"...."]}),TY(M16,{status:$.status})]},$.name)),sQ(IU,{gap:1,children:[TY(RX,{children:"Migrations"}),TY(M16,{status:Y})]})]}),TY(IU,{children:Q?sQ(RX,{children:["Open in browser: ",TY(RX,{color:"cyan",children:Q})]}):TY(RX,{dimColor:!0,children:"Starting..."})}),sQ(IU,{gap:2,children:[sQ(RX,{dimColor:!0,children:[TY(RX,{bold:!0,dimColor:!0,children:"K"})," ","toggle config"]}),sQ(RX,{dimColor:!0,children:[TY(RX,{bold:!0,dimColor:!0,children:"L"})," ","toggle log flow"]}),sQ(RX,{dimColor:!0,children:[TY(RX,{bold:!0,dimColor:!0,children:"V"})," ","toggle vibe ",J?"\u266A Nihilore \xB7 CC BY 4.0":""]}),J&&sQ(RX,{dimColor:!0,children:[TY(RX,{bold:!0,dimColor:!0,children:"N"})," ","skip song"]})]})]})}var Ea5,Pa5,cN0,qa5=30,Aa5;var S16=w(()=>{V16();Rt1();ft1();Ea5=[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588 \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2588 \u2591 \u2588\u2588\u2588 \u2591\u2591\u2591 \u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2591\u2591\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591 \u2588\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591 ","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591 "],Pa5=["#00ff64","#00ee5e","#00dc56","#00c84e","#00b444","#00a03c","#008832","#006e28"],cN0=[["#00ff64","#00cc50"],["#00f060","#00c04c"],["#00e05c","#00b448"],["#00d058","#00a844"],["#00c054","#009c40"],["#00b050","#00903c"],["#00a04c","#008438"],["#009048","#007834"],["#008044","#006c30"],["#007040","#00602c"],["#00603c","#005428"]],Aa5=new Set(["#875f00","#5f3800"])});import{useSyncExternalStore as Ia5}from"react";function Va5(){let X=process.stdout.rows||24,Y=process.stdout.columns||80;if(X!==oA1.rows||Y!==oA1.columns)oA1={rows:X,columns:Y};return oA1}function ja5(X){return process.stdout.on("resize",X),()=>{process.stdout.off("resize",X)}}function k16(){return Ia5(ja5,Va5)}var oA1;var C16=w(()=>{oA1={rows:process.stdout.rows||24,columns:process.stdout.columns||80}});import{Box as Ma5,Text as yX1}from"ink";import{useSyncExternalStore as Ra5}from"react";import{jsx as iN0,jsxs as pN0}from"react/jsx-runtime";function Sa5(X){if(X>=500)return"red";if(X>=400)return"yellow";if(X>=300)return"cyan";return"green"}function v16({logs:X,headerHeight:Y}){let{rows:G}=k16(),{logFlow:Q}=Ra5(vX1,CX1),J=Math.max(1,G-Y-1),W=Q?X:X.slice(-J);return iN0(Ma5,{flexDirection:"column",children:W.map((Z,$)=>{if(Z.rawLine)return iN0(yX1,{dimColor:!0,children:Z.rawLine},$);let K=Z.duration<1000?`${Z.duration}ms`:`${(Z.duration/1000).toFixed(1)}s`;return pN0(yX1,{children:[pN0(yX1,{dimColor:!0,children:[Z.method.padEnd(6)," ",Z.path.padEnd(30)," "]}),iN0(yX1,{color:Sa5(Z.status),children:Z.status}),pN0(yX1,{dimColor:!0,children:[" ",K.padStart(8)]})]},$)})})}var _16=w(()=>{$z();C16()});var nN0={};T0(nN0,{App:()=>ya5});import{Box as ka5,Text as Ca5,useInput as va5}from"ink";import{useSyncExternalStore as _a5}from"react";import{jsx as sA1,jsxs as xa5}from"react/jsx-runtime";function ya5({home:X}){let Y=_a5(vX1,CX1);return va5((G)=>{if(G==="k"||G==="K")bN0();if(G==="l"||G==="L")yN0();if((G==="v"||G==="V")&&Y.dataDir)ht1(Y.dataDir),xN0();if((G==="n"||G==="N")&&Y.vibe)xt1()}),xa5(ka5,{flexDirection:"column",children:[sA1(R16,{services:Y.services,migrationsStatus:Y.migrationsStatus,home:X,serverUrl:Y.serverUrl,vibe:Y.vibe}),Y.viewMode==="config"?Y.env?sA1(T16,{env:Y.env}):sA1(Ca5,{dimColor:!0,children:"Loading configuration..."}):sA1(v16,{logs:Y.logs,headerHeight:Y.vibe?ba5:fa5})]})}var fa5=15,ba5=19;var tN0=w(()=>{I16();S16();_16();$z();yd()});function f16(X,Y={}){return{PORT:String(X.port),NODE_ENV:X.nodeEnv,BASE_URL:X.baseUrl,DATA_DIR:X.dataDir,DECOCMS_HOME:X.dataDir,DATABASE_URL:X.databaseUrl,DATABASE_PG_SSL:String(X.databasePgSsl),DATABASE_POOL_MAX:String(X.databasePoolMax),NATS_URL:X.natsUrls.join(","),BETTER_AUTH_SECRET:X.betterAuthSecret,ENCRYPTION_KEY:X.encryptionKey,MESH_JWT_SECRET:X.meshJwtSecret,DECOCMS_LOCAL_MODE:String(X.localMode),DISABLE_RATE_LIMIT:String(X.disableRateLimit),STUDIO_PROVISION_SECRET_KEY:X.studioProvisionSecretKey,CONFIG_PATH:X.configPath,...Object.fromEntries(Object.entries(process.env).filter(([G])=>G.startsWith("AUTH_"))),DECO_AI_GATEWAY_ENABLED:String(X.aiGatewayEnabled),DECO_AI_GATEWAY_URL:X.aiGatewayUrl,ENABLE_DECO_IMPORT:String(X.enableDecoImport),S3_ENDPOINT:X.s3Endpoint,S3_BUCKET:X.s3Bucket,S3_REGION:X.s3Region,S3_ACCESS_KEY_ID:X.s3AccessKeyId,S3_SECRET_ACCESS_KEY:X.s3SecretAccessKey,S3_FORCE_PATH_STYLE:String(X.s3ForcePathStyle),OTEL_SERVICE_NAME:X.otelServiceName,CLICKHOUSE_URL:X.clickhouseUrl,OTEL_EXPORTER_OTLP_ENDPOINT:process.env.OTEL_EXPORTER_OTLP_ENDPOINT,OTEL_EXPORTER_OTLP_PROTOCOL:process.env.OTEL_EXPORTER_OTLP_PROTOCOL,OTEL_RESOURCE_ATTRIBUTES:process.env.OTEL_RESOURCE_ATTRIBUTES,DECO_SUPABASE_URL:X.decoSupabaseUrl,DECO_SUPABASE_SERVICE_KEY:X.decoSupabaseServiceKey,FIRECRAWL_API_KEY:X.firecrawlApiKey,STUDIO_SANDBOX_RUNNER:process.env.STUDIO_SANDBOX_RUNNER,STUDIO_SANDBOX_TEMPLATE_NAME:process.env.STUDIO_SANDBOX_TEMPLATE_NAME,STUDIO_ENV:process.env.STUDIO_ENV,STUDIO_SANDBOX_PREVIEW_URL_PATTERN:process.env.STUDIO_SANDBOX_PREVIEW_URL_PATTERN,STUDIO_SANDBOX_PREVIEW_GATEWAY_NAME:process.env.STUDIO_SANDBOX_PREVIEW_GATEWAY_NAME,STUDIO_SANDBOX_PREVIEW_GATEWAY_NAMESPACE:process.env.STUDIO_SANDBOX_PREVIEW_GATEWAY_NAMESPACE,STUDIO_SANDBOX_SENTINEL_TOKEN:process.env.STUDIO_SANDBOX_SENTINEL_TOKEN,KUBERNETES_SERVICE_HOST:process.env.KUBERNETES_SERVICE_HOST,KUBERNETES_SERVICE_PORT:process.env.KUBERNETES_SERVICE_PORT,FREESTYLE_API_KEY:process.env.FREESTYLE_API_KEY,BROWSERLESS_TOKEN:process.env.BROWSERLESS_TOKEN,NODE_EXTRA_CA_CERTS:process.env.NODE_EXTRA_CA_CERTS,DECO_CLI:"1",DECO_NO_TUI:"true",...Y}}var yj=k((da5)=>{da5.HttpAuthLocation=void 0;(function(X){X.HEADER="header",X.QUERY="query"})(da5.HttpAuthLocation||(da5.HttpAuthLocation={}));da5.HttpApiKeyAuthLocation=void 0;(function(X){X.HEADER="header",X.QUERY="query"})(da5.HttpApiKeyAuthLocation||(da5.HttpApiKeyAuthLocation={}));da5.EndpointURLScheme=void 0;(function(X){X.HTTP="http",X.HTTPS="https"})(da5.EndpointURLScheme||(da5.EndpointURLScheme={}));da5.AlgorithmId=void 0;(function(X){X.MD5="md5",X.CRC32="crc32",X.CRC32C="crc32c",X.SHA1="sha1",X.SHA256="sha256"})(da5.AlgorithmId||(da5.AlgorithmId={}));var ha5=(X)=>{let Y=[];if(X.sha256!==void 0)Y.push({algorithmId:()=>da5.AlgorithmId.SHA256,checksumConstructor:()=>X.sha256});if(X.md5!=null)Y.push({algorithmId:()=>da5.AlgorithmId.MD5,checksumConstructor:()=>X.md5});return{addChecksumAlgorithm(G){Y.push(G)},checksumAlgorithms(){return Y}}},ga5=(X)=>{let Y={};return X.checksumAlgorithms().forEach((G)=>{Y[G.algorithmId()]=G.checksumConstructor()}),Y},ua5=(X)=>{return ha5(X)},la5=(X)=>{return ga5(X)};da5.FieldPosition=void 0;(function(X){X[X.HEADER=0]="HEADER",X[X.TRAILER=1]="TRAILER"})(da5.FieldPosition||(da5.FieldPosition={}));var ma5="__smithy_context";da5.IniSectionType=void 0;(function(X){X.PROFILE="profile",X.SSO_SESSION="sso-session",X.SERVICES="services"})(da5.IniSectionType||(da5.IniSectionType={}));da5.RequestHandlerProtocol=void 0;(function(X){X.HTTP_0_9="http/0.9",X.HTTP_1_0="http/1.0",X.TDS_8_0="tds/8.0"})(da5.RequestHandlerProtocol||(da5.RequestHandlerProtocol={}));da5.SMITHY_CONTEXT_KEY=ma5;da5.getDefaultClientConfiguration=ua5;da5.resolveDefaultRuntimeConfig=la5});var u7=k((sa5)=>{var na5=yj(),ta5=(X)=>{return{setHttpHandler(Y){X.httpHandler=Y},httpHandler(){return X.httpHandler},updateHttpClientConfig(Y,G){X.httpHandler?.updateHttpClientConfig(Y,G)},httpHandlerConfigs(){return X.httpHandler.httpHandlerConfigs()}}},aa5=(X)=>{return{httpHandler:X.httpHandler()}};class b16{name;kind;values;constructor({name:X,kind:Y=na5.FieldPosition.HEADER,values:G=[]}){this.name=X,this.kind=Y,this.values=G}add(X){this.values.push(X)}set(X){this.values=X}remove(X){this.values=this.values.filter((Y)=>Y!==X)}toString(){return this.values.map((X)=>X.includes(",")||X.includes(" ")?`"${X}"`:X).join(", ")}get(){return this.values}}class y16{entries={};encoding;constructor({fields:X=[],encoding:Y="utf-8"}){X.forEach(this.setField.bind(this)),this.encoding=Y}setField(X){this.entries[X.name.toLowerCase()]=X}getField(X){return this.entries[X.toLowerCase()]}removeField(X){delete this.entries[X.toLowerCase()]}getByType(X){return Object.values(this.entries).filter((Y)=>Y.kind===X)}}class eA1{method;protocol;hostname;port;path;query;headers;username;password;fragment;body;constructor(X){this.method=X.method||"GET",this.hostname=X.hostname||"localhost",this.port=X.port,this.query=X.query||{},this.headers=X.headers||{},this.body=X.body,this.protocol=X.protocol?X.protocol.slice(-1)!==":"?`${X.protocol}:`:X.protocol:"https:",this.path=X.path?X.path.charAt(0)!=="/"?`/${X.path}`:X.path:"/",this.username=X.username,this.password=X.password,this.fragment=X.fragment}static clone(X){let Y=new eA1({...X,headers:{...X.headers}});if(Y.query)Y.query=ra5(Y.query);return Y}static isInstance(X){if(!X)return!1;let Y=X;return"method"in Y&&"protocol"in Y&&"hostname"in Y&&"path"in Y&&typeof Y.query==="object"&&typeof Y.headers==="object"}clone(){return eA1.clone(this)}}function ra5(X){return Object.keys(X).reduce((Y,G)=>{let Q=X[G];return{...Y,[G]:Array.isArray(Q)?[...Q]:Q}},{})}class x16{statusCode;reason;headers;body;constructor(X){this.statusCode=X.statusCode,this.reason=X.reason,this.headers=X.headers||{},this.body=X.body}static isInstance(X){if(!X)return!1;let Y=X;return typeof Y.statusCode==="number"&&typeof Y.headers==="object"}}function oa5(X){return/^[a-z0-9][a-z0-9\.\-]*[a-z0-9]$/.test(X)}sa5.Field=b16;sa5.Fields=y16;sa5.HttpRequest=eA1;sa5.HttpResponse=x16;sa5.getHttpHandlerExtensionConfiguration=ta5;sa5.isValidHostname=oa5;sa5.resolveHttpHandlerRuntimeConfig=aa5});function Wr5(X){return(Y)=>async(G)=>{let{request:Q}=G;if(X.expectContinueHeader!==!1&&h16.HttpRequest.isInstance(Q)&&Q.body&&X.runtime==="node"&&X.requestHandler?.constructor?.name!=="FetchHttpHandler"){let J=!0;if(typeof X.expectContinueHeader==="number")try{J=(Number(Q.headers?.["content-length"])??X.bodyLengthChecker?.(Q.body)??1/0)>=X.expectContinueHeader}catch(W){}else J=!!X.expectContinueHeader;if(J)Q.headers.Expect="100-continue"}return Y({...G,request:Q})}}var h16,$r5,g16=(X)=>({applyToStack:(Y)=>{Y.add(Wr5(X),$r5)}});var u16=w(()=>{h16=X1(u7(),1);$r5={step:"build",tags:["SET_EXPECT_HEADER","EXPECT_HEADER"],name:"addExpectContinueMiddleware",override:!0}});var wH,XT1,xj,YT1,E9,l16,hX1;var LH=w(()=>{wH={WHEN_SUPPORTED:"WHEN_SUPPORTED",WHEN_REQUIRED:"WHEN_REQUIRED"},XT1=wH.WHEN_SUPPORTED,xj={WHEN_SUPPORTED:"WHEN_SUPPORTED",WHEN_REQUIRED:"WHEN_REQUIRED"},YT1=wH.WHEN_SUPPORTED;(function(X){X.MD5="MD5",X.CRC32="CRC32",X.CRC32C="CRC32C",X.CRC64NVME="CRC64NVME",X.SHA1="SHA1",X.SHA256="SHA256"})(E9||(E9={}));(function(X){X.HEADER="header",X.TRAILER="trailer"})(l16||(l16={}));hX1=E9.CRC32});var kq,Ja=(X,Y,G,Q)=>{if(!(Y in X))return;let J=X[Y].toUpperCase();if(!Object.values(G).includes(J))throw TypeError(`Cannot load ${Q} '${Y}'. Expected one of ${Object.values(G)}, got '${X[Y]}'.`);return J};var Yz0=w(()=>{(function(X){X.ENV="env",X.CONFIG="shared config entry"})(kq||(kq={}))});var Kr5="AWS_REQUEST_CHECKSUM_CALCULATION",Hr5="request_checksum_calculation",m16;var d16=w(()=>{LH();Yz0();m16={environmentVariableSelector:(X)=>Ja(X,Kr5,wH,kq.ENV),configFileSelector:(X)=>Ja(X,Hr5,wH,kq.CONFIG),default:XT1}});var Fr5="AWS_RESPONSE_CHECKSUM_VALIDATION",Ur5="response_checksum_validation",c16;var i16=w(()=>{LH();Yz0();c16={environmentVariableSelector:(X)=>Ja(X,Fr5,xj,kq.ENV),configFileSelector:(X)=>Ja(X,Ur5,xj,kq.CONFIG),default:YT1}});var Qz0=k((qr5)=>{var Br5=["AuthFailure","InvalidSignatureException","RequestExpired","RequestInTheFuture","RequestTimeTooSkewed","SignatureDoesNotMatch"],Nr5=["BandwidthLimitExceeded","EC2ThrottledException","LimitExceededException","PriorRequestNotComplete","ProvisionedThroughputExceededException","RequestLimitExceeded","RequestThrottled","RequestThrottledException","SlowDown","ThrottledException","Throttling","ThrottlingException","TooManyRequestsException","TransactionInProgressException"],zr5=["TimeoutError","RequestTimeout","RequestTimeoutException"],Or5=[500,502,503,504],Dr5=["ECONNRESET","ECONNREFUSED","EPIPE","ETIMEDOUT"],wr5=["EHOSTUNREACH","ENETUNREACH","ENOTFOUND"],p16=(X)=>X?.$retryable!==void 0,Lr5=(X)=>Br5.includes(X.name),n16=(X)=>X.$metadata?.clockSkewCorrected,t16=(X)=>{let Y=new Set(["Failed to fetch","NetworkError when attempting to fetch resource","The Internet connection appears to be offline","Load failed","Network request failed"]);if(!(X&&X instanceof TypeError))return!1;return Y.has(X.message)},Er5=(X)=>X.$metadata?.httpStatusCode===429||Nr5.includes(X.name)||X.$retryable?.throttling==!0,Gz0=(X,Y=0)=>p16(X)||n16(X)||X.name==="InvalidSignatureException"&&X.message?.includes("Signature expired")||zr5.includes(X.name)||Dr5.includes(X?.code||"")||wr5.includes(X?.code||"")||Or5.includes(X.$metadata?.httpStatusCode||0)||t16(X)||a16(X)||X.cause!==void 0&&Y<=10&&Gz0(X.cause,Y+1),Pr5=(X)=>{if(X.$metadata?.httpStatusCode!==void 0){let Y=X.$metadata.httpStatusCode;if(500<=Y&&Y<=599&&!Gz0(X))return!0;return!1}return!1};function a16(X){return X.code==="ERR_HTTP2_STREAM_ERROR"&&X.message.includes("NGHTTP2_REFUSED_STREAM")}qr5.isBrowserNetworkError=t16;qr5.isClockSkewCorrectedError=n16;qr5.isClockSkewError=Lr5;qr5.isNodeJsHttp2TransientError=a16;qr5.isRetryableByTrait=p16;qr5.isServerError=Pr5;qr5.isThrottlingError=Er5;qr5.isTransientError=Gz0});var Dw=k((hr5)=>{var kr5=Qz0();hr5.RETRY_MODES=void 0;(function(X){X.STANDARD="standard",X.ADAPTIVE="adaptive"})(hr5.RETRY_MODES||(hr5.RETRY_MODES={}));var QT1=3,Cr5=hr5.RETRY_MODES.STANDARD;class JT1{static setTimeoutFn=setTimeout;beta;minCapacity;minFillRate;scaleConstant;smooth;enabled=!1;availableTokens=0;lastMaxRate=0;measuredTxRate=0;requestCount=0;fillRate;lastThrottleTime;lastTimestamp=0;lastTxRateBucket;maxCapacity;timeWindow=0;constructor(X){this.beta=X?.beta??0.7,this.minCapacity=X?.minCapacity??1,this.minFillRate=X?.minFillRate??0.5,this.scaleConstant=X?.scaleConstant??0.4,this.smooth=X?.smooth??0.8,this.lastThrottleTime=this.getCurrentTimeInSeconds(),this.lastTxRateBucket=Math.floor(this.getCurrentTimeInSeconds()),this.fillRate=this.minFillRate,this.maxCapacity=this.minCapacity}async getSendToken(){return this.acquireTokenBucket(1)}updateClientSendingRate(X){let Y;this.updateMeasuredRate();let G=X;if(G?.errorType==="THROTTLING"||kr5.isThrottlingError(G?.error??X)){let W=!this.enabled?this.measuredTxRate:Math.min(this.measuredTxRate,this.fillRate);this.lastMaxRate=W,this.calculateTimeWindow(),this.lastThrottleTime=this.getCurrentTimeInSeconds(),Y=this.cubicThrottle(W),this.enableTokenBucket()}else this.calculateTimeWindow(),Y=this.cubicSuccess(this.getCurrentTimeInSeconds());let J=Math.min(Y,2*this.measuredTxRate);this.updateTokenBucketRate(J)}getCurrentTimeInSeconds(){return Date.now()/1000}async acquireTokenBucket(X){if(!this.enabled)return;if(this.refillTokenBucket(),X>this.availableTokens){let Y=(X-this.availableTokens)/this.fillRate*1000;await new Promise((G)=>JT1.setTimeoutFn(G,Y))}this.availableTokens=this.availableTokens-X}refillTokenBucket(){let X=this.getCurrentTimeInSeconds();if(!this.lastTimestamp){this.lastTimestamp=X;return}let Y=(X-this.lastTimestamp)*this.fillRate;this.availableTokens=Math.min(this.maxCapacity,this.availableTokens+Y),this.lastTimestamp=X}calculateTimeWindow(){this.timeWindow=this.getPrecise(Math.pow(this.lastMaxRate*(1-this.beta)/this.scaleConstant,0.3333333333333333))}cubicThrottle(X){return this.getPrecise(X*this.beta)}cubicSuccess(X){return this.getPrecise(this.scaleConstant*Math.pow(X-this.lastThrottleTime-this.timeWindow,3)+this.lastMaxRate)}enableTokenBucket(){this.enabled=!0}updateTokenBucketRate(X){this.refillTokenBucket(),this.fillRate=Math.max(X,this.minFillRate),this.maxCapacity=Math.max(X,this.minCapacity),this.availableTokens=Math.min(this.availableTokens,this.maxCapacity)}updateMeasuredRate(){let X=this.getCurrentTimeInSeconds(),Y=Math.floor(X*2)/2;if(this.requestCount++,Y>this.lastTxRateBucket){let G=this.requestCount/(Y-this.lastTxRateBucket);this.measuredTxRate=this.getPrecise(G*this.smooth+this.measuredTxRate*(1-this.smooth)),this.requestCount=0,this.lastTxRateBucket=Y}}getPrecise(X){return parseFloat(X.toFixed(8))}}var vr5=100,Wz0=20000,_r5=500,Jz0=500,fr5=5,br5=10,r16=1,yr5="amz-sdk-invocation-id",xr5="amz-sdk-request";class eQ{static v2026=typeof process<"u"&&process.env?.SMITHY_NEW_RETRIES_2026==="true";static delay(){return eQ.v2026?50:100}static throttlingDelay(){return eQ.v2026?1000:500}static cost(){return eQ.v2026?14:5}static throttlingCost(){return eQ.v2026?5:10}static modifiedCostType(){return eQ.v2026?"THROTTLING":"TRANSIENT"}}class o16{x=eQ.delay();computeNextBackoffDelay(X){let Y=Math.random(),G=2,Q=Y*Math.min(this.x*2**X,Wz0);return Math.floor(Q)}setDelayBase(X){this.x=X}}class Zz0{delay;count;cost;longPoll;constructor(X,Y,G,Q){this.delay=X,this.count=Y,this.cost=G,this.longPoll=Q}getRetryCount(){return this.count}getRetryDelay(){return Math.min(Wz0,this.delay)}getRetryCost(){return this.cost}isLongPoll(){return this.longPoll}}var GT1={incompatible:1,attempts:2,capacity:3};class gX1{mode=hr5.RETRY_MODES.STANDARD;capacity=Jz0;retryBackoffStrategy;maxAttemptsProvider;baseDelay;constructor(X){if(typeof X==="number")this.maxAttemptsProvider=async()=>X;else if(typeof X==="function")this.maxAttemptsProvider=X;else if(X&&typeof X==="object")this.maxAttemptsProvider=async()=>X.maxAttempts,this.baseDelay=X.baseDelay,this.retryBackoffStrategy=X.backoff;this.maxAttemptsProvider??=async()=>QT1,this.baseDelay??=eQ.delay(),this.retryBackoffStrategy??=new o16}async acquireInitialRetryToken(X){return new Zz0(eQ.delay(),0,void 0,eQ.v2026&&X.includes(":longpoll"))}async refreshRetryTokenForRetry(X,Y){let G=await this.getMaxAttempts(),Q=this.retryCode(X,Y,G),J=Q===0,W=X.isLongPoll?.();if(J||W){let Z=Y.errorType;this.retryBackoffStrategy.setDelayBase(Z==="THROTTLING"?eQ.throttlingDelay():this.baseDelay);let $=this.retryBackoffStrategy.computeNextBackoffDelay(X.getRetryCount()),K=$;if(Y.retryAfterHint instanceof Date)K=Math.max($,Math.min(Y.retryAfterHint.getTime()-Date.now(),$+5000));if(!J)throw Object.assign(Error("No retry token available"),{$backoff:eQ.v2026&&Q===GT1.capacity&&W?K:0});else{let H=this.getCapacityCost(Z);return this.capacity-=H,new Zz0(K,X.getRetryCount()+1,H,X.isLongPoll?.()??!1)}}throw Error("No retry token available")}recordSuccess(X){this.capacity=Math.min(Jz0,this.capacity+(X.getRetryCost()??r16))}getCapacity(){return this.capacity}async maxAttempts(){return this.maxAttemptsProvider()}async getMaxAttempts(){try{return await this.maxAttemptsProvider()}catch(X){return console.warn(`Max attempts provider could not resolve. Using default of ${QT1}`),QT1}}retryCode(X,Y,G){let Q=X.getRetryCount()+1,J=this.isRetryableError(Y.errorType)?0:GT1.incompatible,W=Q<G?0:GT1.attempts,Z=this.capacity>=this.getCapacityCost(Y.errorType)?0:GT1.capacity;return J||W||Z}getCapacityCost(X){return X===eQ.modifiedCostType()?eQ.throttlingCost():eQ.cost()}isRetryableError(X){return X==="THROTTLING"||X==="TRANSIENT"}}class s16{mode=hr5.RETRY_MODES.ADAPTIVE;rateLimiter;standardRetryStrategy;constructor(X,Y){let{rateLimiter:G}=Y??{};this.rateLimiter=G??new JT1,this.standardRetryStrategy=Y?new gX1({maxAttempts:typeof X==="number"?X:3,...Y}):new gX1(X)}async acquireInitialRetryToken(X){return await this.rateLimiter.getSendToken(),this.standardRetryStrategy.acquireInitialRetryToken(X)}async refreshRetryTokenForRetry(X,Y){return this.rateLimiter.updateClientSendingRate(Y),this.standardRetryStrategy.refreshRetryTokenForRetry(X,Y)}recordSuccess(X){this.rateLimiter.updateClientSendingRate({}),this.standardRetryStrategy.recordSuccess(X)}async maxAttemptsProvider(){return this.standardRetryStrategy.maxAttempts()}}class e16 extends gX1{computeNextBackoffDelay;constructor(X,Y=eQ.delay()){super(typeof X==="function"?X:async()=>X);if(typeof Y==="number")this.computeNextBackoffDelay=()=>Y;else this.computeNextBackoffDelay=Y}async refreshRetryTokenForRetry(X,Y){let G=await super.refreshRetryTokenForRetry(X,Y);return G.getRetryDelay=()=>this.computeNextBackoffDelay(G.getRetryCount()),G}}hr5.AdaptiveRetryStrategy=s16;hr5.ConfiguredRetryStrategy=e16;hr5.DEFAULT_MAX_ATTEMPTS=QT1;hr5.DEFAULT_RETRY_DELAY_BASE=vr5;hr5.DEFAULT_RETRY_MODE=Cr5;hr5.DefaultRateLimiter=JT1;hr5.INITIAL_RETRY_TOKENS=Jz0;hr5.INVOCATION_ID_HEADER=yr5;hr5.MAXIMUM_RETRY_DELAY=Wz0;hr5.NO_RETRY_INCREMENT=r16;hr5.REQUEST_HEADER=xr5;hr5.RETRY_COST=fr5;hr5.Retry=eQ;hr5.StandardRetryStrategy=gX1;hr5.THROTTLING_RETRY_DELAY_BASE=_r5;hr5.TIMEOUT_RETRY_COST=br5});var WX=k((Ho5)=>{var Yo5=Dw(),$z0={warningEmitted:!1},Go5=(X)=>{if(X&&!$z0.warningEmitted&&parseInt(X.substring(1,X.indexOf(".")))<20)$z0.warningEmitted=!0,process.emitWarning(`NodeDeprecationWarning: The AWS SDK for JavaScript (v3) will
1646
+ `);Q=W.pop()??"";for(let Z of W){let $=E16(Z).replace(/^\[\d+\]\s*/,"").trim();if(!$)continue;Wz({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:$})}}(async()=>{for(;;){let{done:W,value:Z}=await Y.read();if(W)break;Q+=G.decode(Z,{stream:!0}),J()}if(Q.trim()){let W=E16(Q).replace(/^\[\d+\]\s*/,"").trim();if(W)Wz({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:W})}})()}async function Ba5(X){let{vitePort:Y,baseUrl:G,noTui:Q}=X,J=await aA1(Number(X.port)),{settings:W,services:Z,managedServiceNames:$}=await iA1({port:String(J),home:X.home,baseUrl:X.baseUrl,localMode:X.localMode,skipMigrations:X.skipMigrations,noTui:X.noTui,vitePort:X.vitePort});for(let z of Z)Qa({name:z.name,status:"ready",port:z.port});bX1(W),_X1();let K=Ua5(import.meta.dir,"..","..","..","..",".."),H=Q===!0,U=Bun.spawn(["bun","run","--cwd=apps/mesh","dev:servers"],{cwd:K,env:{...process.env,PORT:String(W.port),VITE_PORT:String(Y),DATABASE_URL:W.databaseUrl,NATS_URL:W.natsUrls.join(","),NODE_ENV:W.nodeEnv,DECOCMS_LOCAL_MODE:String(W.localMode),DECOCMS_HOME:W.dataDir,DATA_DIR:W.dataDir,DECO_CLI:"1",...W.baseUrl?{BASE_URL:W.baseUrl}:{}},stdio:["inherit",H?"inherit":"pipe",H?"inherit":"pipe"]});if(!H)P16(U.stdout),P16(U.stderr);let B=G||`http://localhost:${W.port}`;fX1(B),Qa({name:"Vite",status:"ready",port:Number(Y)});let N=async(z)=>{if(U.kill(z),$.length>0){let{stopServices:O}=await Promise.resolve().then(() => (l$1(),u$1));await O(W.dataDir)}};return process.on("SIGINT",()=>N("SIGINT")),process.on("SIGTERM",()=>N("SIGTERM")),{port:Number(W.port),process:U}}var uN0=w(()=>{_N0();$z();hN0()});import{Box as lN0,Text as mN0}from"ink";import{jsx as A16,jsxs as rA1}from"react/jsx-runtime";function q16(X){if(!X)return"not set";try{let Y=new URL(X);if(Y.password)Y.password="***";if(Y.username&&Y.username.length>3)Y.username=Y.username.slice(0,3)+"***";return Y.pathname="/",Y.search="",Y.hash="",Y.toString()}catch{if(X.length<=10)return X;return X.slice(0,6)+"***"+X.slice(-4)}}function Oa5(X,Y){if(Na5.has(X))return Y?{text:"\u25CF\u25CF\u25CF\u25CF\u25CF\u25CF",dimColor:!0}:{text:"not set",dimColor:!0};if(za5.has(X)){if(Array.isArray(Y)){if(Y.length===0)return{text:"not set",dimColor:!0};return{text:Y.map((W)=>q16(W)).join(", "),color:"cyan"}}let Q=q16(Y);return Q==="not set"?{text:Q,dimColor:!0}:{text:Q,color:"cyan"}}if(Y===void 0||Y===null||Y==="")return{text:"not set",dimColor:!0};let G=String(Y);if(G==="true")return{text:G,color:"green"};if(G==="false")return{text:G,color:"yellow"};try{return new URL(G),{text:G,color:"cyan"}}catch{return{text:G}}}function Da5(X){return[{title:"Core",entries:[{key:"NODE_ENV",value:X.nodeEnv},{key:"PORT",value:X.port},{key:"BASE_URL",value:X.baseUrl??`http://localhost:${X.port}`},{key:"DATA_DIR",value:X.dataDir}]},{title:"Database",entries:[{key:"DATABASE_URL",value:X.databaseUrl},{key:"DATABASE_PG_SSL",value:X.databasePgSsl}]},{title:"Auth & Secrets",entries:[{key:"BETTER_AUTH_SECRET",value:X.betterAuthSecret},{key:"ENCRYPTION_KEY",value:X.encryptionKey},{key:"MESH_JWT_SECRET",value:X.meshJwtSecret},{key:"STUDIO_PROVISION_SECRET_KEY",value:X.studioProvisionSecretKey},{key:"DISABLE_RATE_LIMIT",value:X.disableRateLimit}]},{title:"Auth Providers",entries:[{key:"AUTH_EMAIL_PASSWORD_ENABLED",value:process.env.AUTH_EMAIL_PASSWORD_ENABLED??"true"},{key:"AUTH_GOOGLE_CLIENT_ID",value:!!process.env.AUTH_GOOGLE_CLIENT_ID},{key:"AUTH_GITHUB_CLIENT_ID",value:!!process.env.AUTH_GITHUB_CLIENT_ID},{key:"AUTH_RESEND_API_KEY",value:!!process.env.AUTH_RESEND_API_KEY},{key:"AUTH_SENDGRID_API_KEY",value:!!process.env.AUTH_SENDGRID_API_KEY},{key:"AUTH_SSO_MS_CLIENT_ID",value:!!process.env.AUTH_SSO_MS_CLIENT_ID},{key:"AUTH_MAGIC_LINK_ENABLED",value:process.env.AUTH_MAGIC_LINK_ENABLED==="true"},{key:"AUTH_EMAIL_OTP_ENABLED",value:process.env.AUTH_EMAIL_OTP_ENABLED==="true"}]},{title:"Observability",entries:[{key:"CLICKHOUSE_URL",value:X.clickhouseUrl},{key:"OTEL_SERVICE_NAME",value:X.otelServiceName}]},{title:"Event Bus & Networking",entries:[{key:"NATS_URL",value:X.natsUrls}]},{title:"Config Files",entries:[{key:"CONFIG_PATH",value:X.configPath}]},{title:"AI Gateway",entries:[{key:"DECO_AI_GATEWAY_ENABLED",value:X.aiGatewayEnabled},{key:"DECO_AI_GATEWAY_URL",value:X.aiGatewayUrl}]}]}function T16({env:X}){let Y=Da5(X);return A16(lN0,{flexDirection:"column",children:Y.map((G)=>rA1(lN0,{flexDirection:"column",marginTop:1,children:[rA1(mN0,{dimColor:!0,children:[" ","\u2500\u2500 ",G.title," ","\u2500".repeat(Math.max(0,38-G.title.length))]}),G.entries.map(({key:Q,value:J})=>{let W=Oa5(Q,J);return rA1(lN0,{children:[rA1(mN0,{dimColor:!0,children:[" ",Q.padEnd(36)]}),A16(mN0,{color:W.color,dimColor:W.dimColor,children:W.text})]},Q)})]},G.title))})}var Na5,za5;var I16=w(()=>{Na5=new Set(["BETTER_AUTH_SECRET","ENCRYPTION_KEY","MESH_JWT_SECRET","STUDIO_PROVISION_SECRET_KEY"]),za5=new Set(["DATABASE_URL","CLICKHOUSE_URL","NATS_URL"])});var dN0;var V16=w(()=>{dN0={name:"decocms",version:"2.307.1",description:"Deco CMS \u2014 Self-hostable MCP Gateway for managing AI connections and tools",author:"Deco team",repository:{type:"git",url:"git+https://github.com/decocms/studio.git",directory:"apps/mesh"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:'bun run migrate && concurrently "bun run dev:client" "bun run dev:server"',"dev:servers":'concurrently "bun run dev:client" "bun run dev:server"',"dev:client":"bun --bun vite dev","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts","build:client":"bun --bun vite build","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","db:migrate":"bun run ./dist/server/migrate.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts",test:"bun test","test:e2e":"playwright test","test:e2e:ui":"playwright test --ui","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts",prepublishOnly:"bun run build:client && bun run build:server"},optionalDependencies:{"@duckdb/node-api":"^1.5.0-r.1","@freestyle-sh/with-bun":"^0.2.12","@freestyle-sh/with-deno":"^0.0.4","@freestyle-sh/with-nodejs":"^0.2.9","freestyle-sandboxes":"^0.1.46"},dependencies:{"@ai-sdk/anthropic":"^3.0.58","@ai-sdk/google":"^3.0.60","@ai-sdk/openai":"^3.0.50","@anthropic-ai/sdk":"^0.79.0","@aws-sdk/client-s3":"^3.1013.0","@aws-sdk/s3-request-presigner":"^3.1013.0","@clickhouse/client":"^1.8.1","@deco-cx/warp-node":"^0.3.20","@dnd-kit/core":"^6.3.1","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@inkjs/ui":"^2.0.0","@modelcontextprotocol/ext-apps":"^1.2.2","@openrouter/ai-sdk-provider":"^2.2.5","@opentelemetry/core":"^2.6.0","@tanstack/react-virtual":"^3.13.21","@xterm/addon-fit":"^0.11.0","@xterm/xterm":"^6.0.0","ai-sdk-provider-claude-code":"^3.4.4","ai-sdk-provider-codex-cli":"^1.1.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12",nats:"^2.29.3","node-pty":"^1.0.0","posthog-js":"^1.371.1","posthog-node":"^5.0.0",react:"^19.2.0","react-dom":"^19.2.0"},devDependencies:{"@ai-sdk/provider":"^3.0.8","@ai-sdk/react":"^3.0.118","@anthropic-ai/claude-agent-sdk":"^0.2.80","@better-auth/sso":"1.4.1","@daveyplate/better-auth-ui":"^3.2.7","@deco/ui":"workspace:*","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/mesh-sdk":"workspace:*","@decocms/runtime":"workspace:*","@decocms/vite-plugin":"workspace:*","@electric-sql/pglite":"^0.3.15","@floating-ui/react":"^0.27.16","@hookform/resolvers":"^5.2.2","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.27.1","@monaco-editor/react":"^4.7.0","@opentelemetry/api":"^1.9.0","@opentelemetry/api-logs":"^0.211.0","@opentelemetry/exporter-logs-otlp-proto":"^0.211.0","@opentelemetry/exporter-prometheus":"^0.208.0","@opentelemetry/exporter-trace-otlp-proto":"^0.207.0","@opentelemetry/instrumentation-runtime-node":"^0.24.0","@opentelemetry/sdk-logs":"^0.211.0","@opentelemetry/sdk-metrics":"^2.2.0","@opentelemetry/sdk-node":"^0.207.0","@opentelemetry/sdk-trace-base":"^2.5.0","@playwright/test":"^1.58.2","@radix-ui/react-avatar":"^1.1.10","@radix-ui/react-checkbox":"^1.3.3","@radix-ui/react-dialog":"^1.1.15","@radix-ui/react-dropdown-menu":"^2.1.16","@radix-ui/react-label":"^2.1.7","@radix-ui/react-select":"^2.2.6","@radix-ui/react-separator":"^1.1.7","@radix-ui/react-slot":"^1.2.3","@radix-ui/react-tabs":"^1.1.13","@rjsf/core":"^6.1.2","@rjsf/shadcn":"^6.1.2","@rjsf/utils":"^6.1.2","@rjsf/validator-ajv8":"^6.1.2","@tailwindcss/vite":"^4.1.17","@tanstack/react-query":"5.90.11","@tanstack/react-router":"^1.139.7","@tiptap/core":"3.20.2","@tiptap/extension-mention":"3.20.2","@tiptap/extension-placeholder":"3.20.2","@tiptap/pm":"3.20.2","@tiptap/react":"3.20.2","@tiptap/starter-kit":"3.20.2","@tiptap/suggestion":"3.20.2","@types/bun":"^1.3.1","@types/pg":"^8.15.6","@types/react-syntax-highlighter":"^15.5.13","@untitledui/icons":"^0.0.19","@vercel/nft":"^1.1.1","@vitejs/plugin-react":"^5.1.0",ai:"^6.0.116","babel-plugin-react-compiler":"^1.0.0","better-auth":"1.4.5","class-variance-authority":"^0.7.1",clsx:"^2.1.1",concurrently:"^9.2.1",croner:"^9.1.0","date-fns":"^4.1.0",degit:"^2.8.4",hono:"^4.10.7","input-otp":"^1.4.2",jose:"^6.0.11","kysely-pglite":"^0.6.1","lucide-react":"^0.468.0",marked:"^15.0.6","@decocms/sandbox":"workspace:*","mesh-plugin-workflows":"workspace:*",nanoid:"^5.1.6",pg:"^8.16.3",prettier:"^3.4.2","react-hook-form":"^7.66.0","react-markdown":"^10.1.0","react-resizable-panels":"^2.1.7","react-syntax-highlighter":"^15.6.1",recharts:"^3.6.0","rehype-raw":"^7.0.0","remark-gfm":"^4.0.0","sass-embedded":"^1.97.2",sonner:"^2.0.7","tailwind-merge":"^3.3.1",tailwindcss:"^4.1.17",typescript:"^5.9.3",vite:"^7.2.1","vite-tsconfig-paths":"^5.1.4",zod:"^4.0.0",zustand:"^5.0.9"},homepage:"https://github.com/decocms/studio",keywords:["mcp","model-context-protocol","ai","gateway","self-hosted","mesh","tools"],license:"MIT",publishConfig:{access:"public"}}});import{Box as IU,Text as RX}from"ink";import{Spinner as La5}from"@inkjs/ui";import{useSyncExternalStore as j16}from"react";import{jsx as TY,jsxs as sQ}from"react/jsx-runtime";function Ta5(X,Y){if(!X||!Aa5.has(X))return X;let G=cN0[Y]??cN0[cN0.length-1];return X==="#875f00"?G[0]:G[1]}function M16({status:X}){if(X==="pending")return TY(La5,{label:""});return TY(RX,{color:"green",children:"\u2713"})}function R16({services:X,migrationsStatus:Y,home:G,serverUrl:Q,vibe:J}){let W=j16(pm0,im0),Z=j16(sm0,om0);return sQ(IU,{flexDirection:"column",paddingBottom:1,children:[J?sQ(IU,{flexDirection:"column",children:[W.map(($,K)=>{let H=Z[K],U=$.reduce((N,z)=>N+z.text.length,0),B=Math.max(0,qa5-U);return sQ(IU,{flexDirection:"row",children:[$.map((N,z)=>{let O=Ta5(N.color,K);return O?TY(RX,{color:O,children:N.text},z):TY(RX,{children:N.text},z)}),TY(RX,{children:" ".repeat(B+2)}),H?.map((N,z)=>N.color?TY(RX,{color:N.color,children:N.char},z):TY(RX,{children:N.char},z))]},K)}),sQ(RX,{dimColor:!0,children:[" v",dN0.version]})]}):sQ(IU,{flexDirection:"column",marginTop:1,children:[Ea5.map(($,K)=>TY(RX,{color:Pa5[K],children:$},K)),sQ(RX,{dimColor:!0,children:[" v",dN0.version]})]}),TY(IU,{marginBottom:1,children:TY(RX,{dimColor:!0,children:"\u2500".repeat(80)})}),TY(IU,{children:sQ(RX,{dimColor:!0,children:["Home: ",G]})}),sQ(IU,{gap:2,children:[X.map(($)=>sQ(IU,{gap:1,children:[sQ(RX,{children:[$.name," :",$.port||"...."]}),TY(M16,{status:$.status})]},$.name)),sQ(IU,{gap:1,children:[TY(RX,{children:"Migrations"}),TY(M16,{status:Y})]})]}),TY(IU,{children:Q?sQ(RX,{children:["Open in browser: ",TY(RX,{color:"cyan",children:Q})]}):TY(RX,{dimColor:!0,children:"Starting..."})}),sQ(IU,{gap:2,children:[sQ(RX,{dimColor:!0,children:[TY(RX,{bold:!0,dimColor:!0,children:"K"})," ","toggle config"]}),sQ(RX,{dimColor:!0,children:[TY(RX,{bold:!0,dimColor:!0,children:"L"})," ","toggle log flow"]}),sQ(RX,{dimColor:!0,children:[TY(RX,{bold:!0,dimColor:!0,children:"V"})," ","toggle vibe ",J?"\u266A Nihilore \xB7 CC BY 4.0":""]}),J&&sQ(RX,{dimColor:!0,children:[TY(RX,{bold:!0,dimColor:!0,children:"N"})," ","skip song"]})]})]})}var Ea5,Pa5,cN0,qa5=30,Aa5;var S16=w(()=>{V16();Rt1();ft1();Ea5=[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588 \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2588 \u2591 \u2588\u2588\u2588 \u2591\u2591\u2591 \u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2591\u2591\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591 \u2588\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591 ","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591 "],Pa5=["#00ff64","#00ee5e","#00dc56","#00c84e","#00b444","#00a03c","#008832","#006e28"],cN0=[["#00ff64","#00cc50"],["#00f060","#00c04c"],["#00e05c","#00b448"],["#00d058","#00a844"],["#00c054","#009c40"],["#00b050","#00903c"],["#00a04c","#008438"],["#009048","#007834"],["#008044","#006c30"],["#007040","#00602c"],["#00603c","#005428"]],Aa5=new Set(["#875f00","#5f3800"])});import{useSyncExternalStore as Ia5}from"react";function Va5(){let X=process.stdout.rows||24,Y=process.stdout.columns||80;if(X!==oA1.rows||Y!==oA1.columns)oA1={rows:X,columns:Y};return oA1}function ja5(X){return process.stdout.on("resize",X),()=>{process.stdout.off("resize",X)}}function k16(){return Ia5(ja5,Va5)}var oA1;var C16=w(()=>{oA1={rows:process.stdout.rows||24,columns:process.stdout.columns||80}});import{Box as Ma5,Text as yX1}from"ink";import{useSyncExternalStore as Ra5}from"react";import{jsx as iN0,jsxs as pN0}from"react/jsx-runtime";function Sa5(X){if(X>=500)return"red";if(X>=400)return"yellow";if(X>=300)return"cyan";return"green"}function v16({logs:X,headerHeight:Y}){let{rows:G}=k16(),{logFlow:Q}=Ra5(vX1,CX1),J=Math.max(1,G-Y-1),W=Q?X:X.slice(-J);return iN0(Ma5,{flexDirection:"column",children:W.map((Z,$)=>{if(Z.rawLine)return iN0(yX1,{dimColor:!0,children:Z.rawLine},$);let K=Z.duration<1000?`${Z.duration}ms`:`${(Z.duration/1000).toFixed(1)}s`;return pN0(yX1,{children:[pN0(yX1,{dimColor:!0,children:[Z.method.padEnd(6)," ",Z.path.padEnd(30)," "]}),iN0(yX1,{color:Sa5(Z.status),children:Z.status}),pN0(yX1,{dimColor:!0,children:[" ",K.padStart(8)]})]},$)})})}var _16=w(()=>{$z();C16()});var nN0={};T0(nN0,{App:()=>ya5});import{Box as ka5,Text as Ca5,useInput as va5}from"ink";import{useSyncExternalStore as _a5}from"react";import{jsx as sA1,jsxs as xa5}from"react/jsx-runtime";function ya5({home:X}){let Y=_a5(vX1,CX1);return va5((G)=>{if(G==="k"||G==="K")bN0();if(G==="l"||G==="L")yN0();if((G==="v"||G==="V")&&Y.dataDir)ht1(Y.dataDir),xN0();if((G==="n"||G==="N")&&Y.vibe)xt1()}),xa5(ka5,{flexDirection:"column",children:[sA1(R16,{services:Y.services,migrationsStatus:Y.migrationsStatus,home:X,serverUrl:Y.serverUrl,vibe:Y.vibe}),Y.viewMode==="config"?Y.env?sA1(T16,{env:Y.env}):sA1(Ca5,{dimColor:!0,children:"Loading configuration..."}):sA1(v16,{logs:Y.logs,headerHeight:Y.vibe?ba5:fa5})]})}var fa5=15,ba5=19;var tN0=w(()=>{I16();S16();_16();$z();yd()});function f16(X,Y={}){return{PORT:String(X.port),NODE_ENV:X.nodeEnv,BASE_URL:X.baseUrl,DATA_DIR:X.dataDir,DECOCMS_HOME:X.dataDir,DATABASE_URL:X.databaseUrl,DATABASE_PG_SSL:String(X.databasePgSsl),DATABASE_POOL_MAX:String(X.databasePoolMax),NATS_URL:X.natsUrls.join(","),BETTER_AUTH_SECRET:X.betterAuthSecret,ENCRYPTION_KEY:X.encryptionKey,MESH_JWT_SECRET:X.meshJwtSecret,DECOCMS_LOCAL_MODE:String(X.localMode),DISABLE_RATE_LIMIT:String(X.disableRateLimit),STUDIO_PROVISION_SECRET_KEY:X.studioProvisionSecretKey,CONFIG_PATH:X.configPath,...Object.fromEntries(Object.entries(process.env).filter(([G])=>G.startsWith("AUTH_"))),DECO_AI_GATEWAY_ENABLED:String(X.aiGatewayEnabled),DECO_AI_GATEWAY_URL:X.aiGatewayUrl,ENABLE_DECO_IMPORT:String(X.enableDecoImport),S3_ENDPOINT:X.s3Endpoint,S3_BUCKET:X.s3Bucket,S3_REGION:X.s3Region,S3_ACCESS_KEY_ID:X.s3AccessKeyId,S3_SECRET_ACCESS_KEY:X.s3SecretAccessKey,S3_FORCE_PATH_STYLE:String(X.s3ForcePathStyle),OTEL_SERVICE_NAME:X.otelServiceName,CLICKHOUSE_URL:X.clickhouseUrl,OTEL_EXPORTER_OTLP_ENDPOINT:process.env.OTEL_EXPORTER_OTLP_ENDPOINT,OTEL_EXPORTER_OTLP_PROTOCOL:process.env.OTEL_EXPORTER_OTLP_PROTOCOL,OTEL_RESOURCE_ATTRIBUTES:process.env.OTEL_RESOURCE_ATTRIBUTES,DECO_SUPABASE_URL:X.decoSupabaseUrl,DECO_SUPABASE_SERVICE_KEY:X.decoSupabaseServiceKey,FIRECRAWL_API_KEY:X.firecrawlApiKey,STUDIO_SANDBOX_RUNNER:process.env.STUDIO_SANDBOX_RUNNER,STUDIO_SANDBOX_TEMPLATE_NAME:process.env.STUDIO_SANDBOX_TEMPLATE_NAME,STUDIO_ENV:process.env.STUDIO_ENV,STUDIO_SANDBOX_PREVIEW_URL_PATTERN:process.env.STUDIO_SANDBOX_PREVIEW_URL_PATTERN,STUDIO_SANDBOX_PREVIEW_GATEWAY_NAME:process.env.STUDIO_SANDBOX_PREVIEW_GATEWAY_NAME,STUDIO_SANDBOX_PREVIEW_GATEWAY_NAMESPACE:process.env.STUDIO_SANDBOX_PREVIEW_GATEWAY_NAMESPACE,STUDIO_SANDBOX_SENTINEL_TOKEN:process.env.STUDIO_SANDBOX_SENTINEL_TOKEN,KUBERNETES_SERVICE_HOST:process.env.KUBERNETES_SERVICE_HOST,KUBERNETES_SERVICE_PORT:process.env.KUBERNETES_SERVICE_PORT,FREESTYLE_API_KEY:process.env.FREESTYLE_API_KEY,BROWSERLESS_TOKEN:process.env.BROWSERLESS_TOKEN,NODE_EXTRA_CA_CERTS:process.env.NODE_EXTRA_CA_CERTS,DECO_CLI:"1",DECO_NO_TUI:"true",...Y}}var yj=k((da5)=>{da5.HttpAuthLocation=void 0;(function(X){X.HEADER="header",X.QUERY="query"})(da5.HttpAuthLocation||(da5.HttpAuthLocation={}));da5.HttpApiKeyAuthLocation=void 0;(function(X){X.HEADER="header",X.QUERY="query"})(da5.HttpApiKeyAuthLocation||(da5.HttpApiKeyAuthLocation={}));da5.EndpointURLScheme=void 0;(function(X){X.HTTP="http",X.HTTPS="https"})(da5.EndpointURLScheme||(da5.EndpointURLScheme={}));da5.AlgorithmId=void 0;(function(X){X.MD5="md5",X.CRC32="crc32",X.CRC32C="crc32c",X.SHA1="sha1",X.SHA256="sha256"})(da5.AlgorithmId||(da5.AlgorithmId={}));var ha5=(X)=>{let Y=[];if(X.sha256!==void 0)Y.push({algorithmId:()=>da5.AlgorithmId.SHA256,checksumConstructor:()=>X.sha256});if(X.md5!=null)Y.push({algorithmId:()=>da5.AlgorithmId.MD5,checksumConstructor:()=>X.md5});return{addChecksumAlgorithm(G){Y.push(G)},checksumAlgorithms(){return Y}}},ga5=(X)=>{let Y={};return X.checksumAlgorithms().forEach((G)=>{Y[G.algorithmId()]=G.checksumConstructor()}),Y},ua5=(X)=>{return ha5(X)},la5=(X)=>{return ga5(X)};da5.FieldPosition=void 0;(function(X){X[X.HEADER=0]="HEADER",X[X.TRAILER=1]="TRAILER"})(da5.FieldPosition||(da5.FieldPosition={}));var ma5="__smithy_context";da5.IniSectionType=void 0;(function(X){X.PROFILE="profile",X.SSO_SESSION="sso-session",X.SERVICES="services"})(da5.IniSectionType||(da5.IniSectionType={}));da5.RequestHandlerProtocol=void 0;(function(X){X.HTTP_0_9="http/0.9",X.HTTP_1_0="http/1.0",X.TDS_8_0="tds/8.0"})(da5.RequestHandlerProtocol||(da5.RequestHandlerProtocol={}));da5.SMITHY_CONTEXT_KEY=ma5;da5.getDefaultClientConfiguration=ua5;da5.resolveDefaultRuntimeConfig=la5});var u7=k((sa5)=>{var na5=yj(),ta5=(X)=>{return{setHttpHandler(Y){X.httpHandler=Y},httpHandler(){return X.httpHandler},updateHttpClientConfig(Y,G){X.httpHandler?.updateHttpClientConfig(Y,G)},httpHandlerConfigs(){return X.httpHandler.httpHandlerConfigs()}}},aa5=(X)=>{return{httpHandler:X.httpHandler()}};class b16{name;kind;values;constructor({name:X,kind:Y=na5.FieldPosition.HEADER,values:G=[]}){this.name=X,this.kind=Y,this.values=G}add(X){this.values.push(X)}set(X){this.values=X}remove(X){this.values=this.values.filter((Y)=>Y!==X)}toString(){return this.values.map((X)=>X.includes(",")||X.includes(" ")?`"${X}"`:X).join(", ")}get(){return this.values}}class y16{entries={};encoding;constructor({fields:X=[],encoding:Y="utf-8"}){X.forEach(this.setField.bind(this)),this.encoding=Y}setField(X){this.entries[X.name.toLowerCase()]=X}getField(X){return this.entries[X.toLowerCase()]}removeField(X){delete this.entries[X.toLowerCase()]}getByType(X){return Object.values(this.entries).filter((Y)=>Y.kind===X)}}class eA1{method;protocol;hostname;port;path;query;headers;username;password;fragment;body;constructor(X){this.method=X.method||"GET",this.hostname=X.hostname||"localhost",this.port=X.port,this.query=X.query||{},this.headers=X.headers||{},this.body=X.body,this.protocol=X.protocol?X.protocol.slice(-1)!==":"?`${X.protocol}:`:X.protocol:"https:",this.path=X.path?X.path.charAt(0)!=="/"?`/${X.path}`:X.path:"/",this.username=X.username,this.password=X.password,this.fragment=X.fragment}static clone(X){let Y=new eA1({...X,headers:{...X.headers}});if(Y.query)Y.query=ra5(Y.query);return Y}static isInstance(X){if(!X)return!1;let Y=X;return"method"in Y&&"protocol"in Y&&"hostname"in Y&&"path"in Y&&typeof Y.query==="object"&&typeof Y.headers==="object"}clone(){return eA1.clone(this)}}function ra5(X){return Object.keys(X).reduce((Y,G)=>{let Q=X[G];return{...Y,[G]:Array.isArray(Q)?[...Q]:Q}},{})}class x16{statusCode;reason;headers;body;constructor(X){this.statusCode=X.statusCode,this.reason=X.reason,this.headers=X.headers||{},this.body=X.body}static isInstance(X){if(!X)return!1;let Y=X;return typeof Y.statusCode==="number"&&typeof Y.headers==="object"}}function oa5(X){return/^[a-z0-9][a-z0-9\.\-]*[a-z0-9]$/.test(X)}sa5.Field=b16;sa5.Fields=y16;sa5.HttpRequest=eA1;sa5.HttpResponse=x16;sa5.getHttpHandlerExtensionConfiguration=ta5;sa5.isValidHostname=oa5;sa5.resolveHttpHandlerRuntimeConfig=aa5});function Wr5(X){return(Y)=>async(G)=>{let{request:Q}=G;if(X.expectContinueHeader!==!1&&h16.HttpRequest.isInstance(Q)&&Q.body&&X.runtime==="node"&&X.requestHandler?.constructor?.name!=="FetchHttpHandler"){let J=!0;if(typeof X.expectContinueHeader==="number")try{J=(Number(Q.headers?.["content-length"])??X.bodyLengthChecker?.(Q.body)??1/0)>=X.expectContinueHeader}catch(W){}else J=!!X.expectContinueHeader;if(J)Q.headers.Expect="100-continue"}return Y({...G,request:Q})}}var h16,$r5,g16=(X)=>({applyToStack:(Y)=>{Y.add(Wr5(X),$r5)}});var u16=w(()=>{h16=X1(u7(),1);$r5={step:"build",tags:["SET_EXPECT_HEADER","EXPECT_HEADER"],name:"addExpectContinueMiddleware",override:!0}});var wH,XT1,xj,YT1,E9,l16,hX1;var LH=w(()=>{wH={WHEN_SUPPORTED:"WHEN_SUPPORTED",WHEN_REQUIRED:"WHEN_REQUIRED"},XT1=wH.WHEN_SUPPORTED,xj={WHEN_SUPPORTED:"WHEN_SUPPORTED",WHEN_REQUIRED:"WHEN_REQUIRED"},YT1=wH.WHEN_SUPPORTED;(function(X){X.MD5="MD5",X.CRC32="CRC32",X.CRC32C="CRC32C",X.CRC64NVME="CRC64NVME",X.SHA1="SHA1",X.SHA256="SHA256"})(E9||(E9={}));(function(X){X.HEADER="header",X.TRAILER="trailer"})(l16||(l16={}));hX1=E9.CRC32});var kq,Ja=(X,Y,G,Q)=>{if(!(Y in X))return;let J=X[Y].toUpperCase();if(!Object.values(G).includes(J))throw TypeError(`Cannot load ${Q} '${Y}'. Expected one of ${Object.values(G)}, got '${X[Y]}'.`);return J};var Yz0=w(()=>{(function(X){X.ENV="env",X.CONFIG="shared config entry"})(kq||(kq={}))});var Kr5="AWS_REQUEST_CHECKSUM_CALCULATION",Hr5="request_checksum_calculation",m16;var d16=w(()=>{LH();Yz0();m16={environmentVariableSelector:(X)=>Ja(X,Kr5,wH,kq.ENV),configFileSelector:(X)=>Ja(X,Hr5,wH,kq.CONFIG),default:XT1}});var Fr5="AWS_RESPONSE_CHECKSUM_VALIDATION",Ur5="response_checksum_validation",c16;var i16=w(()=>{LH();Yz0();c16={environmentVariableSelector:(X)=>Ja(X,Fr5,xj,kq.ENV),configFileSelector:(X)=>Ja(X,Ur5,xj,kq.CONFIG),default:YT1}});var Qz0=k((qr5)=>{var Br5=["AuthFailure","InvalidSignatureException","RequestExpired","RequestInTheFuture","RequestTimeTooSkewed","SignatureDoesNotMatch"],Nr5=["BandwidthLimitExceeded","EC2ThrottledException","LimitExceededException","PriorRequestNotComplete","ProvisionedThroughputExceededException","RequestLimitExceeded","RequestThrottled","RequestThrottledException","SlowDown","ThrottledException","Throttling","ThrottlingException","TooManyRequestsException","TransactionInProgressException"],zr5=["TimeoutError","RequestTimeout","RequestTimeoutException"],Or5=[500,502,503,504],Dr5=["ECONNRESET","ECONNREFUSED","EPIPE","ETIMEDOUT"],wr5=["EHOSTUNREACH","ENETUNREACH","ENOTFOUND"],p16=(X)=>X?.$retryable!==void 0,Lr5=(X)=>Br5.includes(X.name),n16=(X)=>X.$metadata?.clockSkewCorrected,t16=(X)=>{let Y=new Set(["Failed to fetch","NetworkError when attempting to fetch resource","The Internet connection appears to be offline","Load failed","Network request failed"]);if(!(X&&X instanceof TypeError))return!1;return Y.has(X.message)},Er5=(X)=>X.$metadata?.httpStatusCode===429||Nr5.includes(X.name)||X.$retryable?.throttling==!0,Gz0=(X,Y=0)=>p16(X)||n16(X)||X.name==="InvalidSignatureException"&&X.message?.includes("Signature expired")||zr5.includes(X.name)||Dr5.includes(X?.code||"")||wr5.includes(X?.code||"")||Or5.includes(X.$metadata?.httpStatusCode||0)||t16(X)||a16(X)||X.cause!==void 0&&Y<=10&&Gz0(X.cause,Y+1),Pr5=(X)=>{if(X.$metadata?.httpStatusCode!==void 0){let Y=X.$metadata.httpStatusCode;if(500<=Y&&Y<=599&&!Gz0(X))return!0;return!1}return!1};function a16(X){return X.code==="ERR_HTTP2_STREAM_ERROR"&&X.message.includes("NGHTTP2_REFUSED_STREAM")}qr5.isBrowserNetworkError=t16;qr5.isClockSkewCorrectedError=n16;qr5.isClockSkewError=Lr5;qr5.isNodeJsHttp2TransientError=a16;qr5.isRetryableByTrait=p16;qr5.isServerError=Pr5;qr5.isThrottlingError=Er5;qr5.isTransientError=Gz0});var Dw=k((hr5)=>{var kr5=Qz0();hr5.RETRY_MODES=void 0;(function(X){X.STANDARD="standard",X.ADAPTIVE="adaptive"})(hr5.RETRY_MODES||(hr5.RETRY_MODES={}));var QT1=3,Cr5=hr5.RETRY_MODES.STANDARD;class JT1{static setTimeoutFn=setTimeout;beta;minCapacity;minFillRate;scaleConstant;smooth;enabled=!1;availableTokens=0;lastMaxRate=0;measuredTxRate=0;requestCount=0;fillRate;lastThrottleTime;lastTimestamp=0;lastTxRateBucket;maxCapacity;timeWindow=0;constructor(X){this.beta=X?.beta??0.7,this.minCapacity=X?.minCapacity??1,this.minFillRate=X?.minFillRate??0.5,this.scaleConstant=X?.scaleConstant??0.4,this.smooth=X?.smooth??0.8,this.lastThrottleTime=this.getCurrentTimeInSeconds(),this.lastTxRateBucket=Math.floor(this.getCurrentTimeInSeconds()),this.fillRate=this.minFillRate,this.maxCapacity=this.minCapacity}async getSendToken(){return this.acquireTokenBucket(1)}updateClientSendingRate(X){let Y;this.updateMeasuredRate();let G=X;if(G?.errorType==="THROTTLING"||kr5.isThrottlingError(G?.error??X)){let W=!this.enabled?this.measuredTxRate:Math.min(this.measuredTxRate,this.fillRate);this.lastMaxRate=W,this.calculateTimeWindow(),this.lastThrottleTime=this.getCurrentTimeInSeconds(),Y=this.cubicThrottle(W),this.enableTokenBucket()}else this.calculateTimeWindow(),Y=this.cubicSuccess(this.getCurrentTimeInSeconds());let J=Math.min(Y,2*this.measuredTxRate);this.updateTokenBucketRate(J)}getCurrentTimeInSeconds(){return Date.now()/1000}async acquireTokenBucket(X){if(!this.enabled)return;if(this.refillTokenBucket(),X>this.availableTokens){let Y=(X-this.availableTokens)/this.fillRate*1000;await new Promise((G)=>JT1.setTimeoutFn(G,Y))}this.availableTokens=this.availableTokens-X}refillTokenBucket(){let X=this.getCurrentTimeInSeconds();if(!this.lastTimestamp){this.lastTimestamp=X;return}let Y=(X-this.lastTimestamp)*this.fillRate;this.availableTokens=Math.min(this.maxCapacity,this.availableTokens+Y),this.lastTimestamp=X}calculateTimeWindow(){this.timeWindow=this.getPrecise(Math.pow(this.lastMaxRate*(1-this.beta)/this.scaleConstant,0.3333333333333333))}cubicThrottle(X){return this.getPrecise(X*this.beta)}cubicSuccess(X){return this.getPrecise(this.scaleConstant*Math.pow(X-this.lastThrottleTime-this.timeWindow,3)+this.lastMaxRate)}enableTokenBucket(){this.enabled=!0}updateTokenBucketRate(X){this.refillTokenBucket(),this.fillRate=Math.max(X,this.minFillRate),this.maxCapacity=Math.max(X,this.minCapacity),this.availableTokens=Math.min(this.availableTokens,this.maxCapacity)}updateMeasuredRate(){let X=this.getCurrentTimeInSeconds(),Y=Math.floor(X*2)/2;if(this.requestCount++,Y>this.lastTxRateBucket){let G=this.requestCount/(Y-this.lastTxRateBucket);this.measuredTxRate=this.getPrecise(G*this.smooth+this.measuredTxRate*(1-this.smooth)),this.requestCount=0,this.lastTxRateBucket=Y}}getPrecise(X){return parseFloat(X.toFixed(8))}}var vr5=100,Wz0=20000,_r5=500,Jz0=500,fr5=5,br5=10,r16=1,yr5="amz-sdk-invocation-id",xr5="amz-sdk-request";class eQ{static v2026=typeof process<"u"&&process.env?.SMITHY_NEW_RETRIES_2026==="true";static delay(){return eQ.v2026?50:100}static throttlingDelay(){return eQ.v2026?1000:500}static cost(){return eQ.v2026?14:5}static throttlingCost(){return eQ.v2026?5:10}static modifiedCostType(){return eQ.v2026?"THROTTLING":"TRANSIENT"}}class o16{x=eQ.delay();computeNextBackoffDelay(X){let Y=Math.random(),G=2,Q=Y*Math.min(this.x*2**X,Wz0);return Math.floor(Q)}setDelayBase(X){this.x=X}}class Zz0{delay;count;cost;longPoll;constructor(X,Y,G,Q){this.delay=X,this.count=Y,this.cost=G,this.longPoll=Q}getRetryCount(){return this.count}getRetryDelay(){return Math.min(Wz0,this.delay)}getRetryCost(){return this.cost}isLongPoll(){return this.longPoll}}var GT1={incompatible:1,attempts:2,capacity:3};class gX1{mode=hr5.RETRY_MODES.STANDARD;capacity=Jz0;retryBackoffStrategy;maxAttemptsProvider;baseDelay;constructor(X){if(typeof X==="number")this.maxAttemptsProvider=async()=>X;else if(typeof X==="function")this.maxAttemptsProvider=X;else if(X&&typeof X==="object")this.maxAttemptsProvider=async()=>X.maxAttempts,this.baseDelay=X.baseDelay,this.retryBackoffStrategy=X.backoff;this.maxAttemptsProvider??=async()=>QT1,this.baseDelay??=eQ.delay(),this.retryBackoffStrategy??=new o16}async acquireInitialRetryToken(X){return new Zz0(eQ.delay(),0,void 0,eQ.v2026&&X.includes(":longpoll"))}async refreshRetryTokenForRetry(X,Y){let G=await this.getMaxAttempts(),Q=this.retryCode(X,Y,G),J=Q===0,W=X.isLongPoll?.();if(J||W){let Z=Y.errorType;this.retryBackoffStrategy.setDelayBase(Z==="THROTTLING"?eQ.throttlingDelay():this.baseDelay);let $=this.retryBackoffStrategy.computeNextBackoffDelay(X.getRetryCount()),K=$;if(Y.retryAfterHint instanceof Date)K=Math.max($,Math.min(Y.retryAfterHint.getTime()-Date.now(),$+5000));if(!J)throw Object.assign(Error("No retry token available"),{$backoff:eQ.v2026&&Q===GT1.capacity&&W?K:0});else{let H=this.getCapacityCost(Z);return this.capacity-=H,new Zz0(K,X.getRetryCount()+1,H,X.isLongPoll?.()??!1)}}throw Error("No retry token available")}recordSuccess(X){this.capacity=Math.min(Jz0,this.capacity+(X.getRetryCost()??r16))}getCapacity(){return this.capacity}async maxAttempts(){return this.maxAttemptsProvider()}async getMaxAttempts(){try{return await this.maxAttemptsProvider()}catch(X){return console.warn(`Max attempts provider could not resolve. Using default of ${QT1}`),QT1}}retryCode(X,Y,G){let Q=X.getRetryCount()+1,J=this.isRetryableError(Y.errorType)?0:GT1.incompatible,W=Q<G?0:GT1.attempts,Z=this.capacity>=this.getCapacityCost(Y.errorType)?0:GT1.capacity;return J||W||Z}getCapacityCost(X){return X===eQ.modifiedCostType()?eQ.throttlingCost():eQ.cost()}isRetryableError(X){return X==="THROTTLING"||X==="TRANSIENT"}}class s16{mode=hr5.RETRY_MODES.ADAPTIVE;rateLimiter;standardRetryStrategy;constructor(X,Y){let{rateLimiter:G}=Y??{};this.rateLimiter=G??new JT1,this.standardRetryStrategy=Y?new gX1({maxAttempts:typeof X==="number"?X:3,...Y}):new gX1(X)}async acquireInitialRetryToken(X){return await this.rateLimiter.getSendToken(),this.standardRetryStrategy.acquireInitialRetryToken(X)}async refreshRetryTokenForRetry(X,Y){return this.rateLimiter.updateClientSendingRate(Y),this.standardRetryStrategy.refreshRetryTokenForRetry(X,Y)}recordSuccess(X){this.rateLimiter.updateClientSendingRate({}),this.standardRetryStrategy.recordSuccess(X)}async maxAttemptsProvider(){return this.standardRetryStrategy.maxAttempts()}}class e16 extends gX1{computeNextBackoffDelay;constructor(X,Y=eQ.delay()){super(typeof X==="function"?X:async()=>X);if(typeof Y==="number")this.computeNextBackoffDelay=()=>Y;else this.computeNextBackoffDelay=Y}async refreshRetryTokenForRetry(X,Y){let G=await super.refreshRetryTokenForRetry(X,Y);return G.getRetryDelay=()=>this.computeNextBackoffDelay(G.getRetryCount()),G}}hr5.AdaptiveRetryStrategy=s16;hr5.ConfiguredRetryStrategy=e16;hr5.DEFAULT_MAX_ATTEMPTS=QT1;hr5.DEFAULT_RETRY_DELAY_BASE=vr5;hr5.DEFAULT_RETRY_MODE=Cr5;hr5.DefaultRateLimiter=JT1;hr5.INITIAL_RETRY_TOKENS=Jz0;hr5.INVOCATION_ID_HEADER=yr5;hr5.MAXIMUM_RETRY_DELAY=Wz0;hr5.NO_RETRY_INCREMENT=r16;hr5.REQUEST_HEADER=xr5;hr5.RETRY_COST=fr5;hr5.Retry=eQ;hr5.StandardRetryStrategy=gX1;hr5.THROTTLING_RETRY_DELAY_BASE=_r5;hr5.TIMEOUT_RETRY_COST=br5});var WX=k((Ho5)=>{var Yo5=Dw(),$z0={warningEmitted:!1},Go5=(X)=>{if(X&&!$z0.warningEmitted&&parseInt(X.substring(1,X.indexOf(".")))<20)$z0.warningEmitted=!0,process.emitWarning(`NodeDeprecationWarning: The AWS SDK for JavaScript (v3) will
1647
1647
  no longer support Node.js ${X} in January 2026.
1648
1648
 
1649
1649
  To continue receiving updates to AWS services, bug fixes, and security
@@ -0,0 +1,17 @@
1
+ /**
2
+ Check if the character represented by a given [Unicode code point](https://en.wikipedia.org/wiki/Code_point) is [fullwidth](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms).
3
+
4
+ @param codePoint - The [code point](https://en.wikipedia.org/wiki/Code_point) of a character.
5
+
6
+ @example
7
+ ```
8
+ import isFullwidthCodePoint from 'is-fullwidth-code-point';
9
+
10
+ isFullwidthCodePoint('谢'.codePointAt(0));
11
+ //=> true
12
+
13
+ isFullwidthCodePoint('a'.codePointAt(0));
14
+ //=> false
15
+ ```
16
+ */
17
+ export default function isFullwidthCodePoint(codePoint: number): boolean;
@@ -0,0 +1,12 @@
1
+ import {
2
+ _isFullWidth as isFullWidth,
3
+ _isWide as isWide,
4
+ } from 'get-east-asian-width';
5
+
6
+ export default function isFullwidthCodePoint(codePoint) {
7
+ if (!Number.isInteger(codePoint)) {
8
+ return false;
9
+ }
10
+
11
+ return isFullWidth(codePoint) || isWide(codePoint);
12
+ }
@@ -0,0 +1,9 @@
1
+ MIT License
2
+
3
+ Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
6
+
7
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
8
+
9
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,53 @@
1
+ {
2
+ "name": "is-fullwidth-code-point",
3
+ "version": "5.1.0",
4
+ "description": "Check if the character represented by a given Unicode code point is fullwidth",
5
+ "license": "MIT",
6
+ "repository": "sindresorhus/is-fullwidth-code-point",
7
+ "funding": "https://github.com/sponsors/sindresorhus",
8
+ "author": {
9
+ "name": "Sindre Sorhus",
10
+ "email": "sindresorhus@gmail.com",
11
+ "url": "https://sindresorhus.com"
12
+ },
13
+ "type": "module",
14
+ "exports": {
15
+ "types": "./index.d.ts",
16
+ "default": "./index.js"
17
+ },
18
+ "sideEffects": false,
19
+ "engines": {
20
+ "node": ">=18"
21
+ },
22
+ "scripts": {
23
+ "test": "xo && ava && tsd"
24
+ },
25
+ "files": [
26
+ "index.js",
27
+ "index.d.ts"
28
+ ],
29
+ "keywords": [
30
+ "fullwidth",
31
+ "full-width",
32
+ "full",
33
+ "width",
34
+ "unicode",
35
+ "character",
36
+ "string",
37
+ "codepoint",
38
+ "code",
39
+ "point",
40
+ "is",
41
+ "detect",
42
+ "check",
43
+ "east-asian-width"
44
+ ],
45
+ "devDependencies": {
46
+ "ava": "^5.3.1",
47
+ "tsd": "^0.29.0",
48
+ "xo": "^0.56.0"
49
+ },
50
+ "dependencies": {
51
+ "get-east-asian-width": "^1.3.1"
52
+ }
53
+ }
@@ -0,0 +1,31 @@
1
+ # is-fullwidth-code-point
2
+
3
+ > Check if the character represented by a given [Unicode code point](https://en.wikipedia.org/wiki/Code_point) is [fullwidth](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms)
4
+
5
+ ## Install
6
+
7
+ ```sh
8
+ npm install is-fullwidth-code-point
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ ```js
14
+ import isFullwidthCodePoint from 'is-fullwidth-code-point';
15
+
16
+ isFullwidthCodePoint('谢'.codePointAt(0));
17
+ //=> true
18
+
19
+ isFullwidthCodePoint('a'.codePointAt(0));
20
+ //=> false
21
+ ```
22
+
23
+ ## API
24
+
25
+ ### isFullwidthCodePoint(codePoint)
26
+
27
+ #### codePoint
28
+
29
+ Type: `number`
30
+
31
+ The [code point](https://en.wikipedia.org/wiki/Code_point) of a character.
@@ -0,0 +1,54 @@
1
+ declare const mimicFn: {
2
+ /**
3
+ Make a function mimic another one. It will copy over the properties `name`, `length`, `displayName`, and any custom properties you may have set.
4
+
5
+ @param to - Mimicking function.
6
+ @param from - Function to mimic.
7
+ @returns The modified `to` function.
8
+
9
+ @example
10
+ ```
11
+ import mimicFn = require('mimic-fn');
12
+
13
+ function foo() {}
14
+ foo.unicorn = '🦄';
15
+
16
+ function wrapper() {
17
+ return foo();
18
+ }
19
+
20
+ console.log(wrapper.name);
21
+ //=> 'wrapper'
22
+
23
+ mimicFn(wrapper, foo);
24
+
25
+ console.log(wrapper.name);
26
+ //=> 'foo'
27
+
28
+ console.log(wrapper.unicorn);
29
+ //=> '🦄'
30
+ ```
31
+ */
32
+ <
33
+ ArgumentsType extends unknown[],
34
+ ReturnType,
35
+ FunctionType extends (...arguments: ArgumentsType) => ReturnType
36
+ >(
37
+ to: (...arguments: ArgumentsType) => ReturnType,
38
+ from: FunctionType
39
+ ): FunctionType;
40
+
41
+ // TODO: Remove this for the next major release, refactor the whole definition to:
42
+ // declare function mimicFn<
43
+ // ArgumentsType extends unknown[],
44
+ // ReturnType,
45
+ // FunctionType extends (...arguments: ArgumentsType) => ReturnType
46
+ // >(
47
+ // to: (...arguments: ArgumentsType) => ReturnType,
48
+ // from: FunctionType
49
+ // ): FunctionType;
50
+ // export = mimicFn;
51
+ default: typeof mimicFn;
52
+ };
53
+
54
+ export = mimicFn;
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+
3
+ const mimicFn = (to, from) => {
4
+ for (const prop of Reflect.ownKeys(from)) {
5
+ Object.defineProperty(to, prop, Object.getOwnPropertyDescriptor(from, prop));
6
+ }
7
+
8
+ return to;
9
+ };
10
+
11
+ module.exports = mimicFn;
12
+ // TODO: Remove this for the next major release
13
+ module.exports.default = mimicFn;
@@ -0,0 +1,9 @@
1
+ MIT License
2
+
3
+ Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
6
+
7
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
8
+
9
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,42 @@
1
+ {
2
+ "name": "mimic-fn",
3
+ "version": "2.1.0",
4
+ "description": "Make a function mimic another one",
5
+ "license": "MIT",
6
+ "repository": "sindresorhus/mimic-fn",
7
+ "author": {
8
+ "name": "Sindre Sorhus",
9
+ "email": "sindresorhus@gmail.com",
10
+ "url": "sindresorhus.com"
11
+ },
12
+ "engines": {
13
+ "node": ">=6"
14
+ },
15
+ "scripts": {
16
+ "test": "xo && ava && tsd"
17
+ },
18
+ "files": [
19
+ "index.js",
20
+ "index.d.ts"
21
+ ],
22
+ "keywords": [
23
+ "function",
24
+ "mimic",
25
+ "imitate",
26
+ "rename",
27
+ "copy",
28
+ "inherit",
29
+ "properties",
30
+ "name",
31
+ "func",
32
+ "fn",
33
+ "set",
34
+ "infer",
35
+ "change"
36
+ ],
37
+ "devDependencies": {
38
+ "ava": "^1.4.1",
39
+ "tsd": "^0.7.1",
40
+ "xo": "^0.24.0"
41
+ }
42
+ }