decocms 2.316.0 → 2.316.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (282) hide show
  1. package/dist/client/assets/{AlertCircle-BhKIfxeV.js → AlertCircle-mmk9TBUN.js} +1 -1
  2. package/dist/client/assets/{Archive-Dz0wtILE.js → Archive-CbeO47D9.js} +1 -1
  3. package/dist/client/assets/{ArrowNarrowLeft-D2IzKz0U.js → ArrowNarrowLeft-BryccYHS.js} +1 -1
  4. package/dist/client/assets/{ArrowUpRight-DQNhEvxd.js → ArrowUpRight-BqG0Qm11.js} +1 -1
  5. package/dist/client/assets/{Check-B3zx_U26.js → Check-ewVPSiX8.js} +1 -1
  6. package/dist/client/assets/{CheckCircle-S5ffz95T.js → CheckCircle-DDQaFs5O.js} +1 -1
  7. package/dist/client/assets/{ChevronDown-B2rzld2y.js → ChevronDown-E-aU4pxG.js} +1 -1
  8. package/dist/client/assets/{ChevronRight-E3ry5bv1.js → ChevronRight-Cwk4iWe2.js} +1 -1
  9. package/dist/client/assets/{ChevronUp-CR14Z0nx.js → ChevronUp-BA_jils7.js} +1 -1
  10. package/dist/client/assets/{Container-hpy3kvOB.js → Container-BY1nC9tk.js} +1 -1
  11. package/dist/client/assets/{DotsVertical-DlBHJ9PJ.js → DotsVertical-sTOzUu6j.js} +1 -1
  12. package/dist/client/assets/{LayoutLeft-O15r8yaV.js → LayoutLeft-DQwydLSJ.js} +1 -1
  13. package/dist/client/assets/{LinkExternal01-CqYIOZ9A.js → LinkExternal01-Cr0qtThD.js} +1 -1
  14. package/dist/client/assets/{Lock01-BWTd97_q.js → Lock01-CLcLLz3O.js} +1 -1
  15. package/dist/client/assets/{Palette-48b46GGh.js → Palette-CnDoOIi6.js} +1 -1
  16. package/dist/client/assets/{Play-CWd0g6Ov.js → Play-CDasMsQh.js} +1 -1
  17. package/dist/client/assets/{Plus-Dld8jPbl.js → Plus-CyxhvA7G.js} +1 -1
  18. package/dist/client/assets/{RefreshCcw01-DlZMdaR5.js → RefreshCcw01-uux2LSBY.js} +1 -1
  19. package/dist/client/assets/{SearchMd-BzVtNNV8.js → SearchMd-W7CZuMKL.js} +1 -1
  20. package/dist/client/assets/{Settings02-Yw9y8zcL.js → Settings02-BgZTkeWF.js} +1 -1
  21. package/dist/client/assets/{Shield01-Bryrtn4R.js → Shield01-3JbAW9yZ.js} +1 -1
  22. package/dist/client/assets/{Star01-D7-_AozX.js → Star01-4GtWoCVv.js} +1 -1
  23. package/dist/client/assets/{Sun-BRoJ4FPT.js → Sun-BuSg7vB0.js} +1 -1
  24. package/dist/client/assets/{Tool01-C_J_zDPh.js → Tool01-uxSt1rQ4.js} +1 -1
  25. package/dist/client/assets/{Trash01-CWiWK8tz.js → Trash01-CHtXX-iN.js} +1 -1
  26. package/dist/client/assets/{User01-Cuf_FrNk.js → User01-OkXl0M4T.js} +1 -1
  27. package/dist/client/assets/{Users03-BvEJiMrD.js → Users03-DKXrDiSP.js} +1 -1
  28. package/dist/client/assets/{X-DCaJ2DR_.js → X-CZwLR3Ia.js} +1 -1
  29. package/dist/client/assets/{XCircle-Xm8lpkAu.js → XCircle-yPzYwk9a.js} +1 -1
  30. package/dist/client/assets/{XClose-BpbAJCm9.js → XClose-BFUl_Anu.js} +1 -1
  31. package/dist/client/assets/{Zap-DkdmeY_3.js → Zap-Dvsf3jcd.js} +1 -1
  32. package/dist/client/assets/{ZapSquare-D31ZX-yT.js → ZapSquare-pj4yWTeD.js} +1 -1
  33. package/dist/client/assets/{accordion-D2I2JgOz.js → accordion-DfvJA1cd.js} +1 -1
  34. package/dist/client/assets/{agent-icon-DIgcdFeV.js → agent-icon-DJSRYPMl.js} +1 -1
  35. package/dist/client/assets/{agents-list-DJEDnQKa.js → agents-list-YGjQKIYW.js} +1 -1
  36. package/dist/client/assets/{ai-providers-BKQlREzu.js → ai-providers-CtyxBCWQ.js} +1 -1
  37. package/dist/client/assets/{alert-dialog-CoBaZf61.js → alert-dialog-CUeMRwoA.js} +1 -1
  38. package/dist/client/assets/{auth-catchall-C__PbIds.js → auth-catchall-DH9favjg.js} +1 -1
  39. package/dist/client/assets/{automation-list-row-BjJTW98i.js → automation-list-row-IYB6tchf.js} +1 -1
  40. package/dist/client/assets/{automations-sFtOtWq7.js → automations-FptdC6lY.js} +1 -1
  41. package/dist/client/assets/{avatar-C31fe2qO.js → avatar-BOerFAP-.js} +1 -1
  42. package/dist/client/assets/{badge-wVDQydbB.js → badge-CDjxHIeI.js} +1 -1
  43. package/dist/client/assets/{brand-context-CQ0dSgsx.js → brand-context-DL-pAdAY.js} +1 -1
  44. package/dist/client/assets/{card-BsjNx5Cg.js → card-CsndeCGv.js} +1 -1
  45. package/dist/client/assets/{chat-context-CXqWCM0D.js → chat-context-B5-0aNqU.js} +1 -1
  46. package/dist/client/assets/{checkbox-B5i71aX9.js → checkbox-Cej-idFo.js} +1 -1
  47. package/dist/client/assets/{collection-detail-w94sCgAJ.js → collection-detail-BYMtgQ_D.js} +1 -1
  48. package/dist/client/assets/{collection-display-button-Dy9WKszB.js → collection-display-button-DPC5DK6M.js} +1 -1
  49. package/dist/client/assets/{collection-search-DRd31o69.js → collection-search-CN1eEFRN.js} +1 -1
  50. package/dist/client/assets/{collection-search-CkG6QTlc.js → collection-search-DJqH7QE2.js} +1 -1
  51. package/dist/client/assets/{collection-table-wrapper-BIwFJIlS.js → collection-table-wrapper-NbHAzx4T.js} +1 -1
  52. package/dist/client/assets/{collection-tabs-DZIZ-iDz.js → collection-tabs-DBJHL_QQ.js} +1 -1
  53. package/dist/client/assets/{collections-BbDNQEWM.js → collections-BPPvQ0Ah.js} +1 -1
  54. package/dist/client/assets/{command-DGrDaXPR.js → command-C2MqfgQS.js} +1 -1
  55. package/dist/client/assets/{connection-card-CtNK-usI.js → connection-card-V-B9aVP9.js} +1 -1
  56. package/dist/client/assets/{connection-detail-Dy49P_Wb.js → connection-detail-0RgcSvYI.js} +1 -1
  57. package/dist/client/assets/{connection-form-helpers-Ck24jZcw.js → connection-form-helpers-Dfh5b6zA.js} +1 -1
  58. package/dist/client/assets/{connections-YpkySNNU.js → connections-D-W5_rsk.js} +1 -1
  59. package/dist/client/assets/{constants-ClujOLL0.js → constants-J9pa4R8f.js} +1 -1
  60. package/dist/client/assets/{constants-hHr1XnHs.js → constants-pobkndak.js} +1 -1
  61. package/dist/client/assets/{dialog-DlXEbbro.js → dialog-CHAMI0Qx.js} +1 -1
  62. package/dist/client/assets/{domain-settings-Bk8xfxCT.js → domain-settings-Md258DlJ.js} +1 -1
  63. package/dist/client/assets/{drawer-PL1KJG8h.js → drawer-CiUcTnf_.js} +1 -1
  64. package/dist/client/assets/{dropdown-menu-DX0TPN0k.js → dropdown-menu-CVxPc1Sl.js} +1 -1
  65. package/dist/client/assets/{dynamic-plugin-layout-BN4WTDcX.js → dynamic-plugin-layout-BSWTjv6G.js} +1 -1
  66. package/dist/client/assets/{empty-state-BDuWm3OO.js → empty-state-D3Cmc0Yc.js} +1 -1
  67. package/dist/client/assets/{empty-state-D8kZInFe.js → empty-state-DA4hm3vm.js} +1 -1
  68. package/dist/client/assets/{extract-connection-data-D2pRgNGp.js → extract-connection-data-DeXPkvP0.js} +1 -1
  69. package/dist/client/assets/{features-Cfl0ad_g.js → features-COIWfBYw.js} +1 -1
  70. package/dist/client/assets/{form-lvEVsZiS.js → form-BmkvYy7m.js} +1 -1
  71. package/dist/client/assets/{general-DTam8mrI.js → general-D9EBf0WL.js} +1 -1
  72. package/dist/client/assets/{index-BRQL1Qy9.js → index-5MC48nP7.js} +1 -1
  73. package/dist/client/assets/{index-xu72xd1g.js → index-B0s0fGaT.js} +1 -1
  74. package/dist/client/assets/{index-DF2eiQ1x.js → index-B8kNtJPZ.js} +1 -1
  75. package/dist/client/assets/{index-s_hf2jI7.js → index-BCf__ZAI.js} +1 -1
  76. package/dist/client/assets/{index-C0JHkPGv.js → index-CGGfCuOw.js} +1 -1
  77. package/dist/client/assets/{index-mhkzUFBK.js → index-CZxmJ5Bv.js} +1 -1
  78. package/dist/client/assets/{index-DaOIazOa.js → index-C_t7fnJw.js} +1 -1
  79. package/dist/client/assets/{index-n7gxPtHW.js → index-Ch7CXtoc.js} +1 -1
  80. package/dist/client/assets/{index-C-ZizHKt.js → index-Cv9RIxrZ.js} +1 -1
  81. package/dist/client/assets/{index-Ea3ltYi1.js → index-Cyqf_Iwp.js} +20 -20
  82. package/dist/client/assets/{index-Bq8MNgeV.js → index-DEzq-Nb1.js} +2 -2
  83. package/dist/client/assets/{index-DJVBUrUD.js → index-DXpmqov0.js} +1 -1
  84. package/dist/client/assets/{index-CuEDzA2l.js → index-Dvh8j4N6.js} +1 -1
  85. package/dist/client/assets/{index-Fz2lfOzM.js → index-nfongS2A.js} +1 -1
  86. package/dist/client/assets/{index-DhY6sTVx.js → index-sl1zt3Cn.js} +1 -1
  87. package/dist/client/assets/{index-5QFk1v1j.js → index-tDwFn1JI.js} +1 -1
  88. package/dist/client/assets/{infiniteQueryObserver-DKVQWAgx.js → infiniteQueryObserver-CqgjS-0t.js} +1 -1
  89. package/dist/client/assets/{input-DTt32vul.js → input-C_yS3xcH.js} +1 -1
  90. package/dist/client/assets/{integration-icon-C60b_d7I.js → integration-icon-Bo6pUZaI.js} +1 -1
  91. package/dist/client/assets/{label-BhsxXb5j.js → label-Db5-Ti17.js} +1 -1
  92. package/dist/client/assets/{layout-R2hI-PPe.js → layout-pm8MWjUM.js} +1 -1
  93. package/dist/client/assets/{lean-canvas-recruit-modal-cabC6cgI.js → lean-canvas-recruit-modal-CMe9dICf.js} +1 -1
  94. package/dist/client/assets/{login-Dva0Y2V_.js → login-DcADGw4l.js} +1 -1
  95. package/dist/client/assets/{members-Ou1keNAh.js → members-D0oNDXFg.js} +1 -1
  96. package/dist/client/assets/{monaco-editor-CMrJ86sf.js → monaco-editor-Ca7S2n96.js} +1 -1
  97. package/dist/client/assets/{monitoring-stats-row-tiSP7a3c.js → monitoring-stats-row-CEJjasED.js} +1 -1
  98. package/dist/client/assets/{oauth-callback-Cz2eV7A_.js → oauth-callback-DqHg_RJ-.js} +1 -1
  99. package/dist/client/assets/{oauth-callback-ai-provider-C9l8YAob.js → oauth-callback-ai-provider-B02IDnhY.js} +1 -1
  100. package/dist/client/assets/{onboarding-RgB912Pu.js → onboarding-Bry0-GLA.js} +1 -1
  101. package/dist/client/assets/{org-layout-B68eO6KC.js → org-layout-BlOHyHcD.js} +1 -1
  102. package/dist/client/assets/{org-plugin-layout-Dy7mAYsZ.js → org-plugin-layout-D4gcimpK.js} +1 -1
  103. package/dist/client/assets/{pair-mPsfY4Tl.js → pair-BUViJlsp.js} +52 -52
  104. package/dist/client/assets/{plugin-empty-state-DNUBfOpk.js → plugin-empty-state-fYJD-Q7V.js} +1 -1
  105. package/dist/client/assets/{plugin-header-D-036HBF.js → plugin-header-DU-HqRte.js} +1 -1
  106. package/dist/client/assets/{plugin-layout-MmU0m6ZW.js → plugin-layout-BSFJkkch.js} +1 -1
  107. package/dist/client/assets/{popover-BJlGGBoZ.js → popover-MU7vm-Ss.js} +1 -1
  108. package/dist/client/assets/{profile-CDeQH0Ne.js → profile-xqMUywaT.js} +1 -1
  109. package/dist/client/assets/{project-app-view-DhcSNy7a.js → project-app-view-BqpppcMR.js} +1 -1
  110. package/dist/client/assets/registry-dzIfzA3A.js +2 -0
  111. package/dist/client/assets/{registry-layout-DjRsP-ha.js → registry-layout-CmGJk9gL.js} +1 -1
  112. package/dist/client/assets/{required-auth-layout-CanoKJcr.js → required-auth-layout-CEvA-cMx.js} +1 -1
  113. package/dist/client/assets/{reset-password-CeQ244pS.js → reset-password-ztaQl_V6.js} +1 -1
  114. package/dist/client/assets/{roles-ClefMxwg.js → roles-CudAuOcm.js} +1 -1
  115. package/dist/client/assets/{scroll-area-Bg2pYWAU.js → scroll-area-CH7fmiP5.js} +1 -1
  116. package/dist/client/assets/{search-input-CtBB2Ogw.js → search-input-BSQBQqQo.js} +1 -1
  117. package/dist/client/assets/{select-Bmu7KX9g.js → select-D6JncnqD.js} +1 -1
  118. package/dist/client/assets/{select-model-A6plReXc.js → select-model-wpfAwZjr.js} +1 -1
  119. package/dist/client/assets/{settings-layout-arVQNb4q.js → settings-layout-D0-prTNg.js} +1 -1
  120. package/dist/client/assets/{settings-section-Bh35ipKE.js → settings-section-0jncgYYS.js} +1 -1
  121. package/dist/client/assets/{shell-layout-G1fWb3Wf.js → shell-layout-C82h9TAz.js} +1 -1
  122. package/dist/client/assets/{sidebar-CaCy2pvj.js → sidebar-CzaCFCIP.js} +1 -1
  123. package/dist/client/assets/{skeleton-B2ZrUZa6.js → skeleton-Cf_78ip3.js} +1 -1
  124. package/dist/client/assets/{spinner-M0_j9E66.js → spinner-C0PrLZkk.js} +1 -1
  125. package/dist/client/assets/{sso-BP3gjZB7.js → sso-BBIQ8E_Z.js} +1 -1
  126. package/dist/client/assets/{store-B88v1kcS.js → store-DrbKkTYN.js} +1 -1
  127. package/dist/client/assets/store-registry-Cpi17OhH.js +2 -0
  128. package/dist/client/assets/{switch-MKqFhI8u.js → switch-D1W9lQbl.js} +1 -1
  129. package/dist/client/assets/{table-Dpz7V2d2.js → table-CB0to7Mg.js} +1 -1
  130. package/dist/client/assets/{tabs-Jp4EeqTR.js → tabs-CL8GAts-.js} +1 -1
  131. package/dist/client/assets/{task-status-Ch-lJ70q.js → task-status-DJ-bgLjk.js} +1 -1
  132. package/dist/client/assets/{textarea-D4e6a8Nz.js → textarea-CAEWSHRI.js} +1 -1
  133. package/dist/client/assets/{toggle-group-BDnmrZSN.js → toggle-group-DqCa9HE1.js} +1 -1
  134. package/dist/client/assets/{tools-list-DuzUp3Cr.js → tools-list-_0r9UJKM.js} +1 -1
  135. package/dist/client/assets/{tooltip-Cop6BWIB.js → tooltip-BFNw8f3o.js} +1 -1
  136. package/dist/client/assets/{types-B1bS009C.js → types-BDE1Jm7w.js} +1 -1
  137. package/dist/client/assets/{use-ai-providers-BGcGBNhE.js → use-ai-providers-Dce-BGLz.js} +1 -1
  138. package/dist/client/assets/{use-collections-8VzaVe93.js → use-collections-CVe9qc-v.js} +1 -1
  139. package/dist/client/assets/{use-connection-Lr8heJ8D.js → use-connection-3ycjXI4a.js} +1 -1
  140. package/dist/client/assets/{use-copy-Cu8-dSUz.js → use-copy-Caj4t-yC.js} +1 -1
  141. package/dist/client/assets/{use-create-virtual-mcp-BobcuW0I.js → use-create-virtual-mcp-Do8GhqH4.js} +1 -1
  142. package/dist/client/assets/{use-debounced-autosave-CyEn9Ro2.js → use-debounced-autosave-CRf9ECE0.js} +1 -1
  143. package/dist/client/assets/{use-decopilot-events-CiJL_0vR.js → use-decopilot-events-Blsa-lmr.js} +1 -1
  144. package/dist/client/assets/{use-delete-connection-CiGpEvZr.js → use-delete-connection-CoEjrdvG.js} +1 -1
  145. package/dist/client/assets/{use-infinite-scroll-BkIExLyi.js → use-infinite-scroll-CAc3FuPh.js} +1 -1
  146. package/dist/client/assets/{use-list-state-DbpCBDBf.js → use-list-state-CxDzDzTf.js} +1 -1
  147. package/dist/client/assets/{use-mcp-tools-DQxTqUp3.js → use-mcp-tools-CE1nGLgO.js} +1 -1
  148. package/dist/client/assets/{use-members-B_II-0yJ.js → use-members-BetwC_Q7.js} +1 -1
  149. package/dist/client/assets/{use-navigate-to-agent-C4qiakGR.js → use-navigate-to-agent-Jr0qq607.js} +1 -1
  150. package/dist/client/assets/{use-org-auth-client-BACib0-t.js → use-org-auth-client-Bw4N0B6x.js} +1 -1
  151. package/dist/client/assets/{use-org-sso-Dam1kDCD.js → use-org-sso-B1_KGou1.js} +1 -1
  152. package/dist/client/assets/{use-organization-roles-STx8KC7J.js → use-organization-roles-DClQ8sao.js} +1 -1
  153. package/dist/client/assets/{use-organization-settings-4FSfpkha.js → use-organization-settings-Dyq_DMKR.js} +1 -1
  154. package/dist/client/assets/{use-registry-connections-Dr0EGoqa.js → use-registry-connections-BFHlvbMw.js} +1 -1
  155. package/dist/client/assets/{use-status-sounds-DTHvTmo7.js → use-status-sounds-C-UlBRtP.js} +1 -1
  156. package/dist/client/assets/{use-tasks-C2q1pKyD.js → use-tasks-br6-_mMm.js} +1 -1
  157. package/dist/client/assets/{use-view-mode-Bo1TFi-O.js → use-view-mode-BLIRToAP.js} +1 -1
  158. package/dist/client/assets/{use-virtual-mcp-CD_T-y85.js → use-virtual-mcp-9Agm63SE.js} +1 -1
  159. package/dist/client/assets/useInfiniteQuery-_Nzku7Nf.js +1 -0
  160. package/dist/client/assets/useSuspenseInfiniteQuery-D_bidDXo.js +1 -0
  161. package/dist/client/assets/{user-DOkjJZQI.js → user-BdIWPsTG.js} +1 -1
  162. package/dist/client/assets/{view-mode-toggle-Cf3Unpm2.js → view-mode-toggle-D0XsFAsO.js} +1 -1
  163. package/dist/client/assets/{workflow-CQNAZF1P.js → workflow-CmjKRIYJ.js} +1 -1
  164. package/dist/client/assets/workflow-detail-BlOhwTim.js +1 -0
  165. package/dist/client/index.html +1 -1
  166. package/dist/server/cli.js +52 -37
  167. package/dist/server/node_modules/ansi-styles/index.d.ts +236 -0
  168. package/dist/server/node_modules/ansi-styles/index.js +223 -0
  169. package/dist/server/node_modules/ansi-styles/package.json +54 -0
  170. package/dist/server/node_modules/ansi-styles/readme.md +173 -0
  171. package/dist/server/node_modules/environment/index.d.ts +74 -0
  172. package/dist/server/node_modules/environment/index.js +47 -0
  173. package/dist/server/node_modules/{slice-ansi → environment}/license +0 -1
  174. package/dist/server/node_modules/environment/package.json +74 -0
  175. package/dist/server/node_modules/environment/readme.md +94 -0
  176. package/dist/server/node_modules/escape-string-regexp/index.d.ts +18 -0
  177. package/dist/server/node_modules/escape-string-regexp/index.js +11 -0
  178. package/dist/server/node_modules/escape-string-regexp/license +9 -0
  179. package/dist/server/node_modules/escape-string-regexp/package.json +43 -0
  180. package/dist/server/node_modules/escape-string-regexp/readme.md +29 -0
  181. package/dist/server/node_modules/is-fullwidth-code-point/index.d.ts +17 -0
  182. package/dist/server/node_modules/is-fullwidth-code-point/index.js +12 -0
  183. package/dist/server/node_modules/is-fullwidth-code-point/license +9 -0
  184. package/dist/server/node_modules/{figures → is-fullwidth-code-point}/package.json +20 -16
  185. package/dist/server/node_modules/is-fullwidth-code-point/readme.md +31 -0
  186. package/dist/server/node_modules/is-unicode-supported/index.d.ts +12 -0
  187. package/dist/server/node_modules/is-unicode-supported/index.js +21 -0
  188. package/dist/server/node_modules/is-unicode-supported/license +9 -0
  189. package/dist/server/node_modules/is-unicode-supported/package.json +47 -0
  190. package/dist/server/node_modules/is-unicode-supported/readme.md +35 -0
  191. package/dist/server/node_modules/pg-int8/LICENSE +13 -0
  192. package/dist/server/node_modules/pg-int8/README.md +16 -0
  193. package/dist/server/node_modules/pg-int8/index.js +100 -0
  194. package/dist/server/node_modules/pg-int8/package.json +24 -0
  195. package/dist/server/node_modules/postgres-array/index.d.ts +4 -0
  196. package/dist/server/node_modules/postgres-array/index.js +97 -0
  197. package/dist/server/node_modules/{deepmerge/license.txt → postgres-array/license} +1 -1
  198. package/dist/server/node_modules/postgres-array/package.json +35 -0
  199. package/dist/server/node_modules/postgres-array/readme.md +43 -0
  200. package/dist/server/node_modules/postgres-bytea/index.js +33 -0
  201. package/dist/server/node_modules/postgres-bytea/license +21 -0
  202. package/dist/server/node_modules/postgres-bytea/package.json +34 -0
  203. package/dist/server/node_modules/postgres-bytea/readme.md +34 -0
  204. package/dist/server/node_modules/postgres-date/index.js +116 -0
  205. package/dist/server/node_modules/postgres-date/license +21 -0
  206. package/dist/server/node_modules/postgres-date/package.json +33 -0
  207. package/dist/server/node_modules/postgres-date/readme.md +49 -0
  208. package/dist/server/node_modules/postgres-interval/index.d.ts +20 -0
  209. package/dist/server/node_modules/postgres-interval/index.js +125 -0
  210. package/dist/server/node_modules/postgres-interval/license +21 -0
  211. package/dist/server/node_modules/postgres-interval/package.json +36 -0
  212. package/dist/server/node_modules/postgres-interval/readme.md +48 -0
  213. package/dist/server/node_modules/restore-cursor/index.d.ts +11 -0
  214. package/dist/server/node_modules/restore-cursor/index.js +11 -0
  215. package/dist/server/node_modules/restore-cursor/license +9 -0
  216. package/dist/server/node_modules/restore-cursor/package.json +55 -0
  217. package/dist/server/node_modules/restore-cursor/readme.md +31 -0
  218. package/dist/server/node_modules/split2/LICENSE +13 -0
  219. package/dist/server/node_modules/split2/README.md +85 -0
  220. package/dist/server/node_modules/split2/bench.js +27 -0
  221. package/dist/server/node_modules/split2/index.js +141 -0
  222. package/dist/server/node_modules/split2/package.json +39 -0
  223. package/dist/server/node_modules/split2/test.js +409 -0
  224. package/dist/server/node_modules/string-width/index.d.ts +39 -0
  225. package/dist/server/node_modules/string-width/index.js +82 -0
  226. package/dist/server/node_modules/string-width/license +9 -0
  227. package/dist/server/node_modules/string-width/package.json +64 -0
  228. package/dist/server/node_modules/string-width/readme.md +66 -0
  229. package/dist/server/node_modules/xtend/.jshintrc +30 -0
  230. package/dist/server/node_modules/{pg → xtend}/LICENSE +6 -7
  231. package/dist/server/node_modules/xtend/README.md +32 -0
  232. package/dist/server/node_modules/xtend/immutable.js +19 -0
  233. package/dist/server/node_modules/xtend/mutable.js +17 -0
  234. package/dist/server/node_modules/xtend/package.json +55 -0
  235. package/dist/server/node_modules/xtend/test.js +103 -0
  236. package/dist/server/server.js +51 -36
  237. package/package.json +1 -1
  238. package/dist/client/assets/registry-CXcvF-uz.js +0 -2
  239. package/dist/client/assets/store-registry-BebL2rFu.js +0 -2
  240. package/dist/client/assets/useInfiniteQuery-Dj_RSaBx.js +0 -1
  241. package/dist/client/assets/useSuspenseInfiniteQuery-DJb5VXkS.js +0 -1
  242. package/dist/client/assets/workflow-detail-E-UgwIFZ.js +0 -1
  243. package/dist/server/node_modules/deepmerge/.editorconfig +0 -7
  244. package/dist/server/node_modules/deepmerge/.eslintcache +0 -1
  245. package/dist/server/node_modules/deepmerge/changelog.md +0 -167
  246. package/dist/server/node_modules/deepmerge/dist/cjs.js +0 -133
  247. package/dist/server/node_modules/deepmerge/dist/umd.js +0 -139
  248. package/dist/server/node_modules/deepmerge/index.d.ts +0 -20
  249. package/dist/server/node_modules/deepmerge/index.js +0 -106
  250. package/dist/server/node_modules/deepmerge/package.json +0 -42
  251. package/dist/server/node_modules/deepmerge/readme.md +0 -264
  252. package/dist/server/node_modules/deepmerge/rollup.config.js +0 -22
  253. package/dist/server/node_modules/figures/index.d.ts +0 -279
  254. package/dist/server/node_modules/figures/index.js +0 -292
  255. package/dist/server/node_modules/figures/readme.md +0 -337
  256. package/dist/server/node_modules/pg/README.md +0 -95
  257. package/dist/server/node_modules/pg/esm/index.mjs +0 -20
  258. package/dist/server/node_modules/pg/lib/client.js +0 -743
  259. package/dist/server/node_modules/pg/lib/connection-parameters.js +0 -171
  260. package/dist/server/node_modules/pg/lib/connection.js +0 -221
  261. package/dist/server/node_modules/pg/lib/crypto/cert-signatures.js +0 -122
  262. package/dist/server/node_modules/pg/lib/crypto/sasl.js +0 -212
  263. package/dist/server/node_modules/pg/lib/crypto/utils-legacy.js +0 -43
  264. package/dist/server/node_modules/pg/lib/crypto/utils-webcrypto.js +0 -89
  265. package/dist/server/node_modules/pg/lib/crypto/utils.js +0 -9
  266. package/dist/server/node_modules/pg/lib/defaults.js +0 -91
  267. package/dist/server/node_modules/pg/lib/index.js +0 -73
  268. package/dist/server/node_modules/pg/lib/native/client.js +0 -323
  269. package/dist/server/node_modules/pg/lib/native/index.js +0 -2
  270. package/dist/server/node_modules/pg/lib/native/query.js +0 -165
  271. package/dist/server/node_modules/pg/lib/query.js +0 -252
  272. package/dist/server/node_modules/pg/lib/result.js +0 -109
  273. package/dist/server/node_modules/pg/lib/stream.js +0 -83
  274. package/dist/server/node_modules/pg/lib/type-overrides.js +0 -35
  275. package/dist/server/node_modules/pg/lib/utils.js +0 -217
  276. package/dist/server/node_modules/pg/package.json +0 -76
  277. package/dist/server/node_modules/slice-ansi/index.d.ts +0 -19
  278. package/dist/server/node_modules/slice-ansi/index.js +0 -260
  279. package/dist/server/node_modules/slice-ansi/package.json +0 -59
  280. package/dist/server/node_modules/slice-ansi/readme.md +0 -54
  281. package/dist/server/node_modules/slice-ansi/tokenize-ansi.js +0 -752
  282. /package/dist/server/node_modules/{figures → ansi-styles}/license +0 -0
