decocms 2.300.1 → 2.300.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) hide show
  1. package/dist/client/assets/{AlertCircle-CtSiN7Dh.js → AlertCircle-CDtbI_oO.js} +1 -1
  2. package/dist/client/assets/{ArrowNarrowLeft-CjMD5YtT.js → ArrowNarrowLeft-CJ8McWmC.js} +1 -1
  3. package/dist/client/assets/{ArrowUpRight-VGEco3p8.js → ArrowUpRight-CfmSEQdr.js} +1 -1
  4. package/dist/client/assets/{CheckCircle-BOjQcSoZ.js → CheckCircle-BfnVNP63.js} +1 -1
  5. package/dist/client/assets/{ChevronDown-B21GyFLP.js → ChevronDown-BKNJxAvQ.js} +1 -1
  6. package/dist/client/assets/{ChevronRight-C7fFXCXU.js → ChevronRight-DmLVJ7rn.js} +1 -1
  7. package/dist/client/assets/{ChevronUp-DLJe-Ifh.js → ChevronUp-CsX2yfUc.js} +1 -1
  8. package/dist/client/assets/{Container-DVwtR0PY.js → Container-DASuUdbK.js} +1 -1
  9. package/dist/client/assets/{DotsVertical-_1yE4PFi.js → DotsVertical-CiluvdTj.js} +1 -1
  10. package/dist/client/assets/{LinkExternal01-BeNjIA73.js → LinkExternal01-CPmlMGsQ.js} +1 -1
  11. package/dist/client/assets/{Lock01-y9D26Lk9.js → Lock01-BjCX4hvk.js} +1 -1
  12. package/dist/client/assets/{Palette-xIvgAE_U.js → Palette-CmFr12m3.js} +1 -1
  13. package/dist/client/assets/{Play-esUCyQh5.js → Play-AcQdYeyW.js} +1 -1
  14. package/dist/client/assets/{Plus-8zlfW9Nb.js → Plus-DkESyBkp.js} +1 -1
  15. package/dist/client/assets/{RefreshCcw01-DV-_PfmV.js → RefreshCcw01-DLpzNYLg.js} +1 -1
  16. package/dist/client/assets/{SearchMd-BgpZuBQH.js → SearchMd-RHgmu5nb.js} +1 -1
  17. package/dist/client/assets/{Settings02-B2DHZxlV.js → Settings02-BgsL1r4k.js} +1 -1
  18. package/dist/client/assets/{Shield01-CewVSi37.js → Shield01-BndBIezR.js} +1 -1
  19. package/dist/client/assets/{Star01-DupDdRAe.js → Star01-CRQ6Bc0M.js} +1 -1
  20. package/dist/client/assets/{Sun-B1MYWGMj.js → Sun-DKXWmMuG.js} +1 -1
  21. package/dist/client/assets/{Tool01-73PH4njb.js → Tool01-CRyHj4QJ.js} +1 -1
  22. package/dist/client/assets/{Trash01-_-2EAUWH.js → Trash01-CfK96-qY.js} +1 -1
  23. package/dist/client/assets/{User01-DLnrd0WJ.js → User01-KY-MO20F.js} +1 -1
  24. package/dist/client/assets/{Users03-CtQ_adLe.js → Users03-BCFGwdah.js} +1 -1
  25. package/dist/client/assets/{X-DavTUkoo.js → X-ZLJ81KrS.js} +1 -1
  26. package/dist/client/assets/{XCircle-BKeTm8Ww.js → XCircle-B2dZZ7-3.js} +1 -1
  27. package/dist/client/assets/{XClose-BpjQA_dF.js → XClose-DXU_tOKb.js} +1 -1
  28. package/dist/client/assets/{Zap-DT_tBFfJ.js → Zap-25qc4enN.js} +1 -1
  29. package/dist/client/assets/{ZapSquare-BL-_ZEqM.js → ZapSquare-D6uI2CIK.js} +1 -1
  30. package/dist/client/assets/{accordion-pRq2Jalt.js → accordion-D3bxaM5e.js} +1 -1
  31. package/dist/client/assets/{agent-icon-DnE1m294.js → agent-icon-Y41Xl4RB.js} +1 -1
  32. package/dist/client/assets/{agents-list-BoAFCp78.js → agents-list-mS9MVQZN.js} +1 -1
  33. package/dist/client/assets/ai-providers-BRoGM2rY.js +1 -0
  34. package/dist/client/assets/ai-providers-logos-DD3qZ33J.js +1 -0
  35. package/dist/client/assets/{alert-dialog-DvcLf48w.js → alert-dialog-DnoDZh7l.js} +1 -1
  36. package/dist/client/assets/{auth-catchall-CAJD1PoQ.js → auth-catchall-BoFlqYg1.js} +1 -1
  37. package/dist/client/assets/{automation-list-row-DsEcFwqj.js → automation-list-row-CAHW7UMQ.js} +1 -1
  38. package/dist/client/assets/{automations-0IJqtFMr.js → automations-PZEFUnMk.js} +1 -1
  39. package/dist/client/assets/{avatar-B1YFr91G.js → avatar-C1td1Be6.js} +1 -1
  40. package/dist/client/assets/{badge-BnwDLyJj.js → badge-BQ5WsTn4.js} +1 -1
  41. package/dist/client/assets/{brand-context-D5_IL-aX.js → brand-context-DIIOMD2x.js} +1 -1
  42. package/dist/client/assets/{card-Hve9iIpZ.js → card-DQYOkC6d.js} +1 -1
  43. package/dist/client/assets/{chat-context-C2vjARhO.js → chat-context-hgW5gAmm.js} +1 -1
  44. package/dist/client/assets/{checkbox-DmWLCJJH.js → checkbox-DkmOdGV4.js} +1 -1
  45. package/dist/client/assets/{collection-detail-D8wvqyeL.js → collection-detail-tXsv3iGO.js} +1 -1
  46. package/dist/client/assets/{collection-display-button-CQ2KlZSu.js → collection-display-button-8PlYmXiO.js} +1 -1
  47. package/dist/client/assets/{collection-search-DffILLk0.js → collection-search-B7ehvlGW.js} +1 -1
  48. package/dist/client/assets/{collection-search-D_mJKf_N.js → collection-search-CqdVjZKz.js} +1 -1
  49. package/dist/client/assets/{collection-table-wrapper-fO254CQy.js → collection-table-wrapper-DtBSTmHD.js} +1 -1
  50. package/dist/client/assets/{collection-tabs-Bcs-_tfj.js → collection-tabs-BymkuH-J.js} +1 -1
  51. package/dist/client/assets/{collections-CISD8jzc.js → collections-DusXIGhy.js} +1 -1
  52. package/dist/client/assets/{command-CsVFknP_.js → command-BCmTpu4J.js} +1 -1
  53. package/dist/client/assets/{connection-card-aTu5Xl4N.js → connection-card-Bfng1y5O.js} +1 -1
  54. package/dist/client/assets/{connection-detail-BUr0xwe0.js → connection-detail-BvkQKjE1.js} +1 -1
  55. package/dist/client/assets/{connection-form-helpers-BEHWki2e.js → connection-form-helpers-DmVfKyR2.js} +1 -1
  56. package/dist/client/assets/{connections-BJwQ4V76.js → connections-BOpJFAVW.js} +1 -1
  57. package/dist/client/assets/{constants-DZ5y4NEu.js → constants-Da2DvZbd.js} +1 -1
  58. package/dist/client/assets/{constants-BwurOShK.js → constants-Dm-yPW31.js} +1 -1
  59. package/dist/client/assets/{dialog-BSlhJimL.js → dialog-D0LCITx0.js} +1 -1
  60. package/dist/client/assets/{domain-settings-D65HSgmV.js → domain-settings-D2GqzT5W.js} +1 -1
  61. package/dist/client/assets/{drawer-DwurUbp0.js → drawer-DWuqMoty.js} +1 -1
  62. package/dist/client/assets/{dropdown-menu-Dn3K1Gpo.js → dropdown-menu-BooeaeZW.js} +1 -1
  63. package/dist/client/assets/{dynamic-plugin-layout-uzPcJgAD.js → dynamic-plugin-layout-BBI0fzcH.js} +1 -1
  64. package/dist/client/assets/{empty-state-B4R6bbr3.js → empty-state-DtXUXgFg.js} +1 -1
  65. package/dist/client/assets/{empty-state-DbgILpoj.js → empty-state-V_MWZYVh.js} +1 -1
  66. package/dist/client/assets/{extract-connection-data-Bp5NDOhQ.js → extract-connection-data-JkyrF-5k.js} +1 -1
  67. package/dist/client/assets/{features-MuQDQTKd.js → features-BRMl1rr6.js} +1 -1
  68. package/dist/client/assets/{form-DTt4fIHo.js → form-3xE0OqGj.js} +1 -1
  69. package/dist/client/assets/{general-C7YvzevF.js → general-CkXiaAh9.js} +1 -1
  70. package/dist/client/assets/{index-DRnP8Xhy.js → index-BOmAbn3-.js} +2 -2
  71. package/dist/client/assets/{index-CbEM9IOV.js → index-BSli4TIm.js} +1 -1
  72. package/dist/client/assets/{index-Day-HjXR.js → index-BUabcSp1.js} +1 -1
  73. package/dist/client/assets/{index-D1LVHcIe.js → index-BXOHXvkd.js} +1 -1
  74. package/dist/client/assets/{index-uTtq-reU.js → index-Bh9ip1xM.js} +1 -1
  75. package/dist/client/assets/{index-COQkJrV6.js → index-By-OUdid.js} +1 -1
  76. package/dist/client/assets/{index-h0Ny6VA2.js → index-C2XzR7MH.js} +1 -1
  77. package/dist/client/assets/index-CUHQFzXU.js +1 -0
  78. package/dist/client/assets/{index-DHKldY3y.js → index-CdUEwHcT.js} +1 -1
  79. package/dist/client/assets/{index-BZwRn_mX.js → index-Cm97pdLv.js} +1 -1
  80. package/dist/client/assets/{index-ygN6PiaU.js → index-D1vwSlce.js} +1 -1
  81. package/dist/client/assets/{index-XlHohbXo.js → index-D2cvrx8-.js} +1 -1
  82. package/dist/client/assets/{index-DBY00Q2Z.js → index-Db1yn84L.js} +3 -3
  83. package/dist/client/assets/{index-BJz9Oj-t.js → index-DcLrVfh1.js} +1 -1
  84. package/dist/client/assets/{index-BTM4S0x-.js → index-DqWkjFjy.js} +1 -1
  85. package/dist/client/assets/{index-D9wcQMm5.js → index-oZ72eHkF.js} +1 -1
  86. package/dist/client/assets/{infiniteQueryObserver-BFZ15R1_.js → infiniteQueryObserver-ruN3KSWZ.js} +1 -1
  87. package/dist/client/assets/{input-liZY-axz.js → input-DFMPKZJm.js} +1 -1
  88. package/dist/client/assets/{integration-icon-Cz-seBmA.js → integration-icon-Bu4bZk46.js} +1 -1
  89. package/dist/client/assets/{label-CrXFAdsO.js → label-DZwWOqq7.js} +1 -1
  90. package/dist/client/assets/{layout-bMTJXFfz.js → layout-DktxHUWV.js} +1 -1
  91. package/dist/client/assets/{lean-canvas-recruit-modal-DZ6knxg9.js → lean-canvas-recruit-modal-KLORFsWq.js} +1 -1
  92. package/dist/client/assets/{login-CWW3hrOg.js → login-Qjtx70Ay.js} +1 -1
  93. package/dist/client/assets/{members-DKWnDmHd.js → members-CB5ygrXY.js} +1 -1
  94. package/dist/client/assets/{monaco-editor-Cx68yuxi.js → monaco-editor-BMXf_ICC.js} +1 -1
  95. package/dist/client/assets/{monitoring-stats-row-BFqk7UYd.js → monitoring-stats-row-hB6Djn4O.js} +1 -1
  96. package/dist/client/assets/{oauth-callback-nz50ugwL.js → oauth-callback-Cgk_ji97.js} +1 -1
  97. package/dist/client/assets/{oauth-callback-ai-provider-ONRq40Il.js → oauth-callback-ai-provider-BWQb53Zq.js} +1 -1
  98. package/dist/client/assets/{onboarding-CbZyKtbC.js → onboarding-BJq0uANa.js} +1 -1
  99. package/dist/client/assets/{org-layout-DkS2FRIV.js → org-layout-BOmngSEh.js} +1 -1
  100. package/dist/client/assets/{org-plugin-layout-DnoycXXu.js → org-plugin-layout-DYC_-fTx.js} +1 -1
  101. package/dist/client/assets/{pair-rqe3skqp.js → pair-Ds1EbiW2.js} +1 -1
  102. package/dist/client/assets/{plugin-empty-state-DAJtqa_X.js → plugin-empty-state-D34qTA46.js} +1 -1
  103. package/dist/client/assets/{plugin-header-DnTysGuR.js → plugin-header-D19z2yPe.js} +1 -1
  104. package/dist/client/assets/{plugin-layout-Zl5kAJLg.js → plugin-layout-DBmHNWl4.js} +1 -1
  105. package/dist/client/assets/{popover-B6ijC2Zf.js → popover-Cvs9u_0D.js} +1 -1
  106. package/dist/client/assets/{profile-Wj3GJkbr.js → profile-_mVuN_Pw.js} +1 -1
  107. package/dist/client/assets/{project-app-view-DufFnF1s.js → project-app-view-BWTIFTZt.js} +1 -1
  108. package/dist/client/assets/registry-BYjdxPj0.js +2 -0
  109. package/dist/client/assets/{registry-layout-BvfKYFzg.js → registry-layout-BiMLaZ5I.js} +1 -1
  110. package/dist/client/assets/{required-auth-layout-CKQlCfyf.js → required-auth-layout-CGJ5rk5i.js} +1 -1
  111. package/dist/client/assets/{reset-password-4dmtvYgx.js → reset-password-CaWZrhgz.js} +1 -1
  112. package/dist/client/assets/{roles-DlsIbipv.js → roles-ychtuZ_l.js} +1 -1
  113. package/dist/client/assets/{scroll-area-D_0eTXQI.js → scroll-area-DaS5ALMq.js} +1 -1
  114. package/dist/client/assets/{search-input-CbBz2_I7.js → search-input-C4vXNPxO.js} +1 -1
  115. package/dist/client/assets/{select-DwQCWni4.js → select-Czs_bVht.js} +1 -1
  116. package/dist/client/assets/{select-model-CSzGroxj.js → select-model-BAqBST4u.js} +1 -1
  117. package/dist/client/assets/{settings-layout-D2TzHadG.js → settings-layout-CKeL2zhm.js} +1 -1
  118. package/dist/client/assets/{settings-section-CVNbjkC4.js → settings-section-D1IZyeMZ.js} +1 -1
  119. package/dist/client/assets/{shell-layout-BK74oWLU.js → shell-layout-C3cZnoYI.js} +1 -1
  120. package/dist/client/assets/{skeleton-DnMJGIDK.js → skeleton-DFL6A56z.js} +1 -1
  121. package/dist/client/assets/{sso-ByZblLmU.js → sso-C4f0AfMQ.js} +1 -1
  122. package/dist/client/assets/{store-D02KrT4m.js → store-CEIp74Dt.js} +1 -1
  123. package/dist/client/assets/store-registry-B0W6zcCj.js +2 -0
  124. package/dist/client/assets/{switch-BwYbkaPM.js → switch-CgZ8SLcM.js} +1 -1
  125. package/dist/client/assets/{table-dOL69UsN.js → table-bZ3KC8o2.js} +1 -1
  126. package/dist/client/assets/{tabs-CGg7lV45.js → tabs-CQg6na0A.js} +1 -1
  127. package/dist/client/assets/{task-status-DAgh3LfT.js → task-status-ZLGfD6LC.js} +1 -1
  128. package/dist/client/assets/{textarea-CkxfQbxI.js → textarea-dZeCqaKZ.js} +1 -1
  129. package/dist/client/assets/{toggle-group-C5VhmQig.js → toggle-group-BWbe6Sle.js} +1 -1
  130. package/dist/client/assets/{tools-list-CwM3RxlF.js → tools-list-Cs00fcMQ.js} +1 -1
  131. package/dist/client/assets/{tooltip-CUw8WpYG.js → tooltip-f4eQJmkn.js} +1 -1
  132. package/dist/client/assets/{types-slR7lXH6.js → types-BxKF_I-u.js} +1 -1
  133. package/dist/client/assets/{use-ai-providers-DespFg1Y.js → use-ai-providers-CTaSMN44.js} +1 -1
  134. package/dist/client/assets/{use-collections-CDG0ivO9.js → use-collections-ciAA_3Td.js} +1 -1
  135. package/dist/client/assets/{use-connection-DDedfw7l.js → use-connection-DcySEqVV.js} +1 -1
  136. package/dist/client/assets/{use-copy-Czy0YFNn.js → use-copy-VDNca3ax.js} +1 -1
  137. package/dist/client/assets/{use-create-virtual-mcp-Bhi93QNY.js → use-create-virtual-mcp-BosIHDl_.js} +1 -1
  138. package/dist/client/assets/{use-decopilot-events-DkzJQYGR.js → use-decopilot-events-CJG2rWbg.js} +1 -1
  139. package/dist/client/assets/{use-delete-connection-CG2J3Cjn.js → use-delete-connection-BHdNUeNC.js} +1 -1
  140. package/dist/client/assets/{use-infinite-scroll-qjXoMT8U.js → use-infinite-scroll-Cd7090oj.js} +1 -1
  141. package/dist/client/assets/{use-list-state-D2VmPCpI.js → use-list-state-B_mnqmDh.js} +1 -1
  142. package/dist/client/assets/{use-mcp-tools-nd8RTEJZ.js → use-mcp-tools-C9cj3BH6.js} +1 -1
  143. package/dist/client/assets/{use-members-BWz4qY4v.js → use-members-YqP0IEDf.js} +1 -1
  144. package/dist/client/assets/{use-navigate-to-agent-Dj0boPYr.js → use-navigate-to-agent-KmcfdsLb.js} +1 -1
  145. package/dist/client/assets/{use-org-auth-client-_7iLBAbg.js → use-org-auth-client-DKAFGF5X.js} +1 -1
  146. package/dist/client/assets/{use-org-sso-CXTYwYuw.js → use-org-sso-BUVEFfyx.js} +1 -1
  147. package/dist/client/assets/{use-organization-roles-BmJJrwum.js → use-organization-roles-BY88cyRn.js} +1 -1
  148. package/dist/client/assets/{use-organization-settings-C516uAxZ.js → use-organization-settings-BrpxY44K.js} +1 -1
  149. package/dist/client/assets/{use-registry-connections-BH65PVKK.js → use-registry-connections-C5Res-NO.js} +1 -1
  150. package/dist/client/assets/{use-status-sounds-COJng9ez.js → use-status-sounds-DF_LdFlX.js} +1 -1
  151. package/dist/client/assets/{use-tasks-BMtiaufW.js → use-tasks-DjQnA3sr.js} +1 -1
  152. package/dist/client/assets/{use-view-mode-B3HPjSsa.js → use-view-mode-pmOkpC-l.js} +1 -1
  153. package/dist/client/assets/{use-virtual-mcp-Dkco3wCF.js → use-virtual-mcp-D8YFOZwW.js} +1 -1
  154. package/dist/client/assets/useInfiniteQuery-z1Rh4SPR.js +1 -0
  155. package/dist/client/assets/useSuspenseInfiniteQuery-DmArxoRp.js +1 -0
  156. package/dist/client/assets/{user-BCVAIUhB.js → user-BG2r6Yob.js} +1 -1
  157. package/dist/client/assets/{view-mode-toggle-Bbj9P-zr.js → view-mode-toggle-iIz_yTY4.js} +1 -1
  158. package/dist/client/assets/workflow-detail-hy-jKDKn.js +1 -0
  159. package/dist/client/assets/{workflow-DZKRFLJh.js → workflow-w5_7cK4m.js} +1 -1
  160. package/dist/client/index.html +1 -1
  161. package/dist/server/cli.js +1 -1
  162. package/dist/server/node_modules/ansi-styles/index.d.ts +236 -0
  163. package/dist/server/node_modules/ansi-styles/index.js +223 -0
  164. package/dist/server/node_modules/ansi-styles/license +9 -0
  165. package/dist/server/node_modules/ansi-styles/package.json +54 -0
  166. package/dist/server/node_modules/ansi-styles/readme.md +173 -0
  167. package/dist/server/node_modules/environment/index.d.ts +74 -0
  168. package/dist/server/node_modules/environment/index.js +47 -0
  169. package/dist/server/node_modules/environment/license +9 -0
  170. package/dist/server/node_modules/environment/package.json +74 -0
  171. package/dist/server/node_modules/environment/readme.md +94 -0
  172. package/dist/server/node_modules/escape-string-regexp/index.d.ts +18 -0
  173. package/dist/server/node_modules/escape-string-regexp/index.js +11 -0
  174. package/dist/server/node_modules/escape-string-regexp/license +9 -0
  175. package/dist/server/node_modules/escape-string-regexp/package.json +43 -0
  176. package/dist/server/node_modules/escape-string-regexp/readme.md +29 -0
  177. package/dist/server/node_modules/is-fullwidth-code-point/index.d.ts +17 -0
  178. package/dist/server/node_modules/is-fullwidth-code-point/index.js +12 -0
  179. package/dist/server/node_modules/is-fullwidth-code-point/license +9 -0
  180. package/dist/server/node_modules/is-fullwidth-code-point/package.json +53 -0
  181. package/dist/server/node_modules/is-fullwidth-code-point/readme.md +31 -0
  182. package/dist/server/node_modules/string-width/index.d.ts +39 -0
  183. package/dist/server/node_modules/string-width/index.js +82 -0
  184. package/dist/server/node_modules/string-width/license +9 -0
  185. package/dist/server/node_modules/string-width/package.json +64 -0
  186. package/dist/server/node_modules/string-width/readme.md +66 -0
  187. package/package.json +1 -1
  188. package/dist/client/assets/ai-providers-CAEYBEbx.js +0 -1
  189. package/dist/client/assets/ai-providers-logos-D6a8kmGH.js +0 -1
  190. package/dist/client/assets/index-CKNbLfs9.js +0 -1
  191. package/dist/client/assets/registry-D49ZAHvu.js +0 -2
  192. package/dist/client/assets/store-registry-C02mfQOQ.js +0 -2
  193. package/dist/client/assets/useInfiniteQuery-mbgOLEDd.js +0 -1
  194. package/dist/client/assets/useSuspenseInfiniteQuery-DZGLPMRe.js +0 -1
  195. package/dist/client/assets/workflow-detail-Bm0PdrL9.js +0 -1
  196. package/dist/server/node_modules/xtend/.jshintrc +0 -30
  197. package/dist/server/node_modules/xtend/LICENSE +0 -20
  198. package/dist/server/node_modules/xtend/README.md +0 -32
  199. package/dist/server/node_modules/xtend/immutable.js +0 -19
  200. package/dist/server/node_modules/xtend/mutable.js +0 -17
  201. package/dist/server/node_modules/xtend/package.json +0 -55
  202. package/dist/server/node_modules/xtend/test.js +0 -103
