decocms 2.304.16 → 2.305.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (213) hide show
  1. package/dist/client/assets/{AlertCircle-YdvcZKe8.js → AlertCircle-B65qDYSH.js} +1 -1
  2. package/dist/client/assets/{ArrowNarrowLeft-spQjUruy.js → ArrowNarrowLeft-fzTyPWny.js} +1 -1
  3. package/dist/client/assets/{ArrowUpRight-B1ajIZNC.js → ArrowUpRight-BcX-Z0Ku.js} +1 -1
  4. package/dist/client/assets/{Check-D7cmovlU.js → Check-a0FPGBtH.js} +1 -1
  5. package/dist/client/assets/{CheckCircle-BQ3_L_yP.js → CheckCircle-B8cGzYri.js} +1 -1
  6. package/dist/client/assets/{ChevronDown-BfDxcbjR.js → ChevronDown-Z3xhSsnT.js} +1 -1
  7. package/dist/client/assets/{ChevronRight-BoDMW1uU.js → ChevronRight-xkl8cwkd.js} +1 -1
  8. package/dist/client/assets/{ChevronUp-CRQBEG-R.js → ChevronUp-Cy7lkJW1.js} +1 -1
  9. package/dist/client/assets/{Container-B6Z-4M-T.js → Container-cyfm5-Pb.js} +1 -1
  10. package/dist/client/assets/{DotsVertical-BxlMGXPv.js → DotsVertical-Bx7sSuAL.js} +1 -1
  11. package/dist/client/assets/{LinkExternal01-Dmf65eFo.js → LinkExternal01-0g6HjjkD.js} +1 -1
  12. package/dist/client/assets/{Lock01-CHWOYjbh.js → Lock01-BzMXxHmW.js} +1 -1
  13. package/dist/client/assets/{Palette-96pDg1d-.js → Palette-CwWccG-f.js} +1 -1
  14. package/dist/client/assets/{Play-ChzLrbkr.js → Play-C-AiMK-Y.js} +1 -1
  15. package/dist/client/assets/{Plus-Cd4I0_d-.js → Plus-DGrvw6bs.js} +1 -1
  16. package/dist/client/assets/{RefreshCcw01-BBhbyLOk.js → RefreshCcw01-Biyt7Dy2.js} +1 -1
  17. package/dist/client/assets/{SearchMd-cj9P259i.js → SearchMd-OHnYTa8U.js} +1 -1
  18. package/dist/client/assets/{Settings02-Cx39xFqG.js → Settings02-DO2nBrax.js} +1 -1
  19. package/dist/client/assets/{Shield01-DDhNoo0b.js → Shield01-DQa1zKSX.js} +1 -1
  20. package/dist/client/assets/{Star01-UQZ7hTDj.js → Star01-BoJYsaDm.js} +1 -1
  21. package/dist/client/assets/{Sun-Cr3NKiIh.js → Sun-DA-QmugE.js} +1 -1
  22. package/dist/client/assets/{Tool01-DXbOwd1n.js → Tool01-Cq1N-niG.js} +1 -1
  23. package/dist/client/assets/{Trash01-DqDMVyTa.js → Trash01-PRSN3sYk.js} +1 -1
  24. package/dist/client/assets/{User01-C7C_-f57.js → User01-DwPCZdnr.js} +1 -1
  25. package/dist/client/assets/{Users03-DGRxeg5O.js → Users03-CB3lBGeX.js} +1 -1
  26. package/dist/client/assets/{X-8IHaEYtM.js → X-dZLz-ulr.js} +1 -1
  27. package/dist/client/assets/{XCircle-kdEx_GGF.js → XCircle-yJD2sr2j.js} +1 -1
  28. package/dist/client/assets/{XClose-D8EpU_uy.js → XClose-Ci4dmV-Y.js} +1 -1
  29. package/dist/client/assets/{Zap-DdUb_mPC.js → Zap-CYJdRXq9.js} +1 -1
  30. package/dist/client/assets/{ZapSquare-Biix1-55.js → ZapSquare-M3u7o8sc.js} +1 -1
  31. package/dist/client/assets/{accordion-MNTOVO1w.js → accordion-DtmZjwNB.js} +1 -1
  32. package/dist/client/assets/{agent-icon-BBG09Kki.js → agent-icon-D_KgWkiu.js} +1 -1
  33. package/dist/client/assets/{agents-list-Cd2ZNqCV.js → agents-list-yD_xsHNb.js} +1 -1
  34. package/dist/client/assets/ai-providers-BHQQzoPJ.js +1 -0
  35. package/dist/client/assets/{alert-dialog-ChbEbjde.js → alert-dialog-Dog8t-xg.js} +1 -1
  36. package/dist/client/assets/{auth-catchall-CBAL823O.js → auth-catchall-B_yXTiaF.js} +1 -1
  37. package/dist/client/assets/{automation-list-row-ZDJkdIwJ.js → automation-list-row-BtOPPlS3.js} +1 -1
  38. package/dist/client/assets/{automations-_nxja9xP.js → automations-CkfQxJNN.js} +1 -1
  39. package/dist/client/assets/{avatar-97M2j8Mc.js → avatar-BebTr4u1.js} +1 -1
  40. package/dist/client/assets/{badge-CGsQT5nT.js → badge-BWEc0v7O.js} +1 -1
  41. package/dist/client/assets/{brand-context-D6w2oIn3.js → brand-context-LmKpYr08.js} +1 -1
  42. package/dist/client/assets/{card-DfJe5L79.js → card-mlKWkDqb.js} +1 -1
  43. package/dist/client/assets/{chat-context-Cmy5JYgW.js → chat-context-BmN5ppM9.js} +1 -1
  44. package/dist/client/assets/{checkbox-C1M4-v1p.js → checkbox-55NGf7aS.js} +1 -1
  45. package/dist/client/assets/{collection-detail-Bwwayl0Z.js → collection-detail-BaNeXOGS.js} +1 -1
  46. package/dist/client/assets/{collection-display-button-C5vtHGnK.js → collection-display-button-DnajjLb7.js} +1 -1
  47. package/dist/client/assets/{collection-search-CzQYdsP4.js → collection-search-Bsl0avLq.js} +1 -1
  48. package/dist/client/assets/{collection-search-DT89ZZmI.js → collection-search-CjDGYe9v.js} +1 -1
  49. package/dist/client/assets/{collection-table-wrapper-Bna3sxAQ.js → collection-table-wrapper-D5rnMkP_.js} +1 -1
  50. package/dist/client/assets/{collection-tabs-ComzcUW9.js → collection-tabs-DgQ6F5X6.js} +1 -1
  51. package/dist/client/assets/{collections-CTGZthcG.js → collections-DAavnhku.js} +1 -1
  52. package/dist/client/assets/{command-DjJw7GWb.js → command-CN1iJVAp.js} +1 -1
  53. package/dist/client/assets/{connection-card-DQlGg9mJ.js → connection-card-D5opGNgQ.js} +1 -1
  54. package/dist/client/assets/{connection-detail-Z4nXqSbX.js → connection-detail-DWinew7y.js} +1 -1
  55. package/dist/client/assets/{connection-form-helpers-DiGKAKlz.js → connection-form-helpers-CXHmM_yU.js} +1 -1
  56. package/dist/client/assets/{connections-DAoFEFST.js → connections-yUVM9Wts.js} +1 -1
  57. package/dist/client/assets/{constants-XC36TPvL.js → constants-BNhCk86i.js} +1 -1
  58. package/dist/client/assets/{constants-B9wErdMg.js → constants-Ccnt3rmd.js} +2 -2
  59. package/dist/client/assets/{dialog-B9n71g4e.js → dialog-_YlOXdcS.js} +1 -1
  60. package/dist/client/assets/{domain-settings-DAaCjfZg.js → domain-settings-DLCCNpqs.js} +1 -1
  61. package/dist/client/assets/{drawer-Dy5NJxEk.js → drawer-GKYdquRR.js} +1 -1
  62. package/dist/client/assets/{dropdown-menu-bofOMeLm.js → dropdown-menu-BXZVht4Z.js} +1 -1
  63. package/dist/client/assets/{dynamic-plugin-layout-DdC9w75r.js → dynamic-plugin-layout-ieJ5SRhD.js} +1 -1
  64. package/dist/client/assets/{empty-state-iSyeAylK.js → empty-state-CGCgWL8i.js} +1 -1
  65. package/dist/client/assets/{empty-state-Bl1VCnIe.js → empty-state-D1x6Uzf-.js} +1 -1
  66. package/dist/client/assets/{extract-connection-data-BmWiFxHJ.js → extract-connection-data-BTJzhkiq.js} +1 -1
  67. package/dist/client/assets/{features-BKkpnrxu.js → features-Bmw2Kywv.js} +1 -1
  68. package/dist/client/assets/{form-DABXYYeF.js → form-D4Q00YSx.js} +1 -1
  69. package/dist/client/assets/{general-DukQ3tYy.js → general-yzH2a6AI.js} +1 -1
  70. package/dist/client/assets/{index-BscyP7Up.js → index-7DFELu7_.js} +1 -1
  71. package/dist/client/assets/{index-BOl2sMex.js → index-BBbwvkmx.js} +1 -1
  72. package/dist/client/assets/index-C1kdSX8Z.js +182 -0
  73. package/dist/client/assets/{index-C7yEMUwG.js → index-CHcMm4yb.js} +1 -1
  74. package/dist/client/assets/index-CLv-BJNN.js +1 -0
  75. package/dist/client/assets/{index-abagjRmB.js → index-CUuCKerO.js} +1 -1
  76. package/dist/client/assets/{index-C77ixooi.js → index-Cf-Qb03y.js} +1 -1
  77. package/dist/client/assets/{index-DTr35K1t.js → index-DgtpEOsQ.js} +1 -1
  78. package/dist/client/assets/{index-DtIEOBO6.js → index-DsOYCD-H.js} +1 -1
  79. package/dist/client/assets/{index-iDFI-Ppt.js → index-DsncOedH.js} +1 -1
  80. package/dist/client/assets/{index-B40-ao-L.js → index-I3M58vcg.js} +1 -1
  81. package/dist/client/assets/{index-BBoaHd8c.js → index-ILTPQsH4.js} +1 -1
  82. package/dist/client/assets/{index-CzhKzgtD.js → index-Ux_PrmKm.js} +2 -2
  83. package/dist/client/assets/{index-CeXie2Ys.js → index-Yaw_OxhP.js} +1 -1
  84. package/dist/client/assets/index-tLkyDiOo.js +1 -0
  85. package/dist/client/assets/{index-CA228xnt.js → index-tngOtpnj.js} +1 -1
  86. package/dist/client/assets/{infiniteQueryObserver-d4mpZ_Ot.js → infiniteQueryObserver-C_u8IqUR.js} +1 -1
  87. package/dist/client/assets/{input-CNEsKnKX.js → input-B868_ejo.js} +1 -1
  88. package/dist/client/assets/{integration-icon-CSgHR76X.js → integration-icon-Ov0IbIMU.js} +1 -1
  89. package/dist/client/assets/{label-9fjD1g94.js → label-Cg-2ys6X.js} +1 -1
  90. package/dist/client/assets/{layout-DEdN-ZCr.js → layout-DkCp6X2C.js} +1 -1
  91. package/dist/client/assets/lean-canvas-recruit-modal-BNON-9yt.js +139 -0
  92. package/dist/client/assets/{login-C6yxrHRy.js → login-E_UoTHOE.js} +1 -1
  93. package/dist/client/assets/{members-D68Ow5uj.js → members-CC6bIoZk.js} +1 -1
  94. package/dist/client/assets/{monaco-editor-Dndvvjot.js → monaco-editor-DfIGvq7v.js} +1 -1
  95. package/dist/client/assets/{monitoring-stats-row-CKay1MEI.js → monitoring-stats-row-Chavd_5e.js} +1 -1
  96. package/dist/client/assets/{oauth-callback-CaaulaeP.js → oauth-callback-BQObPuY8.js} +1 -1
  97. package/dist/client/assets/{oauth-callback-ai-provider-ChlN62-d.js → oauth-callback-ai-provider-B_SVXSnf.js} +1 -1
  98. package/dist/client/assets/{onboarding-Dx3oU4tF.js → onboarding-ChmBqh-q.js} +1 -1
  99. package/dist/client/assets/{org-layout-UCoBgLht.js → org-layout-BWsgHF7L.js} +1 -1
  100. package/dist/client/assets/{org-plugin-layout-CqAgklZh.js → org-plugin-layout-D0N77j4g.js} +1 -1
  101. package/dist/client/assets/{pair-D1mFwARy.js → pair-DlIdkD7u.js} +1 -1
  102. package/dist/client/assets/{plugin-empty-state-B0cmsL9S.js → plugin-empty-state-B-u16uuv.js} +1 -1
  103. package/dist/client/assets/{plugin-header-BI8T-ddq.js → plugin-header-Dt0O0h26.js} +1 -1
  104. package/dist/client/assets/{plugin-layout-B1I7qSQF.js → plugin-layout-DK8gsZYL.js} +1 -1
  105. package/dist/client/assets/{popover-DJiufSUD.js → popover-B3f914lR.js} +1 -1
  106. package/dist/client/assets/{profile-CGXuDNln.js → profile-pLHlebiO.js} +1 -1
  107. package/dist/client/assets/{project-app-view-DP_-ui4r.js → project-app-view-D-yBQWHo.js} +1 -1
  108. package/dist/client/assets/registry-BcZJCcyc.js +2 -0
  109. package/dist/client/assets/{registry-layout-DIzJFcIj.js → registry-layout-0cxsWXwz.js} +1 -1
  110. package/dist/client/assets/{required-auth-layout-sXjdshcq.js → required-auth-layout-DLsc1xkw.js} +1 -1
  111. package/dist/client/assets/{reset-password-cZPjvgcJ.js → reset-password-BS6m_G36.js} +1 -1
  112. package/dist/client/assets/{roles-CkThyhxD.js → roles-B_ljw5IA.js} +1 -1
  113. package/dist/client/assets/{scroll-area-DM7jZQf0.js → scroll-area-_bumfcjA.js} +1 -1
  114. package/dist/client/assets/{search-input-BfUlR4kV.js → search-input-Bhq8p539.js} +1 -1
  115. package/dist/client/assets/{select-model-Cy_Vxqx-.js → select-model-D3fobWv8.js} +1 -1
  116. package/dist/client/assets/{select-WtZOfOpo.js → select-slwRPncS.js} +1 -1
  117. package/dist/client/assets/settings-layout-DRkmNgVc.js +1 -0
  118. package/dist/client/assets/{settings-section-R1g2TNeE.js → settings-section-CIXHBPOa.js} +1 -1
  119. package/dist/client/assets/{shell-layout-I_eJIv1K.js → shell-layout-Drnm9mfO.js} +1 -1
  120. package/dist/client/assets/{skeleton-DLLoz0n0.js → skeleton-ChUR9knm.js} +1 -1
  121. package/dist/client/assets/{sso-CzSINRFs.js → sso--URfWQeo.js} +1 -1
  122. package/dist/client/assets/{store-BCviRvz9.js → store-htVNKvqn.js} +1 -1
  123. package/dist/client/assets/store-registry-CaCyYvRn.js +2 -0
  124. package/dist/client/assets/{switch-BH6A3p0g.js → switch-Cf5BCxU5.js} +1 -1
  125. package/dist/client/assets/{table-qL_Cu6WT.js → table-CBFs2U43.js} +1 -1
  126. package/dist/client/assets/{tabs-DIK24gms.js → tabs-Ctrs4bAF.js} +1 -1
  127. package/dist/client/assets/{task-status-Bjp5sDvq.js → task-status-DUVd5pLA.js} +1 -1
  128. package/dist/client/assets/{textarea-DVl7iYt4.js → textarea-BbtfG9Ru.js} +1 -1
  129. package/dist/client/assets/{toggle-group-WOk-6cmR.js → toggle-group-DCLBHyZD.js} +1 -1
  130. package/dist/client/assets/{tools-list-BAADgwcR.js → tools-list-DGhR4Qyt.js} +1 -1
  131. package/dist/client/assets/{tooltip-DSuAs--v.js → tooltip-BOsmkVZD.js} +1 -1
  132. package/dist/client/assets/{types-bCWMch03.js → types-BSAKF0wC.js} +1 -1
  133. package/dist/client/assets/{use-ai-providers-B7R2KmGt.js → use-ai-providers-aNlhpnwf.js} +1 -1
  134. package/dist/client/assets/{use-collections-DFXlD5a6.js → use-collections-CqB4T92N.js} +1 -1
  135. package/dist/client/assets/{use-connection-mkdAsO3d.js → use-connection-C_n04i0m.js} +1 -1
  136. package/dist/client/assets/{use-copy-C4DghPLz.js → use-copy-B8gaSETz.js} +1 -1
  137. package/dist/client/assets/{use-create-virtual-mcp-ksck6WCZ.js → use-create-virtual-mcp-DvxMGqTu.js} +1 -1
  138. package/dist/client/assets/{use-debounced-autosave-CLtNf_EP.js → use-debounced-autosave-BAy1X_D8.js} +1 -1
  139. package/dist/client/assets/{use-decopilot-events-BqnGpCsr.js → use-decopilot-events-BA4osLiM.js} +1 -1
  140. package/dist/client/assets/{use-delete-connection-CJCTY6PR.js → use-delete-connection-C4xdydWE.js} +1 -1
  141. package/dist/client/assets/{use-infinite-scroll-DyWtuvVN.js → use-infinite-scroll-CW0QmsIe.js} +1 -1
  142. package/dist/client/assets/{use-list-state-DJhZm6uG.js → use-list-state-Dm-Ww-Vo.js} +1 -1
  143. package/dist/client/assets/{use-mcp-tools-CZiN_apo.js → use-mcp-tools-uazou5KQ.js} +1 -1
  144. package/dist/client/assets/{use-members-XoLKujIR.js → use-members-BM40IfsI.js} +1 -1
  145. package/dist/client/assets/{use-navigate-to-agent-BJZA0vn3.js → use-navigate-to-agent-kI9r54wH.js} +1 -1
  146. package/dist/client/assets/{use-org-auth-client-DFDdOgNz.js → use-org-auth-client-DCENSdBc.js} +1 -1
  147. package/dist/client/assets/{use-org-sso-ntNZ64id.js → use-org-sso-BIqIcUQM.js} +1 -1
  148. package/dist/client/assets/{use-organization-roles-DvvUCO6J.js → use-organization-roles-DAO7QdGg.js} +1 -1
  149. package/dist/client/assets/{use-organization-settings-BcP9GxNe.js → use-organization-settings-C-NHhw4n.js} +1 -1
  150. package/dist/client/assets/{use-registry-connections-C3Shxtge.js → use-registry-connections-B1oBXsUK.js} +1 -1
  151. package/dist/client/assets/{use-status-sounds-BhmdTf72.js → use-status-sounds-DEn9-reM.js} +1 -1
  152. package/dist/client/assets/{use-tasks-CFKcirif.js → use-tasks-CJ3vNKME.js} +1 -1
  153. package/dist/client/assets/{use-view-mode-DPFNPRhw.js → use-view-mode-DTFti-L5.js} +1 -1
  154. package/dist/client/assets/{use-virtual-mcp-D6IJdvj4.js → use-virtual-mcp-Cd4gN6tQ.js} +1 -1
  155. package/dist/client/assets/useInfiniteQuery-BMlr4G1E.js +1 -0
  156. package/dist/client/assets/useSuspenseInfiniteQuery-BNLcV52p.js +1 -0
  157. package/dist/client/assets/{user-s33U8vUh.js → user-BirTYLn0.js} +1 -1
  158. package/dist/client/assets/{view-mode-toggle-DTQbwKIC.js → view-mode-toggle-_LNgXbfe.js} +1 -1
  159. package/dist/client/assets/{workflow-BNc2v09H.js → workflow-CE9nGfJB.js} +1 -1
  160. package/dist/client/assets/workflow-detail-hgfq2rMH.js +1 -0
  161. package/dist/client/index.html +1 -1
  162. package/dist/server/cli.js +24 -25
  163. package/dist/server/node_modules/is-fullwidth-code-point/index.d.ts +17 -0
  164. package/dist/server/node_modules/is-fullwidth-code-point/index.js +12 -0
  165. package/dist/server/node_modules/is-fullwidth-code-point/license +9 -0
  166. package/dist/server/node_modules/is-fullwidth-code-point/package.json +53 -0
  167. package/dist/server/node_modules/is-fullwidth-code-point/readme.md +31 -0
  168. package/dist/server/node_modules/mimic-fn/index.d.ts +54 -0
  169. package/dist/server/node_modules/mimic-fn/index.js +13 -0
  170. package/dist/server/node_modules/mimic-fn/license +9 -0
  171. package/dist/server/node_modules/mimic-fn/package.json +42 -0
  172. package/dist/server/node_modules/mimic-fn/readme.md +69 -0
  173. package/dist/server/node_modules/onetime/index.d.ts +64 -0
  174. package/dist/server/node_modules/onetime/index.js +44 -0
  175. package/dist/server/node_modules/onetime/license +9 -0
  176. package/dist/server/node_modules/onetime/package.json +43 -0
  177. package/dist/server/node_modules/onetime/readme.md +94 -0
  178. package/dist/server/node_modules/pg-int8/LICENSE +13 -0
  179. package/dist/server/node_modules/pg-int8/README.md +16 -0
  180. package/dist/server/node_modules/pg-int8/index.js +100 -0
  181. package/dist/server/node_modules/pg-int8/package.json +24 -0
  182. package/dist/server/node_modules/postgres-bytea/index.js +33 -0
  183. package/dist/server/node_modules/postgres-bytea/license +21 -0
  184. package/dist/server/node_modules/postgres-bytea/package.json +34 -0
  185. package/dist/server/node_modules/postgres-bytea/readme.md +34 -0
  186. package/dist/server/node_modules/postgres-date/index.js +116 -0
  187. package/dist/server/node_modules/postgres-date/license +21 -0
  188. package/dist/server/node_modules/postgres-date/package.json +33 -0
  189. package/dist/server/node_modules/postgres-date/readme.md +49 -0
  190. package/dist/server/node_modules/postgres-interval/index.d.ts +20 -0
  191. package/dist/server/node_modules/postgres-interval/index.js +125 -0
  192. package/dist/server/node_modules/postgres-interval/license +21 -0
  193. package/dist/server/node_modules/postgres-interval/package.json +36 -0
  194. package/dist/server/node_modules/postgres-interval/readme.md +48 -0
  195. package/dist/server/node_modules/split2/LICENSE +13 -0
  196. package/dist/server/node_modules/split2/README.md +85 -0
  197. package/dist/server/node_modules/split2/bench.js +27 -0
  198. package/dist/server/node_modules/split2/index.js +141 -0
  199. package/dist/server/node_modules/split2/package.json +39 -0
  200. package/dist/server/node_modules/split2/test.js +409 -0
  201. package/dist/server/server.js +23 -24
  202. package/package.json +1 -1
  203. package/dist/client/assets/ai-providers-BM3nrPzC.js +0 -1
  204. package/dist/client/assets/index-D3A4ePI7.js +0 -1
  205. package/dist/client/assets/index-DI9Yp0oo.js +0 -1
  206. package/dist/client/assets/index-DT7Nf9M6.js +0 -189
  207. package/dist/client/assets/lean-canvas-recruit-modal-CEK7JzdS.js +0 -116
  208. package/dist/client/assets/registry-CFvs_APs.js +0 -2
  209. package/dist/client/assets/settings-layout-CbLLwkfV.js +0 -1
  210. package/dist/client/assets/store-registry-C9ivXmwu.js +0 -2
  211. package/dist/client/assets/useInfiniteQuery-nrn6q72G.js +0 -1
  212. package/dist/client/assets/useSuspenseInfiniteQuery-BQugVIVu.js +0 -1
  213. package/dist/client/assets/workflow-detail-Dh3EHXZU.js +0 -1