@@ -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 tA1(X){let Y={...process.env},G=GK1(X,Y),Q=G.settings.encryptionKey;console.log(`[settings] ENCRYPTION_KEY = ${JSON.stringify(Q)} (${Q.length} chars)`);let{ensureServices:J}=await Promise.resolve().then(() => (c$1(),d$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(() => (HW0(),Ag4));await K(W.databaseUrl);let{createDatabase:H}=await Promise.resolve().then(() => (ZU(),qg4)),{migrateToLatest:U}=await Promise.resolve().then(() => (hs4(),xs4)),B=H(W.databaseUrl);await U({keepOpen:!0,database:B,skipBetterAuth:!0})}if(G.settings.clickhouseUrl){let{ensureClickHouseRollup:K}=await Promise.resolve().then(() => g16);await K(G.settings.clickhouseUrl)}let $={...G.settings,databaseUrl:W.databaseUrl,natsUrls:W.natsUrls};return it1($),{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 mz0=w(()=>{ct1();m9()});var oA1={};A0(oA1,{updateService:()=>Wa,toggleViewMode:()=>cz0,toggleVibeState:()=>pz0,toggleLogFlow:()=>iz0,subscribeCliState:()=>hX1,setVibe:()=>ta5,setTuiConsoleIntercepted:()=>aA1,setServerUrl:()=>uX1,setMigrationsDone:()=>gX1,setEnv:()=>lX1,setDevMode:()=>pa5,setDataDir:()=>na5,isTuiConsoleIntercepted:()=>rA1,getCliState:()=>xX1,addLogEntry:()=>$N});function TU(){for(let X of dz0)X()}function xX1(){return Y7}function hX1(X){return dz0.add(X),()=>dz0.delete(X)}function Wa(X){Y7={...Y7,services:Y7.services.map((Y)=>Y.name===X.name?X:Y)},TU()}function gX1(){Y7={...Y7,migrationsStatus:"done"},TU()}function uX1(X){Y7={...Y7,serverUrl:X},TU()}function lX1(X){Y7={...Y7,env:X},TU()}function $N(X){let Y=[...Y7.logs,X];Y7={...Y7,logs:Y.length>500?Y.slice(-500):Y},TU()}function pa5(){Y7={...Y7,services:[...Y7.services,{name:"Vite",status:"pending",port:0}]},TU()}function cz0(){Y7={...Y7,viewMode:Y7.viewMode==="requests"?"config":"requests"},TU()}function iz0(){Y7={...Y7,logFlow:!Y7.logFlow},TU()}function na5(X){Y7={...Y7,dataDir:X},TU()}function ta5(X){Y7={...Y7,vibe:X},TU()}function pz0(){Y7={...Y7,vibe:!Y7.vibe},TU()}function aA1(X){u16=X}function rA1(){return u16}var Y7,dz0,u16=!1;var KN=w(()=>{Y7={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},dz0=new Set});import{createServer as l16}from"net";function aa5(X){return new Promise((Y)=>{let G=l16();G.once("error",()=>Y(!1)),G.listen(X,"0.0.0.0",()=>{G.close(()=>Y(!0))})})}async function sA1(X){if(await aa5(X))return X;let Y=await new Promise((G,Q)=>{let J=l16();J.once("error",Q),J.listen(0,"0.0.0.0",()=>{let W=J.address(),Z=typeof W==="object"&&W?W.port:0;J.close(()=>G(Z))})});return console.warn(`Port ${X} is in use, using port ${Y} instead.`),Y}var nz0=()=>{};var tz0={};A0(tz0,{startDevServer:()=>oa5});import{join as ra5}from"path";function m16(X){return X.replace(/\x1b\[[0-9;]*m/g,"")}function d16(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 $=m16(Z).replace(/^\[\d+\]\s*/,"").trim();if(!$)continue;$N({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=m16(Q).replace(/^\[\d+\]\s*/,"").trim();if(W)$N({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:W})}})()}async function oa5(X){let{vitePort:Y,baseUrl:G,noTui:Q}=X,J=await sA1(Number(X.port)),{settings:W,services:Z,managedServiceNames:$}=await tA1({port:String(J),home:X.home,baseUrl:X.baseUrl,localMode:X.localMode,skipMigrations:X.skipMigrations,noTui:X.noTui,vitePort:X.vitePort});for(let N of Z)Wa({name:N.name,status:"ready",port:N.port});lX1(W),gX1();let K=ra5(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)d16(U.stdout),d16(U.stderr);let B=G||`http://localhost:${W.port}`;uX1(B),Wa({name:"Vite",status:"ready",port:Number(Y)});let z=async(N)=>{if(U.kill(N),$.length>0){let{stopServices:O}=await Promise.resolve().then(() => (c$1(),d$1));await O(W.dataDir)}};return process.on("SIGINT",()=>z("SIGINT")),process.on("SIGTERM",()=>z("SIGTERM")),{port:Number(W.port),process:U}}var az0=w(()=>{mz0();KN();nz0()});import{Box as rz0,Text as oz0}from"ink";import{jsx as i16,jsxs as eA1}from"react/jsx-runtime";function c16(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 Xr5(X,Y){if(sa5.has(X))return Y?{text:"\u25CF\u25CF\u25CF\u25CF\u25CF\u25CF",dimColor:!0}:{text:"not set",dimColor:!0};if(ea5.has(X)){if(Array.isArray(Y)){if(Y.length===0)return{text:"not set",dimColor:!0};return{text:Y.map((W)=>c16(W)).join(", "),color:"cyan"}}let Q=c16(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 Yr5(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_SSO_GOOGLE_CLIENT_ID",value:!!process.env.AUTH_SSO_GOOGLE_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 p16({env:X}){let Y=Yr5(X);return i16(rz0,{flexDirection:"column",children:Y.map((G)=>eA1(rz0,{flexDirection:"column",marginTop:1,children:[eA1(oz0,{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=Xr5(Q,J);return eA1(rz0,{children:[eA1(oz0,{dimColor:!0,children:[" ",Q.padEnd(36)]}),i16(oz0,{color:W.color,dimColor:W.dimColor,children:W.text})]},Q)})]},G.title))})}var sa5,ea5;var n16=w(()=>{sa5=new Set(["BETTER_AUTH_SECRET","ENCRYPTION_KEY","MESH_JWT_SECRET","STUDIO_PROVISION_SECRET_KEY"]),ea5=new Set(["DATABASE_URL","CLICKHOUSE_URL","NATS_URL"])});var sz0;var t16=w(()=>{sz0={name:"decocms",version:"2.316.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 IU,Text as RX}from"ink";import{Spinner as Qr5}from"@inkjs/ui";import{useSyncExternalStore as a16}from"react";import{jsx as TY,jsxs as oQ}from"react/jsx-runtime";function Kr5(X,Y){if(!X||!$r5.has(X))return X;let G=ez0[Y]??ez0[ez0.length-1];return X==="#875f00"?G[0]:G[1]}function r16({status:X}){if(X==="pending")return TY(Qr5,{label:""});return TY(RX,{color:"green",children:"\u2713"})}function o16({services:X,migrationsStatus:Y,home:G,serverUrl:Q,vibe:J}){let W=a16(Wd0,Zd0),Z=a16(Bd0,Ud0);return oQ(IU,{flexDirection:"column",paddingBottom:1,children:[J?oQ(IU,{flexDirection:"column",children:[W.map(($,K)=>{let H=Z[K],U=$.reduce((z,N)=>z+N.text.length,0),B=Math.max(0,Wr5-U);return oQ(IU,{flexDirection:"row",children:[$.map((z,N)=>{let O=Kr5(z.color,K);return O?TY(RX,{color:O,children:z.text},N):TY(RX,{children:z.text},N)}),TY(RX,{children:" ".repeat(B+2)}),H?.map((z,N)=>z.color?TY(RX,{color:z.color,children:z.char},N):TY(RX,{children:z.char},N))]},K)}),oQ(RX,{dimColor:!0,children:[" v",sz0.version]})]}):oQ(IU,{flexDirection:"column",marginTop:1,children:[Jr5.map(($,K)=>TY(RX,{color:Zr5[K],children:$},K)),oQ(RX,{dimColor:!0,children:[" v",sz0.version]})]}),TY(IU,{marginBottom:1,children:TY(RX,{dimColor:!0,children:"\u2500".repeat(80)})}),TY(IU,{children:oQ(RX,{dimColor:!0,children:["Home: ",G]})}),oQ(IU,{gap:2,children:[X.map(($)=>oQ(IU,{gap:1,children:[oQ(RX,{children:[$.name," :",$.port||"...."]}),TY(r16,{status:$.status})]},$.name)),oQ(IU,{gap:1,children:[TY(RX,{children:"Migrations"}),TY(r16,{status:Y})]})]}),TY(IU,{children:Q?oQ(RX,{children:["Open in browser: ",TY(RX,{color:"cyan",children:Q})]}):TY(RX,{dimColor:!0,children:"Starting..."})}),oQ(IU,{gap:2,children:[oQ(RX,{dimColor:!0,children:[TY(RX,{bold:!0,dimColor:!0,children:"K"})," ","toggle config"]}),oQ(RX,{dimColor:!0,children:[TY(RX,{bold:!0,dimColor:!0,children:"L"})," ","toggle log flow"]}),oQ(RX,{dimColor:!0,children:[TY(RX,{bold:!0,dimColor:!0,children:"V"})," ","toggle vibe ",J?"\u266A Nihilore \xB7 CC BY 4.0":""]}),J&&oQ(RX,{dimColor:!0,children:[TY(RX,{bold:!0,dimColor:!0,children:"N"})," ","skip song"]})]})]})}var Jr5,Zr5,ez0,Wr5=30,$r5;var s16=w(()=>{t16();_t1();gt1();Jr5=[" \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 "],Zr5=["#00ff64","#00ee5e","#00dc56","#00c84e","#00b444","#00a03c","#008832","#006e28"],ez0=[["#00ff64","#00cc50"],["#00f060","#00c04c"],["#00e05c","#00b448"],["#00d058","#00a844"],["#00c054","#009c40"],["#00b050","#00903c"],["#00a04c","#008438"],["#009048","#007834"],["#008044","#006c30"],["#007040","#00602c"],["#00603c","#005428"]],$r5=new Set(["#875f00","#5f3800"])});import{useSyncExternalStore as Hr5}from"react";function Fr5(){let X=process.stdout.rows||24,Y=process.stdout.columns||80;if(X!==XT1.rows||Y!==XT1.columns)XT1={rows:X,columns:Y};return XT1}function Ur5(X){return process.stdout.on("resize",X),()=>{process.stdout.off("resize",X)}}function e16(){return Hr5(Ur5,Fr5)}var XT1;var X06=w(()=>{XT1={rows:process.stdout.rows||24,columns:process.stdout.columns||80}});import{Box as Br5,Text as mX1}from"ink";import{useSyncExternalStore as zr5}from"react";import{jsx as XN0,jsxs as YN0}from"react/jsx-runtime";function Nr5(X){if(X>=500)return"red";if(X>=400)return"yellow";if(X>=300)return"cyan";return"green"}function Y06({logs:X,headerHeight:Y}){let{rows:G}=e16(),{logFlow:Q}=zr5(hX1,xX1),J=Math.max(1,G-Y-1),W=Q?X:X.slice(-J);return XN0(Br5,{flexDirection:"column",children:W.map((Z,$)=>{if(Z.rawLine)return XN0(mX1,{dimColor:!0,children:Z.rawLine},$);let K=Z.duration<1000?`${Z.duration}ms`:`${(Z.duration/1000).toFixed(1)}s`;return YN0(mX1,{children:[YN0(mX1,{dimColor:!0,children:[Z.method.padEnd(6)," ",Z.path.padEnd(30)," "]}),XN0(mX1,{color:Nr5(Z.status),children:Z.status}),YN0(mX1,{dimColor:!0,children:[" ",K.padStart(8)]})]},$)})})}var G06=w(()=>{KN();X06()});var GN0={};A0(GN0,{App:()=>qr5});import{Box as Or5,Text as Dr5,useInput as wr5}from"ink";import{useSyncExternalStore as Lr5}from"react";import{jsx as YT1,jsxs as Ar5}from"react/jsx-runtime";function qr5({home:X}){let Y=Lr5(hX1,xX1);return wr5((G)=>{if(G==="k"||G==="K")cz0();if(G==="l"||G==="L")iz0();if((G==="v"||G==="V")&&Y.dataDir)dt1(Y.dataDir),pz0();if((G==="n"||G==="N")&&Y.vibe)mt1()}),Ar5(Or5,{flexDirection:"column",children:[YT1(o16,{services:Y.services,migrationsStatus:Y.migrationsStatus,home:X,serverUrl:Y.serverUrl,vibe:Y.vibe}),Y.viewMode==="config"?Y.env?YT1(p16,{env:Y.env}):YT1(Dr5,{dimColor:!0,children:"Loading configuration..."}):YT1(Y06,{logs:Y.logs,headerHeight:Y.vibe?Pr5:Er5})]})}var Er5=15,Pr5=19;var QN0=w(()=>{n16();s16();G06();KN();hd()});function Q06(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 hV=k((Rr5)=>{Rr5.HttpAuthLocation=void 0;(function(X){X.HEADER="header",X.QUERY="query"})(Rr5.HttpAuthLocation||(Rr5.HttpAuthLocation={}));Rr5.HttpApiKeyAuthLocation=void 0;(function(X){X.HEADER="header",X.QUERY="query"})(Rr5.HttpApiKeyAuthLocation||(Rr5.HttpApiKeyAuthLocation={}));Rr5.EndpointURLScheme=void 0;(function(X){X.HTTP="http",X.HTTPS="https"})(Rr5.EndpointURLScheme||(Rr5.EndpointURLScheme={}));Rr5.AlgorithmId=void 0;(function(X){X.MD5="md5",X.CRC32="crc32",X.CRC32C="crc32c",X.SHA1="sha1",X.SHA256="sha256"})(Rr5.AlgorithmId||(Rr5.AlgorithmId={}));var Tr5=(X)=>{let Y=[];if(X.sha256!==void 0)Y.push({algorithmId:()=>Rr5.AlgorithmId.SHA256,checksumConstructor:()=>X.sha256});if(X.md5!=null)Y.push({algorithmId:()=>Rr5.AlgorithmId.MD5,checksumConstructor:()=>X.md5});return{addChecksumAlgorithm(G){Y.push(G)},checksumAlgorithms(){return Y}}},Ir5=(X)=>{let Y={};return X.checksumAlgorithms().forEach((G)=>{Y[G.algorithmId()]=G.checksumConstructor()}),Y},jr5=(X)=>{return Tr5(X)},Vr5=(X)=>{return Ir5(X)};Rr5.FieldPosition=void 0;(function(X){X[X.HEADER=0]="HEADER",X[X.TRAILER=1]="TRAILER"})(Rr5.FieldPosition||(Rr5.FieldPosition={}));var Mr5="__smithy_context";Rr5.IniSectionType=void 0;(function(X){X.PROFILE="profile",X.SSO_SESSION="sso-session",X.SERVICES="services"})(Rr5.IniSectionType||(Rr5.IniSectionType={}));Rr5.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"})(Rr5.RequestHandlerProtocol||(Rr5.RequestHandlerProtocol={}));Rr5.SMITHY_CONTEXT_KEY=Mr5;Rr5.getDefaultClientConfiguration=jr5;Rr5.resolveDefaultRuntimeConfig=Vr5});var u7=k((xr5)=>{var vr5=hV(),_r5=(X)=>{return{setHttpHandler(Y){X.httpHandler=Y},httpHandler(){return X.httpHandler},updateHttpClientConfig(Y,G){X.httpHandler?.updateHttpClientConfig(Y,G)},httpHandlerConfigs(){return X.httpHandler.httpHandlerConfigs()}}},fr5=(X)=>{return{httpHandler:X.httpHandler()}};class J06{name;kind;values;constructor({name:X,kind:Y=vr5.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 Z06{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 GT1{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 GT1({...X,headers:{...X.headers}});if(Y.query)Y.query=br5(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 GT1.clone(this)}}function br5(X){return Object.keys(X).reduce((Y,G)=>{let Q=X[G];return{...Y,[G]:Array.isArray(Q)?[...Q]:Q}},{})}class W06{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 yr5(X){return/^[a-z0-9][a-z0-9\.\-]*[a-z0-9]$/.test(X)}xr5.Field=J06;xr5.Fields=Z06;xr5.HttpRequest=GT1;xr5.HttpResponse=W06;xr5.getHttpHandlerExtensionConfiguration=_r5;xr5.isValidHostname=yr5;xr5.resolveHttpHandlerRuntimeConfig=fr5});function ir5(X){return(Y)=>async(G)=>{let{request:Q}=G;if(X.expectContinueHeader!==!1&&$06.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 $06,pr5,K06=(X)=>({applyToStack:(Y)=>{Y.add(ir5(X),pr5)}});var H06=w(()=>{$06=X1(u7(),1);pr5={step:"build",tags:["SET_EXPECT_HEADER","EXPECT_HEADER"],name:"addExpectContinueMiddleware",override:!0}});var LH,QT1,gV,JT1,E9,F06,cX1;var EH=w(()=>{LH={WHEN_SUPPORTED:"WHEN_SUPPORTED",WHEN_REQUIRED:"WHEN_REQUIRED"},QT1=LH.WHEN_SUPPORTED,gV={WHEN_SUPPORTED:"WHEN_SUPPORTED",WHEN_REQUIRED:"WHEN_REQUIRED"},JT1=LH.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"})(F06||(F06={}));cX1=E9.CRC32});var Cq,$a=(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 FN0=w(()=>{(function(X){X.ENV="env",X.CONFIG="shared config entry"})(Cq||(Cq={}))});var nr5="AWS_REQUEST_CHECKSUM_CALCULATION",tr5="request_checksum_calculation",U06;var B06=w(()=>{EH();FN0();U06={environmentVariableSelector:(X)=>$a(X,nr5,LH,Cq.ENV),configFileSelector:(X)=>$a(X,tr5,LH,Cq.CONFIG),default:QT1}});var ar5="AWS_RESPONSE_CHECKSUM_VALIDATION",rr5="response_checksum_validation",z06;var N06=w(()=>{EH();FN0();z06={environmentVariableSelector:(X)=>$a(X,ar5,gV,Cq.ENV),configFileSelector:(X)=>$a(X,rr5,gV,Cq.CONFIG),default:JT1}});var BN0=k((Wo5)=>{var or5=["AuthFailure","InvalidSignatureException","RequestExpired","RequestInTheFuture","RequestTimeTooSkewed","SignatureDoesNotMatch"],sr5=["BandwidthLimitExceeded","EC2ThrottledException","LimitExceededException","PriorRequestNotComplete","ProvisionedThroughputExceededException","RequestLimitExceeded","RequestThrottled","RequestThrottledException","SlowDown","ThrottledException","Throttling","ThrottlingException","TooManyRequestsException","TransactionInProgressException"],er5=["TimeoutError","RequestTimeout","RequestTimeoutException"],Xo5=[500,502,503,504],Yo5=["ECONNRESET","ECONNREFUSED","EPIPE","ETIMEDOUT"],Go5=["EHOSTUNREACH","ENETUNREACH","ENOTFOUND"],O06=(X)=>X?.$retryable!==void 0,Qo5=(X)=>or5.includes(X.name),D06=(X)=>X.$metadata?.clockSkewCorrected,w06=(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)},Jo5=(X)=>X.$metadata?.httpStatusCode===429||sr5.includes(X.name)||X.$retryable?.throttling==!0,UN0=(X,Y=0)=>O06(X)||D06(X)||X.name==="InvalidSignatureException"&&X.message?.includes("Signature expired")||er5.includes(X.name)||Yo5.includes(X?.code||"")||Go5.includes(X?.code||"")||Xo5.includes(X.$metadata?.httpStatusCode||0)||w06(X)||L06(X)||X.cause!==void 0&&Y<=10&&UN0(X.cause,Y+1),Zo5=(X)=>{if(X.$metadata?.httpStatusCode!==void 0){let Y=X.$metadata.httpStatusCode;if(500<=Y&&Y<=599&&!UN0(X))return!0;return!1}return!1};function L06(X){return X.code==="ERR_HTTP2_STREAM_ERROR"&&X.message.includes("NGHTTP2_REFUSED_STREAM")}Wo5.isBrowserNetworkError=w06;Wo5.isClockSkewCorrectedError=D06;Wo5.isClockSkewError=Qo5;Wo5.isNodeJsHttp2TransientError=L06;Wo5.isRetryableByTrait=O06;Wo5.isServerError=Zo5;Wo5.isThrottlingError=Jo5;Wo5.isTransientError=UN0});var ww=k((To5)=>{var Oo5=BN0();To5.RETRY_MODES=void 0;(function(X){X.STANDARD="standard",X.ADAPTIVE="adaptive"})(To5.RETRY_MODES||(To5.RETRY_MODES={}));var WT1=3,Do5=To5.RETRY_MODES.STANDARD;class $T1{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"||Oo5.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)=>$T1.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 wo5=100,ON0=20000,Lo5=500,zN0=500,Eo5=5,Po5=10,E06=1,qo5="amz-sdk-invocation-id",Ao5="amz-sdk-request";class sQ{static v2026=typeof process<"u"&&process.env?.SMITHY_NEW_RETRIES_2026==="true";static delay(){return sQ.v2026?50:100}static throttlingDelay(){return sQ.v2026?1000:500}static cost(){return sQ.v2026?14:5}static throttlingCost(){return sQ.v2026?5:10}static modifiedCostType(){return sQ.v2026?"THROTTLING":"TRANSIENT"}}class P06{x=sQ.delay();computeNextBackoffDelay(X){let Y=Math.random(),G=2,Q=Y*Math.min(this.x*2**X,ON0);return Math.floor(Q)}setDelayBase(X){this.x=X}}class NN0{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(ON0,this.delay)}getRetryCost(){return this.cost}isLongPoll(){return this.longPoll}}var ZT1={incompatible:1,attempts:2,capacity:3};class iX1{mode=To5.RETRY_MODES.STANDARD;capacity=zN0;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()=>WT1,this.baseDelay??=sQ.delay(),this.retryBackoffStrategy??=new P06}async acquireInitialRetryToken(X){return new NN0(sQ.delay(),0,void 0,sQ.v2026&&X.includes(":longpoll"))}async refreshRetryTokenForRetry(X,Y){let G=await this.getMaxAttempts(),Q=this.retryCode(X,Y,G),J=Q===0,W=X.isLongPoll?.();if(J||W){let Z=Y.errorType;this.retryBackoffStrategy.setDelayBase(Z==="THROTTLING"?sQ.throttlingDelay():this.baseDelay);let $=this.retryBackoffStrategy.computeNextBackoffDelay(X.getRetryCount()),K=$;if(Y.retryAfterHint instanceof Date)K=Math.max($,Math.min(Y.retryAfterHint.getTime()-Date.now(),$+5000));if(!J)throw Object.assign(Error("No retry token available"),{$backoff:sQ.v2026&&Q===ZT1.capacity&&W?K:0});else{let H=this.getCapacityCost(Z);return this.capacity-=H,new NN0(K,X.getRetryCount()+1,H,X.isLongPoll?.()??!1)}}throw Error("No retry token available")}recordSuccess(X){this.capacity=Math.min(zN0,this.capacity+(X.getRetryCost()??E06))}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 ${WT1}`),WT1}}retryCode(X,Y,G){let Q=X.getRetryCount()+1,J=this.isRetryableError(Y.errorType)?0:ZT1.incompatible,W=Q<G?0:ZT1.attempts,Z=this.capacity>=this.getCapacityCost(Y.errorType)?0:ZT1.capacity;return J||W||Z}getCapacityCost(X){return X===sQ.modifiedCostType()?sQ.throttlingCost():sQ.cost()}isRetryableError(X){return X==="THROTTLING"||X==="TRANSIENT"}}class q06{mode=To5.RETRY_MODES.ADAPTIVE;rateLimiter;standardRetryStrategy;constructor(X,Y){let{rateLimiter:G}=Y??{};this.rateLimiter=G??new $T1,this.standardRetryStrategy=Y?new iX1({maxAttempts:typeof X==="number"?X:3,...Y}):new iX1(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 A06 extends iX1{computeNextBackoffDelay;constructor(X,Y=sQ.delay()){super(typeof X==="function"?X:async()=>X);if(typeof Y==="number")this.computeNextBackoffDelay=()=>Y;else this.computeNextBackoffDelay=Y}async refreshRetryTokenForRetry(X,Y){let G=await super.refreshRetryTokenForRetry(X,Y);return G.getRetryDelay=()=>this.computeNextBackoffDelay(G.getRetryCount()),G}}To5.AdaptiveRetryStrategy=q06;To5.ConfiguredRetryStrategy=A06;To5.DEFAULT_MAX_ATTEMPTS=WT1;To5.DEFAULT_RETRY_DELAY_BASE=wo5;To5.DEFAULT_RETRY_MODE=Do5;To5.DefaultRateLimiter=$T1;To5.INITIAL_RETRY_TOKENS=zN0;To5.INVOCATION_ID_HEADER=qo5;To5.MAXIMUM_RETRY_DELAY=ON0;To5.NO_RETRY_INCREMENT=E06;To5.REQUEST_HEADER=Ao5;To5.RETRY_COST=Eo5;To5.Retry=sQ;To5.StandardRetryStrategy=iX1;To5.THROTTLING_RETRY_DELAY_BASE=Lo5;To5.TIMEOUT_RETRY_COST=Po5});var WX=k((to5)=>{var uo5=ww(),DN0={warningEmitted:!1},lo5=(X)=>{if(X&&!DN0.warningEmitted&&parseInt(X.substring(1,X.indexOf(".")))<20)DN0.warningEmitted=!0,process.emitWarning(`NodeDeprecationWarning: The AWS SDK for JavaScript (v3) will
1646
+ `);Q=W.pop()??"";for(let Z of W){let $=m16(Z).replace(/^\[\d+\]\s*/,"").trim();if(!$)continue;$N({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=m16(Q).replace(/^\[\d+\]\s*/,"").trim();if(W)$N({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:W})}})()}async function oa5(X){let{vitePort:Y,baseUrl:G,noTui:Q}=X,J=await sA1(Number(X.port)),{settings:W,services:Z,managedServiceNames:$}=await tA1({port:String(J),home:X.home,baseUrl:X.baseUrl,localMode:X.localMode,skipMigrations:X.skipMigrations,noTui:X.noTui,vitePort:X.vitePort});for(let N of Z)Wa({name:N.name,status:"ready",port:N.port});lX1(W),gX1();let K=ra5(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)d16(U.stdout),d16(U.stderr);let B=G||`http://localhost:${W.port}`;uX1(B),Wa({name:"Vite",status:"ready",port:Number(Y)});let z=async(N)=>{if(U.kill(N),$.length>0){let{stopServices:O}=await Promise.resolve().then(() => (c$1(),d$1));await O(W.dataDir)}};return process.on("SIGINT",()=>z("SIGINT")),process.on("SIGTERM",()=>z("SIGTERM")),{port:Number(W.port),process:U}}var az0=w(()=>{mz0();KN();nz0()});import{Box as rz0,Text as oz0}from"ink";import{jsx as i16,jsxs as eA1}from"react/jsx-runtime";function c16(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 Xr5(X,Y){if(sa5.has(X))return Y?{text:"\u25CF\u25CF\u25CF\u25CF\u25CF\u25CF",dimColor:!0}:{text:"not set",dimColor:!0};if(ea5.has(X)){if(Array.isArray(Y)){if(Y.length===0)return{text:"not set",dimColor:!0};return{text:Y.map((W)=>c16(W)).join(", "),color:"cyan"}}let Q=c16(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 Yr5(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_SSO_GOOGLE_CLIENT_ID",value:!!process.env.AUTH_SSO_GOOGLE_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 p16({env:X}){let Y=Yr5(X);return i16(rz0,{flexDirection:"column",children:Y.map((G)=>eA1(rz0,{flexDirection:"column",marginTop:1,children:[eA1(oz0,{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=Xr5(Q,J);return eA1(rz0,{children:[eA1(oz0,{dimColor:!0,children:[" ",Q.padEnd(36)]}),i16(oz0,{color:W.color,dimColor:W.dimColor,children:W.text})]},Q)})]},G.title))})}var sa5,ea5;var n16=w(()=>{sa5=new Set(["BETTER_AUTH_SECRET","ENCRYPTION_KEY","MESH_JWT_SECRET","STUDIO_PROVISION_SECRET_KEY"]),ea5=new Set(["DATABASE_URL","CLICKHOUSE_URL","NATS_URL"])});var sz0;var t16=w(()=>{sz0={name:"decocms",version:"2.316.1",description:"Deco CMS \u2014 Self-hostable MCP Gateway for managing AI connections and tools",author:"Deco team",repository:{type:"git",url:"git+https://github.com/decocms/studio.git",directory:"apps/mesh"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:'bun run migrate && concurrently "bun run dev:client" "bun run dev:server"',"dev:servers":'concurrently "bun run dev:client" "bun run dev:server"',"dev:client":"bun --bun vite dev","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts","build:client":"bun --bun vite build","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","db:migrate":"bun run ./dist/server/migrate.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts",test:"bun test","test:e2e":"playwright test","test:e2e:ui":"playwright test --ui","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts",prepublishOnly:"bun run build:client && bun run build:server"},optionalDependencies:{"@duckdb/node-api":"^1.5.0-r.1","@freestyle-sh/with-bun":"^0.2.12","@freestyle-sh/with-deno":"^0.0.4","@freestyle-sh/with-nodejs":"^0.2.9","freestyle-sandboxes":"^0.1.46"},dependencies:{"@ai-sdk/anthropic":"^3.0.58","@ai-sdk/google":"^3.0.60","@ai-sdk/openai":"^3.0.50","@anthropic-ai/sdk":"^0.79.0","@aws-sdk/client-s3":"^3.1013.0","@aws-sdk/s3-request-presigner":"^3.1013.0","@clickhouse/client":"^1.8.1","@deco-cx/warp-node":"^0.3.20","@dnd-kit/core":"^6.3.1","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@inkjs/ui":"^2.0.0","@modelcontextprotocol/ext-apps":"^1.2.2","@openrouter/ai-sdk-provider":"^2.2.5","@opentelemetry/core":"^2.6.0","@tanstack/react-virtual":"^3.13.21","@xterm/addon-fit":"^0.11.0","@xterm/xterm":"^6.0.0","ai-sdk-provider-claude-code":"^3.4.4","ai-sdk-provider-codex-cli":"^1.1.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12",nats:"^2.29.3","node-pty":"^1.0.0","posthog-js":"^1.371.1","posthog-node":"^5.0.0",react:"^19.2.0","react-dom":"^19.2.0"},devDependencies:{"@ai-sdk/provider":"^3.0.8","@ai-sdk/react":"^3.0.118","@anthropic-ai/claude-agent-sdk":"^0.2.80","@better-auth/sso":"1.4.1","@daveyplate/better-auth-ui":"^3.2.7","@deco/ui":"workspace:*","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/mesh-sdk":"workspace:*","@decocms/runtime":"workspace:*","@decocms/vite-plugin":"workspace:*","@electric-sql/pglite":"^0.3.15","@floating-ui/react":"^0.27.16","@hookform/resolvers":"^5.2.2","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.27.1","@monaco-editor/react":"^4.7.0","@opentelemetry/api":"^1.9.0","@opentelemetry/api-logs":"^0.211.0","@opentelemetry/exporter-logs-otlp-proto":"^0.211.0","@opentelemetry/exporter-prometheus":"^0.208.0","@opentelemetry/exporter-trace-otlp-proto":"^0.207.0","@opentelemetry/instrumentation-runtime-node":"^0.24.0","@opentelemetry/sdk-logs":"^0.211.0","@opentelemetry/sdk-metrics":"^2.2.0","@opentelemetry/sdk-node":"^0.207.0","@opentelemetry/sdk-trace-base":"^2.5.0","@playwright/test":"^1.58.2","@radix-ui/react-avatar":"^1.1.10","@radix-ui/react-checkbox":"^1.3.3","@radix-ui/react-dialog":"^1.1.15","@radix-ui/react-dropdown-menu":"^2.1.16","@radix-ui/react-label":"^2.1.7","@radix-ui/react-select":"^2.2.6","@radix-ui/react-separator":"^1.1.7","@radix-ui/react-slot":"^1.2.3","@radix-ui/react-tabs":"^1.1.13","@rjsf/core":"^6.1.2","@rjsf/shadcn":"^6.1.2","@rjsf/utils":"^6.1.2","@rjsf/validator-ajv8":"^6.1.2","@tailwindcss/vite":"^4.1.17","@tanstack/react-query":"5.90.11","@tanstack/react-router":"^1.139.7","@tiptap/core":"3.20.2","@tiptap/extension-mention":"3.20.2","@tiptap/extension-placeholder":"3.20.2","@tiptap/pm":"3.20.2","@tiptap/react":"3.20.2","@tiptap/starter-kit":"3.20.2","@tiptap/suggestion":"3.20.2","@types/bun":"^1.3.1","@types/pg":"^8.15.6","@types/react-syntax-highlighter":"^15.5.13","@untitledui/icons":"^0.0.19","@vercel/nft":"^1.1.1","@vitejs/plugin-react":"^5.1.0",ai:"^6.0.116","babel-plugin-react-compiler":"^1.0.0","better-auth":"1.4.5","class-variance-authority":"^0.7.1",clsx:"^2.1.1",concurrently:"^9.2.1",croner:"^9.1.0","date-fns":"^4.1.0",degit:"^2.8.4",hono:"^4.10.7","input-otp":"^1.4.2",jose:"^6.0.11","kysely-pglite":"^0.6.1","lucide-react":"^0.468.0",marked:"^15.0.6","@decocms/sandbox":"workspace:*","mesh-plugin-workflows":"workspace:*",nanoid:"^5.1.6",pg:"^8.16.3",prettier:"^3.4.2","react-hook-form":"^7.66.0","react-markdown":"^10.1.0","react-resizable-panels":"^2.1.7","react-syntax-highlighter":"^15.6.1",recharts:"^3.6.0","rehype-raw":"^7.0.0","remark-gfm":"^4.0.0","sass-embedded":"^1.97.2",sonner:"^2.0.7","tailwind-merge":"^3.3.1",tailwindcss:"^4.1.17",typescript:"^5.9.3",vite:"^7.2.1","vite-tsconfig-paths":"^5.1.4",zod:"^4.0.0",zustand:"^5.0.9"},homepage:"https://github.com/decocms/studio",keywords:["mcp","model-context-protocol","ai","gateway","self-hosted","mesh","tools"],license:"MIT",publishConfig:{access:"public"}}});import{Box as IU,Text as RX}from"ink";import{Spinner as Qr5}from"@inkjs/ui";import{useSyncExternalStore as a16}from"react";import{jsx as TY,jsxs as oQ}from"react/jsx-runtime";function Kr5(X,Y){if(!X||!$r5.has(X))return X;let G=ez0[Y]??ez0[ez0.length-1];return X==="#875f00"?G[0]:G[1]}function r16({status:X}){if(X==="pending")return TY(Qr5,{label:""});return TY(RX,{color:"green",children:"\u2713"})}function o16({services:X,migrationsStatus:Y,home:G,serverUrl:Q,vibe:J}){let W=a16(Wd0,Zd0),Z=a16(Bd0,Ud0);return oQ(IU,{flexDirection:"column",paddingBottom:1,children:[J?oQ(IU,{flexDirection:"column",children:[W.map(($,K)=>{let H=Z[K],U=$.reduce((z,N)=>z+N.text.length,0),B=Math.max(0,Wr5-U);return oQ(IU,{flexDirection:"row",children:[$.map((z,N)=>{let O=Kr5(z.color,K);return O?TY(RX,{color:O,children:z.text},N):TY(RX,{children:z.text},N)}),TY(RX,{children:" ".repeat(B+2)}),H?.map((z,N)=>z.color?TY(RX,{color:z.color,children:z.char},N):TY(RX,{children:z.char},N))]},K)}),oQ(RX,{dimColor:!0,children:[" v",sz0.version]})]}):oQ(IU,{flexDirection:"column",marginTop:1,children:[Jr5.map(($,K)=>TY(RX,{color:Zr5[K],children:$},K)),oQ(RX,{dimColor:!0,children:[" v",sz0.version]})]}),TY(IU,{marginBottom:1,children:TY(RX,{dimColor:!0,children:"\u2500".repeat(80)})}),TY(IU,{children:oQ(RX,{dimColor:!0,children:["Home: ",G]})}),oQ(IU,{gap:2,children:[X.map(($)=>oQ(IU,{gap:1,children:[oQ(RX,{children:[$.name," :",$.port||"...."]}),TY(r16,{status:$.status})]},$.name)),oQ(IU,{gap:1,children:[TY(RX,{children:"Migrations"}),TY(r16,{status:Y})]})]}),TY(IU,{children:Q?oQ(RX,{children:["Open in browser: ",TY(RX,{color:"cyan",children:Q})]}):TY(RX,{dimColor:!0,children:"Starting..."})}),oQ(IU,{gap:2,children:[oQ(RX,{dimColor:!0,children:[TY(RX,{bold:!0,dimColor:!0,children:"K"})," ","toggle config"]}),oQ(RX,{dimColor:!0,children:[TY(RX,{bold:!0,dimColor:!0,children:"L"})," ","toggle log flow"]}),oQ(RX,{dimColor:!0,children:[TY(RX,{bold:!0,dimColor:!0,children:"V"})," ","toggle vibe ",J?"\u266A Nihilore \xB7 CC BY 4.0":""]}),J&&oQ(RX,{dimColor:!0,children:[TY(RX,{bold:!0,dimColor:!0,children:"N"})," ","skip song"]})]})]})}var Jr5,Zr5,ez0,Wr5=30,$r5;var s16=w(()=>{t16();_t1();gt1();Jr5=[" \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 "],Zr5=["#00ff64","#00ee5e","#00dc56","#00c84e","#00b444","#00a03c","#008832","#006e28"],ez0=[["#00ff64","#00cc50"],["#00f060","#00c04c"],["#00e05c","#00b448"],["#00d058","#00a844"],["#00c054","#009c40"],["#00b050","#00903c"],["#00a04c","#008438"],["#009048","#007834"],["#008044","#006c30"],["#007040","#00602c"],["#00603c","#005428"]],$r5=new Set(["#875f00","#5f3800"])});import{useSyncExternalStore as Hr5}from"react";function Fr5(){let X=process.stdout.rows||24,Y=process.stdout.columns||80;if(X!==XT1.rows||Y!==XT1.columns)XT1={rows:X,columns:Y};return XT1}function Ur5(X){return process.stdout.on("resize",X),()=>{process.stdout.off("resize",X)}}function e16(){return Hr5(Ur5,Fr5)}var XT1;var X06=w(()=>{XT1={rows:process.stdout.rows||24,columns:process.stdout.columns||80}});import{Box as Br5,Text as mX1}from"ink";import{useSyncExternalStore as zr5}from"react";import{jsx as XN0,jsxs as YN0}from"react/jsx-runtime";function Nr5(X){if(X>=500)return"red";if(X>=400)return"yellow";if(X>=300)return"cyan";return"green"}function Y06({logs:X,headerHeight:Y}){let{rows:G}=e16(),{logFlow:Q}=zr5(hX1,xX1),J=Math.max(1,G-Y-1),W=Q?X:X.slice(-J);return XN0(Br5,{flexDirection:"column",children:W.map((Z,$)=>{if(Z.rawLine)return XN0(mX1,{dimColor:!0,children:Z.rawLine},$);let K=Z.duration<1000?`${Z.duration}ms`:`${(Z.duration/1000).toFixed(1)}s`;return YN0(mX1,{children:[YN0(mX1,{dimColor:!0,children:[Z.method.padEnd(6)," ",Z.path.padEnd(30)," "]}),XN0(mX1,{color:Nr5(Z.status),children:Z.status}),YN0(mX1,{dimColor:!0,children:[" ",K.padStart(8)]})]},$)})})}var G06=w(()=>{KN();X06()});var GN0={};A0(GN0,{App:()=>qr5});import{Box as Or5,Text as Dr5,useInput as wr5}from"ink";import{useSyncExternalStore as Lr5}from"react";import{jsx as YT1,jsxs as Ar5}from"react/jsx-runtime";function qr5({home:X}){let Y=Lr5(hX1,xX1);return wr5((G)=>{if(G==="k"||G==="K")cz0();if(G==="l"||G==="L")iz0();if((G==="v"||G==="V")&&Y.dataDir)dt1(Y.dataDir),pz0();if((G==="n"||G==="N")&&Y.vibe)mt1()}),Ar5(Or5,{flexDirection:"column",children:[YT1(o16,{services:Y.services,migrationsStatus:Y.migrationsStatus,home:X,serverUrl:Y.serverUrl,vibe:Y.vibe}),Y.viewMode==="config"?Y.env?YT1(p16,{env:Y.env}):YT1(Dr5,{dimColor:!0,children:"Loading configuration..."}):YT1(Y06,{logs:Y.logs,headerHeight:Y.vibe?Pr5:Er5})]})}var Er5=15,Pr5=19;var QN0=w(()=>{n16();s16();G06();KN();hd()});function Q06(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 hV=k((Rr5)=>{Rr5.HttpAuthLocation=void 0;(function(X){X.HEADER="header",X.QUERY="query"})(Rr5.HttpAuthLocation||(Rr5.HttpAuthLocation={}));Rr5.HttpApiKeyAuthLocation=void 0;(function(X){X.HEADER="header",X.QUERY="query"})(Rr5.HttpApiKeyAuthLocation||(Rr5.HttpApiKeyAuthLocation={}));Rr5.EndpointURLScheme=void 0;(function(X){X.HTTP="http",X.HTTPS="https"})(Rr5.EndpointURLScheme||(Rr5.EndpointURLScheme={}));Rr5.AlgorithmId=void 0;(function(X){X.MD5="md5",X.CRC32="crc32",X.CRC32C="crc32c",X.SHA1="sha1",X.SHA256="sha256"})(Rr5.AlgorithmId||(Rr5.AlgorithmId={}));var Tr5=(X)=>{let Y=[];if(X.sha256!==void 0)Y.push({algorithmId:()=>Rr5.AlgorithmId.SHA256,checksumConstructor:()=>X.sha256});if(X.md5!=null)Y.push({algorithmId:()=>Rr5.AlgorithmId.MD5,checksumConstructor:()=>X.md5});return{addChecksumAlgorithm(G){Y.push(G)},checksumAlgorithms(){return Y}}},Ir5=(X)=>{let Y={};return X.checksumAlgorithms().forEach((G)=>{Y[G.algorithmId()]=G.checksumConstructor()}),Y},jr5=(X)=>{return Tr5(X)},Vr5=(X)=>{return Ir5(X)};Rr5.FieldPosition=void 0;(function(X){X[X.HEADER=0]="HEADER",X[X.TRAILER=1]="TRAILER"})(Rr5.FieldPosition||(Rr5.FieldPosition={}));var Mr5="__smithy_context";Rr5.IniSectionType=void 0;(function(X){X.PROFILE="profile",X.SSO_SESSION="sso-session",X.SERVICES="services"})(Rr5.IniSectionType||(Rr5.IniSectionType={}));Rr5.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"})(Rr5.RequestHandlerProtocol||(Rr5.RequestHandlerProtocol={}));Rr5.SMITHY_CONTEXT_KEY=Mr5;Rr5.getDefaultClientConfiguration=jr5;Rr5.resolveDefaultRuntimeConfig=Vr5});var u7=k((xr5)=>{var vr5=hV(),_r5=(X)=>{return{setHttpHandler(Y){X.httpHandler=Y},httpHandler(){return X.httpHandler},updateHttpClientConfig(Y,G){X.httpHandler?.updateHttpClientConfig(Y,G)},httpHandlerConfigs(){return X.httpHandler.httpHandlerConfigs()}}},fr5=(X)=>{return{httpHandler:X.httpHandler()}};class J06{name;kind;values;constructor({name:X,kind:Y=vr5.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 Z06{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 GT1{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 GT1({...X,headers:{...X.headers}});if(Y.query)Y.query=br5(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 GT1.clone(this)}}function br5(X){return Object.keys(X).reduce((Y,G)=>{let Q=X[G];return{...Y,[G]:Array.isArray(Q)?[...Q]:Q}},{})}class W06{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 yr5(X){return/^[a-z0-9][a-z0-9\.\-]*[a-z0-9]$/.test(X)}xr5.Field=J06;xr5.Fields=Z06;xr5.HttpRequest=GT1;xr5.HttpResponse=W06;xr5.getHttpHandlerExtensionConfiguration=_r5;xr5.isValidHostname=yr5;xr5.resolveHttpHandlerRuntimeConfig=fr5});function ir5(X){return(Y)=>async(G)=>{let{request:Q}=G;if(X.expectContinueHeader!==!1&&$06.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 $06,pr5,K06=(X)=>({applyToStack:(Y)=>{Y.add(ir5(X),pr5)}});var H06=w(()=>{$06=X1(u7(),1);pr5={step:"build",tags:["SET_EXPECT_HEADER","EXPECT_HEADER"],name:"addExpectContinueMiddleware",override:!0}});var LH,QT1,gV,JT1,E9,F06,cX1;var EH=w(()=>{LH={WHEN_SUPPORTED:"WHEN_SUPPORTED",WHEN_REQUIRED:"WHEN_REQUIRED"},QT1=LH.WHEN_SUPPORTED,gV={WHEN_SUPPORTED:"WHEN_SUPPORTED",WHEN_REQUIRED:"WHEN_REQUIRED"},JT1=LH.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"})(F06||(F06={}));cX1=E9.CRC32});var Cq,$a=(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 FN0=w(()=>{(function(X){X.ENV="env",X.CONFIG="shared config entry"})(Cq||(Cq={}))});var nr5="AWS_REQUEST_CHECKSUM_CALCULATION",tr5="request_checksum_calculation",U06;var B06=w(()=>{EH();FN0();U06={environmentVariableSelector:(X)=>$a(X,nr5,LH,Cq.ENV),configFileSelector:(X)=>$a(X,tr5,LH,Cq.CONFIG),default:QT1}});var ar5="AWS_RESPONSE_CHECKSUM_VALIDATION",rr5="response_checksum_validation",z06;var N06=w(()=>{EH();FN0();z06={environmentVariableSelector:(X)=>$a(X,ar5,gV,Cq.ENV),configFileSelector:(X)=>$a(X,rr5,gV,Cq.CONFIG),default:JT1}});var BN0=k((Wo5)=>{var or5=["AuthFailure","InvalidSignatureException","RequestExpired","RequestInTheFuture","RequestTimeTooSkewed","SignatureDoesNotMatch"],sr5=["BandwidthLimitExceeded","EC2ThrottledException","LimitExceededException","PriorRequestNotComplete","ProvisionedThroughputExceededException","RequestLimitExceeded","RequestThrottled","RequestThrottledException","SlowDown","ThrottledException","Throttling","ThrottlingException","TooManyRequestsException","TransactionInProgressException"],er5=["TimeoutError","RequestTimeout","RequestTimeoutException"],Xo5=[500,502,503,504],Yo5=["ECONNRESET","ECONNREFUSED","EPIPE","ETIMEDOUT"],Go5=["EHOSTUNREACH","ENETUNREACH","ENOTFOUND"],O06=(X)=>X?.$retryable!==void 0,Qo5=(X)=>or5.includes(X.name),D06=(X)=>X.$metadata?.clockSkewCorrected,w06=(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)},Jo5=(X)=>X.$metadata?.httpStatusCode===429||sr5.includes(X.name)||X.$retryable?.throttling==!0,UN0=(X,Y=0)=>O06(X)||D06(X)||X.name==="InvalidSignatureException"&&X.message?.includes("Signature expired")||er5.includes(X.name)||Yo5.includes(X?.code||"")||Go5.includes(X?.code||"")||Xo5.includes(X.$metadata?.httpStatusCode||0)||w06(X)||L06(X)||X.cause!==void 0&&Y<=10&&UN0(X.cause,Y+1),Zo5=(X)=>{if(X.$metadata?.httpStatusCode!==void 0){let Y=X.$metadata.httpStatusCode;if(500<=Y&&Y<=599&&!UN0(X))return!0;return!1}return!1};function L06(X){return X.code==="ERR_HTTP2_STREAM_ERROR"&&X.message.includes("NGHTTP2_REFUSED_STREAM")}Wo5.isBrowserNetworkError=w06;Wo5.isClockSkewCorrectedError=D06;Wo5.isClockSkewError=Qo5;Wo5.isNodeJsHttp2TransientError=L06;Wo5.isRetryableByTrait=O06;Wo5.isServerError=Zo5;Wo5.isThrottlingError=Jo5;Wo5.isTransientError=UN0});var ww=k((To5)=>{var Oo5=BN0();To5.RETRY_MODES=void 0;(function(X){X.STANDARD="standard",X.ADAPTIVE="adaptive"})(To5.RETRY_MODES||(To5.RETRY_MODES={}));var WT1=3,Do5=To5.RETRY_MODES.STANDARD;class $T1{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"||Oo5.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)=>$T1.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 wo5=100,ON0=20000,Lo5=500,zN0=500,Eo5=5,Po5=10,E06=1,qo5="amz-sdk-invocation-id",Ao5="amz-sdk-request";class sQ{static v2026=typeof process<"u"&&process.env?.SMITHY_NEW_RETRIES_2026==="true";static delay(){return sQ.v2026?50:100}static throttlingDelay(){return sQ.v2026?1000:500}static cost(){return sQ.v2026?14:5}static throttlingCost(){return sQ.v2026?5:10}static modifiedCostType(){return sQ.v2026?"THROTTLING":"TRANSIENT"}}class P06{x=sQ.delay();computeNextBackoffDelay(X){let Y=Math.random(),G=2,Q=Y*Math.min(this.x*2**X,ON0);return Math.floor(Q)}setDelayBase(X){this.x=X}}class NN0{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(ON0,this.delay)}getRetryCost(){return this.cost}isLongPoll(){return this.longPoll}}var ZT1={incompatible:1,attempts:2,capacity:3};class iX1{mode=To5.RETRY_MODES.STANDARD;capacity=zN0;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()=>WT1,this.baseDelay??=sQ.delay(),this.retryBackoffStrategy??=new P06}async acquireInitialRetryToken(X){return new NN0(sQ.delay(),0,void 0,sQ.v2026&&X.includes(":longpoll"))}async refreshRetryTokenForRetry(X,Y){let G=await this.getMaxAttempts(),Q=this.retryCode(X,Y,G),J=Q===0,W=X.isLongPoll?.();if(J||W){let Z=Y.errorType;this.retryBackoffStrategy.setDelayBase(Z==="THROTTLING"?sQ.throttlingDelay():this.baseDelay);let $=this.retryBackoffStrategy.computeNextBackoffDelay(X.getRetryCount()),K=$;if(Y.retryAfterHint instanceof Date)K=Math.max($,Math.min(Y.retryAfterHint.getTime()-Date.now(),$+5000));if(!J)throw Object.assign(Error("No retry token available"),{$backoff:sQ.v2026&&Q===ZT1.capacity&&W?K:0});else{let H=this.getCapacityCost(Z);return this.capacity-=H,new NN0(K,X.getRetryCount()+1,H,X.isLongPoll?.()??!1)}}throw Error("No retry token available")}recordSuccess(X){this.capacity=Math.min(zN0,this.capacity+(X.getRetryCost()??E06))}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 ${WT1}`),WT1}}retryCode(X,Y,G){let Q=X.getRetryCount()+1,J=this.isRetryableError(Y.errorType)?0:ZT1.incompatible,W=Q<G?0:ZT1.attempts,Z=this.capacity>=this.getCapacityCost(Y.errorType)?0:ZT1.capacity;return J||W||Z}getCapacityCost(X){return X===sQ.modifiedCostType()?sQ.throttlingCost():sQ.cost()}isRetryableError(X){return X==="THROTTLING"||X==="TRANSIENT"}}class q06{mode=To5.RETRY_MODES.ADAPTIVE;rateLimiter;standardRetryStrategy;constructor(X,Y){let{rateLimiter:G}=Y??{};this.rateLimiter=G??new $T1,this.standardRetryStrategy=Y?new iX1({maxAttempts:typeof X==="number"?X:3,...Y}):new iX1(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 A06 extends iX1{computeNextBackoffDelay;constructor(X,Y=sQ.delay()){super(typeof X==="function"?X:async()=>X);if(typeof Y==="number")this.computeNextBackoffDelay=()=>Y;else this.computeNextBackoffDelay=Y}async refreshRetryTokenForRetry(X,Y){let G=await super.refreshRetryTokenForRetry(X,Y);return G.getRetryDelay=()=>this.computeNextBackoffDelay(G.getRetryCount()),G}}To5.AdaptiveRetryStrategy=q06;To5.ConfiguredRetryStrategy=A06;To5.DEFAULT_MAX_ATTEMPTS=WT1;To5.DEFAULT_RETRY_DELAY_BASE=wo5;To5.DEFAULT_RETRY_MODE=Do5;To5.DefaultRateLimiter=$T1;To5.INITIAL_RETRY_TOKENS=zN0;To5.INVOCATION_ID_HEADER=qo5;To5.MAXIMUM_RETRY_DELAY=ON0;To5.NO_RETRY_INCREMENT=E06;To5.REQUEST_HEADER=Ao5;To5.RETRY_COST=Eo5;To5.Retry=sQ;To5.StandardRetryStrategy=iX1;To5.THROTTLING_RETRY_DELAY_BASE=Lo5;To5.TIMEOUT_RETRY_COST=Po5});var WX=k((to5)=>{var uo5=ww(),DN0={warningEmitted:!1},lo5=(X)=>{if(X&&!DN0.warningEmitted&&parseInt(X.substring(1,X.indexOf(".")))<20)DN0.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
@@ -3790,6 +3790,8 @@ data: \${payload}
3790
3790
  }
3791
3791
 
3792
3792
  // daemon/events/broadcast.ts
3793
+ var VERBOSE = process.env.DAEMON_LOG_VERBOSE === "1";
3794
+
3793
3795
  class Broadcaster {
3794
3796
  replay;
3795
3797
  clients = new Set;
@@ -3805,11 +3807,13 @@ class Broadcaster {
3805
3807
  size() {
3806
3808
  return this.clients.size;
3807
3809
  }
3808
- broadcastChunk(source, data) {
3810
+ broadcastChunk(source, data, opts) {
3809
3811
  if (!data)
3810
3812
  return;
3811
3813
  this.replay.append(source, data);
3812
- process.stdout.write(\`[\${source}] \${data}\`);
3814
+ if (VERBOSE || opts?.tee !== false) {
3815
+ process.stdout.write(\`[\${source}] \${data}\`);
3816
+ }
3813
3817
  const bytes = sseFormat("log", JSON.stringify({ source, data }));
3814
3818
  this.fan(bytes);
3815
3819
  }
@@ -4141,7 +4145,7 @@ function createPortSniffer() {
4141
4145
 
4142
4146
  // daemon/process/task-manager.ts
4143
4147
  import { spawn as nodeSpawn } from "child_process";
4144
- import { readdirSync, unlinkSync } from "fs";
4148
+ import { readdirSync, unlinkSync as unlinkSync2 } from "fs";
4145
4149
  import { join as join2 } from "path";
4146
4150
 
4147
4151
  // daemon/paths.ts
@@ -4173,6 +4177,7 @@ import {
4173
4177
  mkdirSync,
4174
4178
  openSync,
4175
4179
  statSync,
4180
+ unlinkSync,
4176
4181
  writeSync
4177
4182
  } from "fs";
4178
4183
  import { dirname } from "path";
@@ -4182,7 +4187,7 @@ class LogTee {
4182
4187
  maxBytes;
4183
4188
  fd = null;
4184
4189
  written = 0;
4185
- truncated = false;
4190
+ rotatedOnce = false;
4186
4191
  constructor(path2, maxBytes) {
4187
4192
  this.path = path2;
4188
4193
  this.maxBytes = maxBytes;
@@ -4190,28 +4195,9 @@ class LogTee {
4190
4195
  write(data) {
4191
4196
  if (data.length === 0)
4192
4197
  return;
4193
- if (this.truncated)
4194
- return;
4195
4198
  const buf = Buffer.from(data, "utf-8");
4196
4199
  if (this.written + buf.length > this.maxBytes) {
4197
- this.truncated = true;
4198
- const remain = Math.max(0, this.maxBytes - this.written);
4199
- if (remain > 0 && this.openIfNeeded()) {
4200
- try {
4201
- writeSync(this.fd, buf, 0, remain);
4202
- this.written += remain;
4203
- } catch {}
4204
- }
4205
- const marker = Buffer.from(\`
4206
- [log truncated at \${this.maxBytes} bytes]
4207
- \`, "utf-8");
4208
- if (this.openIfNeeded()) {
4209
- try {
4210
- writeSync(this.fd, marker);
4211
- } catch {}
4212
- }
4213
- this.close();
4214
- return;
4200
+ this.rotate();
4215
4201
  }
4216
4202
  if (!this.openIfNeeded())
4217
4203
  return;
@@ -4220,6 +4206,22 @@ class LogTee {
4220
4206
  this.written += buf.length;
4221
4207
  } catch {}
4222
4208
  }
4209
+ rotate() {
4210
+ this.close();
4211
+ try {
4212
+ unlinkSync(this.path);
4213
+ } catch {}
4214
+ this.written = 0;
4215
+ this.rotatedOnce = true;
4216
+ if (!this.openIfNeeded())
4217
+ return;
4218
+ const marker = Buffer.from(\`[log rotated at \${this.maxBytes} bytes]
4219
+ \`, "utf-8");
4220
+ try {
4221
+ writeSync(this.fd, marker);
4222
+ this.written = marker.length;
4223
+ } catch {}
4224
+ }
4223
4225
  writeHeader(label) {
4224
4226
  let prior = this.written;
4225
4227
  if (this.fd === null) {
@@ -4233,7 +4235,7 @@ class LogTee {
4233
4235
  \`);
4234
4236
  }
4235
4237
  isTruncated() {
4236
- return this.truncated;
4238
+ return this.rotatedOnce;
4237
4239
  }
4238
4240
  bytesWritten() {
4239
4241
  return this.written;
@@ -4614,7 +4616,7 @@ class TaskManager {
4614
4616
  }
4615
4617
  unlink(path2) {
4616
4618
  try {
4617
- unlinkSync(path2);
4619
+ unlinkSync2(path2);
4618
4620
  } catch {}
4619
4621
  }
4620
4622
  create(id, spec) {
@@ -4815,7 +4817,9 @@ class TaskManager {
4815
4817
  } catch {}
4816
4818
  }
4817
4819
  if (task.spec.logName) {
4818
- this.deps.broadcaster?.broadcastChunk(task.spec.logName, chunk.data);
4820
+ this.deps.broadcaster?.broadcastChunk(task.spec.logName, chunk.data, {
4821
+ tee: false
4822
+ });
4819
4823
  }
4820
4824
  }
4821
4825
  }
@@ -6004,7 +6008,7 @@ function makeScriptsHandler(getScripts) {
6004
6008
  }
6005
6009
 
6006
6010
  // daemon/setup/orchestrator.ts
6007
- import { existsSync as existsSync5, unlinkSync as unlinkSync2 } from "fs";
6011
+ import { existsSync as existsSync5, unlinkSync as unlinkSync3 } from "fs";
6008
6012
  import { join as join6 } from "path";
6009
6013
 
6010
6014
  // daemon/setup/autodetect.ts
@@ -6350,6 +6354,9 @@ class SetupOrchestrator {
6350
6354
  chunk(data) {
6351
6355
  this.deps.broadcaster.broadcastChunk("setup", data);
6352
6356
  }
6357
+ rawChunk(data) {
6358
+ this.deps.broadcaster.broadcastChunk("setup", data, { tee: false });
6359
+ }
6353
6360
  async stepClone() {
6354
6361
  const config = this.currentConfig();
6355
6362
  if (!config)
@@ -6359,7 +6366,7 @@ class SetupOrchestrator {
6359
6366
  this.deps.lifecycle.transition({ phase: "cloning" });
6360
6367
  const cloneLogPath = appLogPath(this.deps.logsDir, "clone");
6361
6368
  try {
6362
- unlinkSync2(cloneLogPath);
6369
+ unlinkSync3(cloneLogPath);
6363
6370
  } catch {}
6364
6371
  const cloneTee = new LogTee(cloneLogPath, INSTALL_LOG_MAX_BYTES);
6365
6372
  let code;
@@ -6367,7 +6374,7 @@ class SetupOrchestrator {
6367
6374
  code = await spawnClone({
6368
6375
  config,
6369
6376
  onChunk: (_src, data) => {
6370
- this.chunk(data);
6377
+ this.rawChunk(data);
6371
6378
  cloneTee.write(data);
6372
6379
  }
6373
6380
  });
@@ -6429,13 +6436,13 @@ class SetupOrchestrator {
6429
6436
  \`);
6430
6437
  const installLogPath = appLogPath(this.deps.logsDir, "install");
6431
6438
  try {
6432
- unlinkSync2(installLogPath);
6439
+ unlinkSync3(installLogPath);
6433
6440
  } catch {}
6434
6441
  const installTee = new LogTee(installLogPath, INSTALL_LOG_MAX_BYTES);
6435
6442
  const installPromise = spawnInstall({
6436
6443
  config,
6437
6444
  onChunk: (_src, data) => {
6438
- this.chunk(data);
6445
+ this.rawChunk(data);
6439
6446
  installTee.write(data);
6440
6447
  }
6441
6448
  });
@@ -6628,7 +6635,7 @@ class SetupOrchestrator {
6628
6635
  const repoDir = this.deps.bootConfig.repoDir;
6629
6636
  if (!repoDir)
6630
6637
  return;
6631
- const onChunk = (_src, data) => this.chunk(data);
6638
+ const onChunk = (_src, data) => this.rawChunk(data);
6632
6639
  const silent = (_src, _data) => {};
6633
6640
  const gc = \`git -c safe.directory='*' -c http.connectTimeout=10 -c http.lowSpeedLimit=1 -c http.lowSpeedTime=10 -C \${repoDir}\`;
6634
6641
  const probe = await spawnSetupStep(\`\${gc} fetch origin +refs/heads/\${branch}:refs/remotes/origin/\${branch}\`, silent);
@@ -6814,9 +6821,9 @@ var TMP_DIR = join7(APP_ROOT, "tmp");
6814
6821
  var broadcaster = new Broadcaster(REPLAY_BYTES);
6815
6822
  var portSniffer = createPortSniffer();
6816
6823
  var broadcastChunkRaw = broadcaster.broadcastChunk.bind(broadcaster);
6817
- broadcaster.broadcastChunk = (source, data) => {
6824
+ broadcaster.broadcastChunk = (source, data, opts) => {
6818
6825
  portSniffer.observe(source, data);
6819
- broadcastChunkRaw(source, data);
6826
+ broadcastChunkRaw(source, data, opts);
6820
6827
  };
6821
6828
  var currentStatus = { state: "running" };
6822
6829
  function setStatus(next) {
@@ -6828,10 +6835,14 @@ var installState = new InstallState;
6828
6835
  var lifecycle = new LifecycleManager({ broadcaster });
6829
6836
  var lifecycleTransitionRaw = lifecycle.transition.bind(lifecycle);
6830
6837
  lifecycle.transition = (next) => {
6831
- const wasRunning = lifecycle.current().phase === "running";
6838
+ const prev = lifecycle.current().phase;
6839
+ const wasRunning = prev === "running";
6832
6840
  lifecycleTransitionRaw(next);
6833
6841
  if (wasRunning && next.phase !== "running")
6834
6842
  portSniffer.reset();
6843
+ if (prev !== next.phase) {
6844
+ console.log(\`[lifecycle] \${prev} \\u2192 \${next.phase}\`);
6845
+ }
6835
6846
  };
6836
6847
  var phaseManager = new PhaseManager;
6837
6848
  var taskManager = new TaskManager({
@@ -6842,6 +6853,10 @@ var taskManager = new TaskManager({
6842
6853
  broadcaster.emit("tasks", { active: getActiveTasks() });
6843
6854
  }
6844
6855
  });
6856
+ taskManager.onTaskExit((s) => {
6857
+ const label = s.logName ?? s.id;
6858
+ console.log(\`[task] \${label} \${s.status} (exit=\${s.exitCode})\`);
6859
+ });
6845
6860
  function getActiveTasks() {
6846
6861
  return taskManager.list({ status: ["running"] }).map((t) => ({ id: t.id, command: t.command, logName: t.logName }));
6847
6862
  }
@@ -0,0 +1,236 @@
1
+ export type CSPair = { // eslint-disable-line @typescript-eslint/naming-convention
2
+ /**
3
+ The ANSI terminal control sequence for starting this style.
4
+ */
5
+ readonly open: string;
6
+
7
+ /**
8
+ The ANSI terminal control sequence for ending this style.
9
+ */
10
+ readonly close: string;
11
+ };
12
+
13
+ export type ColorBase = {
14
+ /**
15
+ The ANSI terminal control sequence for ending this color.
16
+ */
17
+ readonly close: string;
18
+
19
+ ansi(code: number): string;
20
+
21
+ ansi256(code: number): string;
22
+
23
+ ansi16m(red: number, green: number, blue: number): string;
24
+ };
25
+
26
+ export type Modifier = {
27
+ /**
28
+ Resets the current color chain.
29
+ */
30
+ readonly reset: CSPair;
31
+
32
+ /**
33
+ Make text bold.
34
+ */
35
+ readonly bold: CSPair;
36
+
37
+ /**
38
+ Emitting only a small amount of light.
39
+ */
40
+ readonly dim: CSPair;
41
+
42
+ /**
43
+ Make text italic. (Not widely supported)
44
+ */
45
+ readonly italic: CSPair;
46
+
47
+ /**
48
+ Make text underline. (Not widely supported)
49
+ */
50
+ readonly underline: CSPair;
51
+
52
+ /**
53
+ Make text overline.
54
+
55
+ Supported on VTE-based terminals, the GNOME terminal, mintty, and Git Bash.
56
+ */
57
+ readonly overline: CSPair;
58
+
59
+ /**
60
+ Inverse background and foreground colors.
61
+ */
62
+ readonly inverse: CSPair;
63
+
64
+ /**
65
+ Prints the text, but makes it invisible.
66
+ */
67
+ readonly hidden: CSPair;
68
+
69
+ /**
70
+ Puts a horizontal line through the center of the text. (Not widely supported)
71
+ */
72
+ readonly strikethrough: CSPair;
73
+ };
74
+
75
+ export type ForegroundColor = {
76
+ readonly black: CSPair;
77
+ readonly red: CSPair;
78
+ readonly green: CSPair;
79
+ readonly yellow: CSPair;
80
+ readonly blue: CSPair;
81
+ readonly cyan: CSPair;
82
+ readonly magenta: CSPair;
83
+ readonly white: CSPair;
84
+
85
+ /**
86
+ Alias for `blackBright`.
87
+ */
88
+ readonly gray: CSPair;
89
+
90
+ /**
91
+ Alias for `blackBright`.
92
+ */
93
+ readonly grey: CSPair;
94
+
95
+ readonly blackBright: CSPair;
96
+ readonly redBright: CSPair;
97
+ readonly greenBright: CSPair;
98
+ readonly yellowBright: CSPair;
99
+ readonly blueBright: CSPair;
100
+ readonly cyanBright: CSPair;
101
+ readonly magentaBright: CSPair;
102
+ readonly whiteBright: CSPair;
103
+ };
104
+
105
+ export type BackgroundColor = {
106
+ readonly bgBlack: CSPair;
107
+ readonly bgRed: CSPair;
108
+ readonly bgGreen: CSPair;
109
+ readonly bgYellow: CSPair;
110
+ readonly bgBlue: CSPair;
111
+ readonly bgCyan: CSPair;
112
+ readonly bgMagenta: CSPair;
113
+ readonly bgWhite: CSPair;
114
+
115
+ /**
116
+ Alias for `bgBlackBright`.
117
+ */
118
+ readonly bgGray: CSPair;
119
+
120
+ /**
121
+ Alias for `bgBlackBright`.
122
+ */
123
+ readonly bgGrey: CSPair;
124
+
125
+ readonly bgBlackBright: CSPair;
126
+ readonly bgRedBright: CSPair;
127
+ readonly bgGreenBright: CSPair;
128
+ readonly bgYellowBright: CSPair;
129
+ readonly bgBlueBright: CSPair;
130
+ readonly bgCyanBright: CSPair;
131
+ readonly bgMagentaBright: CSPair;
132
+ readonly bgWhiteBright: CSPair;
133
+ };
134
+
135
+ export type ConvertColor = {
136
+ /**
137
+ Convert from the RGB color space to the ANSI 256 color space.
138
+
139
+ @param red - (`0...255`)
140
+ @param green - (`0...255`)
141
+ @param blue - (`0...255`)
142
+ */
143
+ rgbToAnsi256(red: number, green: number, blue: number): number;
144
+
145
+ /**
146
+ Convert from the RGB HEX color space to the RGB color space.
147
+
148
+ @param hex - A hexadecimal string containing RGB data.
149
+ */
150
+ hexToRgb(hex: string): [red: number, green: number, blue: number];
151
+
152
+ /**
153
+ Convert from the RGB HEX color space to the ANSI 256 color space.
154
+
155
+ @param hex - A hexadecimal string containing RGB data.
156
+ */
157
+ hexToAnsi256(hex: string): number;
158
+
159
+ /**
160
+ Convert from the ANSI 256 color space to the ANSI 16 color space.
161
+
162
+ @param code - A number representing the ANSI 256 color.
163
+ */
164
+ ansi256ToAnsi(code: number): number;
165
+
166
+ /**
167
+ Convert from the RGB color space to the ANSI 16 color space.
168
+
169
+ @param red - (`0...255`)
170
+ @param green - (`0...255`)
171
+ @param blue - (`0...255`)
172
+ */
173
+ rgbToAnsi(red: number, green: number, blue: number): number;
174
+
175
+ /**
176
+ Convert from the RGB HEX color space to the ANSI 16 color space.
177
+
178
+ @param hex - A hexadecimal string containing RGB data.
179
+ */
180
+ hexToAnsi(hex: string): number;
181
+ };
182
+
183
+ /**
184
+ Basic modifier names.
185
+ */
186
+ export type ModifierName = keyof Modifier;
187
+
188
+ /**
189
+ Basic foreground color names.
190
+
191
+ [More colors here.](https://github.com/chalk/chalk/blob/main/readme.md#256-and-truecolor-color-support)
192
+ */
193
+ export type ForegroundColorName = keyof ForegroundColor;
194
+
195
+ /**
196
+ Basic background color names.
197
+
198
+ [More colors here.](https://github.com/chalk/chalk/blob/main/readme.md#256-and-truecolor-color-support)
199
+ */
200
+ export type BackgroundColorName = keyof BackgroundColor;
201
+
202
+ /**
203
+ Basic color names. The combination of foreground and background color names.
204
+
205
+ [More colors here.](https://github.com/chalk/chalk/blob/main/readme.md#256-and-truecolor-color-support)
206
+ */
207
+ export type ColorName = ForegroundColorName | BackgroundColorName;
208
+
209
+ /**
210
+ Basic modifier names.
211
+ */
212
+ export const modifierNames: readonly ModifierName[];
213
+
214
+ /**
215
+ Basic foreground color names.
216
+ */
217
+ export const foregroundColorNames: readonly ForegroundColorName[];
218
+
219
+ /**
220
+ Basic background color names.
221
+ */
222
+ export const backgroundColorNames: readonly BackgroundColorName[];
223
+
224
+ /*
225
+ Basic color names. The combination of foreground and background color names.
226
+ */
227
+ export const colorNames: readonly ColorName[];
228
+
229
+ declare const ansiStyles: {
230
+ readonly modifier: Modifier;
231
+ readonly color: ColorBase & ForegroundColor;
232
+ readonly bgColor: ColorBase & BackgroundColor;
233
+ readonly codes: ReadonlyMap<number, number>;
234
+ } & ForegroundColor & BackgroundColor & Modifier & ConvertColor;
235
+
236
+ export default ansiStyles;