@@ -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-BOmAbn3-.js";import{a as f}from"./index-Bh9ip1xM.js";import"./index-C2XzR7MH.js";import"./constants-Da2DvZbd.js";import"./collections-DusXIGhy.js";import"./index-D1vwSlce.js";import"./use-virtual-mcp-D8YFOZwW.js";import"./use-collections-ciAA_3Td.js";import"./monaco-editor-BMXf_ICC.js";import"./index-By-OUdid.js";import"./accordion-D3bxaM5e.js";import"./agent-icon-Y41Xl4RB.js";import"./AlertCircle-CDtbI_oO.js";import"./Tool01-CRyHj4QJ.js";import"./XClose-DXU_tOKb.js";import"./RefreshCcw01-DLpzNYLg.js";import"./ArrowNarrowLeft-CJ8McWmC.js";import"./XCircle-B2dZZ7-3.js";import"./ArrowUpRight-CfmSEQdr.js";import"./ZapSquare-D6uI2CIK.js";import"./Users03-BCFGwdah.js";import"./CheckCircle-BfnVNP63.js";import"./ChevronDown-BKNJxAvQ.js";import"./ChevronRight-DmLVJ7rn.js";import"./ChevronUp-CsX2yfUc.js";import"./DotsVertical-CiluvdTj.js";import"./Container-DASuUdbK.js";import"./Star01-CRQ6Bc0M.js";import"./Palette-CmFr12m3.js";import"./SearchMd-RHgmu5nb.js";import"./index-BXOHXvkd.js";import"./tooltip-f4eQJmkn.js";import"./X-ZLJ81KrS.js";import"./LinkExternal01-CPmlMGsQ.js";import"./Lock01-BjCX4hvk.js";import"./Sun-DKXWmMuG.js";import"./Play-AcQdYeyW.js";import"./Plus-DkESyBkp.js";import"./Settings02-BgsL1r4k.js";import"./Shield01-BndBIezR.js";import"./Trash01-CfK96-qY.js";import"./User01-KY-MO20F.js";import"./Zap-25qc4enN.js";import"./badge-BQ5WsTn4.js";import"./select-Czs_bVht.js";import"./view-mode-toggle-iIz_yTY4.js";import"./layout-DktxHUWV.js";import"./use-connection-DcySEqVV.js";import"./use-mcp-tools-C9cj3BH6.js";import"./dialog-D0LCITx0.js";import"./index-DqWkjFjy.js";import"./dropdown-menu-BooeaeZW.js";import"./integration-icon-Bu4bZk46.js";import"./scroll-area-DaS5ALMq.js";import"./index-oZ72eHkF.js";import"./empty-state-DtXUXgFg.js";import"./create-sse-subscription-CxkOgzKf.js";import"./input-DFMPKZJm.js";function ht(){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{ht as default};
@@ -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-DRnP8Xhy.js";import{u as Ve,S as qe}from"./constants-DZ5y4NEu.js";import{B as ft,g as Me}from"./constants-BwurOShK.js";import{C as Qe}from"./collection-display-button-CQ2KlZSu.js";import{C as ht}from"./collection-search-D_mJKf_N.js";import{C as gt}from"./card-Hve9iIpZ.js";import{I as Ge}from"./integration-icon-Cz-seBmA.js";import{D as He,a as Ye,b as Je,c as O}from"./dropdown-menu-Dn3K1Gpo.js";import{c as Ze}from"./XCircle-BKeTm8Ww.js";import{i as Xe}from"./DotsVertical-_1yE4PFi.js";import{y as et,H as Ue}from"./agent-icon-DnE1m294.js";import{s as tt}from"./RefreshCcw01-DV-_PfmV.js";import{s as st}from"./Trash01-_-2EAUWH.js";import{C as xt}from"./collection-table-wrapper-fO254CQy.js";import{E as We}from"./empty-state-B4R6bbr3.js";import{U as jt}from"./user-BCVAIUhB.js";import{E as it}from"./empty-state-DbgILpoj.js";import{u as Ct}from"./use-list-state-D2VmPCpI.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-DvcLf48w.js";import{a as It,c as At}from"./use-collections-CDG0ivO9.js";import{a as Tt}from"./use-connection-DDedfw7l.js";import{s as Et}from"./Plus-8zlfW9Nb.js";import{a as Ot}from"./layout-bMTJXFfz.js";import{P as je}from"./index-D1LVHcIe.js";import"./collections-CISD8jzc.js";import"./XClose-BpjQA_dF.js";import"./ChevronDown-B21GyFLP.js";import"./tooltip-CUw8WpYG.js";import"./view-mode-toggle-Bbj9P-zr.js";import"./badge-BnwDLyJj.js";import"./SearchMd-BgpZuBQH.js";import"./Container-DVwtR0PY.js";import"./ChevronRight-C7fFXCXU.js";import"./AlertCircle-CtSiN7Dh.js";import"./Tool01-73PH4njb.js";import"./ArrowNarrowLeft-CjMD5YtT.js";import"./ArrowUpRight-VGEco3p8.js";import"./ZapSquare-BL-_ZEqM.js";import"./Users03-CtQ_adLe.js";import"./CheckCircle-BOjQcSoZ.js";import"./ChevronUp-DLJe-Ifh.js";import"./Star01-DupDdRAe.js";import"./Palette-xIvgAE_U.js";import"./LinkExternal01-BeNjIA73.js";import"./Lock01-y9D26Lk9.js";import"./Sun-B1MYWGMj.js";import"./Play-esUCyQh5.js";import"./Settings02-B2DHZxlV.js";import"./Shield01-CewVSi37.js";import"./User01-DLnrd0WJ.js";import"./X-DavTUkoo.js";import"./Zap-DT_tBFfJ.js";import"./table-dOL69UsN.js";import"./avatar-B1YFr91G.js";import"./use-view-mode-B3HPjSsa.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(Ge,{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 b;e[12]!==u||e[13]!==a?(b=t.jsxs("div",{className:"flex flex-col gap-0 flex-1",children:[u,a]}),e[12]=u,e[13]=a,e[14]=b):b=e[14];let y;e[15]!==m||e[16]!==b?(y=t.jsxs("div",{className:"flex flex-col gap-4 p-6 flex-1",children:[m,b]}),e[15]=m,e[16]=b,e[17]=y):y=e[17];let C;e[18]!==n||e[19]!==o||e[20]!==s?(C=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(He,{children:[t.jsx(Ye,{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]=C):C=e[21];let v;return e[22]!==y||e[23]!==C?(v=t.jsxs(gt,{className:"cursor-pointer transition-colors hover:bg-accent/50 h-full flex flex-col group relative",children:[y,C]}),e[22]=y,e[23]=C,e[24]=v):v=e[24],v}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:b,hideToolbar:y,sortableFields:C}=i,v=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,x=b===void 0?void 0:b,z=y===void 0?!1:y,P=C===void 0?void 0:C;let D;e[2]!==x||e[3]!==l||e[4]!==P?(D=x?x.filter(Bt).filter(A=>!P||P.includes(A.id)).map(Rt):ot(l,P),e[2]=x,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]!==v||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(Qe,{sortKey:r,sortDirection:v,onSort:g,sortOptions:w})})]})}),e[6]=E,e[7]=z,e[8]=g,e[9]=v,e[10]=r,e[11]=w,e[12]=S):S=e[12];let _;e[13]!==h||e[14]!==x||e[15]!==s||e[16]!==N||e[17]!==T||e[18]!==g||e[19]!==k||e[20]!==l||e[21]!==c||e[22]!==v||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(We,{icon:t.jsx(Ue,{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:Ht(x,l,P,h),data:s,sortKey:r,sortDirection:v,onSort:g,onRowClick:T,emptyState:N||t.jsx(We,{icon:t.jsx(Ue,{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]=x,e[15]=s,e[16]=N,e[17]=T,e[18]=g,e[19]=k,e[20]=l,e[21]=c,e[22]=v,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 Qt(i){return{id:"actions",header:"",render:e=>t.jsxs(He,{children:[t.jsx(Ye,{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 Gt(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(Ge,{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 Ht(i,e,s,l){const n=i||Gt(e,s);return n.some(p=>p.id==="actions")?n:Object.keys(l).length>0?[...n,Qt(l)]:n}function Yt(i){const e=oe.c(118),{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",b=Tt(s);let y;e[0]!==b||e[1]!==s?(y=b?bt(b):s,e[0]=b,e[1]=s,e[2]=y):y=e[2];const C=y,{org:v}=ze();let g;e[3]!==s||e[4]!==v.id?(g={connectionId:s,orgId:v.id},e[3]=s,e[4]=v.id,e[5]=g):g=e[5];const $=Ve(g),h=It(s,r,$),T=`${s}-${r}`;let E;e[6]!==l||e[7]!==T?(E={namespace:l,resource:T,defaultSortKey:"updated_at"},e[6]=l,e[7]=T,e[8]=E):E=e[8];const{search:N,searchTerm:k,setSearch:x,viewMode:z,setViewMode:P,sortKey:D,sortDirection:w,handleSort:S}=Ct(E);let _;e[9]!==k||e[10]!==w||e[11]!==D?(_={searchTerm:k,sortKey:D,sortDirection:w},e[9]=k,e[10]=w,e[11]=D,e[12]=_):_=e[12];const I=At(s,r,$,_),A=!d&&!o&&!m;let ne;e[13]!==C||e[14]!==r||e[15]!==u||e[16]!==c||e[17]!==l?(ne=j=>{if(c){c(j);return}u({to:"/$org/settings/connections/$appSlug/$collectionName/$itemId",params:{org:l,appSlug:C,collectionName:r,itemId:j.id}})},e[13]=C,e[14]=r,e[15]=u,e[16]=c,e[17]=l,e[18]=ne):ne=e[18];const L=ne;let re;e[19]!==h.create||e[20]!==a?(re=async j=>{const xe=new Date().toISOString();await h.create.mutateAsync({...j,id:Me("conn"),title:`${j.title} (Copy)`,created_at:xe,updated_at:xe,created_by:a,updated_by:a})},e[19]=h.create,e[20]=a,e[21]=re):re=e[21];const be=re,[F,ve]=dt.useState(null);let le;e[22]===Symbol.for("react.memo_cache_sentinel")?(le=j=>{ve(j)},e[22]=le):le=e[22];const rt=le;let K;e[23]!==L||e[24]!==o?(K=o&&{edit:L},e[23]=L,e[24]=o,e[25]=K):K=e[25];let M;e[26]!==be||e[27]!==d?(M=d&&{duplicate:be},e[26]=be,e[27]=d,e[28]=M):M=e[28];let U;e[29]!==m?(U=m&&{delete:rt},e[29]=m,e[30]=U):U=e[30];let ae;e[31]!==M||e[32]!==U||e[33]!==K?(ae={...K,...M,...U},e[31]=M,e[32]=U,e[33]=K,e[34]=ae):ae=e[34];const ye=ae;let ce;e[35]!==h.delete||e[36]!==F?(ce=async()=>{F&&(await h.delete.mutateAsync(F.id),ve(null))},e[35]=h.delete,e[36]=F,e[37]=ce):ce=e[37];const Ne=ce;let de;e[38]!==h.create||e[39]!==C||e[40]!==r||e[41]!==d||e[42]!==u||e[43]!==l||e[44]!==a?(de=async()=>{if(!d){Le.error("Create operation is not available for this collection");return}const j=new Date().toISOString(),xe={id:Me("conn"),title:"New Item",description:"A brief description of the item",created_at:j,updated_at:j,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:C,collectionName:r,itemId:ke.id}})}catch(ke){console.error("Failed to create item:",ke)}},e[38]=h.create,e[39]=C,e[40]=r,e[41]=d,e[42]=u,e[43]=l,e[44]=a,e[45]=de):de=e[45];const we=de;let ue;e[46]!==p?(ue=ot(p),e[46]=p,e[47]=ue):ue=e[47];const Se=ue,lt=(I?.length??0)>0,at=d&&!lt&&!N;let me;e[48]!==h.create||e[49]!==we||e[50]!==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[48]=h.create,e[49]=we,e[50]=d,e[51]=me):me=e[51];const pe=me,Pe=D;let W;e[52]!==S||e[53]!==w||e[54]!==Se||e[55]!==Pe?(W=t.jsx(Ot,{children:t.jsx(Qe,{sortKey:Pe,sortDirection:w,onSort:S,sortOptions:Se})}),e[52]=S,e[53]=w,e[54]=Se,e[55]=Pe,e[56]=W):W=e[56];const _e=`Search ${r}...`;let R;e[57]!==x?(R=j=>{j.key==="Escape"&&(x(""),j.target.blur())},e[57]=x,e[58]=R):R=e[58];let B;e[59]!==N||e[60]!==x||e[61]!==_e||e[62]!==R?(B=t.jsx("div",{className:"flex-1",children:t.jsx(ht,{value:N,onChange:x,placeholder:_e,onKeyDown:R})}),e[59]=N,e[60]=x,e[61]=_e,e[62]=R,e[63]=B):B=e[63];let V;e[64]!==pe||e[65]!==d?(V=d&&t.jsx("div",{className:"pr-3",children:pe}),e[64]=pe,e[65]=d,e[66]=V):V=e[66];let q;e[67]!==B||e[68]!==V?(q=t.jsxs("div",{className:"flex items-center gap-2",children:[B,V]}),e[67]=B,e[68]=V,e[69]=q):q=e[69];let Q;e[70]!==I?(Q=I??[],e[70]=I,e[71]=Q):Q=e[71];const De=D;let G;e[72]!==L?(G=j=>L(j),e[72]=L,e[73]=G):G=e[73];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 H;e[74]!==Ie||e[75]!==Ae||e[76]!==Te?(H=t.jsx(it,{image:null,title:Ie,description:Ae,actions:Te}),e[74]=Ie,e[75]=Ae,e[76]=Te,e[77]=H):H=e[77];let Y;e[78]!==S||e[79]!==A||e[80]!==ye||e[81]!==p||e[82]!==N||e[83]!==x||e[84]!==P||e[85]!==w||e[86]!==Q||e[87]!==De||e[88]!==G||e[89]!==H||e[90]!==z?(Y=t.jsx("div",{className:"flex-1 overflow-auto",children:t.jsx(Wt,{hideToolbar:!0,data:Q,schema:p,viewMode:z,onViewModeChange:P,search:N,onSearchChange:x,sortKey:De,sortDirection:w,onSort:S,actions:ye,onItemClick:G,readOnly:A,emptyState:H})}),e[78]=S,e[79]=A,e[80]=ye,e[81]=p,e[82]=N,e[83]=x,e[84]=P,e[85]=w,e[86]=Q,e[87]=De,e[88]=G,e[89]=H,e[90]=z,e[91]=Y):Y=e[91];let J;e[92]!==q||e[93]!==Y?(J=t.jsxs("div",{className:"flex flex-col h-full overflow-hidden",children:[q,Y]}),e[92]=q,e[93]=Y,e[94]=J):J=e[94];const Ee=!!F;let fe;e[95]===Symbol.for("react.memo_cache_sentinel")?(fe=j=>{j||ve(null)},e[95]=fe):fe=e[95];let he;e[96]===Symbol.for("react.memo_cache_sentinel")?(he=t.jsx(Nt,{children:"Delete item?"}),e[96]=he):he=e[96];const Oe=F?.title;let Z;e[97]!==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[97]=Oe,e[98]=Z):Z=e[98];let X;e[99]!==h.delete.isPending?(X=t.jsx(vt,{disabled:h.delete.isPending,children:"Cancel"}),e[99]=h.delete.isPending,e[100]=X):X=e[100];const $e=h.delete.isPending?"Deleting...":"Delete";let ee;e[101]!==h.delete.isPending||e[102]!==Ne||e[103]!==$e?(ee=t.jsx(yt,{onClick:Ne,disabled:h.delete.isPending,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:$e}),e[101]=h.delete.isPending,e[102]=Ne,e[103]=$e,e[104]=ee):ee=e[104];let te;e[105]!==X||e[106]!==ee?(te=t.jsxs(Pt,{children:[X,ee]}),e[105]=X,e[106]=ee,e[107]=te):te=e[107];let se;e[108]!==Z||e[109]!==te?(se=t.jsxs(_t,{children:[Z,te]}),e[108]=Z,e[109]=te,e[110]=se):se=e[110];let ie;e[111]!==Ee||e[112]!==se?(ie=t.jsx(Dt,{open:Ee,onOpenChange:fe,children:se}),e[111]=Ee,e[112]=se,e[113]=ie):ie=e[113];let ge;return e[114]!==W||e[115]!==J||e[116]!==ie?(ge=t.jsxs(t.Fragment,{children:[W,J,ie]}),e[114]=W,e[115]=J,e[116]=ie,e[117]=ge):ge=e[117],ge}function Jt(){const i=oe.c(12),{org:e,project:s}=ze(),l=ut();let n;i[0]!==e.id?(n={connectionId:qe,orgId:e.id},i[0]=e.id,i[1]=n):n=i[1];const c=Ve(n);let r;i[2]!==c||i[3]!==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[2]=c,i[3]=s,i[4]=r):r=i[4];let p;i[5]!==e.id||i[6]!==s||i[7]!==l?(p=()=>{l.invalidateQueries({queryKey:Fe.project(e.id,s.slug)}),l.invalidateQueries({queryKey:Fe.projects(e.id)})},i[5]=e.id,i[6]=s,i[7]=l,i[8]=p):p=i[8];let d;return i[9]!==r||i[10]!==p?(d={mutationFn:r,onSuccess:p,onError:Zt},i[9]=r,i[10]=p,i[11]=d):d=i[11],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 oi(){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(Yt,{connectionId:qe,org:e.slug,activeCollection:es,onItemClick:c=>n({to:"/$org/settings/workflows/$itemId",params:{org:e.slug,itemId:c.id}})})})})}export{oi 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-BOmAbn3-.js";import{u as Ve,S as qe}from"./constants-Da2DvZbd.js";import{B as ft,g as Me}from"./constants-Dm-yPW31.js";import{C as Qe}from"./collection-display-button-8PlYmXiO.js";import{C as ht}from"./collection-search-CqdVjZKz.js";import{C as gt}from"./card-DQYOkC6d.js";import{I as Ge}from"./integration-icon-Bu4bZk46.js";import{D as He,a as Ye,b as Je,c as O}from"./dropdown-menu-BooeaeZW.js";import{c as Ze}from"./XCircle-B2dZZ7-3.js";import{i as Xe}from"./DotsVertical-CiluvdTj.js";import{y as et,H as Ue}from"./agent-icon-Y41Xl4RB.js";import{s as tt}from"./RefreshCcw01-DLpzNYLg.js";import{s as st}from"./Trash01-CfK96-qY.js";import{C as xt}from"./collection-table-wrapper-DtBSTmHD.js";import{E as We}from"./empty-state-DtXUXgFg.js";import{U as jt}from"./user-BG2r6Yob.js";import{E as it}from"./empty-state-V_MWZYVh.js";import{u as Ct}from"./use-list-state-B_mnqmDh.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-DnoDZh7l.js";import{a as It,c as At}from"./use-collections-ciAA_3Td.js";import{a as Tt}from"./use-connection-DcySEqVV.js";import{s as Et}from"./Plus-DkESyBkp.js";import{a as Ot}from"./layout-DktxHUWV.js";import{P as je}from"./index-BXOHXvkd.js";import"./collections-DusXIGhy.js";import"./XClose-DXU_tOKb.js";import"./ChevronDown-BKNJxAvQ.js";import"./tooltip-f4eQJmkn.js";import"./view-mode-toggle-iIz_yTY4.js";import"./badge-BQ5WsTn4.js";import"./SearchMd-RHgmu5nb.js";import"./Container-DASuUdbK.js";import"./ChevronRight-DmLVJ7rn.js";import"./AlertCircle-CDtbI_oO.js";import"./Tool01-CRyHj4QJ.js";import"./ArrowNarrowLeft-CJ8McWmC.js";import"./ArrowUpRight-CfmSEQdr.js";import"./ZapSquare-D6uI2CIK.js";import"./Users03-BCFGwdah.js";import"./CheckCircle-BfnVNP63.js";import"./ChevronUp-CsX2yfUc.js";import"./Star01-CRQ6Bc0M.js";import"./Palette-CmFr12m3.js";import"./LinkExternal01-CPmlMGsQ.js";import"./Lock01-BjCX4hvk.js";import"./Sun-DKXWmMuG.js";import"./Play-AcQdYeyW.js";import"./Settings02-BgsL1r4k.js";import"./Shield01-BndBIezR.js";import"./User01-KY-MO20F.js";import"./X-ZLJ81KrS.js";import"./Zap-25qc4enN.js";import"./table-bZ3KC8o2.js";import"./avatar-C1td1Be6.js";import"./use-view-mode-pmOkpC-l.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(Ge,{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 b;e[12]!==u||e[13]!==a?(b=t.jsxs("div",{className:"flex flex-col gap-0 flex-1",children:[u,a]}),e[12]=u,e[13]=a,e[14]=b):b=e[14];let y;e[15]!==m||e[16]!==b?(y=t.jsxs("div",{className:"flex flex-col gap-4 p-6 flex-1",children:[m,b]}),e[15]=m,e[16]=b,e[17]=y):y=e[17];let C;e[18]!==n||e[19]!==o||e[20]!==s?(C=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(He,{children:[t.jsx(Ye,{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]=C):C=e[21];let v;return e[22]!==y||e[23]!==C?(v=t.jsxs(gt,{className:"cursor-pointer transition-colors hover:bg-accent/50 h-full flex flex-col group relative",children:[y,C]}),e[22]=y,e[23]=C,e[24]=v):v=e[24],v}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:b,hideToolbar:y,sortableFields:C}=i,v=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,x=b===void 0?void 0:b,z=y===void 0?!1:y,P=C===void 0?void 0:C;let D;e[2]!==x||e[3]!==l||e[4]!==P?(D=x?x.filter(Bt).filter(A=>!P||P.includes(A.id)).map(Rt):ot(l,P),e[2]=x,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]!==v||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(Qe,{sortKey:r,sortDirection:v,onSort:g,sortOptions:w})})]})}),e[6]=E,e[7]=z,e[8]=g,e[9]=v,e[10]=r,e[11]=w,e[12]=S):S=e[12];let _;e[13]!==h||e[14]!==x||e[15]!==s||e[16]!==N||e[17]!==T||e[18]!==g||e[19]!==k||e[20]!==l||e[21]!==c||e[22]!==v||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(We,{icon:t.jsx(Ue,{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:Ht(x,l,P,h),data:s,sortKey:r,sortDirection:v,onSort:g,onRowClick:T,emptyState:N||t.jsx(We,{icon:t.jsx(Ue,{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]=x,e[15]=s,e[16]=N,e[17]=T,e[18]=g,e[19]=k,e[20]=l,e[21]=c,e[22]=v,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 Qt(i){return{id:"actions",header:"",render:e=>t.jsxs(He,{children:[t.jsx(Ye,{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 Gt(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(Ge,{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 Ht(i,e,s,l){const n=i||Gt(e,s);return n.some(p=>p.id==="actions")?n:Object.keys(l).length>0?[...n,Qt(l)]:n}function Yt(i){const e=oe.c(118),{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",b=Tt(s);let y;e[0]!==b||e[1]!==s?(y=b?bt(b):s,e[0]=b,e[1]=s,e[2]=y):y=e[2];const C=y,{org:v}=ze();let g;e[3]!==s||e[4]!==v.id?(g={connectionId:s,orgId:v.id},e[3]=s,e[4]=v.id,e[5]=g):g=e[5];const $=Ve(g),h=It(s,r,$),T=`${s}-${r}`;let E;e[6]!==l||e[7]!==T?(E={namespace:l,resource:T,defaultSortKey:"updated_at"},e[6]=l,e[7]=T,e[8]=E):E=e[8];const{search:N,searchTerm:k,setSearch:x,viewMode:z,setViewMode:P,sortKey:D,sortDirection:w,handleSort:S}=Ct(E);let _;e[9]!==k||e[10]!==w||e[11]!==D?(_={searchTerm:k,sortKey:D,sortDirection:w},e[9]=k,e[10]=w,e[11]=D,e[12]=_):_=e[12];const I=At(s,r,$,_),A=!d&&!o&&!m;let ne;e[13]!==C||e[14]!==r||e[15]!==u||e[16]!==c||e[17]!==l?(ne=j=>{if(c){c(j);return}u({to:"/$org/settings/connections/$appSlug/$collectionName/$itemId",params:{org:l,appSlug:C,collectionName:r,itemId:j.id}})},e[13]=C,e[14]=r,e[15]=u,e[16]=c,e[17]=l,e[18]=ne):ne=e[18];const L=ne;let re;e[19]!==h.create||e[20]!==a?(re=async j=>{const xe=new Date().toISOString();await h.create.mutateAsync({...j,id:Me("conn"),title:`${j.title} (Copy)`,created_at:xe,updated_at:xe,created_by:a,updated_by:a})},e[19]=h.create,e[20]=a,e[21]=re):re=e[21];const be=re,[F,ve]=dt.useState(null);let le;e[22]===Symbol.for("react.memo_cache_sentinel")?(le=j=>{ve(j)},e[22]=le):le=e[22];const rt=le;let K;e[23]!==L||e[24]!==o?(K=o&&{edit:L},e[23]=L,e[24]=o,e[25]=K):K=e[25];let M;e[26]!==be||e[27]!==d?(M=d&&{duplicate:be},e[26]=be,e[27]=d,e[28]=M):M=e[28];let U;e[29]!==m?(U=m&&{delete:rt},e[29]=m,e[30]=U):U=e[30];let ae;e[31]!==M||e[32]!==U||e[33]!==K?(ae={...K,...M,...U},e[31]=M,e[32]=U,e[33]=K,e[34]=ae):ae=e[34];const ye=ae;let ce;e[35]!==h.delete||e[36]!==F?(ce=async()=>{F&&(await h.delete.mutateAsync(F.id),ve(null))},e[35]=h.delete,e[36]=F,e[37]=ce):ce=e[37];const Ne=ce;let de;e[38]!==h.create||e[39]!==C||e[40]!==r||e[41]!==d||e[42]!==u||e[43]!==l||e[44]!==a?(de=async()=>{if(!d){Le.error("Create operation is not available for this collection");return}const j=new Date().toISOString(),xe={id:Me("conn"),title:"New Item",description:"A brief description of the item",created_at:j,updated_at:j,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:C,collectionName:r,itemId:ke.id}})}catch(ke){console.error("Failed to create item:",ke)}},e[38]=h.create,e[39]=C,e[40]=r,e[41]=d,e[42]=u,e[43]=l,e[44]=a,e[45]=de):de=e[45];const we=de;let ue;e[46]!==p?(ue=ot(p),e[46]=p,e[47]=ue):ue=e[47];const Se=ue,lt=(I?.length??0)>0,at=d&&!lt&&!N;let me;e[48]!==h.create||e[49]!==we||e[50]!==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[48]=h.create,e[49]=we,e[50]=d,e[51]=me):me=e[51];const pe=me,Pe=D;let W;e[52]!==S||e[53]!==w||e[54]!==Se||e[55]!==Pe?(W=t.jsx(Ot,{children:t.jsx(Qe,{sortKey:Pe,sortDirection:w,onSort:S,sortOptions:Se})}),e[52]=S,e[53]=w,e[54]=Se,e[55]=Pe,e[56]=W):W=e[56];const _e=`Search ${r}...`;let R;e[57]!==x?(R=j=>{j.key==="Escape"&&(x(""),j.target.blur())},e[57]=x,e[58]=R):R=e[58];let B;e[59]!==N||e[60]!==x||e[61]!==_e||e[62]!==R?(B=t.jsx("div",{className:"flex-1",children:t.jsx(ht,{value:N,onChange:x,placeholder:_e,onKeyDown:R})}),e[59]=N,e[60]=x,e[61]=_e,e[62]=R,e[63]=B):B=e[63];let V;e[64]!==pe||e[65]!==d?(V=d&&t.jsx("div",{className:"pr-3",children:pe}),e[64]=pe,e[65]=d,e[66]=V):V=e[66];let q;e[67]!==B||e[68]!==V?(q=t.jsxs("div",{className:"flex items-center gap-2",children:[B,V]}),e[67]=B,e[68]=V,e[69]=q):q=e[69];let Q;e[70]!==I?(Q=I??[],e[70]=I,e[71]=Q):Q=e[71];const De=D;let G;e[72]!==L?(G=j=>L(j),e[72]=L,e[73]=G):G=e[73];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 H;e[74]!==Ie||e[75]!==Ae||e[76]!==Te?(H=t.jsx(it,{image:null,title:Ie,description:Ae,actions:Te}),e[74]=Ie,e[75]=Ae,e[76]=Te,e[77]=H):H=e[77];let Y;e[78]!==S||e[79]!==A||e[80]!==ye||e[81]!==p||e[82]!==N||e[83]!==x||e[84]!==P||e[85]!==w||e[86]!==Q||e[87]!==De||e[88]!==G||e[89]!==H||e[90]!==z?(Y=t.jsx("div",{className:"flex-1 overflow-auto",children:t.jsx(Wt,{hideToolbar:!0,data:Q,schema:p,viewMode:z,onViewModeChange:P,search:N,onSearchChange:x,sortKey:De,sortDirection:w,onSort:S,actions:ye,onItemClick:G,readOnly:A,emptyState:H})}),e[78]=S,e[79]=A,e[80]=ye,e[81]=p,e[82]=N,e[83]=x,e[84]=P,e[85]=w,e[86]=Q,e[87]=De,e[88]=G,e[89]=H,e[90]=z,e[91]=Y):Y=e[91];let J;e[92]!==q||e[93]!==Y?(J=t.jsxs("div",{className:"flex flex-col h-full overflow-hidden",children:[q,Y]}),e[92]=q,e[93]=Y,e[94]=J):J=e[94];const Ee=!!F;let fe;e[95]===Symbol.for("react.memo_cache_sentinel")?(fe=j=>{j||ve(null)},e[95]=fe):fe=e[95];let he;e[96]===Symbol.for("react.memo_cache_sentinel")?(he=t.jsx(Nt,{children:"Delete item?"}),e[96]=he):he=e[96];const Oe=F?.title;let Z;e[97]!==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[97]=Oe,e[98]=Z):Z=e[98];let X;e[99]!==h.delete.isPending?(X=t.jsx(vt,{disabled:h.delete.isPending,children:"Cancel"}),e[99]=h.delete.isPending,e[100]=X):X=e[100];const $e=h.delete.isPending?"Deleting...":"Delete";let ee;e[101]!==h.delete.isPending||e[102]!==Ne||e[103]!==$e?(ee=t.jsx(yt,{onClick:Ne,disabled:h.delete.isPending,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:$e}),e[101]=h.delete.isPending,e[102]=Ne,e[103]=$e,e[104]=ee):ee=e[104];let te;e[105]!==X||e[106]!==ee?(te=t.jsxs(Pt,{children:[X,ee]}),e[105]=X,e[106]=ee,e[107]=te):te=e[107];let se;e[108]!==Z||e[109]!==te?(se=t.jsxs(_t,{children:[Z,te]}),e[108]=Z,e[109]=te,e[110]=se):se=e[110];let ie;e[111]!==Ee||e[112]!==se?(ie=t.jsx(Dt,{open:Ee,onOpenChange:fe,children:se}),e[111]=Ee,e[112]=se,e[113]=ie):ie=e[113];let ge;return e[114]!==W||e[115]!==J||e[116]!==ie?(ge=t.jsxs(t.Fragment,{children:[W,J,ie]}),e[114]=W,e[115]=J,e[116]=ie,e[117]=ge):ge=e[117],ge}function Jt(){const i=oe.c(12),{org:e,project:s}=ze(),l=ut();let n;i[0]!==e.id?(n={connectionId:qe,orgId:e.id},i[0]=e.id,i[1]=n):n=i[1];const c=Ve(n);let r;i[2]!==c||i[3]!==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[2]=c,i[3]=s,i[4]=r):r=i[4];let p;i[5]!==e.id||i[6]!==s||i[7]!==l?(p=()=>{l.invalidateQueries({queryKey:Fe.project(e.id,s.slug)}),l.invalidateQueries({queryKey:Fe.projects(e.id)})},i[5]=e.id,i[6]=s,i[7]=l,i[8]=p):p=i[8];let d;return i[9]!==r||i[10]!==p?(d={mutationFn:r,onSuccess:p,onError:Zt},i[9]=r,i[10]=p,i[11]=d):d=i[11],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 oi(){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(Yt,{connectionId:qe,org:e.slug,activeCollection:es,onItemClick:c=>n({to:"/$org/settings/workflows/$itemId",params:{org:e.slug,itemId:c.id}})})})})}export{oi as default};
@@ -27,7 +27,7 @@
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-DRnP8Xhy.js"></script>
30
+ <script type="module" crossorigin src="/assets/index-BOmAbn3-.js"></script>
31
31
  <link rel="stylesheet" crossorigin href="/assets/index-B4J1yAvl.css">
32
32
  </head>
33
33
  <body>
@@ -1623,7 +1623,7 @@ AS SELECT
1623
1623
  FROM monitoring_metrics
1624
1624
  GROUP BY organization_id, name, bucket, connection_id, tool_name, status
1625
1625
  `}),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 NA1(X){let Y={...process.env},G=q$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(() => (O$1(),z$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(() => (oZ0(),Zx6));await K(W.databaseUrl);let{createDatabase:H}=await Promise.resolve().then(() => (YU(),Jx6)),{migrateToLatest:U}=await Promise.resolve().then(() => (Ur6(),Fr6)),B=H(W.databaseUrl);await U({keepOpen:!0,database:B,skipBetterAuth:!0})}if(G.settings.clickhouseUrl){let{ensureClickHouseRollup:K}=await Promise.resolve().then(() => Bs6);await K(G.settings.clickhouseUrl)}let $={...G.settings,databaseUrl:W.databaseUrl,natsUrls:W.natsUrls};return fn1($),{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 TB0=D(()=>{_n1();l9()});var DA1={};j0(DA1,{updateService:()=>pa,toggleViewMode:()=>VB0,toggleVibeState:()=>MB0,toggleLogFlow:()=>jB0,subscribeCliState:()=>DX1,setVibe:()=>xi5,setTuiConsoleIntercepted:()=>zA1,setServerUrl:()=>LX1,setMigrationsDone:()=>wX1,setEnv:()=>EX1,setDevMode:()=>bi5,setDataDir:()=>yi5,isTuiConsoleIntercepted:()=>OA1,getCliState:()=>OX1,addLogEntry:()=>Gz});function EU(){for(let X of IB0)X()}function OX1(){return X7}function DX1(X){return IB0.add(X),()=>IB0.delete(X)}function pa(X){X7={...X7,services:X7.services.map((Y)=>Y.name===X.name?X:Y)},EU()}function wX1(){X7={...X7,migrationsStatus:"done"},EU()}function LX1(X){X7={...X7,serverUrl:X},EU()}function EX1(X){X7={...X7,env:X},EU()}function Gz(X){let Y=[...X7.logs,X];X7={...X7,logs:Y.length>500?Y.slice(-500):Y},EU()}function bi5(){X7={...X7,services:[...X7.services,{name:"Vite",status:"pending",port:0}]},EU()}function VB0(){X7={...X7,viewMode:X7.viewMode==="requests"?"config":"requests"},EU()}function jB0(){X7={...X7,logFlow:!X7.logFlow},EU()}function yi5(X){X7={...X7,dataDir:X},EU()}function xi5(X){X7={...X7,vibe:X},EU()}function MB0(){X7={...X7,vibe:!X7.vibe},EU()}function zA1(X){Ns6=X}function OA1(){return Ns6}var X7,IB0,Ns6=!1;var Qz=D(()=>{X7={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},IB0=new Set});import{createServer as zs6}from"net";function hi5(X){return new Promise((Y)=>{let G=zs6();G.once("error",()=>Y(!1)),G.listen(X,"0.0.0.0",()=>{G.close(()=>Y(!0))})})}async function wA1(X){if(await hi5(X))return X;let Y=await new Promise((G,Q)=>{let J=zs6();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 RB0=()=>{};var SB0={};j0(SB0,{startDevServer:()=>ui5});import{join as gi5}from"path";function Os6(X){return X.replace(/\x1b\[[0-9;]*m/g,"")}function Ds6(X){let Y=X.getReader(),G=new TextDecoder,Q="";function J(){let W=Q.split(`
1626
- `);Q=W.pop()??"";for(let Z of W){let $=Os6(Z).replace(/^\[\d+\]\s*/,"").trim();if(!$)continue;Gz({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=Os6(Q).replace(/^\[\d+\]\s*/,"").trim();if(W)Gz({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:W})}})()}async function ui5(X){let{vitePort:Y,baseUrl:G,noTui:Q}=X,J=await wA1(Number(X.port)),{settings:W,services:Z,managedServiceNames:$}=await NA1({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)pa({name:z.name,status:"ready",port:z.port});EX1(W),wX1();let K=gi5(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)Ds6(U.stdout),Ds6(U.stderr);let B=G||`http://localhost:${W.port}`;LX1(B),pa({name:"Vite",status:"ready",port:Number(Y)});let N=async(z)=>{if(U.kill(z),$.length>0){let{stopServices:O}=await Promise.resolve().then(() => (O$1(),z$1));await O(W.dataDir)}};return process.on("SIGINT",()=>N("SIGINT")),process.on("SIGTERM",()=>N("SIGTERM")),{port:Number(W.port),process:U}}var kB0=D(()=>{TB0();Qz();RB0()});import{Box as CB0,Text as vB0}from"ink";import{jsx as Ls6,jsxs as LA1}from"react/jsx-runtime";function ws6(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 di5(X,Y){if(li5.has(X))return Y?{text:"\u25CF\u25CF\u25CF\u25CF\u25CF\u25CF",dimColor:!0}:{text:"not set",dimColor:!0};if(mi5.has(X)){if(Array.isArray(Y)){if(Y.length===0)return{text:"not set",dimColor:!0};return{text:Y.map((W)=>ws6(W)).join(", "),color:"cyan"}}let Q=ws6(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 ci5(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 Es6({env:X}){let Y=ci5(X);return Ls6(CB0,{flexDirection:"column",children:Y.map((G)=>LA1(CB0,{flexDirection:"column",marginTop:1,children:[LA1(vB0,{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=di5(Q,J);return LA1(CB0,{children:[LA1(vB0,{dimColor:!0,children:[" ",Q.padEnd(36)]}),Ls6(vB0,{color:W.color,dimColor:W.dimColor,children:W.text})]},Q)})]},G.title))})}var li5,mi5;var Ps6=D(()=>{li5=new Set(["BETTER_AUTH_SECRET","ENCRYPTION_KEY","MESH_JWT_SECRET","STUDIO_PROVISION_SECRET_KEY"]),mi5=new Set(["DATABASE_URL","CLICKHOUSE_URL","NATS_URL"])});var _B0;var qs6=D(()=>{_B0={name:"decocms",version:"2.300.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","@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 PU,Text as MX}from"ink";import{Spinner as pi5}from"@inkjs/ui";import{useSyncExternalStore as As6}from"react";import{jsx as qY,jsxs as oQ}from"react/jsx-runtime";function oi5(X,Y){if(!X||!ri5.has(X))return X;let G=fB0[Y]??fB0[fB0.length-1];return X==="#875f00"?G[0]:G[1]}function Ts6({status:X}){if(X==="pending")return qY(pi5,{label:""});return qY(MX,{color:"green",children:"\u2713"})}function Is6({services:X,migrationsStatus:Y,home:G,serverUrl:Q,vibe:J}){let W=As6(iu0,cu0),Z=As6(ou0,ru0);return oQ(PU,{flexDirection:"column",paddingBottom:1,children:[J?oQ(PU,{flexDirection:"column",children:[W.map(($,K)=>{let H=Z[K],U=$.reduce((N,z)=>N+z.text.length,0),B=Math.max(0,ti5-U);return oQ(PU,{flexDirection:"row",children:[$.map((N,z)=>{let O=oi5(N.color,K);return O?qY(MX,{color:O,children:N.text},z):qY(MX,{children:N.text},z)}),qY(MX,{children:" ".repeat(B+2)}),H?.map((N,z)=>N.color?qY(MX,{color:N.color,children:N.char},z):qY(MX,{children:N.char},z))]},K)}),oQ(MX,{dimColor:!0,children:[" v",_B0.version]})]}):oQ(PU,{flexDirection:"column",marginTop:1,children:[ni5.map(($,K)=>qY(MX,{color:ai5[K],children:$},K)),oQ(MX,{dimColor:!0,children:[" v",_B0.version]})]}),qY(PU,{marginBottom:1,children:qY(MX,{dimColor:!0,children:"\u2500".repeat(80)})}),qY(PU,{children:oQ(MX,{dimColor:!0,children:["Home: ",G]})}),oQ(PU,{gap:2,children:[X.map(($)=>oQ(PU,{gap:1,children:[oQ(MX,{children:[$.name," :",$.port||"...."]}),qY(Ts6,{status:$.status})]},$.name)),oQ(PU,{gap:1,children:[qY(MX,{children:"Migrations"}),qY(Ts6,{status:Y})]})]}),qY(PU,{children:Q?oQ(MX,{children:["Open in browser: ",qY(MX,{color:"cyan",children:Q})]}):qY(MX,{dimColor:!0,children:"Starting..."})}),oQ(PU,{gap:2,children:[oQ(MX,{dimColor:!0,children:[qY(MX,{bold:!0,dimColor:!0,children:"K"})," ","toggle config"]}),oQ(MX,{dimColor:!0,children:[qY(MX,{bold:!0,dimColor:!0,children:"L"})," ","toggle log flow"]}),oQ(MX,{dimColor:!0,children:[qY(MX,{bold:!0,dimColor:!0,children:"V"})," ","toggle vibe ",J?"\u266A Nihilore \xB7 CC BY 4.0":""]}),J&&oQ(MX,{dimColor:!0,children:[qY(MX,{bold:!0,dimColor:!0,children:"N"})," ","skip song"]})]})]})}var ni5,ai5,fB0,ti5=30,ri5;var Vs6=D(()=>{qs6();An1();Rn1();ni5=[" \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 "],ai5=["#00ff64","#00ee5e","#00dc56","#00c84e","#00b444","#00a03c","#008832","#006e28"],fB0=[["#00ff64","#00cc50"],["#00f060","#00c04c"],["#00e05c","#00b448"],["#00d058","#00a844"],["#00c054","#009c40"],["#00b050","#00903c"],["#00a04c","#008438"],["#009048","#007834"],["#008044","#006c30"],["#007040","#00602c"],["#00603c","#005428"]],ri5=new Set(["#875f00","#5f3800"])});import{useSyncExternalStore as si5}from"react";function ei5(){let X=process.stdout.rows||24,Y=process.stdout.columns||80;if(X!==EA1.rows||Y!==EA1.columns)EA1={rows:X,columns:Y};return EA1}function Xp5(X){return process.stdout.on("resize",X),()=>{process.stdout.off("resize",X)}}function js6(){return si5(Xp5,ei5)}var EA1;var Ms6=D(()=>{EA1={rows:process.stdout.rows||24,columns:process.stdout.columns||80}});import{Box as Yp5,Text as PX1}from"ink";import{useSyncExternalStore as Gp5}from"react";import{jsx as bB0,jsxs as yB0}from"react/jsx-runtime";function Qp5(X){if(X>=500)return"red";if(X>=400)return"yellow";if(X>=300)return"cyan";return"green"}function Rs6({logs:X,headerHeight:Y}){let{rows:G}=js6(),{logFlow:Q}=Gp5(DX1,OX1),J=Math.max(1,G-Y-1),W=Q?X:X.slice(-J);return bB0(Yp5,{flexDirection:"column",children:W.map((Z,$)=>{if(Z.rawLine)return bB0(PX1,{dimColor:!0,children:Z.rawLine},$);let K=Z.duration<1000?`${Z.duration}ms`:`${(Z.duration/1000).toFixed(1)}s`;return yB0(PX1,{children:[yB0(PX1,{dimColor:!0,children:[Z.method.padEnd(6)," ",Z.path.padEnd(30)," "]}),bB0(PX1,{color:Qp5(Z.status),children:Z.status}),yB0(PX1,{dimColor:!0,children:[" ",K.padStart(8)]})]},$)})})}var Ss6=D(()=>{Qz();Ms6()});var xB0={};j0(xB0,{App:()=>Fp5});import{Box as Jp5,Text as Zp5,useInput as Wp5}from"ink";import{useSyncExternalStore as $p5}from"react";import{jsx as PA1,jsxs as Up5}from"react/jsx-runtime";function Fp5({home:X}){let Y=$p5(DX1,OX1);return Wp5((G)=>{if(G==="k"||G==="K")VB0();if(G==="l"||G==="L")jB0();if((G==="v"||G==="V")&&Y.dataDir)vn1(Y.dataDir),MB0();if((G==="n"||G==="N")&&Y.vibe)Cn1()}),Up5(Jp5,{flexDirection:"column",children:[PA1(Is6,{services:Y.services,migrationsStatus:Y.migrationsStatus,home:X,serverUrl:Y.serverUrl,vibe:Y.vibe}),Y.viewMode==="config"?Y.env?PA1(Es6,{env:Y.env}):PA1(Zp5,{dimColor:!0,children:"Loading configuration..."}):PA1(Rs6,{logs:Y.logs,headerHeight:Y.vibe?Hp5:Kp5})]})}var Kp5=15,Hp5=19;var hB0=D(()=>{Ps6();Vs6();Ss6();Qz();Vd()});function ks6(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,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,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 Rj=k((wp5)=>{wp5.HttpAuthLocation=void 0;(function(X){X.HEADER="header",X.QUERY="query"})(wp5.HttpAuthLocation||(wp5.HttpAuthLocation={}));wp5.HttpApiKeyAuthLocation=void 0;(function(X){X.HEADER="header",X.QUERY="query"})(wp5.HttpApiKeyAuthLocation||(wp5.HttpApiKeyAuthLocation={}));wp5.EndpointURLScheme=void 0;(function(X){X.HTTP="http",X.HTTPS="https"})(wp5.EndpointURLScheme||(wp5.EndpointURLScheme={}));wp5.AlgorithmId=void 0;(function(X){X.MD5="md5",X.CRC32="crc32",X.CRC32C="crc32c",X.SHA1="sha1",X.SHA256="sha256"})(wp5.AlgorithmId||(wp5.AlgorithmId={}));var Bp5=(X)=>{let Y=[];if(X.sha256!==void 0)Y.push({algorithmId:()=>wp5.AlgorithmId.SHA256,checksumConstructor:()=>X.sha256});if(X.md5!=null)Y.push({algorithmId:()=>wp5.AlgorithmId.MD5,checksumConstructor:()=>X.md5});return{addChecksumAlgorithm(G){Y.push(G)},checksumAlgorithms(){return Y}}},Np5=(X)=>{let Y={};return X.checksumAlgorithms().forEach((G)=>{Y[G.algorithmId()]=G.checksumConstructor()}),Y},zp5=(X)=>{return Bp5(X)},Op5=(X)=>{return Np5(X)};wp5.FieldPosition=void 0;(function(X){X[X.HEADER=0]="HEADER",X[X.TRAILER=1]="TRAILER"})(wp5.FieldPosition||(wp5.FieldPosition={}));var Dp5="__smithy_context";wp5.IniSectionType=void 0;(function(X){X.PROFILE="profile",X.SSO_SESSION="sso-session",X.SERVICES="services"})(wp5.IniSectionType||(wp5.IniSectionType={}));wp5.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"})(wp5.RequestHandlerProtocol||(wp5.RequestHandlerProtocol={}));wp5.SMITHY_CONTEXT_KEY=Dp5;wp5.getDefaultClientConfiguration=zp5;wp5.resolveDefaultRuntimeConfig=Op5});var u7=k((jp5)=>{var qp5=Rj(),Ap5=(X)=>{return{setHttpHandler(Y){X.httpHandler=Y},httpHandler(){return X.httpHandler},updateHttpClientConfig(Y,G){X.httpHandler?.updateHttpClientConfig(Y,G)},httpHandlerConfigs(){return X.httpHandler.httpHandlerConfigs()}}},Tp5=(X)=>{return{httpHandler:X.httpHandler()}};class Cs6{name;kind;values;constructor({name:X,kind:Y=qp5.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 vs6{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 qA1{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 qA1({...X,headers:{...X.headers}});if(Y.query)Y.query=Ip5(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 qA1.clone(this)}}function Ip5(X){return Object.keys(X).reduce((Y,G)=>{let Q=X[G];return{...Y,[G]:Array.isArray(Q)?[...Q]:Q}},{})}class _s6{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 Vp5(X){return/^[a-z0-9][a-z0-9\.\-]*[a-z0-9]$/.test(X)}jp5.Field=Cs6;jp5.Fields=vs6;jp5.HttpRequest=qA1;jp5.HttpResponse=_s6;jp5.getHttpHandlerExtensionConfiguration=Ap5;jp5.isValidHostname=Vp5;jp5.resolveHttpHandlerRuntimeConfig=Tp5});function fp5(X){return(Y)=>async(G)=>{let{request:Q}=G;if(X.expectContinueHeader!==!1&&fs6.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 fs6,bp5,bs6=(X)=>({applyToStack:(Y)=>{Y.add(fp5(X),bp5)}});var ys6=D(()=>{fs6=Y1(u7(),1);bp5={step:"build",tags:["SET_EXPECT_HEADER","EXPECT_HEADER"],name:"addExpectContinueMiddleware",override:!0}});var OH,AA1,Sj,TA1,E9,xs6,AX1;var DH=D(()=>{OH={WHEN_SUPPORTED:"WHEN_SUPPORTED",WHEN_REQUIRED:"WHEN_REQUIRED"},AA1=OH.WHEN_SUPPORTED,Sj={WHEN_SUPPORTED:"WHEN_SUPPORTED",WHEN_REQUIRED:"WHEN_REQUIRED"},TA1=OH.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"})(xs6||(xs6={}));AX1=E9.CRC32});var Vq,na=(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 iB0=D(()=>{(function(X){X.ENV="env",X.CONFIG="shared config entry"})(Vq||(Vq={}))});var yp5="AWS_REQUEST_CHECKSUM_CALCULATION",xp5="request_checksum_calculation",hs6;var gs6=D(()=>{DH();iB0();hs6={environmentVariableSelector:(X)=>na(X,yp5,OH,Vq.ENV),configFileSelector:(X)=>na(X,xp5,OH,Vq.CONFIG),default:AA1}});var hp5="AWS_RESPONSE_CHECKSUM_VALIDATION",gp5="response_checksum_validation",us6;var ls6=D(()=>{DH();iB0();us6={environmentVariableSelector:(X)=>na(X,hp5,Sj,Vq.ENV),configFileSelector:(X)=>na(X,gp5,Sj,Vq.CONFIG),default:TA1}});var nB0=k((tp5)=>{var up5=["AuthFailure","InvalidSignatureException","RequestExpired","RequestInTheFuture","RequestTimeTooSkewed","SignatureDoesNotMatch"],lp5=["BandwidthLimitExceeded","EC2ThrottledException","LimitExceededException","PriorRequestNotComplete","ProvisionedThroughputExceededException","RequestLimitExceeded","RequestThrottled","RequestThrottledException","SlowDown","ThrottledException","Throttling","ThrottlingException","TooManyRequestsException","TransactionInProgressException"],mp5=["TimeoutError","RequestTimeout","RequestTimeoutException"],dp5=[500,502,503,504],cp5=["ECONNRESET","ECONNREFUSED","EPIPE","ETIMEDOUT"],ip5=["EHOSTUNREACH","ENETUNREACH","ENOTFOUND"],ms6=(X)=>X?.$retryable!==void 0,pp5=(X)=>up5.includes(X.name),ds6=(X)=>X.$metadata?.clockSkewCorrected,cs6=(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)},np5=(X)=>X.$metadata?.httpStatusCode===429||lp5.includes(X.name)||X.$retryable?.throttling==!0,pB0=(X,Y=0)=>ms6(X)||ds6(X)||X.name==="InvalidSignatureException"&&X.message?.includes("Signature expired")||mp5.includes(X.name)||cp5.includes(X?.code||"")||ip5.includes(X?.code||"")||dp5.includes(X.$metadata?.httpStatusCode||0)||cs6(X)||is6(X)||X.cause!==void 0&&Y<=10&&pB0(X.cause,Y+1),ap5=(X)=>{if(X.$metadata?.httpStatusCode!==void 0){let Y=X.$metadata.httpStatusCode;if(500<=Y&&Y<=599&&!pB0(X))return!0;return!1}return!1};function is6(X){return X.code==="ERR_HTTP2_STREAM_ERROR"&&X.message.includes("NGHTTP2_REFUSED_STREAM")}tp5.isBrowserNetworkError=cs6;tp5.isClockSkewCorrectedError=ds6;tp5.isClockSkewError=pp5;tp5.isNodeJsHttp2TransientError=is6;tp5.isRetryableByTrait=ms6;tp5.isServerError=ap5;tp5.isThrottlingError=np5;tp5.isTransientError=pB0});var Nw=k((Bn5)=>{var Jn5=nB0();Bn5.RETRY_MODES=void 0;(function(X){X.STANDARD="standard",X.ADAPTIVE="adaptive"})(Bn5.RETRY_MODES||(Bn5.RETRY_MODES={}));var VA1=3,Zn5=Bn5.RETRY_MODES.STANDARD;class jA1{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"||Jn5.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)=>jA1.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 Wn5=100,rB0=20000,$n5=500,aB0=500,Kn5=5,Hn5=10,ps6=1,Fn5="amz-sdk-invocation-id",Un5="amz-sdk-request";class sQ{static v2026=typeof process<"u"&&process.env?.SMITHY_NEW_RETRIES_2026==="true";static delay(){return sQ.v2026?50:100}static throttlingDelay(){return sQ.v2026?1000:500}static cost(){return sQ.v2026?14:5}static throttlingCost(){return sQ.v2026?5:10}static modifiedCostType(){return sQ.v2026?"THROTTLING":"TRANSIENT"}}class ns6{x=sQ.delay();computeNextBackoffDelay(X){let Y=Math.random(),G=2,Q=Y*Math.min(this.x*2**X,rB0);return Math.floor(Q)}setDelayBase(X){this.x=X}}class tB0{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(rB0,this.delay)}getRetryCost(){return this.cost}isLongPoll(){return this.longPoll}}var IA1={incompatible:1,attempts:2,capacity:3};class TX1{mode=Bn5.RETRY_MODES.STANDARD;capacity=aB0;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()=>VA1,this.baseDelay??=sQ.delay(),this.retryBackoffStrategy??=new ns6}async acquireInitialRetryToken(X){return new tB0(sQ.delay(),0,void 0,sQ.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"?sQ.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:sQ.v2026&&Q===IA1.capacity&&W?K:0});else{let H=this.getCapacityCost(Z);return this.capacity-=H,new tB0(K,X.getRetryCount()+1,H,X.isLongPoll?.()??!1)}}throw Error("No retry token available")}recordSuccess(X){this.capacity=Math.min(aB0,this.capacity+(X.getRetryCost()??ps6))}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 ${VA1}`),VA1}}retryCode(X,Y,G){let Q=X.getRetryCount()+1,J=this.isRetryableError(Y.errorType)?0:IA1.incompatible,W=Q<G?0:IA1.attempts,Z=this.capacity>=this.getCapacityCost(Y.errorType)?0:IA1.capacity;return J||W||Z}getCapacityCost(X){return X===sQ.modifiedCostType()?sQ.throttlingCost():sQ.cost()}isRetryableError(X){return X==="THROTTLING"||X==="TRANSIENT"}}class as6{mode=Bn5.RETRY_MODES.ADAPTIVE;rateLimiter;standardRetryStrategy;constructor(X,Y){let{rateLimiter:G}=Y??{};this.rateLimiter=G??new jA1,this.standardRetryStrategy=Y?new TX1({maxAttempts:typeof X==="number"?X:3,...Y}):new TX1(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 ts6 extends TX1{computeNextBackoffDelay;constructor(X,Y=sQ.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}}Bn5.AdaptiveRetryStrategy=as6;Bn5.ConfiguredRetryStrategy=ts6;Bn5.DEFAULT_MAX_ATTEMPTS=VA1;Bn5.DEFAULT_RETRY_DELAY_BASE=Wn5;Bn5.DEFAULT_RETRY_MODE=Zn5;Bn5.DefaultRateLimiter=jA1;Bn5.INITIAL_RETRY_TOKENS=aB0;Bn5.INVOCATION_ID_HEADER=Fn5;Bn5.MAXIMUM_RETRY_DELAY=rB0;Bn5.NO_RETRY_INCREMENT=ps6;Bn5.REQUEST_HEADER=Un5;Bn5.RETRY_COST=Kn5;Bn5.Retry=sQ;Bn5.StandardRetryStrategy=TX1;Bn5.THROTTLING_RETRY_DELAY_BASE=$n5;Bn5.TIMEOUT_RETRY_COST=Hn5});var WX=k((xn5)=>{var Sn5=Nw(),oB0={warningEmitted:!1},kn5=(X)=>{if(X&&!oB0.warningEmitted&&parseInt(X.substring(1,X.indexOf(".")))<20)oB0.warningEmitted=!0,process.emitWarning(`NodeDeprecationWarning: The AWS SDK for JavaScript (v3) will
1626
+ `);Q=W.pop()??"";for(let Z of W){let $=Os6(Z).replace(/^\[\d+\]\s*/,"").trim();if(!$)continue;Gz({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=Os6(Q).replace(/^\[\d+\]\s*/,"").trim();if(W)Gz({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:W})}})()}async function ui5(X){let{vitePort:Y,baseUrl:G,noTui:Q}=X,J=await wA1(Number(X.port)),{settings:W,services:Z,managedServiceNames:$}=await NA1({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)pa({name:z.name,status:"ready",port:z.port});EX1(W),wX1();let K=gi5(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)Ds6(U.stdout),Ds6(U.stderr);let B=G||`http://localhost:${W.port}`;LX1(B),pa({name:"Vite",status:"ready",port:Number(Y)});let N=async(z)=>{if(U.kill(z),$.length>0){let{stopServices:O}=await Promise.resolve().then(() => (O$1(),z$1));await O(W.dataDir)}};return process.on("SIGINT",()=>N("SIGINT")),process.on("SIGTERM",()=>N("SIGTERM")),{port:Number(W.port),process:U}}var kB0=D(()=>{TB0();Qz();RB0()});import{Box as CB0,Text as vB0}from"ink";import{jsx as Ls6,jsxs as LA1}from"react/jsx-runtime";function ws6(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 di5(X,Y){if(li5.has(X))return Y?{text:"\u25CF\u25CF\u25CF\u25CF\u25CF\u25CF",dimColor:!0}:{text:"not set",dimColor:!0};if(mi5.has(X)){if(Array.isArray(Y)){if(Y.length===0)return{text:"not set",dimColor:!0};return{text:Y.map((W)=>ws6(W)).join(", "),color:"cyan"}}let Q=ws6(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 ci5(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 Es6({env:X}){let Y=ci5(X);return Ls6(CB0,{flexDirection:"column",children:Y.map((G)=>LA1(CB0,{flexDirection:"column",marginTop:1,children:[LA1(vB0,{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=di5(Q,J);return LA1(CB0,{children:[LA1(vB0,{dimColor:!0,children:[" ",Q.padEnd(36)]}),Ls6(vB0,{color:W.color,dimColor:W.dimColor,children:W.text})]},Q)})]},G.title))})}var li5,mi5;var Ps6=D(()=>{li5=new Set(["BETTER_AUTH_SECRET","ENCRYPTION_KEY","MESH_JWT_SECRET","STUDIO_PROVISION_SECRET_KEY"]),mi5=new Set(["DATABASE_URL","CLICKHOUSE_URL","NATS_URL"])});var _B0;var qs6=D(()=>{_B0={name:"decocms",version:"2.300.2",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","@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 PU,Text as MX}from"ink";import{Spinner as pi5}from"@inkjs/ui";import{useSyncExternalStore as As6}from"react";import{jsx as qY,jsxs as oQ}from"react/jsx-runtime";function oi5(X,Y){if(!X||!ri5.has(X))return X;let G=fB0[Y]??fB0[fB0.length-1];return X==="#875f00"?G[0]:G[1]}function Ts6({status:X}){if(X==="pending")return qY(pi5,{label:""});return qY(MX,{color:"green",children:"\u2713"})}function Is6({services:X,migrationsStatus:Y,home:G,serverUrl:Q,vibe:J}){let W=As6(iu0,cu0),Z=As6(ou0,ru0);return oQ(PU,{flexDirection:"column",paddingBottom:1,children:[J?oQ(PU,{flexDirection:"column",children:[W.map(($,K)=>{let H=Z[K],U=$.reduce((N,z)=>N+z.text.length,0),B=Math.max(0,ti5-U);return oQ(PU,{flexDirection:"row",children:[$.map((N,z)=>{let O=oi5(N.color,K);return O?qY(MX,{color:O,children:N.text},z):qY(MX,{children:N.text},z)}),qY(MX,{children:" ".repeat(B+2)}),H?.map((N,z)=>N.color?qY(MX,{color:N.color,children:N.char},z):qY(MX,{children:N.char},z))]},K)}),oQ(MX,{dimColor:!0,children:[" v",_B0.version]})]}):oQ(PU,{flexDirection:"column",marginTop:1,children:[ni5.map(($,K)=>qY(MX,{color:ai5[K],children:$},K)),oQ(MX,{dimColor:!0,children:[" v",_B0.version]})]}),qY(PU,{marginBottom:1,children:qY(MX,{dimColor:!0,children:"\u2500".repeat(80)})}),qY(PU,{children:oQ(MX,{dimColor:!0,children:["Home: ",G]})}),oQ(PU,{gap:2,children:[X.map(($)=>oQ(PU,{gap:1,children:[oQ(MX,{children:[$.name," :",$.port||"...."]}),qY(Ts6,{status:$.status})]},$.name)),oQ(PU,{gap:1,children:[qY(MX,{children:"Migrations"}),qY(Ts6,{status:Y})]})]}),qY(PU,{children:Q?oQ(MX,{children:["Open in browser: ",qY(MX,{color:"cyan",children:Q})]}):qY(MX,{dimColor:!0,children:"Starting..."})}),oQ(PU,{gap:2,children:[oQ(MX,{dimColor:!0,children:[qY(MX,{bold:!0,dimColor:!0,children:"K"})," ","toggle config"]}),oQ(MX,{dimColor:!0,children:[qY(MX,{bold:!0,dimColor:!0,children:"L"})," ","toggle log flow"]}),oQ(MX,{dimColor:!0,children:[qY(MX,{bold:!0,dimColor:!0,children:"V"})," ","toggle vibe ",J?"\u266A Nihilore \xB7 CC BY 4.0":""]}),J&&oQ(MX,{dimColor:!0,children:[qY(MX,{bold:!0,dimColor:!0,children:"N"})," ","skip song"]})]})]})}var ni5,ai5,fB0,ti5=30,ri5;var Vs6=D(()=>{qs6();An1();Rn1();ni5=[" \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 "],ai5=["#00ff64","#00ee5e","#00dc56","#00c84e","#00b444","#00a03c","#008832","#006e28"],fB0=[["#00ff64","#00cc50"],["#00f060","#00c04c"],["#00e05c","#00b448"],["#00d058","#00a844"],["#00c054","#009c40"],["#00b050","#00903c"],["#00a04c","#008438"],["#009048","#007834"],["#008044","#006c30"],["#007040","#00602c"],["#00603c","#005428"]],ri5=new Set(["#875f00","#5f3800"])});import{useSyncExternalStore as si5}from"react";function ei5(){let X=process.stdout.rows||24,Y=process.stdout.columns||80;if(X!==EA1.rows||Y!==EA1.columns)EA1={rows:X,columns:Y};return EA1}function Xp5(X){return process.stdout.on("resize",X),()=>{process.stdout.off("resize",X)}}function js6(){return si5(Xp5,ei5)}var EA1;var Ms6=D(()=>{EA1={rows:process.stdout.rows||24,columns:process.stdout.columns||80}});import{Box as Yp5,Text as PX1}from"ink";import{useSyncExternalStore as Gp5}from"react";import{jsx as bB0,jsxs as yB0}from"react/jsx-runtime";function Qp5(X){if(X>=500)return"red";if(X>=400)return"yellow";if(X>=300)return"cyan";return"green"}function Rs6({logs:X,headerHeight:Y}){let{rows:G}=js6(),{logFlow:Q}=Gp5(DX1,OX1),J=Math.max(1,G-Y-1),W=Q?X:X.slice(-J);return bB0(Yp5,{flexDirection:"column",children:W.map((Z,$)=>{if(Z.rawLine)return bB0(PX1,{dimColor:!0,children:Z.rawLine},$);let K=Z.duration<1000?`${Z.duration}ms`:`${(Z.duration/1000).toFixed(1)}s`;return yB0(PX1,{children:[yB0(PX1,{dimColor:!0,children:[Z.method.padEnd(6)," ",Z.path.padEnd(30)," "]}),bB0(PX1,{color:Qp5(Z.status),children:Z.status}),yB0(PX1,{dimColor:!0,children:[" ",K.padStart(8)]})]},$)})})}var Ss6=D(()=>{Qz();Ms6()});var xB0={};j0(xB0,{App:()=>Fp5});import{Box as Jp5,Text as Zp5,useInput as Wp5}from"ink";import{useSyncExternalStore as $p5}from"react";import{jsx as PA1,jsxs as Up5}from"react/jsx-runtime";function Fp5({home:X}){let Y=$p5(DX1,OX1);return Wp5((G)=>{if(G==="k"||G==="K")VB0();if(G==="l"||G==="L")jB0();if((G==="v"||G==="V")&&Y.dataDir)vn1(Y.dataDir),MB0();if((G==="n"||G==="N")&&Y.vibe)Cn1()}),Up5(Jp5,{flexDirection:"column",children:[PA1(Is6,{services:Y.services,migrationsStatus:Y.migrationsStatus,home:X,serverUrl:Y.serverUrl,vibe:Y.vibe}),Y.viewMode==="config"?Y.env?PA1(Es6,{env:Y.env}):PA1(Zp5,{dimColor:!0,children:"Loading configuration..."}):PA1(Rs6,{logs:Y.logs,headerHeight:Y.vibe?Hp5:Kp5})]})}var Kp5=15,Hp5=19;var hB0=D(()=>{Ps6();Vs6();Ss6();Qz();Vd()});function ks6(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,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,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 Rj=k((wp5)=>{wp5.HttpAuthLocation=void 0;(function(X){X.HEADER="header",X.QUERY="query"})(wp5.HttpAuthLocation||(wp5.HttpAuthLocation={}));wp5.HttpApiKeyAuthLocation=void 0;(function(X){X.HEADER="header",X.QUERY="query"})(wp5.HttpApiKeyAuthLocation||(wp5.HttpApiKeyAuthLocation={}));wp5.EndpointURLScheme=void 0;(function(X){X.HTTP="http",X.HTTPS="https"})(wp5.EndpointURLScheme||(wp5.EndpointURLScheme={}));wp5.AlgorithmId=void 0;(function(X){X.MD5="md5",X.CRC32="crc32",X.CRC32C="crc32c",X.SHA1="sha1",X.SHA256="sha256"})(wp5.AlgorithmId||(wp5.AlgorithmId={}));var Bp5=(X)=>{let Y=[];if(X.sha256!==void 0)Y.push({algorithmId:()=>wp5.AlgorithmId.SHA256,checksumConstructor:()=>X.sha256});if(X.md5!=null)Y.push({algorithmId:()=>wp5.AlgorithmId.MD5,checksumConstructor:()=>X.md5});return{addChecksumAlgorithm(G){Y.push(G)},checksumAlgorithms(){return Y}}},Np5=(X)=>{let Y={};return X.checksumAlgorithms().forEach((G)=>{Y[G.algorithmId()]=G.checksumConstructor()}),Y},zp5=(X)=>{return Bp5(X)},Op5=(X)=>{return Np5(X)};wp5.FieldPosition=void 0;(function(X){X[X.HEADER=0]="HEADER",X[X.TRAILER=1]="TRAILER"})(wp5.FieldPosition||(wp5.FieldPosition={}));var Dp5="__smithy_context";wp5.IniSectionType=void 0;(function(X){X.PROFILE="profile",X.SSO_SESSION="sso-session",X.SERVICES="services"})(wp5.IniSectionType||(wp5.IniSectionType={}));wp5.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"})(wp5.RequestHandlerProtocol||(wp5.RequestHandlerProtocol={}));wp5.SMITHY_CONTEXT_KEY=Dp5;wp5.getDefaultClientConfiguration=zp5;wp5.resolveDefaultRuntimeConfig=Op5});var u7=k((jp5)=>{var qp5=Rj(),Ap5=(X)=>{return{setHttpHandler(Y){X.httpHandler=Y},httpHandler(){return X.httpHandler},updateHttpClientConfig(Y,G){X.httpHandler?.updateHttpClientConfig(Y,G)},httpHandlerConfigs(){return X.httpHandler.httpHandlerConfigs()}}},Tp5=(X)=>{return{httpHandler:X.httpHandler()}};class Cs6{name;kind;values;constructor({name:X,kind:Y=qp5.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 vs6{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 qA1{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 qA1({...X,headers:{...X.headers}});if(Y.query)Y.query=Ip5(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 qA1.clone(this)}}function Ip5(X){return Object.keys(X).reduce((Y,G)=>{let Q=X[G];return{...Y,[G]:Array.isArray(Q)?[...Q]:Q}},{})}class _s6{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 Vp5(X){return/^[a-z0-9][a-z0-9\.\-]*[a-z0-9]$/.test(X)}jp5.Field=Cs6;jp5.Fields=vs6;jp5.HttpRequest=qA1;jp5.HttpResponse=_s6;jp5.getHttpHandlerExtensionConfiguration=Ap5;jp5.isValidHostname=Vp5;jp5.resolveHttpHandlerRuntimeConfig=Tp5});function fp5(X){return(Y)=>async(G)=>{let{request:Q}=G;if(X.expectContinueHeader!==!1&&fs6.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 fs6,bp5,bs6=(X)=>({applyToStack:(Y)=>{Y.add(fp5(X),bp5)}});var ys6=D(()=>{fs6=Y1(u7(),1);bp5={step:"build",tags:["SET_EXPECT_HEADER","EXPECT_HEADER"],name:"addExpectContinueMiddleware",override:!0}});var OH,AA1,Sj,TA1,E9,xs6,AX1;var DH=D(()=>{OH={WHEN_SUPPORTED:"WHEN_SUPPORTED",WHEN_REQUIRED:"WHEN_REQUIRED"},AA1=OH.WHEN_SUPPORTED,Sj={WHEN_SUPPORTED:"WHEN_SUPPORTED",WHEN_REQUIRED:"WHEN_REQUIRED"},TA1=OH.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"})(xs6||(xs6={}));AX1=E9.CRC32});var Vq,na=(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 iB0=D(()=>{(function(X){X.ENV="env",X.CONFIG="shared config entry"})(Vq||(Vq={}))});var yp5="AWS_REQUEST_CHECKSUM_CALCULATION",xp5="request_checksum_calculation",hs6;var gs6=D(()=>{DH();iB0();hs6={environmentVariableSelector:(X)=>na(X,yp5,OH,Vq.ENV),configFileSelector:(X)=>na(X,xp5,OH,Vq.CONFIG),default:AA1}});var hp5="AWS_RESPONSE_CHECKSUM_VALIDATION",gp5="response_checksum_validation",us6;var ls6=D(()=>{DH();iB0();us6={environmentVariableSelector:(X)=>na(X,hp5,Sj,Vq.ENV),configFileSelector:(X)=>na(X,gp5,Sj,Vq.CONFIG),default:TA1}});var nB0=k((tp5)=>{var up5=["AuthFailure","InvalidSignatureException","RequestExpired","RequestInTheFuture","RequestTimeTooSkewed","SignatureDoesNotMatch"],lp5=["BandwidthLimitExceeded","EC2ThrottledException","LimitExceededException","PriorRequestNotComplete","ProvisionedThroughputExceededException","RequestLimitExceeded","RequestThrottled","RequestThrottledException","SlowDown","ThrottledException","Throttling","ThrottlingException","TooManyRequestsException","TransactionInProgressException"],mp5=["TimeoutError","RequestTimeout","RequestTimeoutException"],dp5=[500,502,503,504],cp5=["ECONNRESET","ECONNREFUSED","EPIPE","ETIMEDOUT"],ip5=["EHOSTUNREACH","ENETUNREACH","ENOTFOUND"],ms6=(X)=>X?.$retryable!==void 0,pp5=(X)=>up5.includes(X.name),ds6=(X)=>X.$metadata?.clockSkewCorrected,cs6=(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)},np5=(X)=>X.$metadata?.httpStatusCode===429||lp5.includes(X.name)||X.$retryable?.throttling==!0,pB0=(X,Y=0)=>ms6(X)||ds6(X)||X.name==="InvalidSignatureException"&&X.message?.includes("Signature expired")||mp5.includes(X.name)||cp5.includes(X?.code||"")||ip5.includes(X?.code||"")||dp5.includes(X.$metadata?.httpStatusCode||0)||cs6(X)||is6(X)||X.cause!==void 0&&Y<=10&&pB0(X.cause,Y+1),ap5=(X)=>{if(X.$metadata?.httpStatusCode!==void 0){let Y=X.$metadata.httpStatusCode;if(500<=Y&&Y<=599&&!pB0(X))return!0;return!1}return!1};function is6(X){return X.code==="ERR_HTTP2_STREAM_ERROR"&&X.message.includes("NGHTTP2_REFUSED_STREAM")}tp5.isBrowserNetworkError=cs6;tp5.isClockSkewCorrectedError=ds6;tp5.isClockSkewError=pp5;tp5.isNodeJsHttp2TransientError=is6;tp5.isRetryableByTrait=ms6;tp5.isServerError=ap5;tp5.isThrottlingError=np5;tp5.isTransientError=pB0});var Nw=k((Bn5)=>{var Jn5=nB0();Bn5.RETRY_MODES=void 0;(function(X){X.STANDARD="standard",X.ADAPTIVE="adaptive"})(Bn5.RETRY_MODES||(Bn5.RETRY_MODES={}));var VA1=3,Zn5=Bn5.RETRY_MODES.STANDARD;class jA1{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"||Jn5.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)=>jA1.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 Wn5=100,rB0=20000,$n5=500,aB0=500,Kn5=5,Hn5=10,ps6=1,Fn5="amz-sdk-invocation-id",Un5="amz-sdk-request";class sQ{static v2026=typeof process<"u"&&process.env?.SMITHY_NEW_RETRIES_2026==="true";static delay(){return sQ.v2026?50:100}static throttlingDelay(){return sQ.v2026?1000:500}static cost(){return sQ.v2026?14:5}static throttlingCost(){return sQ.v2026?5:10}static modifiedCostType(){return sQ.v2026?"THROTTLING":"TRANSIENT"}}class ns6{x=sQ.delay();computeNextBackoffDelay(X){let Y=Math.random(),G=2,Q=Y*Math.min(this.x*2**X,rB0);return Math.floor(Q)}setDelayBase(X){this.x=X}}class tB0{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(rB0,this.delay)}getRetryCost(){return this.cost}isLongPoll(){return this.longPoll}}var IA1={incompatible:1,attempts:2,capacity:3};class TX1{mode=Bn5.RETRY_MODES.STANDARD;capacity=aB0;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()=>VA1,this.baseDelay??=sQ.delay(),this.retryBackoffStrategy??=new ns6}async acquireInitialRetryToken(X){return new tB0(sQ.delay(),0,void 0,sQ.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"?sQ.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:sQ.v2026&&Q===IA1.capacity&&W?K:0});else{let H=this.getCapacityCost(Z);return this.capacity-=H,new tB0(K,X.getRetryCount()+1,H,X.isLongPoll?.()??!1)}}throw Error("No retry token available")}recordSuccess(X){this.capacity=Math.min(aB0,this.capacity+(X.getRetryCost()??ps6))}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 ${VA1}`),VA1}}retryCode(X,Y,G){let Q=X.getRetryCount()+1,J=this.isRetryableError(Y.errorType)?0:IA1.incompatible,W=Q<G?0:IA1.attempts,Z=this.capacity>=this.getCapacityCost(Y.errorType)?0:IA1.capacity;return J||W||Z}getCapacityCost(X){return X===sQ.modifiedCostType()?sQ.throttlingCost():sQ.cost()}isRetryableError(X){return X==="THROTTLING"||X==="TRANSIENT"}}class as6{mode=Bn5.RETRY_MODES.ADAPTIVE;rateLimiter;standardRetryStrategy;constructor(X,Y){let{rateLimiter:G}=Y??{};this.rateLimiter=G??new jA1,this.standardRetryStrategy=Y?new TX1({maxAttempts:typeof X==="number"?X:3,...Y}):new TX1(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 ts6 extends TX1{computeNextBackoffDelay;constructor(X,Y=sQ.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}}Bn5.AdaptiveRetryStrategy=as6;Bn5.ConfiguredRetryStrategy=ts6;Bn5.DEFAULT_MAX_ATTEMPTS=VA1;Bn5.DEFAULT_RETRY_DELAY_BASE=Wn5;Bn5.DEFAULT_RETRY_MODE=Zn5;Bn5.DefaultRateLimiter=jA1;Bn5.INITIAL_RETRY_TOKENS=aB0;Bn5.INVOCATION_ID_HEADER=Fn5;Bn5.MAXIMUM_RETRY_DELAY=rB0;Bn5.NO_RETRY_INCREMENT=ps6;Bn5.REQUEST_HEADER=Un5;Bn5.RETRY_COST=Kn5;Bn5.Retry=sQ;Bn5.StandardRetryStrategy=TX1;Bn5.THROTTLING_RETRY_DELAY_BASE=$n5;Bn5.TIMEOUT_RETRY_COST=Hn5});var WX=k((xn5)=>{var Sn5=Nw(),oB0={warningEmitted:!1},kn5=(X)=>{if(X&&!oB0.warningEmitted&&parseInt(X.substring(1,X.indexOf(".")))<20)oB0.warningEmitted=!0,process.emitWarning(`NodeDeprecationWarning: The AWS SDK for JavaScript (v3) will
1627
1627
  no longer support Node.js ${X} in January 2026.
1628
1628
 
1629
1629
  To continue receiving updates to AWS services, bug fixes, and security
@@ -0,0 +1,236 @@
1
+ export type CSPair = { // eslint-disable-line @typescript-eslint/naming-convention
2
+ /**
3
+ The ANSI terminal control sequence for starting this style.
4
+ */
5
+ readonly open: string;
6
+
7
+ /**
8
+ The ANSI terminal control sequence for ending this style.
9
+ */
10
+ readonly close: string;
11
+ };
12
+
13
+ export type ColorBase = {
14
+ /**
15
+ The ANSI terminal control sequence for ending this color.
16
+ */
17
+ readonly close: string;
18
+
19
+ ansi(code: number): string;
20
+
21
+ ansi256(code: number): string;
22
+
23
+ ansi16m(red: number, green: number, blue: number): string;
24
+ };
25
+
26
+ export type Modifier = {
27
+ /**
28
+ Resets the current color chain.
29
+ */
30
+ readonly reset: CSPair;
31
+
32
+ /**
33
+ Make text bold.
34
+ */
35
+ readonly bold: CSPair;
36
+
37
+ /**
38
+ Emitting only a small amount of light.
39
+ */
40
+ readonly dim: CSPair;
41
+
42
+ /**
43
+ Make text italic. (Not widely supported)
44
+ */
45
+ readonly italic: CSPair;
46
+
47
+ /**
48
+ Make text underline. (Not widely supported)
49
+ */
50
+ readonly underline: CSPair;
51
+
52
+ /**
53
+ Make text overline.
54
+
55
+ Supported on VTE-based terminals, the GNOME terminal, mintty, and Git Bash.
56
+ */
57
+ readonly overline: CSPair;
58
+
59
+ /**
60
+ Inverse background and foreground colors.
61
+ */
62
+ readonly inverse: CSPair;
63
+
64
+ /**
65
+ Prints the text, but makes it invisible.
66
+ */
67
+ readonly hidden: CSPair;
68
+
69
+ /**
70
+ Puts a horizontal line through the center of the text. (Not widely supported)
71
+ */
72
+ readonly strikethrough: CSPair;
73
+ };
74
+
75
+ export type ForegroundColor = {
76
+ readonly black: CSPair;
77
+ readonly red: CSPair;
78
+ readonly green: CSPair;
79
+ readonly yellow: CSPair;
80
+ readonly blue: CSPair;
81
+ readonly cyan: CSPair;
82
+ readonly magenta: CSPair;
83
+ readonly white: CSPair;
84
+
85
+ /**
86
+ Alias for `blackBright`.
87
+ */
88
+ readonly gray: CSPair;
89
+
90
+ /**
91
+ Alias for `blackBright`.
92
+ */
93
+ readonly grey: CSPair;
94
+
95
+ readonly blackBright: CSPair;
96
+ readonly redBright: CSPair;
97
+ readonly greenBright: CSPair;
98
+ readonly yellowBright: CSPair;
99
+ readonly blueBright: CSPair;
100
+ readonly cyanBright: CSPair;
101
+ readonly magentaBright: CSPair;
102
+ readonly whiteBright: CSPair;
103
+ };
104
+
105
+ export type BackgroundColor = {
106
+ readonly bgBlack: CSPair;
107
+ readonly bgRed: CSPair;
108
+ readonly bgGreen: CSPair;
109
+ readonly bgYellow: CSPair;
110
+ readonly bgBlue: CSPair;
111
+ readonly bgCyan: CSPair;
112
+ readonly bgMagenta: CSPair;
113
+ readonly bgWhite: CSPair;
114
+
115
+ /**
116
+ Alias for `bgBlackBright`.
117
+ */
118
+ readonly bgGray: CSPair;
119
+
120
+ /**
121
+ Alias for `bgBlackBright`.
122
+ */
123
+ readonly bgGrey: CSPair;
124
+
125
+ readonly bgBlackBright: CSPair;
126
+ readonly bgRedBright: CSPair;
127
+ readonly bgGreenBright: CSPair;
128
+ readonly bgYellowBright: CSPair;
129
+ readonly bgBlueBright: CSPair;
130
+ readonly bgCyanBright: CSPair;
131
+ readonly bgMagentaBright: CSPair;
132
+ readonly bgWhiteBright: CSPair;
133
+ };
134
+
135
+ export type ConvertColor = {
136
+ /**
137
+ Convert from the RGB color space to the ANSI 256 color space.
138
+
139
+ @param red - (`0...255`)
140
+ @param green - (`0...255`)
141
+ @param blue - (`0...255`)
142
+ */
143
+ rgbToAnsi256(red: number, green: number, blue: number): number;
144
+
145
+ /**
146
+ Convert from the RGB HEX color space to the RGB color space.
147
+
148
+ @param hex - A hexadecimal string containing RGB data.
149
+ */
150
+ hexToRgb(hex: string): [red: number, green: number, blue: number];
151
+
152
+ /**
153
+ Convert from the RGB HEX color space to the ANSI 256 color space.
154
+
155
+ @param hex - A hexadecimal string containing RGB data.
156
+ */
157
+ hexToAnsi256(hex: string): number;
158
+
159
+ /**
160
+ Convert from the ANSI 256 color space to the ANSI 16 color space.
161
+
162
+ @param code - A number representing the ANSI 256 color.
163
+ */
164
+ ansi256ToAnsi(code: number): number;
165
+
166
+ /**
167
+ Convert from the RGB color space to the ANSI 16 color space.
168
+
169
+ @param red - (`0...255`)
170
+ @param green - (`0...255`)
171
+ @param blue - (`0...255`)
172
+ */
173
+ rgbToAnsi(red: number, green: number, blue: number): number;
174
+
175
+ /**
176
+ Convert from the RGB HEX color space to the ANSI 16 color space.
177
+
178
+ @param hex - A hexadecimal string containing RGB data.
179
+ */
180
+ hexToAnsi(hex: string): number;
181
+ };
182
+
183
+ /**
184
+ Basic modifier names.
185
+ */
186
+ export type ModifierName = keyof Modifier;
187
+
188
+ /**
189
+ Basic foreground color names.
190
+
191
+ [More colors here.](https://github.com/chalk/chalk/blob/main/readme.md#256-and-truecolor-color-support)
192
+ */
193
+ export type ForegroundColorName = keyof ForegroundColor;
194
+
195
+ /**
196
+ Basic background color names.
197
+
198
+ [More colors here.](https://github.com/chalk/chalk/blob/main/readme.md#256-and-truecolor-color-support)
199
+ */
200
+ export type BackgroundColorName = keyof BackgroundColor;
201
+
202
+ /**
203
+ Basic color names. The combination of foreground and background color names.
204
+
205
+ [More colors here.](https://github.com/chalk/chalk/blob/main/readme.md#256-and-truecolor-color-support)
206
+ */
207
+ export type ColorName = ForegroundColorName | BackgroundColorName;
208
+
209
+ /**
210
+ Basic modifier names.
211
+ */
212
+ export const modifierNames: readonly ModifierName[];
213
+
214
+ /**
215
+ Basic foreground color names.
216
+ */
217
+ export const foregroundColorNames: readonly ForegroundColorName[];
218
+
219
+ /**
220
+ Basic background color names.
221
+ */
222
+ export const backgroundColorNames: readonly BackgroundColorName[];
223
+
224
+ /*
225
+ Basic color names. The combination of foreground and background color names.
226
+ */
227
+ export const colorNames: readonly ColorName[];
228
+
229
+ declare const ansiStyles: {
230
+ readonly modifier: Modifier;
231
+ readonly color: ColorBase & ForegroundColor;
232
+ readonly bgColor: ColorBase & BackgroundColor;
233
+ readonly codes: ReadonlyMap<number, number>;
234
+ } & ForegroundColor & BackgroundColor & Modifier & ConvertColor;
235
+
236
+ export default ansiStyles;