@@ -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-CzhKzgtD.js";import{u as Ve,S as qe}from"./constants-B9wErdMg.js";import{B as ft,g as Me}from"./constants-XC36TPvL.js";import{C as Qe}from"./collection-display-button-C5vtHGnK.js";import{C as ht}from"./collection-search-CzQYdsP4.js";import{C as gt}from"./card-DfJe5L79.js";import{I as Ge}from"./integration-icon-CSgHR76X.js";import{D as He,a as Ye,b as Je,c as O}from"./dropdown-menu-bofOMeLm.js";import{c as Ze}from"./XCircle-kdEx_GGF.js";import{i as Xe}from"./DotsVertical-BxlMGXPv.js";import{y as et,H as Ue}from"./agent-icon-BBG09Kki.js";import{s as tt}from"./RefreshCcw01-BBhbyLOk.js";import{s as st}from"./Trash01-DqDMVyTa.js";import{C as xt}from"./collection-table-wrapper-Bna3sxAQ.js";import{E as We}from"./empty-state-iSyeAylK.js";import{U as jt}from"./user-s33U8vUh.js";import{E as it}from"./empty-state-Bl1VCnIe.js";import{u as Ct}from"./use-list-state-DJhZm6uG.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-ChbEbjde.js";import{a as It,c as At}from"./use-collections-DFXlD5a6.js";import{a as Tt}from"./use-connection-mkdAsO3d.js";import{s as Et}from"./Plus-Cd4I0_d-.js";import{a as Ot}from"./layout-DEdN-ZCr.js";import{P as je}from"./index-BBoaHd8c.js";import"./collections-CTGZthcG.js";import"./XClose-D8EpU_uy.js";import"./Check-D7cmovlU.js";import"./tooltip-DSuAs--v.js";import"./view-mode-toggle-DTQbwKIC.js";import"./badge-CGsQT5nT.js";import"./SearchMd-cj9P259i.js";import"./Container-B6Z-4M-T.js";import"./ChevronRight-BoDMW1uU.js";import"./AlertCircle-YdvcZKe8.js";import"./Tool01-DXbOwd1n.js";import"./ArrowNarrowLeft-spQjUruy.js";import"./ArrowUpRight-B1ajIZNC.js";import"./ZapSquare-Biix1-55.js";import"./Users03-DGRxeg5O.js";import"./CheckCircle-BQ3_L_yP.js";import"./ChevronDown-BfDxcbjR.js";import"./ChevronUp-CRQBEG-R.js";import"./Star01-UQZ7hTDj.js";import"./Palette-96pDg1d-.js";import"./LinkExternal01-Dmf65eFo.js";import"./Lock01-CHWOYjbh.js";import"./Sun-Cr3NKiIh.js";import"./Play-ChzLrbkr.js";import"./Settings02-Cx39xFqG.js";import"./Shield01-DDhNoo0b.js";import"./User01-C7C_-f57.js";import"./X-8IHaEYtM.js";import"./Zap-DdUb_mPC.js";import"./table-qL_Cu6WT.js";import"./avatar-97M2j8Mc.js";import"./use-view-mode-DPFNPRhw.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 r=["image","img","avatar","icon","logo","thumbnail","cover"];for(const n of r)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:r,actions:n}=i;let c;e[0]!==s||e[1]!==r?(c=$t(r,s),e[0]=s,e[1]=r,e[2]=c):c=e[2];const l=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]!==l||e[6]!==s.title?(m=t.jsx(Ge,{icon:l,name:s.title,size:"md",className:"shrink-0 shadow-sm"}),e[5]=l,e[6]=s.title,e[7]=m):m=e[7];let u;e[8]!==s.title?(u=t.jsx("h3",{className:"text-base font-medium text-foreground truncate",children:s.title}),e[8]=s.title,e[9]=u):u=e[9];const f=p||"No description";let a;e[10]!==f?(a=t.jsx("p",{className:"text-base text-muted-foreground line-clamp-2",children:f}),e[10]=f,e[11]=a):a=e[11];let v;e[12]!==u||e[13]!==a?(v=t.jsxs("div",{className:"flex flex-col gap-0 flex-1",children:[u,a]}),e[12]=u,e[13]=a,e[14]=v):v=e[14];let y;e[15]!==m||e[16]!==v?(y=t.jsxs("div",{className:"flex flex-col gap-4 p-6 flex-1",children:[m,v]}),e[15]=m,e[16]=v,e[17]=y):y=e[17];let b;e[18]!==n||e[19]!==o||e[20]!==s?(b=o&&t.jsx("div",{className:"absolute top-6 right-6 sm:opacity-0 sm:group-hover:opacity-100 transition-opacity",onClick:Kt,onMouseDown:Ft,children:t.jsxs(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]=b):b=e[21];let x;return e[22]!==y||e[23]!==b?(x=t.jsxs(gt,{className:"cursor-pointer transition-colors hover:bg-accent/50 h-full flex flex-col group relative",children:[y,b]}),e[22]=y,e[23]=b,e[24]=x):x=e[24],x}function zt(i){return i.stopPropagation()}function Lt(i){return i.stopPropagation()}function Ft(i){return i.stopPropagation()}function Kt(i){return i.stopPropagation()}const Mt=["icon","avatar","logo"],Re=["created_at","created_by","id"];function Ut(i){return Object.keys(i).find(e=>Mt.includes(e.toLowerCase()))}function ot(i,e){return Object.keys(i.properties||{}).filter(s=>["id","created_at","updated_at","created_by","updated_by"].includes(s)?!1:e?e.includes(s):!0).map(s=>({id:s,label:s.charAt(0).toUpperCase()+s.slice(1).replace(/_/g," ")}))}function Wt(i){const e=oe.c(30),{data:s,schema:r,viewMode:n,search:c,sortKey:l,sortDirection:p,onSort:d,actions:o,onItemClick:m,headerActions:u,emptyState:f,readOnly:a,columns:v,hideToolbar:y,sortableFields:b}=i,x=p===void 0?"asc":p,g=d===void 0?qt:d;let $;e[0]!==o?($=o===void 0?{}:o,e[0]=o,e[1]=$):$=e[1];const h=$,T=m===void 0?Vt:m,E=u===void 0?null:u,N=f===void 0?null:f,k=a===void 0?!1:a,j=v===void 0?void 0:v,z=y===void 0?!1:y,P=b===void 0?void 0:b;let D;e[2]!==j||e[3]!==r||e[4]!==P?(D=j?j.filter(Bt).filter(A=>!P||P.includes(A.id)).map(Rt):ot(r,P),e[2]=j,e[3]=r,e[4]=P,e[5]=D):D=e[5];const w=D;let S;e[6]!==E||e[7]!==z||e[8]!==g||e[9]!==x||e[10]!==l||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:l,sortDirection:x,onSort:g,sortOptions:w})})]})}),e[6]=E,e[7]=z,e[8]=g,e[9]=x,e[10]=l,e[11]=w,e[12]=S):S=e[12];let _;e[13]!==h||e[14]!==j||e[15]!==s||e[16]!==N||e[17]!==T||e[18]!==g||e[19]!==k||e[20]!==r||e[21]!==c||e[22]!==x||e[23]!==l||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:r,readOnly:k,actions:h})},A.id))})}):t.jsx(xt,{columns:Ht(j,r,P,h),data:s,sortKey:l,sortDirection:x,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]=j,e[15]=s,e[16]=N,e[17]=T,e[18]=g,e[19]=k,e[20]=r,e[21]=c,e[22]=x,e[23]=l,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||{},r=Object.keys(s).filter(o=>{const m=s[o];return m&&nt(m)}),n=Ut(s),c=[],l=new Set;n&&r.includes(n)&&(c.push(n),l.add(n));const p=["title","description","updated_at","updated_by"];for(const o of p)r.includes(o)&&!l.has(o)&&(c.push(o),l.add(o));const d=r.filter(o=>!l.has(o)&&!Re.includes(o)).sort((o,m)=>o.localeCompare(m));for(const o of d)c.push(o),l.add(o);for(const o of Re)r.includes(o)&&!l.has(o)&&(c.push(o),l.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,r){const n=i||Gt(e,s);return n.some(p=>p.id==="actions")?n:Object.keys(r).length>0?[...n,Qt(r)]:n}function Yt(i){const e=oe.c(119),{connectionId:s,org:r,activeCollection:n,onItemClick:c}=i,l=n.name,p=n.schema??ft,d=n.hasCreateTool,o=n.hasUpdateTool,m=n.hasDeleteTool,u=Be(),{data:f}=ct.useSession(),a=f?.user?.id||"unknown",v=Tt(s);let y;e[0]!==v||e[1]!==s?(y=v?bt(v):s,e[0]=v,e[1]=s,e[2]=y):y=e[2];const b=y,{org:x}=ze();let g;e[3]!==s||e[4]!==x.id||e[5]!==x.slug?(g={connectionId:s,orgId:x.id,orgSlug:x.slug},e[3]=s,e[4]=x.id,e[5]=x.slug,e[6]=g):g=e[6];const $=Ve(g),h=It(s,l,$),T=`${s}-${l}`;let E;e[7]!==r||e[8]!==T?(E={namespace:r,resource:T,defaultSortKey:"updated_at"},e[7]=r,e[8]=T,e[9]=E):E=e[9];const{search:N,searchTerm:k,setSearch:j,viewMode:z,setViewMode:P,sortKey:D,sortDirection:w,handleSort:S}=Ct(E);let _;e[10]!==k||e[11]!==w||e[12]!==D?(_={searchTerm:k,sortKey:D,sortDirection:w},e[10]=k,e[11]=w,e[12]=D,e[13]=_):_=e[13];const I=At(s,l,$,_),A=!d&&!o&&!m;let ne;e[14]!==b||e[15]!==l||e[16]!==u||e[17]!==c||e[18]!==r?(ne=C=>{if(c){c(C);return}u({to:"/$org/settings/connections/$appSlug/$collectionName/$itemId",params:{org:r,appSlug:b,collectionName:l,itemId:C.id}})},e[14]=b,e[15]=l,e[16]=u,e[17]=c,e[18]=r,e[19]=ne):ne=e[19];const L=ne;let le;e[20]!==h.create||e[21]!==a?(le=async C=>{const xe=new Date().toISOString();await h.create.mutateAsync({...C,id:Me("conn"),title:`${C.title} (Copy)`,created_at:xe,updated_at:xe,created_by:a,updated_by:a})},e[20]=h.create,e[21]=a,e[22]=le):le=e[22];const be=le,[F,ve]=dt.useState(null);let re;e[23]===Symbol.for("react.memo_cache_sentinel")?(re=C=>{ve(C)},e[23]=re):re=e[23];const lt=re;let K;e[24]!==L||e[25]!==o?(K=o&&{edit:L},e[24]=L,e[25]=o,e[26]=K):K=e[26];let M;e[27]!==be||e[28]!==d?(M=d&&{duplicate:be},e[27]=be,e[28]=d,e[29]=M):M=e[29];let U;e[30]!==m?(U=m&&{delete:lt},e[30]=m,e[31]=U):U=e[31];let ae;e[32]!==M||e[33]!==U||e[34]!==K?(ae={...K,...M,...U},e[32]=M,e[33]=U,e[34]=K,e[35]=ae):ae=e[35];const ye=ae;let ce;e[36]!==h.delete||e[37]!==F?(ce=async()=>{F&&(await h.delete.mutateAsync(F.id),ve(null))},e[36]=h.delete,e[37]=F,e[38]=ce):ce=e[38];const Ne=ce;let de;e[39]!==h.create||e[40]!==b||e[41]!==l||e[42]!==d||e[43]!==u||e[44]!==r||e[45]!==a?(de=async()=>{if(!d){Le.error("Create operation is not available for this collection");return}const C=new Date().toISOString(),xe={id:Me("conn"),title:"New Item",description:"A brief description of the item",created_at:C,updated_at:C,created_by:a,updated_by:a};try{const ke=await h.create.mutateAsync(xe);u({to:"/$org/settings/connections/$appSlug/$collectionName/$itemId",params:{org:r,appSlug:b,collectionName:l,itemId:ke.id}})}catch(ke){console.error("Failed to create item:",ke)}},e[39]=h.create,e[40]=b,e[41]=l,e[42]=d,e[43]=u,e[44]=r,e[45]=a,e[46]=de):de=e[46];const we=de;let ue;e[47]!==p?(ue=ot(p),e[47]=p,e[48]=ue):ue=e[48];const Se=ue,rt=(I?.length??0)>0,at=d&&!rt&&!N;let me;e[49]!==h.create||e[50]!==we||e[51]!==d?(me=d?t.jsxs(Ce,{onClick:we,size:"sm",disabled:h.create.isPending,className:"h-7",children:[t.jsx(Et,{className:"mr-2 h-4 w-4"}),h.create.isPending?"Creating...":"Create"]}):null,e[49]=h.create,e[50]=we,e[51]=d,e[52]=me):me=e[52];const pe=me,Pe=D;let W;e[53]!==S||e[54]!==w||e[55]!==Se||e[56]!==Pe?(W=t.jsx(Ot,{children:t.jsx(Qe,{sortKey:Pe,sortDirection:w,onSort:S,sortOptions:Se})}),e[53]=S,e[54]=w,e[55]=Se,e[56]=Pe,e[57]=W):W=e[57];const _e=`Search ${l}...`;let R;e[58]!==j?(R=C=>{C.key==="Escape"&&(j(""),C.target.blur())},e[58]=j,e[59]=R):R=e[59];let B;e[60]!==N||e[61]!==j||e[62]!==_e||e[63]!==R?(B=t.jsx("div",{className:"flex-1",children:t.jsx(ht,{value:N,onChange:j,placeholder:_e,onKeyDown:R})}),e[60]=N,e[61]=j,e[62]=_e,e[63]=R,e[64]=B):B=e[64];let V;e[65]!==pe||e[66]!==d?(V=d&&t.jsx("div",{className:"pr-3",children:pe}),e[65]=pe,e[66]=d,e[67]=V):V=e[67];let q;e[68]!==B||e[69]!==V?(q=t.jsxs("div",{className:"flex items-center gap-2",children:[B,V]}),e[68]=B,e[69]=V,e[70]=q):q=e[70];let Q;e[71]!==I?(Q=I??[],e[71]=I,e[72]=Q):Q=e[72];const De=D;let G;e[73]!==L?(G=C=>L(C),e[73]=L,e[74]=G):G=e[74];const Ie="No items found",Ae=N?"Try adjusting your search terms":"This collection doesn't have any items yet.",Te=at?pe:void 0;let H;e[75]!==Ie||e[76]!==Ae||e[77]!==Te?(H=t.jsx(it,{image:null,title:Ie,description:Ae,actions:Te}),e[75]=Ie,e[76]=Ae,e[77]=Te,e[78]=H):H=e[78];let Y;e[79]!==S||e[80]!==A||e[81]!==ye||e[82]!==p||e[83]!==N||e[84]!==j||e[85]!==P||e[86]!==w||e[87]!==Q||e[88]!==De||e[89]!==G||e[90]!==H||e[91]!==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:j,sortKey:De,sortDirection:w,onSort:S,actions:ye,onItemClick:G,readOnly:A,emptyState:H})}),e[79]=S,e[80]=A,e[81]=ye,e[82]=p,e[83]=N,e[84]=j,e[85]=P,e[86]=w,e[87]=Q,e[88]=De,e[89]=G,e[90]=H,e[91]=z,e[92]=Y):Y=e[92];let J;e[93]!==q||e[94]!==Y?(J=t.jsxs("div",{className:"flex flex-col h-full overflow-hidden",children:[q,Y]}),e[93]=q,e[94]=Y,e[95]=J):J=e[95];const Ee=!!F;let fe;e[96]===Symbol.for("react.memo_cache_sentinel")?(fe=C=>{C||ve(null)},e[96]=fe):fe=e[96];let he;e[97]===Symbol.for("react.memo_cache_sentinel")?(he=t.jsx(Nt,{children:"Delete item?"}),e[97]=he):he=e[97];const Oe=F?.title;let Z;e[98]!==Oe?(Z=t.jsxs(wt,{children:[he,t.jsxs(St,{children:['Are you sure you want to delete "',Oe,'"? This action cannot be undone.']})]}),e[98]=Oe,e[99]=Z):Z=e[99];let X;e[100]!==h.delete.isPending?(X=t.jsx(vt,{disabled:h.delete.isPending,children:"Cancel"}),e[100]=h.delete.isPending,e[101]=X):X=e[101];const $e=h.delete.isPending?"Deleting...":"Delete";let ee;e[102]!==h.delete.isPending||e[103]!==Ne||e[104]!==$e?(ee=t.jsx(yt,{onClick:Ne,disabled:h.delete.isPending,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:$e}),e[102]=h.delete.isPending,e[103]=Ne,e[104]=$e,e[105]=ee):ee=e[105];let te;e[106]!==X||e[107]!==ee?(te=t.jsxs(Pt,{children:[X,ee]}),e[106]=X,e[107]=ee,e[108]=te):te=e[108];let se;e[109]!==Z||e[110]!==te?(se=t.jsxs(_t,{children:[Z,te]}),e[109]=Z,e[110]=te,e[111]=se):se=e[111];let ie;e[112]!==Ee||e[113]!==se?(ie=t.jsx(Dt,{open:Ee,onOpenChange:fe,children:se}),e[112]=Ee,e[113]=se,e[114]=ie):ie=e[114];let ge;return e[115]!==W||e[116]!==J||e[117]!==ie?(ge=t.jsxs(t.Fragment,{children:[W,J,ie]}),e[115]=W,e[116]=J,e[117]=ie,e[118]=ge):ge=e[118],ge}function Jt(){const i=oe.c(13),{org:e,project:s}=ze(),r=ut();let n;i[0]!==e.id||i[1]!==e.slug?(n={connectionId:qe,orgId:e.id,orgSlug:e.slug},i[0]=e.id,i[1]=e.slug,i[2]=n):n=i[2];const c=Ve(n);let l;i[3]!==c||i[4]!==s?(l=async m=>{const u=s.enabledPlugins??[];if(u.includes(m))return;const f=[...u,m],a=await c.callTool({name:"COLLECTION_VIRTUAL_MCP_UPDATE",arguments:{id:s.id,data:{metadata:{enabled_plugins:f}}}});return a.structuredContent??a},i[3]=c,i[4]=s,i[5]=l):l=i[5];let p;i[6]!==e.id||i[7]!==s||i[8]!==r?(p=()=>{r.invalidateQueries({queryKey:Fe.project(e.id,s.slug)}),r.invalidateQueries({queryKey:Fe.projects(e.id)})},i[6]=e.id,i[7]=s,i[8]=r,i[9]=p):p=i[9];let d;return i[10]!==l||i[11]!==p?(d={mutationFn:l,onSuccess:p,onError:Zt},i[10]=l,i[11]=p,i[12]=d):d=i[12],mt(d)}function Zt(i){Le.error("Failed to enable plugin: "+(i instanceof Error?i.message:"Unknown error"))}function Xt(i){const e=oe.c(12),{pluginId:s,title:r,description:n,icon:c}=i,l=Jt();let p;e[0]!==l||e[1]!==s?(p=async()=>{try{await l.mutateAsync(s),Le.success("Plugin enabled!")}catch{}},e[0]=l,e[1]=s,e[2]=p):p=e[2];const d=p,o=c??null,m=l.isPending?"Enabling…":"Enable plugin";let u;e[3]!==l.isPending||e[4]!==d||e[5]!==m?(u=t.jsx(Ce,{onClick:d,disabled:l.isPending,children:m}),e[3]=l.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]!==r?(f=t.jsx(it,{image:o,title:r,description:n,actions:u}),e[7]=n,e[8]=o,e[9]=u,e[10]=r,e[11]=f):f=e[11],f}const es={name:"WORKFLOW",displayName:"Workflow",hasCreateTool:!0,hasUpdateTool:!0,hasDeleteTool:!0};function ni(){const{project:i,org:e}=ze();if(!(i.enabledPlugins??[]).includes(Ke))return t.jsx(je,{children:t.jsx(je.Content,{children:t.jsx("div",{className:"flex flex-col items-center justify-center h-full",children:t.jsx(Xt,{pluginId:Ke,title:"Enable Workflows",description:"Automate multi-step processes by enabling the Workflows plugin. Once enabled you can create, run, and monitor workflows.",icon:t.jsx("div",{className:"bg-muted p-4 rounded-full",children:t.jsx(pt,{className:"size-8 text-muted-foreground"})})})})})});const n=Be();return t.jsx(je,{children:t.jsx(je.Content,{children:t.jsx(Yt,{connectionId:qe,org:e.slug,activeCollection:es,onItemClick:c=>n({to:"/$org/settings/workflows/$itemId",params:{org:e.slug,itemId:c.id}})})})})}export{ni as default};
1
+ import{e as oe,j as t,B as Ce,f as Be,b as ct,s as ze,r as dt,x as Le,o as ut,a as mt,K as Fe,Y as Ke,Z as pt}from"./index-Ux_PrmKm.js";import{u as Ve,S as qe}from"./constants-Ccnt3rmd.js";import{B as ft,g as Me}from"./constants-BNhCk86i.js";import{C as Qe}from"./collection-display-button-DnajjLb7.js";import{C as ht}from"./collection-search-Bsl0avLq.js";import{C as gt}from"./card-mlKWkDqb.js";import{I as Ge}from"./integration-icon-Ov0IbIMU.js";import{D as He,a as Ye,b as Je,c as O}from"./dropdown-menu-BXZVht4Z.js";import{c as Ze}from"./XCircle-yJD2sr2j.js";import{i as Xe}from"./DotsVertical-Bx7sSuAL.js";import{y as et,H as Ue}from"./agent-icon-D_KgWkiu.js";import{s as tt}from"./RefreshCcw01-Biyt7Dy2.js";import{s as st}from"./Trash01-PRSN3sYk.js";import{C as xt}from"./collection-table-wrapper-D5rnMkP_.js";import{E as We}from"./empty-state-CGCgWL8i.js";import{U as jt}from"./user-BirTYLn0.js";import{E as it}from"./empty-state-D1x6Uzf-.js";import{u as Ct}from"./use-list-state-Dm-Ww-Vo.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-Dog8t-xg.js";import{a as It,c as At}from"./use-collections-CqB4T92N.js";import{a as Tt}from"./use-connection-C_n04i0m.js";import{s as Et}from"./Plus-DGrvw6bs.js";import{a as Ot}from"./layout-DkCp6X2C.js";import{P as je}from"./index-ILTPQsH4.js";import"./collections-DAavnhku.js";import"./XClose-Ci4dmV-Y.js";import"./Check-a0FPGBtH.js";import"./tooltip-BOsmkVZD.js";import"./view-mode-toggle-_LNgXbfe.js";import"./badge-BWEc0v7O.js";import"./SearchMd-OHnYTa8U.js";import"./Container-cyfm5-Pb.js";import"./ChevronRight-xkl8cwkd.js";import"./AlertCircle-B65qDYSH.js";import"./Tool01-Cq1N-niG.js";import"./ArrowNarrowLeft-fzTyPWny.js";import"./ArrowUpRight-BcX-Z0Ku.js";import"./ZapSquare-M3u7o8sc.js";import"./Users03-CB3lBGeX.js";import"./CheckCircle-B8cGzYri.js";import"./ChevronDown-Z3xhSsnT.js";import"./ChevronUp-Cy7lkJW1.js";import"./Star01-BoJYsaDm.js";import"./Palette-CwWccG-f.js";import"./LinkExternal01-0g6HjjkD.js";import"./Lock01-BzMXxHmW.js";import"./Sun-DA-QmugE.js";import"./Play-C-AiMK-Y.js";import"./Settings02-DO2nBrax.js";import"./Shield01-DQa1zKSX.js";import"./User01-DwPCZdnr.js";import"./X-dZLz-ulr.js";import"./Zap-CYJdRXq9.js";import"./table-CBFs2U43.js";import"./avatar-BebTr4u1.js";import"./use-view-mode-DTFti-L5.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 r=["image","img","avatar","icon","logo","thumbnail","cover"];for(const n of r)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:r,actions:n}=i;let c;e[0]!==s||e[1]!==r?(c=$t(r,s),e[0]=s,e[1]=r,e[2]=c):c=e[2];const l=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]!==l||e[6]!==s.title?(m=t.jsx(Ge,{icon:l,name:s.title,size:"md",className:"shrink-0 shadow-sm"}),e[5]=l,e[6]=s.title,e[7]=m):m=e[7];let u;e[8]!==s.title?(u=t.jsx("h3",{className:"text-base font-medium text-foreground truncate",children:s.title}),e[8]=s.title,e[9]=u):u=e[9];const f=p||"No description";let a;e[10]!==f?(a=t.jsx("p",{className:"text-base text-muted-foreground line-clamp-2",children:f}),e[10]=f,e[11]=a):a=e[11];let v;e[12]!==u||e[13]!==a?(v=t.jsxs("div",{className:"flex flex-col gap-0 flex-1",children:[u,a]}),e[12]=u,e[13]=a,e[14]=v):v=e[14];let y;e[15]!==m||e[16]!==v?(y=t.jsxs("div",{className:"flex flex-col gap-4 p-6 flex-1",children:[m,v]}),e[15]=m,e[16]=v,e[17]=y):y=e[17];let b;e[18]!==n||e[19]!==o||e[20]!==s?(b=o&&t.jsx("div",{className:"absolute top-6 right-6 sm:opacity-0 sm:group-hover:opacity-100 transition-opacity",onClick:Kt,onMouseDown:Ft,children:t.jsxs(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]=b):b=e[21];let x;return e[22]!==y||e[23]!==b?(x=t.jsxs(gt,{className:"cursor-pointer transition-colors hover:bg-accent/50 h-full flex flex-col group relative",children:[y,b]}),e[22]=y,e[23]=b,e[24]=x):x=e[24],x}function zt(i){return i.stopPropagation()}function Lt(i){return i.stopPropagation()}function Ft(i){return i.stopPropagation()}function Kt(i){return i.stopPropagation()}const Mt=["icon","avatar","logo"],Re=["created_at","created_by","id"];function Ut(i){return Object.keys(i).find(e=>Mt.includes(e.toLowerCase()))}function ot(i,e){return Object.keys(i.properties||{}).filter(s=>["id","created_at","updated_at","created_by","updated_by"].includes(s)?!1:e?e.includes(s):!0).map(s=>({id:s,label:s.charAt(0).toUpperCase()+s.slice(1).replace(/_/g," ")}))}function Wt(i){const e=oe.c(30),{data:s,schema:r,viewMode:n,search:c,sortKey:l,sortDirection:p,onSort:d,actions:o,onItemClick:m,headerActions:u,emptyState:f,readOnly:a,columns:v,hideToolbar:y,sortableFields:b}=i,x=p===void 0?"asc":p,g=d===void 0?qt:d;let $;e[0]!==o?($=o===void 0?{}:o,e[0]=o,e[1]=$):$=e[1];const h=$,T=m===void 0?Vt:m,E=u===void 0?null:u,N=f===void 0?null:f,k=a===void 0?!1:a,j=v===void 0?void 0:v,z=y===void 0?!1:y,P=b===void 0?void 0:b;let D;e[2]!==j||e[3]!==r||e[4]!==P?(D=j?j.filter(Bt).filter(A=>!P||P.includes(A.id)).map(Rt):ot(r,P),e[2]=j,e[3]=r,e[4]=P,e[5]=D):D=e[5];const w=D;let S;e[6]!==E||e[7]!==z||e[8]!==g||e[9]!==x||e[10]!==l||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:l,sortDirection:x,onSort:g,sortOptions:w})})]})}),e[6]=E,e[7]=z,e[8]=g,e[9]=x,e[10]=l,e[11]=w,e[12]=S):S=e[12];let _;e[13]!==h||e[14]!==j||e[15]!==s||e[16]!==N||e[17]!==T||e[18]!==g||e[19]!==k||e[20]!==r||e[21]!==c||e[22]!==x||e[23]!==l||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:r,readOnly:k,actions:h})},A.id))})}):t.jsx(xt,{columns:Ht(j,r,P,h),data:s,sortKey:l,sortDirection:x,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]=j,e[15]=s,e[16]=N,e[17]=T,e[18]=g,e[19]=k,e[20]=r,e[21]=c,e[22]=x,e[23]=l,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||{},r=Object.keys(s).filter(o=>{const m=s[o];return m&&nt(m)}),n=Ut(s),c=[],l=new Set;n&&r.includes(n)&&(c.push(n),l.add(n));const p=["title","description","updated_at","updated_by"];for(const o of p)r.includes(o)&&!l.has(o)&&(c.push(o),l.add(o));const d=r.filter(o=>!l.has(o)&&!Re.includes(o)).sort((o,m)=>o.localeCompare(m));for(const o of d)c.push(o),l.add(o);for(const o of Re)r.includes(o)&&!l.has(o)&&(c.push(o),l.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,r){const n=i||Gt(e,s);return n.some(p=>p.id==="actions")?n:Object.keys(r).length>0?[...n,Qt(r)]:n}function Yt(i){const e=oe.c(119),{connectionId:s,org:r,activeCollection:n,onItemClick:c}=i,l=n.name,p=n.schema??ft,d=n.hasCreateTool,o=n.hasUpdateTool,m=n.hasDeleteTool,u=Be(),{data:f}=ct.useSession(),a=f?.user?.id||"unknown",v=Tt(s);let y;e[0]!==v||e[1]!==s?(y=v?bt(v):s,e[0]=v,e[1]=s,e[2]=y):y=e[2];const b=y,{org:x}=ze();let g;e[3]!==s||e[4]!==x.id||e[5]!==x.slug?(g={connectionId:s,orgId:x.id,orgSlug:x.slug},e[3]=s,e[4]=x.id,e[5]=x.slug,e[6]=g):g=e[6];const $=Ve(g),h=It(s,l,$),T=`${s}-${l}`;let E;e[7]!==r||e[8]!==T?(E={namespace:r,resource:T,defaultSortKey:"updated_at"},e[7]=r,e[8]=T,e[9]=E):E=e[9];const{search:N,searchTerm:k,setSearch:j,viewMode:z,setViewMode:P,sortKey:D,sortDirection:w,handleSort:S}=Ct(E);let _;e[10]!==k||e[11]!==w||e[12]!==D?(_={searchTerm:k,sortKey:D,sortDirection:w},e[10]=k,e[11]=w,e[12]=D,e[13]=_):_=e[13];const I=At(s,l,$,_),A=!d&&!o&&!m;let ne;e[14]!==b||e[15]!==l||e[16]!==u||e[17]!==c||e[18]!==r?(ne=C=>{if(c){c(C);return}u({to:"/$org/settings/connections/$appSlug/$collectionName/$itemId",params:{org:r,appSlug:b,collectionName:l,itemId:C.id}})},e[14]=b,e[15]=l,e[16]=u,e[17]=c,e[18]=r,e[19]=ne):ne=e[19];const L=ne;let le;e[20]!==h.create||e[21]!==a?(le=async C=>{const xe=new Date().toISOString();await h.create.mutateAsync({...C,id:Me("conn"),title:`${C.title} (Copy)`,created_at:xe,updated_at:xe,created_by:a,updated_by:a})},e[20]=h.create,e[21]=a,e[22]=le):le=e[22];const be=le,[F,ve]=dt.useState(null);let re;e[23]===Symbol.for("react.memo_cache_sentinel")?(re=C=>{ve(C)},e[23]=re):re=e[23];const lt=re;let K;e[24]!==L||e[25]!==o?(K=o&&{edit:L},e[24]=L,e[25]=o,e[26]=K):K=e[26];let M;e[27]!==be||e[28]!==d?(M=d&&{duplicate:be},e[27]=be,e[28]=d,e[29]=M):M=e[29];let U;e[30]!==m?(U=m&&{delete:lt},e[30]=m,e[31]=U):U=e[31];let ae;e[32]!==M||e[33]!==U||e[34]!==K?(ae={...K,...M,...U},e[32]=M,e[33]=U,e[34]=K,e[35]=ae):ae=e[35];const ye=ae;let ce;e[36]!==h.delete||e[37]!==F?(ce=async()=>{F&&(await h.delete.mutateAsync(F.id),ve(null))},e[36]=h.delete,e[37]=F,e[38]=ce):ce=e[38];const Ne=ce;let de;e[39]!==h.create||e[40]!==b||e[41]!==l||e[42]!==d||e[43]!==u||e[44]!==r||e[45]!==a?(de=async()=>{if(!d){Le.error("Create operation is not available for this collection");return}const C=new Date().toISOString(),xe={id:Me("conn"),title:"New Item",description:"A brief description of the item",created_at:C,updated_at:C,created_by:a,updated_by:a};try{const ke=await h.create.mutateAsync(xe);u({to:"/$org/settings/connections/$appSlug/$collectionName/$itemId",params:{org:r,appSlug:b,collectionName:l,itemId:ke.id}})}catch(ke){console.error("Failed to create item:",ke)}},e[39]=h.create,e[40]=b,e[41]=l,e[42]=d,e[43]=u,e[44]=r,e[45]=a,e[46]=de):de=e[46];const we=de;let ue;e[47]!==p?(ue=ot(p),e[47]=p,e[48]=ue):ue=e[48];const Se=ue,rt=(I?.length??0)>0,at=d&&!rt&&!N;let me;e[49]!==h.create||e[50]!==we||e[51]!==d?(me=d?t.jsxs(Ce,{onClick:we,size:"sm",disabled:h.create.isPending,className:"h-7",children:[t.jsx(Et,{className:"mr-2 h-4 w-4"}),h.create.isPending?"Creating...":"Create"]}):null,e[49]=h.create,e[50]=we,e[51]=d,e[52]=me):me=e[52];const pe=me,Pe=D;let W;e[53]!==S||e[54]!==w||e[55]!==Se||e[56]!==Pe?(W=t.jsx(Ot,{children:t.jsx(Qe,{sortKey:Pe,sortDirection:w,onSort:S,sortOptions:Se})}),e[53]=S,e[54]=w,e[55]=Se,e[56]=Pe,e[57]=W):W=e[57];const _e=`Search ${l}...`;let R;e[58]!==j?(R=C=>{C.key==="Escape"&&(j(""),C.target.blur())},e[58]=j,e[59]=R):R=e[59];let B;e[60]!==N||e[61]!==j||e[62]!==_e||e[63]!==R?(B=t.jsx("div",{className:"flex-1",children:t.jsx(ht,{value:N,onChange:j,placeholder:_e,onKeyDown:R})}),e[60]=N,e[61]=j,e[62]=_e,e[63]=R,e[64]=B):B=e[64];let V;e[65]!==pe||e[66]!==d?(V=d&&t.jsx("div",{className:"pr-3",children:pe}),e[65]=pe,e[66]=d,e[67]=V):V=e[67];let q;e[68]!==B||e[69]!==V?(q=t.jsxs("div",{className:"flex items-center gap-2",children:[B,V]}),e[68]=B,e[69]=V,e[70]=q):q=e[70];let Q;e[71]!==I?(Q=I??[],e[71]=I,e[72]=Q):Q=e[72];const De=D;let G;e[73]!==L?(G=C=>L(C),e[73]=L,e[74]=G):G=e[74];const Ie="No items found",Ae=N?"Try adjusting your search terms":"This collection doesn't have any items yet.",Te=at?pe:void 0;let H;e[75]!==Ie||e[76]!==Ae||e[77]!==Te?(H=t.jsx(it,{image:null,title:Ie,description:Ae,actions:Te}),e[75]=Ie,e[76]=Ae,e[77]=Te,e[78]=H):H=e[78];let Y;e[79]!==S||e[80]!==A||e[81]!==ye||e[82]!==p||e[83]!==N||e[84]!==j||e[85]!==P||e[86]!==w||e[87]!==Q||e[88]!==De||e[89]!==G||e[90]!==H||e[91]!==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:j,sortKey:De,sortDirection:w,onSort:S,actions:ye,onItemClick:G,readOnly:A,emptyState:H})}),e[79]=S,e[80]=A,e[81]=ye,e[82]=p,e[83]=N,e[84]=j,e[85]=P,e[86]=w,e[87]=Q,e[88]=De,e[89]=G,e[90]=H,e[91]=z,e[92]=Y):Y=e[92];let J;e[93]!==q||e[94]!==Y?(J=t.jsxs("div",{className:"flex flex-col h-full overflow-hidden",children:[q,Y]}),e[93]=q,e[94]=Y,e[95]=J):J=e[95];const Ee=!!F;let fe;e[96]===Symbol.for("react.memo_cache_sentinel")?(fe=C=>{C||ve(null)},e[96]=fe):fe=e[96];let he;e[97]===Symbol.for("react.memo_cache_sentinel")?(he=t.jsx(Nt,{children:"Delete item?"}),e[97]=he):he=e[97];const Oe=F?.title;let Z;e[98]!==Oe?(Z=t.jsxs(wt,{children:[he,t.jsxs(St,{children:['Are you sure you want to delete "',Oe,'"? This action cannot be undone.']})]}),e[98]=Oe,e[99]=Z):Z=e[99];let X;e[100]!==h.delete.isPending?(X=t.jsx(vt,{disabled:h.delete.isPending,children:"Cancel"}),e[100]=h.delete.isPending,e[101]=X):X=e[101];const $e=h.delete.isPending?"Deleting...":"Delete";let ee;e[102]!==h.delete.isPending||e[103]!==Ne||e[104]!==$e?(ee=t.jsx(yt,{onClick:Ne,disabled:h.delete.isPending,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:$e}),e[102]=h.delete.isPending,e[103]=Ne,e[104]=$e,e[105]=ee):ee=e[105];let te;e[106]!==X||e[107]!==ee?(te=t.jsxs(Pt,{children:[X,ee]}),e[106]=X,e[107]=ee,e[108]=te):te=e[108];let se;e[109]!==Z||e[110]!==te?(se=t.jsxs(_t,{children:[Z,te]}),e[109]=Z,e[110]=te,e[111]=se):se=e[111];let ie;e[112]!==Ee||e[113]!==se?(ie=t.jsx(Dt,{open:Ee,onOpenChange:fe,children:se}),e[112]=Ee,e[113]=se,e[114]=ie):ie=e[114];let ge;return e[115]!==W||e[116]!==J||e[117]!==ie?(ge=t.jsxs(t.Fragment,{children:[W,J,ie]}),e[115]=W,e[116]=J,e[117]=ie,e[118]=ge):ge=e[118],ge}function Jt(){const i=oe.c(13),{org:e,project:s}=ze(),r=ut();let n;i[0]!==e.id||i[1]!==e.slug?(n={connectionId:qe,orgId:e.id,orgSlug:e.slug},i[0]=e.id,i[1]=e.slug,i[2]=n):n=i[2];const c=Ve(n);let l;i[3]!==c||i[4]!==s?(l=async m=>{const u=s.enabledPlugins??[];if(u.includes(m))return;const f=[...u,m],a=await c.callTool({name:"COLLECTION_VIRTUAL_MCP_UPDATE",arguments:{id:s.id,data:{metadata:{enabled_plugins:f}}}});return a.structuredContent??a},i[3]=c,i[4]=s,i[5]=l):l=i[5];let p;i[6]!==e.id||i[7]!==s||i[8]!==r?(p=()=>{r.invalidateQueries({queryKey:Fe.project(e.id,s.slug)}),r.invalidateQueries({queryKey:Fe.projects(e.id)})},i[6]=e.id,i[7]=s,i[8]=r,i[9]=p):p=i[9];let d;return i[10]!==l||i[11]!==p?(d={mutationFn:l,onSuccess:p,onError:Zt},i[10]=l,i[11]=p,i[12]=d):d=i[12],mt(d)}function Zt(i){Le.error("Failed to enable plugin: "+(i instanceof Error?i.message:"Unknown error"))}function Xt(i){const e=oe.c(12),{pluginId:s,title:r,description:n,icon:c}=i,l=Jt();let p;e[0]!==l||e[1]!==s?(p=async()=>{try{await l.mutateAsync(s),Le.success("Plugin enabled!")}catch{}},e[0]=l,e[1]=s,e[2]=p):p=e[2];const d=p,o=c??null,m=l.isPending?"Enabling…":"Enable plugin";let u;e[3]!==l.isPending||e[4]!==d||e[5]!==m?(u=t.jsx(Ce,{onClick:d,disabled:l.isPending,children:m}),e[3]=l.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]!==r?(f=t.jsx(it,{image:o,title:r,description:n,actions:u}),e[7]=n,e[8]=o,e[9]=u,e[10]=r,e[11]=f):f=e[11],f}const es={name:"WORKFLOW",displayName:"Workflow",hasCreateTool:!0,hasUpdateTool:!0,hasDeleteTool:!0};function ni(){const{project:i,org:e}=ze();if(!(i.enabledPlugins??[]).includes(Ke))return t.jsx(je,{children:t.jsx(je.Content,{children:t.jsx("div",{className:"flex flex-col items-center justify-center h-full",children:t.jsx(Xt,{pluginId:Ke,title:"Enable Workflows",description:"Automate multi-step processes by enabling the Workflows plugin. Once enabled you can create, run, and monitor workflows.",icon:t.jsx("div",{className:"bg-muted p-4 rounded-full",children:t.jsx(pt,{className:"size-8 text-muted-foreground"})})})})})});const n=Be();return t.jsx(je,{children:t.jsx(je.Content,{children:t.jsx(Yt,{connectionId:qe,org:e.slug,activeCollection:es,onItemClick:c=>n({to:"/$org/settings/workflows/$itemId",params:{org:e.slug,itemId:c.id}})})})})}export{ni as default};
@@ -0,0 +1 @@
1
+ import{e as s,g as l,j as o,l as a,E as n,r as c}from"./index-Ux_PrmKm.js";import{a as f}from"./index-BBbwvkmx.js";import"./index-Yaw_OxhP.js";import"./constants-Ccnt3rmd.js";import"./collections-DAavnhku.js";import"./index-CUuCKerO.js";import"./use-virtual-mcp-Cd4gN6tQ.js";import"./use-collections-CqB4T92N.js";import"./monaco-editor-DfIGvq7v.js";import"./index-DgtpEOsQ.js";import"./accordion-DtmZjwNB.js";import"./agent-icon-D_KgWkiu.js";import"./AlertCircle-B65qDYSH.js";import"./Tool01-Cq1N-niG.js";import"./XClose-Ci4dmV-Y.js";import"./RefreshCcw01-Biyt7Dy2.js";import"./ArrowNarrowLeft-fzTyPWny.js";import"./XCircle-yJD2sr2j.js";import"./ArrowUpRight-BcX-Z0Ku.js";import"./ZapSquare-M3u7o8sc.js";import"./Users03-CB3lBGeX.js";import"./CheckCircle-B8cGzYri.js";import"./Check-a0FPGBtH.js";import"./ChevronDown-Z3xhSsnT.js";import"./ChevronRight-xkl8cwkd.js";import"./ChevronUp-Cy7lkJW1.js";import"./DotsVertical-Bx7sSuAL.js";import"./Container-cyfm5-Pb.js";import"./Star01-BoJYsaDm.js";import"./Palette-CwWccG-f.js";import"./SearchMd-OHnYTa8U.js";import"./index-ILTPQsH4.js";import"./tooltip-BOsmkVZD.js";import"./X-dZLz-ulr.js";import"./LinkExternal01-0g6HjjkD.js";import"./Lock01-BzMXxHmW.js";import"./Sun-DA-QmugE.js";import"./Play-C-AiMK-Y.js";import"./Plus-DGrvw6bs.js";import"./Settings02-DO2nBrax.js";import"./Shield01-DQa1zKSX.js";import"./Trash01-PRSN3sYk.js";import"./User01-DwPCZdnr.js";import"./Zap-CYJdRXq9.js";import"./badge-BWEc0v7O.js";import"./select-slwRPncS.js";import"./view-mode-toggle-_LNgXbfe.js";import"./layout-DkCp6X2C.js";import"./use-connection-C_n04i0m.js";import"./use-mcp-tools-uazou5KQ.js";import"./dialog-_YlOXdcS.js";import"./index-I3M58vcg.js";import"./dropdown-menu-BXZVht4Z.js";import"./integration-icon-Ov0IbIMU.js";import"./scroll-area-_bumfcjA.js";import"./index-Cf-Qb03y.js";import"./empty-state-CGCgWL8i.js";import"./create-sse-subscription-CxkOgzKf.js";import"./input-B868_ejo.js";function gt(){const t=s.c(4);let r;t[0]===Symbol.for("react.memo_cache_sentinel")?(r={from:"/shell/$org/settings/workflows/$itemId"},t[0]=r):r=t[0];const{itemId:e}=l(r);let i;t[1]===Symbol.for("react.memo_cache_sentinel")?(i=o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(a,{size:32,className:"animate-spin text-muted-foreground"})}),t[1]=i):i=t[1];const p=decodeURIComponent(e);let m;return t[2]!==p?(m=o.jsx(n,{children:o.jsx(c.Suspense,{fallback:i,children:o.jsx(f,{itemId:p})})}),t[2]=p,t[3]=m):m=t[3],m}export{gt as default};
@@ -27,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-CzhKzgtD.js"></script>
30
+ <script type="module" crossorigin src="/assets/index-Ux_PrmKm.js"></script>
31
31
  <link rel="stylesheet" crossorigin href="/assets/index-B_4-KoG_.css">
32
32
  </head>
33
33
  <body>
@@ -1643,7 +1643,7 @@ AS SELECT
1643
1643
  FROM monitoring_metrics
1644
1644
  GROUP BY organization_id, name, bucket, connection_id, tool_name, status
1645
1645
  `}),console.log("[clickhouse-schema] monitoring_metrics_rollup_1m_mv view ready")}finally{await G.close()}}catch(Y){console.error("[clickhouse-schema] Failed to create rollup DDL (queries will fall back to raw table):",Y)}}async function dA1(X){let Y={...process.env},G=o$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(() => (g$1(),h$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(() => (e30(),Qg4));await K(W.databaseUrl);let{createDatabase:H}=await Promise.resolve().then(() => (GU(),Gg4)),{migrateToLatest:U}=await Promise.resolve().then(() => (Fs4(),Hs4)),B=H(W.databaseUrl);await U({keepOpen:!0,database:B,skipBetterAuth:!0})}if(G.settings.clickhouseUrl){let{ensureClickHouseRollup:K}=await Promise.resolve().then(() => U16);await K(G.settings.clickhouseUrl)}let $={...G.settings,databaseUrl:W.databaseUrl,natsUrls:W.natsUrls};return bt1($),{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 RN0=w(()=>{ft1();l9()});var pA1={};T0(pA1,{updateService:()=>Xa,toggleViewMode:()=>kN0,toggleVibeState:()=>vN0,toggleLogFlow:()=>CN0,subscribeCliState:()=>kX1,setVibe:()=>Ja5,setTuiConsoleIntercepted:()=>cA1,setServerUrl:()=>vX1,setMigrationsDone:()=>CX1,setEnv:()=>_X1,setDevMode:()=>Ga5,setDataDir:()=>Qa5,isTuiConsoleIntercepted:()=>iA1,getCliState:()=>SX1,addLogEntry:()=>Zz});function PU(){for(let X of SN0)X()}function SX1(){return e9}function kX1(X){return SN0.add(X),()=>SN0.delete(X)}function Xa(X){e9={...e9,services:e9.services.map((Y)=>Y.name===X.name?X:Y)},PU()}function CX1(){e9={...e9,migrationsStatus:"done"},PU()}function vX1(X){e9={...e9,serverUrl:X},PU()}function _X1(X){e9={...e9,env:X},PU()}function Zz(X){let Y=[...e9.logs,X];e9={...e9,logs:Y.length>500?Y.slice(-500):Y},PU()}function Ga5(){e9={...e9,services:[...e9.services,{name:"Vite",status:"pending",port:0}]},PU()}function kN0(){e9={...e9,viewMode:e9.viewMode==="requests"?"config":"requests"},PU()}function CN0(){e9={...e9,logFlow:!e9.logFlow},PU()}function Qa5(X){e9={...e9,dataDir:X},PU()}function Ja5(X){e9={...e9,vibe:X},PU()}function vN0(){e9={...e9,vibe:!e9.vibe},PU()}function cA1(X){B16=X}function iA1(){return B16}var e9,SN0,B16=!1;var Wz=w(()=>{e9={services:[{name:"Postgres",status:"pending",port:0},{name:"NATS",status:"pending",port:0}],migrationsStatus:"pending",serverUrl:null,env:null,logs:[],viewMode:"requests",logFlow:!1,vibe:!1,dataDir:null},SN0=new Set});import{createServer as N16}from"net";function Za5(X){return new Promise((Y)=>{let G=N16();G.once("error",()=>Y(!1)),G.listen(X,"0.0.0.0",()=>{G.close(()=>Y(!0))})})}async function nA1(X){if(await Za5(X))return X;let Y=await new Promise((G,Q)=>{let J=N16();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 _N0=()=>{};var fN0={};T0(fN0,{startDevServer:()=>$a5});import{join as Wa5}from"path";function z16(X){return X.replace(/\x1b\[[0-9;]*m/g,"")}function O16(X){let Y=X.getReader(),G=new TextDecoder,Q="";function J(){let W=Q.split(`
1646
- `);Q=W.pop()??"";for(let Z of W){let $=z16(Z).replace(/^\[\d+\]\s*/,"").trim();if(!$)continue;Zz({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=z16(Q).replace(/^\[\d+\]\s*/,"").trim();if(W)Zz({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:W})}})()}async function $a5(X){let{vitePort:Y,baseUrl:G,noTui:Q}=X,J=await nA1(Number(X.port)),{settings:W,services:Z,managedServiceNames:$}=await dA1({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)Xa({name:z.name,status:"ready",port:z.port});_X1(W),CX1();let K=Wa5(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)O16(U.stdout),O16(U.stderr);let B=G||`http://localhost:${W.port}`;vX1(B),Xa({name:"Vite",status:"ready",port:Number(Y)});let N=async(z)=>{if(U.kill(z),$.length>0){let{stopServices:O}=await Promise.resolve().then(() => (g$1(),h$1));await O(W.dataDir)}};return process.on("SIGINT",()=>N("SIGINT")),process.on("SIGTERM",()=>N("SIGTERM")),{port:Number(W.port),process:U}}var bN0=w(()=>{RN0();Wz();_N0()});import{Box as yN0,Text as xN0}from"ink";import{jsx as w16,jsxs as tA1}from"react/jsx-runtime";function D16(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 Fa5(X,Y){if(Ka5.has(X))return Y?{text:"\u25CF\u25CF\u25CF\u25CF\u25CF\u25CF",dimColor:!0}:{text:"not set",dimColor:!0};if(Ha5.has(X)){if(Array.isArray(Y)){if(Y.length===0)return{text:"not set",dimColor:!0};return{text:Y.map((W)=>D16(W)).join(", "),color:"cyan"}}let Q=D16(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 Ua5(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 L16({env:X}){let Y=Ua5(X);return w16(yN0,{flexDirection:"column",children:Y.map((G)=>tA1(yN0,{flexDirection:"column",marginTop:1,children:[tA1(xN0,{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=Fa5(Q,J);return tA1(yN0,{children:[tA1(xN0,{dimColor:!0,children:[" ",Q.padEnd(36)]}),w16(xN0,{color:W.color,dimColor:W.dimColor,children:W.text})]},Q)})]},G.title))})}var Ka5,Ha5;var E16=w(()=>{Ka5=new Set(["BETTER_AUTH_SECRET","ENCRYPTION_KEY","MESH_JWT_SECRET","STUDIO_PROVISION_SECRET_KEY"]),Ha5=new Set(["DATABASE_URL","CLICKHOUSE_URL","NATS_URL"])});var hN0;var P16=w(()=>{hN0={name:"decocms",version:"2.304.16",description:"Deco CMS \u2014 Self-hostable MCP Gateway for managing AI connections and tools",author:"Deco team",repository:{type:"git",url:"git+https://github.com/decocms/studio.git",directory:"apps/mesh"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:'bun run migrate && concurrently "bun run dev:client" "bun run dev:server"',"dev:servers":'concurrently "bun run dev:client" "bun run dev:server"',"dev:client":"bun --bun vite dev","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts","build:client":"bun --bun vite build","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","db:migrate":"bun run ./dist/server/migrate.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts",test:"bun test","test:e2e":"playwright test","test:e2e:ui":"playwright test --ui","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts",prepublishOnly:"bun run build:client && bun run build:server"},optionalDependencies:{"@duckdb/node-api":"^1.5.0-r.1","@freestyle-sh/with-bun":"^0.2.12","@freestyle-sh/with-deno":"^0.0.4","@freestyle-sh/with-nodejs":"^0.2.9","freestyle-sandboxes":"^0.1.46"},dependencies:{"@ai-sdk/anthropic":"^3.0.58","@ai-sdk/google":"^3.0.60","@ai-sdk/openai":"^3.0.50","@anthropic-ai/sdk":"^0.79.0","@aws-sdk/client-s3":"^3.1013.0","@aws-sdk/s3-request-presigner":"^3.1013.0","@clickhouse/client":"^1.8.1","@deco-cx/warp-node":"^0.3.20","@dnd-kit/core":"^6.3.1","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@inkjs/ui":"^2.0.0","@modelcontextprotocol/ext-apps":"^1.2.2","@openrouter/ai-sdk-provider":"^2.2.5","@opentelemetry/core":"^2.6.0","@tanstack/react-virtual":"^3.13.21","@xterm/addon-fit":"^0.11.0","@xterm/xterm":"^6.0.0","ai-sdk-provider-claude-code":"^3.4.4","ai-sdk-provider-codex-cli":"^1.1.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12",nats:"^2.29.3","node-pty":"^1.0.0","posthog-js":"^1.371.1","posthog-node":"^5.0.0",react:"^19.2.0","react-dom":"^19.2.0"},devDependencies:{"@ai-sdk/provider":"^3.0.8","@ai-sdk/react":"^3.0.118","@anthropic-ai/claude-agent-sdk":"^0.2.80","@better-auth/sso":"1.4.1","@daveyplate/better-auth-ui":"^3.2.7","@deco/ui":"workspace:*","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/mesh-sdk":"workspace:*","@decocms/runtime":"workspace:*","@decocms/vite-plugin":"workspace:*","@electric-sql/pglite":"^0.3.15","@floating-ui/react":"^0.27.16","@hookform/resolvers":"^5.2.2","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.27.1","@monaco-editor/react":"^4.7.0","@opentelemetry/api":"^1.9.0","@opentelemetry/api-logs":"^0.211.0","@opentelemetry/exporter-logs-otlp-proto":"^0.211.0","@opentelemetry/exporter-prometheus":"^0.208.0","@opentelemetry/exporter-trace-otlp-proto":"^0.207.0","@opentelemetry/instrumentation-runtime-node":"^0.24.0","@opentelemetry/sdk-logs":"^0.211.0","@opentelemetry/sdk-metrics":"^2.2.0","@opentelemetry/sdk-node":"^0.207.0","@opentelemetry/sdk-trace-base":"^2.5.0","@playwright/test":"^1.58.2","@radix-ui/react-avatar":"^1.1.10","@radix-ui/react-checkbox":"^1.3.3","@radix-ui/react-dialog":"^1.1.15","@radix-ui/react-dropdown-menu":"^2.1.16","@radix-ui/react-label":"^2.1.7","@radix-ui/react-select":"^2.2.6","@radix-ui/react-separator":"^1.1.7","@radix-ui/react-slot":"^1.2.3","@radix-ui/react-tabs":"^1.1.13","@rjsf/core":"^6.1.2","@rjsf/shadcn":"^6.1.2","@rjsf/utils":"^6.1.2","@rjsf/validator-ajv8":"^6.1.2","@tailwindcss/vite":"^4.1.17","@tanstack/react-query":"5.90.11","@tanstack/react-router":"^1.139.7","@tiptap/core":"3.20.2","@tiptap/extension-mention":"3.20.2","@tiptap/extension-placeholder":"3.20.2","@tiptap/pm":"3.20.2","@tiptap/react":"3.20.2","@tiptap/starter-kit":"3.20.2","@tiptap/suggestion":"3.20.2","@types/bun":"^1.3.1","@types/pg":"^8.15.6","@types/react-syntax-highlighter":"^15.5.13","@untitledui/icons":"^0.0.19","@vercel/nft":"^1.1.1","@vitejs/plugin-react":"^5.1.0",ai:"^6.0.116","babel-plugin-react-compiler":"^1.0.0","better-auth":"1.4.5","class-variance-authority":"^0.7.1",clsx:"^2.1.1",concurrently:"^9.2.1",croner:"^9.1.0","date-fns":"^4.1.0",degit:"^2.8.4",hono:"^4.10.7","input-otp":"^1.4.2",jose:"^6.0.11","kysely-pglite":"^0.6.1","lucide-react":"^0.468.0",marked:"^15.0.6","@decocms/sandbox":"workspace:*","mesh-plugin-workflows":"workspace:*",nanoid:"^5.1.6",pg:"^8.16.3",prettier:"^3.4.2","react-hook-form":"^7.66.0","react-markdown":"^10.1.0","react-resizable-panels":"^2.1.7","react-syntax-highlighter":"^15.6.1",recharts:"^3.6.0","rehype-raw":"^7.0.0","remark-gfm":"^4.0.0","sass-embedded":"^1.97.2",sonner:"^2.0.7","tailwind-merge":"^3.3.1",tailwindcss:"^4.1.17",typescript:"^5.9.3",vite:"^7.2.1","vite-tsconfig-paths":"^5.1.4",zod:"^4.0.0",zustand:"^5.0.9"},homepage:"https://github.com/decocms/studio",keywords:["mcp","model-context-protocol","ai","gateway","self-hosted","mesh","tools"],license:"MIT",publishConfig:{access:"public"}}});import{Box as qU,Text as RX}from"ink";import{Spinner as Na5}from"@inkjs/ui";import{useSyncExternalStore as q16}from"react";import{jsx as TY,jsxs as sQ}from"react/jsx-runtime";function La5(X,Y){if(!X||!wa5.has(X))return X;let G=gN0[Y]??gN0[gN0.length-1];return X==="#875f00"?G[0]:G[1]}function A16({status:X}){if(X==="pending")return TY(Na5,{label:""});return TY(RX,{color:"green",children:"\u2713"})}function T16({services:X,migrationsStatus:Y,home:G,serverUrl:Q,vibe:J}){let W=q16(lm0,um0),Z=q16(nm0,pm0);return sQ(qU,{flexDirection:"column",paddingBottom:1,children:[J?sQ(qU,{flexDirection:"column",children:[W.map(($,K)=>{let H=Z[K],U=$.reduce((N,z)=>N+z.text.length,0),B=Math.max(0,Da5-U);return sQ(qU,{flexDirection:"row",children:[$.map((N,z)=>{let O=La5(N.color,K);return O?TY(RX,{color:O,children:N.text},z):TY(RX,{children:N.text},z)}),TY(RX,{children:" ".repeat(B+2)}),H?.map((N,z)=>N.color?TY(RX,{color:N.color,children:N.char},z):TY(RX,{children:N.char},z))]},K)}),sQ(RX,{dimColor:!0,children:[" v",hN0.version]})]}):sQ(qU,{flexDirection:"column",marginTop:1,children:[za5.map(($,K)=>TY(RX,{color:Oa5[K],children:$},K)),sQ(RX,{dimColor:!0,children:[" v",hN0.version]})]}),TY(qU,{marginBottom:1,children:TY(RX,{dimColor:!0,children:"\u2500".repeat(80)})}),TY(qU,{children:sQ(RX,{dimColor:!0,children:["Home: ",G]})}),sQ(qU,{gap:2,children:[X.map(($)=>sQ(qU,{gap:1,children:[sQ(RX,{children:[$.name," :",$.port||"...."]}),TY(A16,{status:$.status})]},$.name)),sQ(qU,{gap:1,children:[TY(RX,{children:"Migrations"}),TY(A16,{status:Y})]})]}),TY(qU,{children:Q?sQ(RX,{children:["Open in browser: ",TY(RX,{color:"cyan",children:Q})]}):TY(RX,{dimColor:!0,children:"Starting..."})}),sQ(qU,{gap:2,children:[sQ(RX,{dimColor:!0,children:[TY(RX,{bold:!0,dimColor:!0,children:"K"})," ","toggle config"]}),sQ(RX,{dimColor:!0,children:[TY(RX,{bold:!0,dimColor:!0,children:"L"})," ","toggle log flow"]}),sQ(RX,{dimColor:!0,children:[TY(RX,{bold:!0,dimColor:!0,children:"V"})," ","toggle vibe ",J?"\u266A Nihilore \xB7 CC BY 4.0":""]}),J&&sQ(RX,{dimColor:!0,children:[TY(RX,{bold:!0,dimColor:!0,children:"N"})," ","skip song"]})]})]})}var za5,Oa5,gN0,Da5=30,wa5;var I16=w(()=>{P16();Tt1();St1();za5=[" \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 "],Oa5=["#00ff64","#00ee5e","#00dc56","#00c84e","#00b444","#00a03c","#008832","#006e28"],gN0=[["#00ff64","#00cc50"],["#00f060","#00c04c"],["#00e05c","#00b448"],["#00d058","#00a844"],["#00c054","#009c40"],["#00b050","#00903c"],["#00a04c","#008438"],["#009048","#007834"],["#008044","#006c30"],["#007040","#00602c"],["#00603c","#005428"]],wa5=new Set(["#875f00","#5f3800"])});import{useSyncExternalStore as Ea5}from"react";function Pa5(){let X=process.stdout.rows||24,Y=process.stdout.columns||80;if(X!==aA1.rows||Y!==aA1.columns)aA1={rows:X,columns:Y};return aA1}function qa5(X){return process.stdout.on("resize",X),()=>{process.stdout.off("resize",X)}}function V16(){return Ea5(qa5,Pa5)}var aA1;var j16=w(()=>{aA1={rows:process.stdout.rows||24,columns:process.stdout.columns||80}});import{Box as Aa5,Text as fX1}from"ink";import{useSyncExternalStore as Ta5}from"react";import{jsx as uN0,jsxs as lN0}from"react/jsx-runtime";function Ia5(X){if(X>=500)return"red";if(X>=400)return"yellow";if(X>=300)return"cyan";return"green"}function M16({logs:X,headerHeight:Y}){let{rows:G}=V16(),{logFlow:Q}=Ta5(kX1,SX1),J=Math.max(1,G-Y-1),W=Q?X:X.slice(-J);return uN0(Aa5,{flexDirection:"column",children:W.map((Z,$)=>{if(Z.rawLine)return uN0(fX1,{dimColor:!0,children:Z.rawLine},$);let K=Z.duration<1000?`${Z.duration}ms`:`${(Z.duration/1000).toFixed(1)}s`;return lN0(fX1,{children:[lN0(fX1,{dimColor:!0,children:[Z.method.padEnd(6)," ",Z.path.padEnd(30)," "]}),uN0(fX1,{color:Ia5(Z.status),children:Z.status}),lN0(fX1,{dimColor:!0,children:[" ",K.padStart(8)]})]},$)})})}var R16=w(()=>{Wz();j16()});var mN0={};T0(mN0,{App:()=>Ca5});import{Box as Va5,Text as ja5,useInput as Ma5}from"ink";import{useSyncExternalStore as Ra5}from"react";import{jsx as rA1,jsxs as va5}from"react/jsx-runtime";function Ca5({home:X}){let Y=Ra5(kX1,SX1);return Ma5((G)=>{if(G==="k"||G==="K")kN0();if(G==="l"||G==="L")CN0();if((G==="v"||G==="V")&&Y.dataDir)_t1(Y.dataDir),vN0();if((G==="n"||G==="N")&&Y.vibe)vt1()}),va5(Va5,{flexDirection:"column",children:[rA1(T16,{services:Y.services,migrationsStatus:Y.migrationsStatus,home:X,serverUrl:Y.serverUrl,vibe:Y.vibe}),Y.viewMode==="config"?Y.env?rA1(L16,{env:Y.env}):rA1(ja5,{dimColor:!0,children:"Loading configuration..."}):rA1(M16,{logs:Y.logs,headerHeight:Y.vibe?ka5:Sa5})]})}var Sa5=15,ka5=19;var dN0=w(()=>{E16();I16();R16();Wz();_d()});function S16(X,Y={}){return{PORT:String(X.port),NODE_ENV:X.nodeEnv,BASE_URL:X.baseUrl,DATA_DIR:X.dataDir,DECOCMS_HOME:X.dataDir,DATABASE_URL:X.databaseUrl,DATABASE_PG_SSL:String(X.databasePgSsl),DATABASE_POOL_MAX:String(X.databasePoolMax),NATS_URL:X.natsUrls.join(","),BETTER_AUTH_SECRET:X.betterAuthSecret,ENCRYPTION_KEY:X.encryptionKey,MESH_JWT_SECRET:X.meshJwtSecret,DECOCMS_LOCAL_MODE:String(X.localMode),DISABLE_RATE_LIMIT:String(X.disableRateLimit),STUDIO_PROVISION_SECRET_KEY:X.studioProvisionSecretKey,CONFIG_PATH:X.configPath,...Object.fromEntries(Object.entries(process.env).filter(([G])=>G.startsWith("AUTH_"))),DECO_AI_GATEWAY_ENABLED:String(X.aiGatewayEnabled),DECO_AI_GATEWAY_URL:X.aiGatewayUrl,ENABLE_DECO_IMPORT:String(X.enableDecoImport),S3_ENDPOINT:X.s3Endpoint,S3_BUCKET:X.s3Bucket,S3_REGION:X.s3Region,S3_ACCESS_KEY_ID:X.s3AccessKeyId,S3_SECRET_ACCESS_KEY:X.s3SecretAccessKey,S3_FORCE_PATH_STYLE:String(X.s3ForcePathStyle),OTEL_SERVICE_NAME:X.otelServiceName,CLICKHOUSE_URL:X.clickhouseUrl,OTEL_EXPORTER_OTLP_ENDPOINT:process.env.OTEL_EXPORTER_OTLP_ENDPOINT,OTEL_EXPORTER_OTLP_PROTOCOL:process.env.OTEL_EXPORTER_OTLP_PROTOCOL,OTEL_RESOURCE_ATTRIBUTES:process.env.OTEL_RESOURCE_ATTRIBUTES,DECO_SUPABASE_URL:X.decoSupabaseUrl,DECO_SUPABASE_SERVICE_KEY:X.decoSupabaseServiceKey,FIRECRAWL_API_KEY:X.firecrawlApiKey,STUDIO_SANDBOX_RUNNER:process.env.STUDIO_SANDBOX_RUNNER,STUDIO_SANDBOX_TEMPLATE_NAME:process.env.STUDIO_SANDBOX_TEMPLATE_NAME,STUDIO_ENV:process.env.STUDIO_ENV,STUDIO_SANDBOX_PREVIEW_URL_PATTERN:process.env.STUDIO_SANDBOX_PREVIEW_URL_PATTERN,STUDIO_SANDBOX_PREVIEW_GATEWAY_NAME:process.env.STUDIO_SANDBOX_PREVIEW_GATEWAY_NAME,STUDIO_SANDBOX_PREVIEW_GATEWAY_NAMESPACE:process.env.STUDIO_SANDBOX_PREVIEW_GATEWAY_NAMESPACE,STUDIO_SANDBOX_SENTINEL_TOKEN:process.env.STUDIO_SANDBOX_SENTINEL_TOKEN,KUBERNETES_SERVICE_HOST:process.env.KUBERNETES_SERVICE_HOST,KUBERNETES_SERVICE_PORT:process.env.KUBERNETES_SERVICE_PORT,FREESTYLE_API_KEY:process.env.FREESTYLE_API_KEY,BROWSERLESS_TOKEN:process.env.BROWSERLESS_TOKEN,NODE_EXTRA_CA_CERTS:process.env.NODE_EXTRA_CA_CERTS,DECO_CLI:"1",DECO_NO_TUI:"true",...Y}}var bj=k((ha5)=>{ha5.HttpAuthLocation=void 0;(function(X){X.HEADER="header",X.QUERY="query"})(ha5.HttpAuthLocation||(ha5.HttpAuthLocation={}));ha5.HttpApiKeyAuthLocation=void 0;(function(X){X.HEADER="header",X.QUERY="query"})(ha5.HttpApiKeyAuthLocation||(ha5.HttpApiKeyAuthLocation={}));ha5.EndpointURLScheme=void 0;(function(X){X.HTTP="http",X.HTTPS="https"})(ha5.EndpointURLScheme||(ha5.EndpointURLScheme={}));ha5.AlgorithmId=void 0;(function(X){X.MD5="md5",X.CRC32="crc32",X.CRC32C="crc32c",X.SHA1="sha1",X.SHA256="sha256"})(ha5.AlgorithmId||(ha5.AlgorithmId={}));var _a5=(X)=>{let Y=[];if(X.sha256!==void 0)Y.push({algorithmId:()=>ha5.AlgorithmId.SHA256,checksumConstructor:()=>X.sha256});if(X.md5!=null)Y.push({algorithmId:()=>ha5.AlgorithmId.MD5,checksumConstructor:()=>X.md5});return{addChecksumAlgorithm(G){Y.push(G)},checksumAlgorithms(){return Y}}},fa5=(X)=>{let Y={};return X.checksumAlgorithms().forEach((G)=>{Y[G.algorithmId()]=G.checksumConstructor()}),Y},ba5=(X)=>{return _a5(X)},ya5=(X)=>{return fa5(X)};ha5.FieldPosition=void 0;(function(X){X[X.HEADER=0]="HEADER",X[X.TRAILER=1]="TRAILER"})(ha5.FieldPosition||(ha5.FieldPosition={}));var xa5="__smithy_context";ha5.IniSectionType=void 0;(function(X){X.PROFILE="profile",X.SSO_SESSION="sso-session",X.SERVICES="services"})(ha5.IniSectionType||(ha5.IniSectionType={}));ha5.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"})(ha5.RequestHandlerProtocol||(ha5.RequestHandlerProtocol={}));ha5.SMITHY_CONTEXT_KEY=xa5;ha5.getDefaultClientConfiguration=ba5;ha5.resolveDefaultRuntimeConfig=ya5});var u7=k((na5)=>{var ma5=bj(),da5=(X)=>{return{setHttpHandler(Y){X.httpHandler=Y},httpHandler(){return X.httpHandler},updateHttpClientConfig(Y,G){X.httpHandler?.updateHttpClientConfig(Y,G)},httpHandlerConfigs(){return X.httpHandler.httpHandlerConfigs()}}},ca5=(X)=>{return{httpHandler:X.httpHandler()}};class k16{name;kind;values;constructor({name:X,kind:Y=ma5.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 C16{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 oA1{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 oA1({...X,headers:{...X.headers}});if(Y.query)Y.query=ia5(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 oA1.clone(this)}}function ia5(X){return Object.keys(X).reduce((Y,G)=>{let Q=X[G];return{...Y,[G]:Array.isArray(Q)?[...Q]:Q}},{})}class v16{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 pa5(X){return/^[a-z0-9][a-z0-9\.\-]*[a-z0-9]$/.test(X)}na5.Field=k16;na5.Fields=C16;na5.HttpRequest=oA1;na5.HttpResponse=v16;na5.getHttpHandlerExtensionConfiguration=da5;na5.isValidHostname=pa5;na5.resolveHttpHandlerRuntimeConfig=ca5});function Yr5(X){return(Y)=>async(G)=>{let{request:Q}=G;if(X.expectContinueHeader!==!1&&_16.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 _16,Gr5,f16=(X)=>({applyToStack:(Y)=>{Y.add(Yr5(X),Gr5)}});var b16=w(()=>{_16=X1(u7(),1);Gr5={step:"build",tags:["SET_EXPECT_HEADER","EXPECT_HEADER"],name:"addExpectContinueMiddleware",override:!0}});var wH,sA1,yj,eA1,E9,y16,yX1;var LH=w(()=>{wH={WHEN_SUPPORTED:"WHEN_SUPPORTED",WHEN_REQUIRED:"WHEN_REQUIRED"},sA1=wH.WHEN_SUPPORTED,yj={WHEN_SUPPORTED:"WHEN_SUPPORTED",WHEN_REQUIRED:"WHEN_REQUIRED"},eA1=wH.WHEN_SUPPORTED;(function(X){X.MD5="MD5",X.CRC32="CRC32",X.CRC32C="CRC32C",X.CRC64NVME="CRC64NVME",X.SHA1="SHA1",X.SHA256="SHA256"})(E9||(E9={}));(function(X){X.HEADER="header",X.TRAILER="trailer"})(y16||(y16={}));yX1=E9.CRC32});var kq,Ya=(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 rN0=w(()=>{(function(X){X.ENV="env",X.CONFIG="shared config entry"})(kq||(kq={}))});var Qr5="AWS_REQUEST_CHECKSUM_CALCULATION",Jr5="request_checksum_calculation",x16;var h16=w(()=>{LH();rN0();x16={environmentVariableSelector:(X)=>Ya(X,Qr5,wH,kq.ENV),configFileSelector:(X)=>Ya(X,Jr5,wH,kq.CONFIG),default:sA1}});var Zr5="AWS_RESPONSE_CHECKSUM_VALIDATION",Wr5="response_checksum_validation",g16;var u16=w(()=>{LH();rN0();g16={environmentVariableSelector:(X)=>Ya(X,Zr5,yj,kq.ENV),configFileSelector:(X)=>Ya(X,Wr5,yj,kq.CONFIG),default:eA1}});var sN0=k((Dr5)=>{var $r5=["AuthFailure","InvalidSignatureException","RequestExpired","RequestInTheFuture","RequestTimeTooSkewed","SignatureDoesNotMatch"],Kr5=["BandwidthLimitExceeded","EC2ThrottledException","LimitExceededException","PriorRequestNotComplete","ProvisionedThroughputExceededException","RequestLimitExceeded","RequestThrottled","RequestThrottledException","SlowDown","ThrottledException","Throttling","ThrottlingException","TooManyRequestsException","TransactionInProgressException"],Hr5=["TimeoutError","RequestTimeout","RequestTimeoutException"],Fr5=[500,502,503,504],Ur5=["ECONNRESET","ECONNREFUSED","EPIPE","ETIMEDOUT"],Br5=["EHOSTUNREACH","ENETUNREACH","ENOTFOUND"],l16=(X)=>X?.$retryable!==void 0,Nr5=(X)=>$r5.includes(X.name),m16=(X)=>X.$metadata?.clockSkewCorrected,d16=(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)},zr5=(X)=>X.$metadata?.httpStatusCode===429||Kr5.includes(X.name)||X.$retryable?.throttling==!0,oN0=(X,Y=0)=>l16(X)||m16(X)||X.name==="InvalidSignatureException"&&X.message?.includes("Signature expired")||Hr5.includes(X.name)||Ur5.includes(X?.code||"")||Br5.includes(X?.code||"")||Fr5.includes(X.$metadata?.httpStatusCode||0)||d16(X)||c16(X)||X.cause!==void 0&&Y<=10&&oN0(X.cause,Y+1),Or5=(X)=>{if(X.$metadata?.httpStatusCode!==void 0){let Y=X.$metadata.httpStatusCode;if(500<=Y&&Y<=599&&!oN0(X))return!0;return!1}return!1};function c16(X){return X.code==="ERR_HTTP2_STREAM_ERROR"&&X.message.includes("NGHTTP2_REFUSED_STREAM")}Dr5.isBrowserNetworkError=d16;Dr5.isClockSkewCorrectedError=m16;Dr5.isClockSkewError=Nr5;Dr5.isNodeJsHttp2TransientError=c16;Dr5.isRetryableByTrait=l16;Dr5.isServerError=Or5;Dr5.isThrottlingError=zr5;Dr5.isTransientError=oN0});var Dw=k((_r5)=>{var Vr5=sN0();_r5.RETRY_MODES=void 0;(function(X){X.STANDARD="standard",X.ADAPTIVE="adaptive"})(_r5.RETRY_MODES||(_r5.RETRY_MODES={}));var YT1=3,jr5=_r5.RETRY_MODES.STANDARD;class GT1{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"||Vr5.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)=>GT1.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 Mr5=100,Yz0=20000,Rr5=500,eN0=500,Sr5=5,kr5=10,i16=1,Cr5="amz-sdk-invocation-id",vr5="amz-sdk-request";class eQ{static v2026=typeof process<"u"&&process.env?.SMITHY_NEW_RETRIES_2026==="true";static delay(){return eQ.v2026?50:100}static throttlingDelay(){return eQ.v2026?1000:500}static cost(){return eQ.v2026?14:5}static throttlingCost(){return eQ.v2026?5:10}static modifiedCostType(){return eQ.v2026?"THROTTLING":"TRANSIENT"}}class p16{x=eQ.delay();computeNextBackoffDelay(X){let Y=Math.random(),G=2,Q=Y*Math.min(this.x*2**X,Yz0);return Math.floor(Q)}setDelayBase(X){this.x=X}}class Xz0{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(Yz0,this.delay)}getRetryCost(){return this.cost}isLongPoll(){return this.longPoll}}var XT1={incompatible:1,attempts:2,capacity:3};class xX1{mode=_r5.RETRY_MODES.STANDARD;capacity=eN0;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()=>YT1,this.baseDelay??=eQ.delay(),this.retryBackoffStrategy??=new p16}async acquireInitialRetryToken(X){return new Xz0(eQ.delay(),0,void 0,eQ.v2026&&X.includes(":longpoll"))}async refreshRetryTokenForRetry(X,Y){let G=await this.getMaxAttempts(),Q=this.retryCode(X,Y,G),J=Q===0,W=X.isLongPoll?.();if(J||W){let Z=Y.errorType;this.retryBackoffStrategy.setDelayBase(Z==="THROTTLING"?eQ.throttlingDelay():this.baseDelay);let $=this.retryBackoffStrategy.computeNextBackoffDelay(X.getRetryCount()),K=$;if(Y.retryAfterHint instanceof Date)K=Math.max($,Math.min(Y.retryAfterHint.getTime()-Date.now(),$+5000));if(!J)throw Object.assign(Error("No retry token available"),{$backoff:eQ.v2026&&Q===XT1.capacity&&W?K:0});else{let H=this.getCapacityCost(Z);return this.capacity-=H,new Xz0(K,X.getRetryCount()+1,H,X.isLongPoll?.()??!1)}}throw Error("No retry token available")}recordSuccess(X){this.capacity=Math.min(eN0,this.capacity+(X.getRetryCost()??i16))}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 ${YT1}`),YT1}}retryCode(X,Y,G){let Q=X.getRetryCount()+1,J=this.isRetryableError(Y.errorType)?0:XT1.incompatible,W=Q<G?0:XT1.attempts,Z=this.capacity>=this.getCapacityCost(Y.errorType)?0:XT1.capacity;return J||W||Z}getCapacityCost(X){return X===eQ.modifiedCostType()?eQ.throttlingCost():eQ.cost()}isRetryableError(X){return X==="THROTTLING"||X==="TRANSIENT"}}class n16{mode=_r5.RETRY_MODES.ADAPTIVE;rateLimiter;standardRetryStrategy;constructor(X,Y){let{rateLimiter:G}=Y??{};this.rateLimiter=G??new GT1,this.standardRetryStrategy=Y?new xX1({maxAttempts:typeof X==="number"?X:3,...Y}):new xX1(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 t16 extends xX1{computeNextBackoffDelay;constructor(X,Y=eQ.delay()){super(typeof X==="function"?X:async()=>X);if(typeof Y==="number")this.computeNextBackoffDelay=()=>Y;else this.computeNextBackoffDelay=Y}async refreshRetryTokenForRetry(X,Y){let G=await super.refreshRetryTokenForRetry(X,Y);return G.getRetryDelay=()=>this.computeNextBackoffDelay(G.getRetryCount()),G}}_r5.AdaptiveRetryStrategy=n16;_r5.ConfiguredRetryStrategy=t16;_r5.DEFAULT_MAX_ATTEMPTS=YT1;_r5.DEFAULT_RETRY_DELAY_BASE=Mr5;_r5.DEFAULT_RETRY_MODE=jr5;_r5.DefaultRateLimiter=GT1;_r5.INITIAL_RETRY_TOKENS=eN0;_r5.INVOCATION_ID_HEADER=Cr5;_r5.MAXIMUM_RETRY_DELAY=Yz0;_r5.NO_RETRY_INCREMENT=i16;_r5.REQUEST_HEADER=vr5;_r5.RETRY_COST=Sr5;_r5.Retry=eQ;_r5.StandardRetryStrategy=xX1;_r5.THROTTLING_RETRY_DELAY_BASE=Rr5;_r5.TIMEOUT_RETRY_COST=kr5});var WX=k((Jo5)=>{var rr5=Dw(),Gz0={warningEmitted:!1},or5=(X)=>{if(X&&!Gz0.warningEmitted&&parseInt(X.substring(1,X.indexOf(".")))<20)Gz0.warningEmitted=!0,process.emitWarning(`NodeDeprecationWarning: The AWS SDK for JavaScript (v3) will
1646
+ `);Q=W.pop()??"";for(let Z of W){let $=z16(Z).replace(/^\[\d+\]\s*/,"").trim();if(!$)continue;Zz({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=z16(Q).replace(/^\[\d+\]\s*/,"").trim();if(W)Zz({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:W})}})()}async function $a5(X){let{vitePort:Y,baseUrl:G,noTui:Q}=X,J=await nA1(Number(X.port)),{settings:W,services:Z,managedServiceNames:$}=await dA1({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)Xa({name:z.name,status:"ready",port:z.port});_X1(W),CX1();let K=Wa5(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)O16(U.stdout),O16(U.stderr);let B=G||`http://localhost:${W.port}`;vX1(B),Xa({name:"Vite",status:"ready",port:Number(Y)});let N=async(z)=>{if(U.kill(z),$.length>0){let{stopServices:O}=await Promise.resolve().then(() => (g$1(),h$1));await O(W.dataDir)}};return process.on("SIGINT",()=>N("SIGINT")),process.on("SIGTERM",()=>N("SIGTERM")),{port:Number(W.port),process:U}}var bN0=w(()=>{RN0();Wz();_N0()});import{Box as yN0,Text as xN0}from"ink";import{jsx as w16,jsxs as tA1}from"react/jsx-runtime";function D16(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 Fa5(X,Y){if(Ka5.has(X))return Y?{text:"\u25CF\u25CF\u25CF\u25CF\u25CF\u25CF",dimColor:!0}:{text:"not set",dimColor:!0};if(Ha5.has(X)){if(Array.isArray(Y)){if(Y.length===0)return{text:"not set",dimColor:!0};return{text:Y.map((W)=>D16(W)).join(", "),color:"cyan"}}let Q=D16(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 Ua5(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 L16({env:X}){let Y=Ua5(X);return w16(yN0,{flexDirection:"column",children:Y.map((G)=>tA1(yN0,{flexDirection:"column",marginTop:1,children:[tA1(xN0,{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=Fa5(Q,J);return tA1(yN0,{children:[tA1(xN0,{dimColor:!0,children:[" ",Q.padEnd(36)]}),w16(xN0,{color:W.color,dimColor:W.dimColor,children:W.text})]},Q)})]},G.title))})}var Ka5,Ha5;var E16=w(()=>{Ka5=new Set(["BETTER_AUTH_SECRET","ENCRYPTION_KEY","MESH_JWT_SECRET","STUDIO_PROVISION_SECRET_KEY"]),Ha5=new Set(["DATABASE_URL","CLICKHOUSE_URL","NATS_URL"])});var hN0;var P16=w(()=>{hN0={name:"decocms",version:"2.305.0",description:"Deco CMS \u2014 Self-hostable MCP Gateway for managing AI connections and tools",author:"Deco team",repository:{type:"git",url:"git+https://github.com/decocms/studio.git",directory:"apps/mesh"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:'bun run migrate && concurrently "bun run dev:client" "bun run dev:server"',"dev:servers":'concurrently "bun run dev:client" "bun run dev:server"',"dev:client":"bun --bun vite dev","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts","build:client":"bun --bun vite build","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","db:migrate":"bun run ./dist/server/migrate.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts",test:"bun test","test:e2e":"playwright test","test:e2e:ui":"playwright test --ui","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts",prepublishOnly:"bun run build:client && bun run build:server"},optionalDependencies:{"@duckdb/node-api":"^1.5.0-r.1","@freestyle-sh/with-bun":"^0.2.12","@freestyle-sh/with-deno":"^0.0.4","@freestyle-sh/with-nodejs":"^0.2.9","freestyle-sandboxes":"^0.1.46"},dependencies:{"@ai-sdk/anthropic":"^3.0.58","@ai-sdk/google":"^3.0.60","@ai-sdk/openai":"^3.0.50","@anthropic-ai/sdk":"^0.79.0","@aws-sdk/client-s3":"^3.1013.0","@aws-sdk/s3-request-presigner":"^3.1013.0","@clickhouse/client":"^1.8.1","@deco-cx/warp-node":"^0.3.20","@dnd-kit/core":"^6.3.1","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@inkjs/ui":"^2.0.0","@modelcontextprotocol/ext-apps":"^1.2.2","@openrouter/ai-sdk-provider":"^2.2.5","@opentelemetry/core":"^2.6.0","@tanstack/react-virtual":"^3.13.21","@xterm/addon-fit":"^0.11.0","@xterm/xterm":"^6.0.0","ai-sdk-provider-claude-code":"^3.4.4","ai-sdk-provider-codex-cli":"^1.1.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12",nats:"^2.29.3","node-pty":"^1.0.0","posthog-js":"^1.371.1","posthog-node":"^5.0.0",react:"^19.2.0","react-dom":"^19.2.0"},devDependencies:{"@ai-sdk/provider":"^3.0.8","@ai-sdk/react":"^3.0.118","@anthropic-ai/claude-agent-sdk":"^0.2.80","@better-auth/sso":"1.4.1","@daveyplate/better-auth-ui":"^3.2.7","@deco/ui":"workspace:*","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/mesh-sdk":"workspace:*","@decocms/runtime":"workspace:*","@decocms/vite-plugin":"workspace:*","@electric-sql/pglite":"^0.3.15","@floating-ui/react":"^0.27.16","@hookform/resolvers":"^5.2.2","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.27.1","@monaco-editor/react":"^4.7.0","@opentelemetry/api":"^1.9.0","@opentelemetry/api-logs":"^0.211.0","@opentelemetry/exporter-logs-otlp-proto":"^0.211.0","@opentelemetry/exporter-prometheus":"^0.208.0","@opentelemetry/exporter-trace-otlp-proto":"^0.207.0","@opentelemetry/instrumentation-runtime-node":"^0.24.0","@opentelemetry/sdk-logs":"^0.211.0","@opentelemetry/sdk-metrics":"^2.2.0","@opentelemetry/sdk-node":"^0.207.0","@opentelemetry/sdk-trace-base":"^2.5.0","@playwright/test":"^1.58.2","@radix-ui/react-avatar":"^1.1.10","@radix-ui/react-checkbox":"^1.3.3","@radix-ui/react-dialog":"^1.1.15","@radix-ui/react-dropdown-menu":"^2.1.16","@radix-ui/react-label":"^2.1.7","@radix-ui/react-select":"^2.2.6","@radix-ui/react-separator":"^1.1.7","@radix-ui/react-slot":"^1.2.3","@radix-ui/react-tabs":"^1.1.13","@rjsf/core":"^6.1.2","@rjsf/shadcn":"^6.1.2","@rjsf/utils":"^6.1.2","@rjsf/validator-ajv8":"^6.1.2","@tailwindcss/vite":"^4.1.17","@tanstack/react-query":"5.90.11","@tanstack/react-router":"^1.139.7","@tiptap/core":"3.20.2","@tiptap/extension-mention":"3.20.2","@tiptap/extension-placeholder":"3.20.2","@tiptap/pm":"3.20.2","@tiptap/react":"3.20.2","@tiptap/starter-kit":"3.20.2","@tiptap/suggestion":"3.20.2","@types/bun":"^1.3.1","@types/pg":"^8.15.6","@types/react-syntax-highlighter":"^15.5.13","@untitledui/icons":"^0.0.19","@vercel/nft":"^1.1.1","@vitejs/plugin-react":"^5.1.0",ai:"^6.0.116","babel-plugin-react-compiler":"^1.0.0","better-auth":"1.4.5","class-variance-authority":"^0.7.1",clsx:"^2.1.1",concurrently:"^9.2.1",croner:"^9.1.0","date-fns":"^4.1.0",degit:"^2.8.4",hono:"^4.10.7","input-otp":"^1.4.2",jose:"^6.0.11","kysely-pglite":"^0.6.1","lucide-react":"^0.468.0",marked:"^15.0.6","@decocms/sandbox":"workspace:*","mesh-plugin-workflows":"workspace:*",nanoid:"^5.1.6",pg:"^8.16.3",prettier:"^3.4.2","react-hook-form":"^7.66.0","react-markdown":"^10.1.0","react-resizable-panels":"^2.1.7","react-syntax-highlighter":"^15.6.1",recharts:"^3.6.0","rehype-raw":"^7.0.0","remark-gfm":"^4.0.0","sass-embedded":"^1.97.2",sonner:"^2.0.7","tailwind-merge":"^3.3.1",tailwindcss:"^4.1.17",typescript:"^5.9.3",vite:"^7.2.1","vite-tsconfig-paths":"^5.1.4",zod:"^4.0.0",zustand:"^5.0.9"},homepage:"https://github.com/decocms/studio",keywords:["mcp","model-context-protocol","ai","gateway","self-hosted","mesh","tools"],license:"MIT",publishConfig:{access:"public"}}});import{Box as qU,Text as RX}from"ink";import{Spinner as Na5}from"@inkjs/ui";import{useSyncExternalStore as q16}from"react";import{jsx as TY,jsxs as sQ}from"react/jsx-runtime";function La5(X,Y){if(!X||!wa5.has(X))return X;let G=gN0[Y]??gN0[gN0.length-1];return X==="#875f00"?G[0]:G[1]}function A16({status:X}){if(X==="pending")return TY(Na5,{label:""});return TY(RX,{color:"green",children:"\u2713"})}function T16({services:X,migrationsStatus:Y,home:G,serverUrl:Q,vibe:J}){let W=q16(lm0,um0),Z=q16(nm0,pm0);return sQ(qU,{flexDirection:"column",paddingBottom:1,children:[J?sQ(qU,{flexDirection:"column",children:[W.map(($,K)=>{let H=Z[K],U=$.reduce((N,z)=>N+z.text.length,0),B=Math.max(0,Da5-U);return sQ(qU,{flexDirection:"row",children:[$.map((N,z)=>{let O=La5(N.color,K);return O?TY(RX,{color:O,children:N.text},z):TY(RX,{children:N.text},z)}),TY(RX,{children:" ".repeat(B+2)}),H?.map((N,z)=>N.color?TY(RX,{color:N.color,children:N.char},z):TY(RX,{children:N.char},z))]},K)}),sQ(RX,{dimColor:!0,children:[" v",hN0.version]})]}):sQ(qU,{flexDirection:"column",marginTop:1,children:[za5.map(($,K)=>TY(RX,{color:Oa5[K],children:$},K)),sQ(RX,{dimColor:!0,children:[" v",hN0.version]})]}),TY(qU,{marginBottom:1,children:TY(RX,{dimColor:!0,children:"\u2500".repeat(80)})}),TY(qU,{children:sQ(RX,{dimColor:!0,children:["Home: ",G]})}),sQ(qU,{gap:2,children:[X.map(($)=>sQ(qU,{gap:1,children:[sQ(RX,{children:[$.name," :",$.port||"...."]}),TY(A16,{status:$.status})]},$.name)),sQ(qU,{gap:1,children:[TY(RX,{children:"Migrations"}),TY(A16,{status:Y})]})]}),TY(qU,{children:Q?sQ(RX,{children:["Open in browser: ",TY(RX,{color:"cyan",children:Q})]}):TY(RX,{dimColor:!0,children:"Starting..."})}),sQ(qU,{gap:2,children:[sQ(RX,{dimColor:!0,children:[TY(RX,{bold:!0,dimColor:!0,children:"K"})," ","toggle config"]}),sQ(RX,{dimColor:!0,children:[TY(RX,{bold:!0,dimColor:!0,children:"L"})," ","toggle log flow"]}),sQ(RX,{dimColor:!0,children:[TY(RX,{bold:!0,dimColor:!0,children:"V"})," ","toggle vibe ",J?"\u266A Nihilore \xB7 CC BY 4.0":""]}),J&&sQ(RX,{dimColor:!0,children:[TY(RX,{bold:!0,dimColor:!0,children:"N"})," ","skip song"]})]})]})}var za5,Oa5,gN0,Da5=30,wa5;var I16=w(()=>{P16();Tt1();St1();za5=[" \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 "],Oa5=["#00ff64","#00ee5e","#00dc56","#00c84e","#00b444","#00a03c","#008832","#006e28"],gN0=[["#00ff64","#00cc50"],["#00f060","#00c04c"],["#00e05c","#00b448"],["#00d058","#00a844"],["#00c054","#009c40"],["#00b050","#00903c"],["#00a04c","#008438"],["#009048","#007834"],["#008044","#006c30"],["#007040","#00602c"],["#00603c","#005428"]],wa5=new Set(["#875f00","#5f3800"])});import{useSyncExternalStore as Ea5}from"react";function Pa5(){let X=process.stdout.rows||24,Y=process.stdout.columns||80;if(X!==aA1.rows||Y!==aA1.columns)aA1={rows:X,columns:Y};return aA1}function qa5(X){return process.stdout.on("resize",X),()=>{process.stdout.off("resize",X)}}function V16(){return Ea5(qa5,Pa5)}var aA1;var j16=w(()=>{aA1={rows:process.stdout.rows||24,columns:process.stdout.columns||80}});import{Box as Aa5,Text as fX1}from"ink";import{useSyncExternalStore as Ta5}from"react";import{jsx as uN0,jsxs as lN0}from"react/jsx-runtime";function Ia5(X){if(X>=500)return"red";if(X>=400)return"yellow";if(X>=300)return"cyan";return"green"}function M16({logs:X,headerHeight:Y}){let{rows:G}=V16(),{logFlow:Q}=Ta5(kX1,SX1),J=Math.max(1,G-Y-1),W=Q?X:X.slice(-J);return uN0(Aa5,{flexDirection:"column",children:W.map((Z,$)=>{if(Z.rawLine)return uN0(fX1,{dimColor:!0,children:Z.rawLine},$);let K=Z.duration<1000?`${Z.duration}ms`:`${(Z.duration/1000).toFixed(1)}s`;return lN0(fX1,{children:[lN0(fX1,{dimColor:!0,children:[Z.method.padEnd(6)," ",Z.path.padEnd(30)," "]}),uN0(fX1,{color:Ia5(Z.status),children:Z.status}),lN0(fX1,{dimColor:!0,children:[" ",K.padStart(8)]})]},$)})})}var R16=w(()=>{Wz();j16()});var mN0={};T0(mN0,{App:()=>Ca5});import{Box as Va5,Text as ja5,useInput as Ma5}from"ink";import{useSyncExternalStore as Ra5}from"react";import{jsx as rA1,jsxs as va5}from"react/jsx-runtime";function Ca5({home:X}){let Y=Ra5(kX1,SX1);return Ma5((G)=>{if(G==="k"||G==="K")kN0();if(G==="l"||G==="L")CN0();if((G==="v"||G==="V")&&Y.dataDir)_t1(Y.dataDir),vN0();if((G==="n"||G==="N")&&Y.vibe)vt1()}),va5(Va5,{flexDirection:"column",children:[rA1(T16,{services:Y.services,migrationsStatus:Y.migrationsStatus,home:X,serverUrl:Y.serverUrl,vibe:Y.vibe}),Y.viewMode==="config"?Y.env?rA1(L16,{env:Y.env}):rA1(ja5,{dimColor:!0,children:"Loading configuration..."}):rA1(M16,{logs:Y.logs,headerHeight:Y.vibe?ka5:Sa5})]})}var Sa5=15,ka5=19;var dN0=w(()=>{E16();I16();R16();Wz();_d()});function S16(X,Y={}){return{PORT:String(X.port),NODE_ENV:X.nodeEnv,BASE_URL:X.baseUrl,DATA_DIR:X.dataDir,DECOCMS_HOME:X.dataDir,DATABASE_URL:X.databaseUrl,DATABASE_PG_SSL:String(X.databasePgSsl),DATABASE_POOL_MAX:String(X.databasePoolMax),NATS_URL:X.natsUrls.join(","),BETTER_AUTH_SECRET:X.betterAuthSecret,ENCRYPTION_KEY:X.encryptionKey,MESH_JWT_SECRET:X.meshJwtSecret,DECOCMS_LOCAL_MODE:String(X.localMode),DISABLE_RATE_LIMIT:String(X.disableRateLimit),STUDIO_PROVISION_SECRET_KEY:X.studioProvisionSecretKey,CONFIG_PATH:X.configPath,...Object.fromEntries(Object.entries(process.env).filter(([G])=>G.startsWith("AUTH_"))),DECO_AI_GATEWAY_ENABLED:String(X.aiGatewayEnabled),DECO_AI_GATEWAY_URL:X.aiGatewayUrl,ENABLE_DECO_IMPORT:String(X.enableDecoImport),S3_ENDPOINT:X.s3Endpoint,S3_BUCKET:X.s3Bucket,S3_REGION:X.s3Region,S3_ACCESS_KEY_ID:X.s3AccessKeyId,S3_SECRET_ACCESS_KEY:X.s3SecretAccessKey,S3_FORCE_PATH_STYLE:String(X.s3ForcePathStyle),OTEL_SERVICE_NAME:X.otelServiceName,CLICKHOUSE_URL:X.clickhouseUrl,OTEL_EXPORTER_OTLP_ENDPOINT:process.env.OTEL_EXPORTER_OTLP_ENDPOINT,OTEL_EXPORTER_OTLP_PROTOCOL:process.env.OTEL_EXPORTER_OTLP_PROTOCOL,OTEL_RESOURCE_ATTRIBUTES:process.env.OTEL_RESOURCE_ATTRIBUTES,DECO_SUPABASE_URL:X.decoSupabaseUrl,DECO_SUPABASE_SERVICE_KEY:X.decoSupabaseServiceKey,FIRECRAWL_API_KEY:X.firecrawlApiKey,STUDIO_SANDBOX_RUNNER:process.env.STUDIO_SANDBOX_RUNNER,STUDIO_SANDBOX_TEMPLATE_NAME:process.env.STUDIO_SANDBOX_TEMPLATE_NAME,STUDIO_ENV:process.env.STUDIO_ENV,STUDIO_SANDBOX_PREVIEW_URL_PATTERN:process.env.STUDIO_SANDBOX_PREVIEW_URL_PATTERN,STUDIO_SANDBOX_PREVIEW_GATEWAY_NAME:process.env.STUDIO_SANDBOX_PREVIEW_GATEWAY_NAME,STUDIO_SANDBOX_PREVIEW_GATEWAY_NAMESPACE:process.env.STUDIO_SANDBOX_PREVIEW_GATEWAY_NAMESPACE,STUDIO_SANDBOX_SENTINEL_TOKEN:process.env.STUDIO_SANDBOX_SENTINEL_TOKEN,KUBERNETES_SERVICE_HOST:process.env.KUBERNETES_SERVICE_HOST,KUBERNETES_SERVICE_PORT:process.env.KUBERNETES_SERVICE_PORT,FREESTYLE_API_KEY:process.env.FREESTYLE_API_KEY,BROWSERLESS_TOKEN:process.env.BROWSERLESS_TOKEN,NODE_EXTRA_CA_CERTS:process.env.NODE_EXTRA_CA_CERTS,DECO_CLI:"1",DECO_NO_TUI:"true",...Y}}var bj=k((ha5)=>{ha5.HttpAuthLocation=void 0;(function(X){X.HEADER="header",X.QUERY="query"})(ha5.HttpAuthLocation||(ha5.HttpAuthLocation={}));ha5.HttpApiKeyAuthLocation=void 0;(function(X){X.HEADER="header",X.QUERY="query"})(ha5.HttpApiKeyAuthLocation||(ha5.HttpApiKeyAuthLocation={}));ha5.EndpointURLScheme=void 0;(function(X){X.HTTP="http",X.HTTPS="https"})(ha5.EndpointURLScheme||(ha5.EndpointURLScheme={}));ha5.AlgorithmId=void 0;(function(X){X.MD5="md5",X.CRC32="crc32",X.CRC32C="crc32c",X.SHA1="sha1",X.SHA256="sha256"})(ha5.AlgorithmId||(ha5.AlgorithmId={}));var _a5=(X)=>{let Y=[];if(X.sha256!==void 0)Y.push({algorithmId:()=>ha5.AlgorithmId.SHA256,checksumConstructor:()=>X.sha256});if(X.md5!=null)Y.push({algorithmId:()=>ha5.AlgorithmId.MD5,checksumConstructor:()=>X.md5});return{addChecksumAlgorithm(G){Y.push(G)},checksumAlgorithms(){return Y}}},fa5=(X)=>{let Y={};return X.checksumAlgorithms().forEach((G)=>{Y[G.algorithmId()]=G.checksumConstructor()}),Y},ba5=(X)=>{return _a5(X)},ya5=(X)=>{return fa5(X)};ha5.FieldPosition=void 0;(function(X){X[X.HEADER=0]="HEADER",X[X.TRAILER=1]="TRAILER"})(ha5.FieldPosition||(ha5.FieldPosition={}));var xa5="__smithy_context";ha5.IniSectionType=void 0;(function(X){X.PROFILE="profile",X.SSO_SESSION="sso-session",X.SERVICES="services"})(ha5.IniSectionType||(ha5.IniSectionType={}));ha5.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"})(ha5.RequestHandlerProtocol||(ha5.RequestHandlerProtocol={}));ha5.SMITHY_CONTEXT_KEY=xa5;ha5.getDefaultClientConfiguration=ba5;ha5.resolveDefaultRuntimeConfig=ya5});var u7=k((na5)=>{var ma5=bj(),da5=(X)=>{return{setHttpHandler(Y){X.httpHandler=Y},httpHandler(){return X.httpHandler},updateHttpClientConfig(Y,G){X.httpHandler?.updateHttpClientConfig(Y,G)},httpHandlerConfigs(){return X.httpHandler.httpHandlerConfigs()}}},ca5=(X)=>{return{httpHandler:X.httpHandler()}};class k16{name;kind;values;constructor({name:X,kind:Y=ma5.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 C16{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 oA1{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 oA1({...X,headers:{...X.headers}});if(Y.query)Y.query=ia5(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 oA1.clone(this)}}function ia5(X){return Object.keys(X).reduce((Y,G)=>{let Q=X[G];return{...Y,[G]:Array.isArray(Q)?[...Q]:Q}},{})}class v16{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 pa5(X){return/^[a-z0-9][a-z0-9\.\-]*[a-z0-9]$/.test(X)}na5.Field=k16;na5.Fields=C16;na5.HttpRequest=oA1;na5.HttpResponse=v16;na5.getHttpHandlerExtensionConfiguration=da5;na5.isValidHostname=pa5;na5.resolveHttpHandlerRuntimeConfig=ca5});function Yr5(X){return(Y)=>async(G)=>{let{request:Q}=G;if(X.expectContinueHeader!==!1&&_16.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 _16,Gr5,f16=(X)=>({applyToStack:(Y)=>{Y.add(Yr5(X),Gr5)}});var b16=w(()=>{_16=X1(u7(),1);Gr5={step:"build",tags:["SET_EXPECT_HEADER","EXPECT_HEADER"],name:"addExpectContinueMiddleware",override:!0}});var wH,sA1,yj,eA1,E9,y16,yX1;var LH=w(()=>{wH={WHEN_SUPPORTED:"WHEN_SUPPORTED",WHEN_REQUIRED:"WHEN_REQUIRED"},sA1=wH.WHEN_SUPPORTED,yj={WHEN_SUPPORTED:"WHEN_SUPPORTED",WHEN_REQUIRED:"WHEN_REQUIRED"},eA1=wH.WHEN_SUPPORTED;(function(X){X.MD5="MD5",X.CRC32="CRC32",X.CRC32C="CRC32C",X.CRC64NVME="CRC64NVME",X.SHA1="SHA1",X.SHA256="SHA256"})(E9||(E9={}));(function(X){X.HEADER="header",X.TRAILER="trailer"})(y16||(y16={}));yX1=E9.CRC32});var kq,Ya=(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 rN0=w(()=>{(function(X){X.ENV="env",X.CONFIG="shared config entry"})(kq||(kq={}))});var Qr5="AWS_REQUEST_CHECKSUM_CALCULATION",Jr5="request_checksum_calculation",x16;var h16=w(()=>{LH();rN0();x16={environmentVariableSelector:(X)=>Ya(X,Qr5,wH,kq.ENV),configFileSelector:(X)=>Ya(X,Jr5,wH,kq.CONFIG),default:sA1}});var Zr5="AWS_RESPONSE_CHECKSUM_VALIDATION",Wr5="response_checksum_validation",g16;var u16=w(()=>{LH();rN0();g16={environmentVariableSelector:(X)=>Ya(X,Zr5,yj,kq.ENV),configFileSelector:(X)=>Ya(X,Wr5,yj,kq.CONFIG),default:eA1}});var sN0=k((Dr5)=>{var $r5=["AuthFailure","InvalidSignatureException","RequestExpired","RequestInTheFuture","RequestTimeTooSkewed","SignatureDoesNotMatch"],Kr5=["BandwidthLimitExceeded","EC2ThrottledException","LimitExceededException","PriorRequestNotComplete","ProvisionedThroughputExceededException","RequestLimitExceeded","RequestThrottled","RequestThrottledException","SlowDown","ThrottledException","Throttling","ThrottlingException","TooManyRequestsException","TransactionInProgressException"],Hr5=["TimeoutError","RequestTimeout","RequestTimeoutException"],Fr5=[500,502,503,504],Ur5=["ECONNRESET","ECONNREFUSED","EPIPE","ETIMEDOUT"],Br5=["EHOSTUNREACH","ENETUNREACH","ENOTFOUND"],l16=(X)=>X?.$retryable!==void 0,Nr5=(X)=>$r5.includes(X.name),m16=(X)=>X.$metadata?.clockSkewCorrected,d16=(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)},zr5=(X)=>X.$metadata?.httpStatusCode===429||Kr5.includes(X.name)||X.$retryable?.throttling==!0,oN0=(X,Y=0)=>l16(X)||m16(X)||X.name==="InvalidSignatureException"&&X.message?.includes("Signature expired")||Hr5.includes(X.name)||Ur5.includes(X?.code||"")||Br5.includes(X?.code||"")||Fr5.includes(X.$metadata?.httpStatusCode||0)||d16(X)||c16(X)||X.cause!==void 0&&Y<=10&&oN0(X.cause,Y+1),Or5=(X)=>{if(X.$metadata?.httpStatusCode!==void 0){let Y=X.$metadata.httpStatusCode;if(500<=Y&&Y<=599&&!oN0(X))return!0;return!1}return!1};function c16(X){return X.code==="ERR_HTTP2_STREAM_ERROR"&&X.message.includes("NGHTTP2_REFUSED_STREAM")}Dr5.isBrowserNetworkError=d16;Dr5.isClockSkewCorrectedError=m16;Dr5.isClockSkewError=Nr5;Dr5.isNodeJsHttp2TransientError=c16;Dr5.isRetryableByTrait=l16;Dr5.isServerError=Or5;Dr5.isThrottlingError=zr5;Dr5.isTransientError=oN0});var Dw=k((_r5)=>{var Vr5=sN0();_r5.RETRY_MODES=void 0;(function(X){X.STANDARD="standard",X.ADAPTIVE="adaptive"})(_r5.RETRY_MODES||(_r5.RETRY_MODES={}));var YT1=3,jr5=_r5.RETRY_MODES.STANDARD;class GT1{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"||Vr5.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)=>GT1.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 Mr5=100,Yz0=20000,Rr5=500,eN0=500,Sr5=5,kr5=10,i16=1,Cr5="amz-sdk-invocation-id",vr5="amz-sdk-request";class eQ{static v2026=typeof process<"u"&&process.env?.SMITHY_NEW_RETRIES_2026==="true";static delay(){return eQ.v2026?50:100}static throttlingDelay(){return eQ.v2026?1000:500}static cost(){return eQ.v2026?14:5}static throttlingCost(){return eQ.v2026?5:10}static modifiedCostType(){return eQ.v2026?"THROTTLING":"TRANSIENT"}}class p16{x=eQ.delay();computeNextBackoffDelay(X){let Y=Math.random(),G=2,Q=Y*Math.min(this.x*2**X,Yz0);return Math.floor(Q)}setDelayBase(X){this.x=X}}class Xz0{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(Yz0,this.delay)}getRetryCost(){return this.cost}isLongPoll(){return this.longPoll}}var XT1={incompatible:1,attempts:2,capacity:3};class xX1{mode=_r5.RETRY_MODES.STANDARD;capacity=eN0;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()=>YT1,this.baseDelay??=eQ.delay(),this.retryBackoffStrategy??=new p16}async acquireInitialRetryToken(X){return new Xz0(eQ.delay(),0,void 0,eQ.v2026&&X.includes(":longpoll"))}async refreshRetryTokenForRetry(X,Y){let G=await this.getMaxAttempts(),Q=this.retryCode(X,Y,G),J=Q===0,W=X.isLongPoll?.();if(J||W){let Z=Y.errorType;this.retryBackoffStrategy.setDelayBase(Z==="THROTTLING"?eQ.throttlingDelay():this.baseDelay);let $=this.retryBackoffStrategy.computeNextBackoffDelay(X.getRetryCount()),K=$;if(Y.retryAfterHint instanceof Date)K=Math.max($,Math.min(Y.retryAfterHint.getTime()-Date.now(),$+5000));if(!J)throw Object.assign(Error("No retry token available"),{$backoff:eQ.v2026&&Q===XT1.capacity&&W?K:0});else{let H=this.getCapacityCost(Z);return this.capacity-=H,new Xz0(K,X.getRetryCount()+1,H,X.isLongPoll?.()??!1)}}throw Error("No retry token available")}recordSuccess(X){this.capacity=Math.min(eN0,this.capacity+(X.getRetryCost()??i16))}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 ${YT1}`),YT1}}retryCode(X,Y,G){let Q=X.getRetryCount()+1,J=this.isRetryableError(Y.errorType)?0:XT1.incompatible,W=Q<G?0:XT1.attempts,Z=this.capacity>=this.getCapacityCost(Y.errorType)?0:XT1.capacity;return J||W||Z}getCapacityCost(X){return X===eQ.modifiedCostType()?eQ.throttlingCost():eQ.cost()}isRetryableError(X){return X==="THROTTLING"||X==="TRANSIENT"}}class n16{mode=_r5.RETRY_MODES.ADAPTIVE;rateLimiter;standardRetryStrategy;constructor(X,Y){let{rateLimiter:G}=Y??{};this.rateLimiter=G??new GT1,this.standardRetryStrategy=Y?new xX1({maxAttempts:typeof X==="number"?X:3,...Y}):new xX1(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 t16 extends xX1{computeNextBackoffDelay;constructor(X,Y=eQ.delay()){super(typeof X==="function"?X:async()=>X);if(typeof Y==="number")this.computeNextBackoffDelay=()=>Y;else this.computeNextBackoffDelay=Y}async refreshRetryTokenForRetry(X,Y){let G=await super.refreshRetryTokenForRetry(X,Y);return G.getRetryDelay=()=>this.computeNextBackoffDelay(G.getRetryCount()),G}}_r5.AdaptiveRetryStrategy=n16;_r5.ConfiguredRetryStrategy=t16;_r5.DEFAULT_MAX_ATTEMPTS=YT1;_r5.DEFAULT_RETRY_DELAY_BASE=Mr5;_r5.DEFAULT_RETRY_MODE=jr5;_r5.DefaultRateLimiter=GT1;_r5.INITIAL_RETRY_TOKENS=eN0;_r5.INVOCATION_ID_HEADER=Cr5;_r5.MAXIMUM_RETRY_DELAY=Yz0;_r5.NO_RETRY_INCREMENT=i16;_r5.REQUEST_HEADER=vr5;_r5.RETRY_COST=Sr5;_r5.Retry=eQ;_r5.StandardRetryStrategy=xX1;_r5.THROTTLING_RETRY_DELAY_BASE=Rr5;_r5.TIMEOUT_RETRY_COST=kr5});var WX=k((Jo5)=>{var rr5=Dw(),Gz0={warningEmitted:!1},or5=(X)=>{if(X&&!Gz0.warningEmitted&&parseInt(X.substring(1,X.indexOf(".")))<20)Gz0.warningEmitted=!0,process.emitWarning(`NodeDeprecationWarning: The AWS SDK for JavaScript (v3) will
1647
1647
  no longer support Node.js ${X} in January 2026.
1648
1648
 
1649
1649
  To continue receiving updates to AWS services, bug fixes, and security
@@ -1866,6 +1866,18 @@ You are the Agent Manager. You create, configure, and maintain agents (Virtual M
1866
1866
  a. List all agents with COLLECTION_VIRTUAL_MCP_LIST.
1867
1867
  b. For detailed inspection, use COLLECTION_VIRTUAL_MCP_GET on specific agents.
1868
1868
  c. Cross-reference with COLLECTION_CONNECTIONS_LIST to identify unused or missing connections.
1869
+
1870
+ 4. Improving an agent's instructions:
1871
+ a. Read docs://agents.md for the instruction-writing pattern (XML-style sections, explicit workflows).
1872
+ b. Get the current instructions with COLLECTION_VIRTUAL_MCP_GET on the supplied agent id.
1873
+ c. If the intended purpose, audience, or boundaries are unclear, use user_ask before rewriting.
1874
+ d. Rewrite the instructions with explicit XML-style sections: <role>, <capabilities>, <constraints>, <workflows>.
1875
+ - Make the purpose explicit in <role>.
1876
+ - If a workflow already exists, sharpen it into concrete, ordered, operational steps. If none exists, add one that reflects how the agent should actually operate.
1877
+ - Tighten <constraints> when the current instructions are too open-ended.
1878
+ - Preserve the user's intended domain and responsibilities.
1879
+ e. Save the rewritten instructions with COLLECTION_VIRTUAL_MCP_UPDATE using the smallest change set (only \`metadata.instructions\`).
1880
+ f. Re-read with COLLECTION_VIRTUAL_MCP_GET to verify the stored result.
1869
1881
  </workflows>`,xV9=`<role>
1870
1882
  You are the Automation Manager. You create, configure, and manage automations \u2014 background agents that run on triggers (cron schedules or events).
1871
1883
  </role>
@@ -1906,6 +1918,17 @@ You are the Automation Manager. You create, configure, and manage automations \u
1906
1918
  a. Get the automation config with AUTOMATION_GET to review its setup.
1907
1919
  b. Run it manually with AUTOMATION_RUN.
1908
1920
  c. Report the result to the user.
1921
+
1922
+ 4. Improving an automation's instructions:
1923
+ a. Read docs://automations.md for the messages/instructions pattern, then docs://agents.md for the XML-style structure.
1924
+ b. Get the current automation with AUTOMATION_GET on the supplied automation id.
1925
+ c. If the intended purpose, trigger context, or expected output is unclear, use user_ask before rewriting.
1926
+ d. Rewrite the messages with explicit XML-style sections: <role>, <capabilities>, <constraints>, <workflows>.
1927
+ - Keep the rewrite aligned with the automation's trigger and expected background-execution behavior.
1928
+ - If a workflow already exists, sharpen it into concrete, ordered, operational steps. If none exists, add one.
1929
+ - Tighten <constraints> when the current messages are too open-ended.
1930
+ e. Save with AUTOMATION_UPDATE using the smallest change set.
1931
+ f. Re-read with AUTOMATION_GET to verify the stored result.
1909
1932
  </workflows>`,hV9=`<role>
1910
1933
  You are the Connection Manager. You create, configure, test, and manage MCP connections in this workspace.
1911
1934
  </role>
@@ -2433,30 +2456,6 @@ Checks:
2433
2456
  - If changing connections, verify the new set still matches the agent's purpose.
2434
2457
  - Call out destructive or high-impact changes before applying them.
2435
2458
  - Confirm the final agent definition matches the request.
2436
- `},{name:"writing-prompts",title:"Improve Instructions",description:"Improve instructions for an agent or automation.",text:`# Writing instructions
2437
-
2438
- Goal: rewrite or refine instructions for either an agent or an automation so they clearly describe the purpose, constraints, and workflows in a reliable format.
2439
-
2440
- Read docs://agents.md for the instruction-writing pattern, XML-style structure, and workflow guidance. Read docs://automations.md if you are improving automation behavior rather than agent behavior.
2441
-
2442
- Recommended tool order:
2443
- 1. Identify whether the target is an agent or an automation.
2444
- 2. For agents, use COLLECTION_VIRTUAL_MCP_LIST or COLLECTION_VIRTUAL_MCP_GET to inspect the current instructions.
2445
- 3. For automations, use AUTOMATION_LIST or AUTOMATION_GET to inspect the current messages/instructions.
2446
- 4. Review the current instructions against docs://agents.md.
2447
- 5. If the intended purpose, audience, or boundaries are unclear, use user_ask before rewriting.
2448
- 6. Rewrite the instructions with explicit XML-style sections such as <role>, <capabilities>, <constraints>, and <workflows>.
2449
- 7. For agents, use COLLECTION_VIRTUAL_MCP_UPDATE to save the improved instructions.
2450
- 8. For automations, use AUTOMATION_UPDATE to save the improved messages/instructions.
2451
- 9. Re-read the updated entity with COLLECTION_VIRTUAL_MCP_GET or AUTOMATION_GET to verify the final stored version.
2452
-
2453
- Checks:
2454
- - Make the purpose explicit in a <role> section.
2455
- - Detect whether the current instructions already contain a workflow. If they do, improve the workflow to be concrete, ordered, and operational. If they do not, add one.
2456
- - Keep workflows numbered and focused on real execution steps, not vague advice.
2457
- - Add or tighten constraints when the current instructions are too open-ended.
2458
- - Preserve the user's intended domain and responsibilities while improving clarity.
2459
- - If the target is an automation, keep the instructions aligned with the trigger and expected background execution behavior.
2460
2459
  `}],lh6=[{name:"agents",uri:"docs://agents.md",description:"Agent naming, instruction writing, and prompt-engineering guidance.",text:`# Agents
2461
2460
 
2462
2461
  ## Naming
@@ -0,0 +1,17 @@
1
+ /**
2
+ Check if the character represented by a given [Unicode code point](https://en.wikipedia.org/wiki/Code_point) is [fullwidth](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms).
3
+
4
+ @param codePoint - The [code point](https://en.wikipedia.org/wiki/Code_point) of a character.
5
+
6
+ @example
7
+ ```
8
+ import isFullwidthCodePoint from 'is-fullwidth-code-point';
9
+
10
+ isFullwidthCodePoint('谢'.codePointAt(0));
11
+ //=> true
12
+
13
+ isFullwidthCodePoint('a'.codePointAt(0));
14
+ //=> false
15
+ ```
16
+ */
17
+ export default function isFullwidthCodePoint(codePoint: number): boolean;
@@ -0,0 +1,12 @@
1
+ import {
2
+ _isFullWidth as isFullWidth,
3
+ _isWide as isWide,
4
+ } from 'get-east-asian-width';
5
+
6
+ export default function isFullwidthCodePoint(codePoint) {
7
+ if (!Number.isInteger(codePoint)) {
8
+ return false;
9
+ }
10
+
11
+ return isFullWidth(codePoint) || isWide(codePoint);
12
+ }
@@ -0,0 +1,9 @@
1
+ MIT License
2
+
3
+ Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
6
+
7
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
8
+
9
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,53 @@
1
+ {
2
+ "name": "is-fullwidth-code-point",
3
+ "version": "5.1.0",
4
+ "description": "Check if the character represented by a given Unicode code point is fullwidth",
5
+ "license": "MIT",
6
+ "repository": "sindresorhus/is-fullwidth-code-point",
7
+ "funding": "https://github.com/sponsors/sindresorhus",
8
+ "author": {
9
+ "name": "Sindre Sorhus",
10
+ "email": "sindresorhus@gmail.com",
11
+ "url": "https://sindresorhus.com"
12
+ },
13
+ "type": "module",
14
+ "exports": {
15
+ "types": "./index.d.ts",
16
+ "default": "./index.js"
17
+ },
18
+ "sideEffects": false,
19
+ "engines": {
20
+ "node": ">=18"
21
+ },
22
+ "scripts": {
23
+ "test": "xo && ava && tsd"
24
+ },
25
+ "files": [
26
+ "index.js",
27
+ "index.d.ts"
28
+ ],
29
+ "keywords": [
30
+ "fullwidth",
31
+ "full-width",
32
+ "full",
33
+ "width",
34
+ "unicode",
35
+ "character",
36
+ "string",
37
+ "codepoint",
38
+ "code",
39
+ "point",
40
+ "is",
41
+ "detect",
42
+ "check",
43
+ "east-asian-width"
44
+ ],
45
+ "devDependencies": {
46
+ "ava": "^5.3.1",
47
+ "tsd": "^0.29.0",
48
+ "xo": "^0.56.0"
49
+ },
50
+ "dependencies": {
51
+ "get-east-asian-width": "^1.3.1"
52
+ }
53
+ }
@@ -0,0 +1,31 @@
1
+ # is-fullwidth-code-point
2
+
3
+ > Check if the character represented by a given [Unicode code point](https://en.wikipedia.org/wiki/Code_point) is [fullwidth](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms)
4
+
5
+ ## Install
6
+
7
+ ```sh
8
+ npm install is-fullwidth-code-point
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ ```js
14
+ import isFullwidthCodePoint from 'is-fullwidth-code-point';
15
+
16
+ isFullwidthCodePoint('谢'.codePointAt(0));
17
+ //=> true
18
+
19
+ isFullwidthCodePoint('a'.codePointAt(0));
20
+ //=> false
21
+ ```
22
+
23
+ ## API
24
+
25
+ ### isFullwidthCodePoint(codePoint)
26
+
27
+ #### codePoint
28
+
29
+ Type: `number`
30
+
31
+ The [code point](https://en.wikipedia.org/wiki/Code_point) of a character.
@@ -0,0 +1,54 @@
1
+ declare const mimicFn: {
2
+ /**
3
+ Make a function mimic another one. It will copy over the properties `name`, `length`, `displayName`, and any custom properties you may have set.
4
+
5
+ @param to - Mimicking function.
6
+ @param from - Function to mimic.
7
+ @returns The modified `to` function.
8
+
9
+ @example
10
+ ```
11
+ import mimicFn = require('mimic-fn');
12
+
13
+ function foo() {}
14
+ foo.unicorn = '🦄';
15
+
16
+ function wrapper() {
17
+ return foo();
18
+ }
19
+
20
+ console.log(wrapper.name);
21
+ //=> 'wrapper'
22
+
23
+ mimicFn(wrapper, foo);
24
+
25
+ console.log(wrapper.name);
26
+ //=> 'foo'
27
+
28
+ console.log(wrapper.unicorn);
29
+ //=> '🦄'
30
+ ```
31
+ */
32
+ <
33
+ ArgumentsType extends unknown[],
34
+ ReturnType,
35
+ FunctionType extends (...arguments: ArgumentsType) => ReturnType
36
+ >(
37
+ to: (...arguments: ArgumentsType) => ReturnType,
38
+ from: FunctionType
39
+ ): FunctionType;
40
+
41
+ // TODO: Remove this for the next major release, refactor the whole definition to:
42
+ // declare function mimicFn<
43
+ // ArgumentsType extends unknown[],
44
+ // ReturnType,
45
+ // FunctionType extends (...arguments: ArgumentsType) => ReturnType
46
+ // >(
47
+ // to: (...arguments: ArgumentsType) => ReturnType,
48
+ // from: FunctionType
49
+ // ): FunctionType;
50
+ // export = mimicFn;
51
+ default: typeof mimicFn;
52
+ };
53
+
54
+ export = mimicFn;
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+
3
+ const mimicFn = (to, from) => {
4
+ for (const prop of Reflect.ownKeys(from)) {
5
+ Object.defineProperty(to, prop, Object.getOwnPropertyDescriptor(from, prop));
6
+ }
7
+
8
+ return to;
9
+ };
10
+
11
+ module.exports = mimicFn;
12
+ // TODO: Remove this for the next major release
13
+ module.exports.default = mimicFn;
@@ -0,0 +1,9 @@
1
+ MIT License
2
+
3
+ Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
6
+
7
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
8
+
9
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.