decocms 4.325.3 → 4.325.5

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 (248) hide show
  1. package/dist/client/assets/{AlertCircle-Wbx84J6P.js → AlertCircle-DZxrvDiH.js} +1 -1
  2. package/dist/client/assets/{AreaChart-Cld_d890.js → AreaChart-BiiFoCRL.js} +1 -1
  3. package/dist/client/assets/{ArrowLeft-BJlpl6z3.js → ArrowLeft-DZgDjMxW.js} +1 -1
  4. package/dist/client/assets/{ArrowUp-BSj9TnDQ.js → ArrowUp-Ddb7zxDw.js} +1 -1
  5. package/dist/client/assets/{Check-AnkVYvzC.js → Check-7lBTtp-K.js} +1 -1
  6. package/dist/client/assets/{CheckCircle-DwmOpGug.js → CheckCircle-D505suC6.js} +1 -1
  7. package/dist/client/assets/{ChevronRight-pYTAY0dL.js → ChevronRight-CmCwTx-a.js} +1 -1
  8. package/dist/client/assets/{ChevronSelectorVertical-BbsmXbxd.js → ChevronSelectorVertical-BqtUFmhY.js} +1 -1
  9. package/dist/client/assets/{ChevronUp-3g3WN6eT.js → ChevronUp-BI1tj2Vx.js} +1 -1
  10. package/dist/client/assets/{Copy01-sos155fT.js → Copy01-C_k925st.js} +1 -1
  11. package/dist/client/assets/{CreditCard01-VG7XqKoo.js → CreditCard01-BuJMZmOU.js} +1 -1
  12. package/dist/client/assets/{DotsVertical-DuuOH2An.js → DotsVertical-iNi_n1t6.js} +1 -1
  13. package/dist/client/assets/{Download01-DcuqUkne.js → Download01-CDxbO1yn.js} +1 -1
  14. package/dist/client/assets/{ErrorBarContext-BM4rcvvu.js → ErrorBarContext-CmOe-zWt.js} +1 -1
  15. package/dist/client/assets/{Eye-UqfDVX8c.js → Eye-iOBtJ_2K.js} +1 -1
  16. package/dist/client/assets/{GitBranch01-DLsJ2eA8.js → GitBranch01-D-W6ffgO.js} +1 -1
  17. package/dist/client/assets/{Globe01-g_WhroPz.js → Globe01--JjUAsQ1.js} +1 -1
  18. package/dist/client/assets/{HardDrive-DZFCo6aQ.js → HardDrive-gipHmSMO.js} +1 -1
  19. package/dist/client/assets/{Image01-BZ7eP3sg.js → Image01-CJKCLOUw.js} +1 -1
  20. package/dist/client/assets/{Key01-ladeKbIs.js → Key01-D9vtohyh.js} +1 -1
  21. package/dist/client/assets/{Link01-Cx-fsoFK.js → Link01-D8D110pz.js} +1 -1
  22. package/dist/client/assets/{LinkExternal01-Ct6ls10Y.js → LinkExternal01-wA8wCrxq.js} +1 -1
  23. package/dist/client/assets/{Monitor01-CHYJhnW7.js → Monitor01-DK1zYV6g.js} +1 -1
  24. package/dist/client/assets/{Package-DlB0zfSe.js → Package-BJJjcvcB.js} +1 -1
  25. package/dist/client/assets/{Palette-Cwg4Tz5U.js → Palette-DuhsGnRV.js} +1 -1
  26. package/dist/client/assets/{Play-CNXxnEyG.js → Play-8ltUKGU_.js} +1 -1
  27. package/dist/client/assets/{Plus-CjjCgafZ.js → Plus-CjLBKwPm.js} +1 -1
  28. package/dist/client/assets/{SearchMd-CZf0Jno3.js → SearchMd-D4eAaNaG.js} +1 -1
  29. package/dist/client/assets/{Sector-D6LGQ5el.js → Sector-C3h_qxgD.js} +1 -1
  30. package/dist/client/assets/{Settings02-DA_70bcH.js → Settings02-8ySXwXoV.js} +1 -1
  31. package/dist/client/assets/{Share07-B_yFA1PQ.js → Share07-Clgue4wK.js} +1 -1
  32. package/dist/client/assets/{Shield01-P1rLU6cR.js → Shield01-BYnTLQpV.js} +1 -1
  33. package/dist/client/assets/{Stars01-izYFmAbe.js → Stars01-DI5rxNUN.js} +1 -1
  34. package/dist/client/assets/{Sun-DwCUi13i.js → Sun-CUOzVUkf.js} +1 -1
  35. package/dist/client/assets/{Tool01-Z3QYZ79t.js → Tool01-DXiXKIhZ.js} +1 -1
  36. package/dist/client/assets/{Tool02-BQmdN0LJ.js → Tool02-BuGNIoZa.js} +1 -1
  37. package/dist/client/assets/{Trash01-B8XVvUnv.js → Trash01-DqU5JOAD.js} +1 -1
  38. package/dist/client/assets/{TrendUp01-CP0vQywV.js → TrendUp01-COy7qL_M.js} +1 -1
  39. package/dist/client/assets/{Upload01-CbAoc2QM.js → Upload01-D8IorG7e.js} +1 -1
  40. package/dist/client/assets/{User01-Ct0i24vv.js → User01-CCijXWCu.js} +1 -1
  41. package/dist/client/assets/{UserSquare-BYbdOYH9.js → UserSquare-CO6mdvo7.js} +1 -1
  42. package/dist/client/assets/{Users01-BYaxTYGQ.js → Users01-pRp0GuzY.js} +1 -1
  43. package/dist/client/assets/{Users03-jn24Kly8.js → Users03-C5ewZNmZ.js} +1 -1
  44. package/dist/client/assets/{XCircle-DlF5M8M0.js → XCircle-c8xTF4ds.js} +1 -1
  45. package/dist/client/assets/{XClose-CakjP9Y8.js → XClose-B2jOR8Ip.js} +1 -1
  46. package/dist/client/assets/{Zap-Bf8uxQjq.js → Zap-CfvQtwM6.js} +1 -1
  47. package/dist/client/assets/{ZoomOut-fURlNFfr.js → ZoomOut-qWdMwDMU.js} +1 -1
  48. package/dist/client/assets/{access-gate-65i3zTD_.js → access-gate-gaCnrTBO.js} +1 -1
  49. package/dist/client/assets/{agent-icon-Sp3pGLLY.js → agent-icon-BGaF3nKm.js} +1 -1
  50. package/dist/client/assets/{agents-list-BZ7PpN5S.js → agents-list-BIq89nUN.js} +1 -1
  51. package/dist/client/assets/{ai-providers-DlXNHZZI.js → ai-providers-F-C6o3MT.js} +1 -1
  52. package/dist/client/assets/{alert-Covq9TpT.js → alert-BTx-eTtt.js} +1 -1
  53. package/dist/client/assets/{alert-dialog-Cj0fNCkE.js → alert-dialog-CDOPUZIb.js} +1 -1
  54. package/dist/client/assets/{analytics-tab-BGfMFYes.js → analytics-tab-B9qEpYvI.js} +1 -1
  55. package/dist/client/assets/{api-keys-CwoRMmEY.js → api-keys-D8j9aZuZ.js} +1 -1
  56. package/dist/client/assets/api-keys-DjlIrxU4.js +1 -0
  57. package/dist/client/assets/{app-editor-BXmBcjlO.js → app-editor-hroCLlpJ.js} +1 -1
  58. package/dist/client/assets/{auth-DzRAXSGB.js → auth-L_7NN0WK.js} +1 -1
  59. package/dist/client/assets/{auth-catchall-C0obfXjs.js → auth-catchall-AZRyAi-F.js} +1 -1
  60. package/dist/client/assets/{auth-entry-DpCTb7jI.js → auth-entry-B4LzKlQo.js} +1 -1
  61. package/dist/client/assets/{auth-split-layout-TPhGW0ur.js → auth-split-layout-D9IrTEzu.js} +1 -1
  62. package/dist/client/assets/{authenticate-and-persist-oauth-B1cWso3x.js → authenticate-and-persist-oauth-B7pML-mK.js} +1 -1
  63. package/dist/client/assets/{automation-list-row-BR_7Wuv2.js → automation-list-row-63Do6SkZ.js} +1 -1
  64. package/dist/client/assets/{automation-runs-Bt1_onfP.js → automation-runs-PK-0WvKm.js} +1 -1
  65. package/dist/client/assets/automations-h9oyFuVn.js +1 -0
  66. package/dist/client/assets/{avatar-B5NKRFBP.js → avatar-BPkgDmhG.js} +1 -1
  67. package/dist/client/assets/{badge-BmwbVsh5.js → badge-BOlv-gpL.js} +1 -1
  68. package/dist/client/assets/{block-document-DsxmquN5.js → block-document-ByjY4JY3.js} +1 -1
  69. package/dist/client/assets/{breadcrumb-B_bU6eJc.js → breadcrumb-B-2rbIpF.js} +1 -1
  70. package/dist/client/assets/{buckets-CJXf1hSG.js → buckets-ByG2be0f.js} +1 -1
  71. package/dist/client/assets/{bulk-category-panel-CEbuB3eE.js → bulk-category-panel-DxI8ouC4.js} +1 -1
  72. package/dist/client/assets/{capability-load-error-Du-FbaTG.js → capability-load-error-hrWuqIOR.js} +1 -1
  73. package/dist/client/assets/{cards-D4AMs5hh.js → cards-CO3yvQ8k.js} +1 -1
  74. package/dist/client/assets/{category-editor-Q8mnyuVW.js → category-editor-D8vuPWi2.js} +1 -1
  75. package/dist/client/assets/{cdn-tab-YI9cEF0c.js → cdn-tab-HA1e3S3d.js} +1 -1
  76. package/dist/client/assets/{chart-Dodu1xOc.js → chart-CSpKtHB0.js} +1 -1
  77. package/dist/client/assets/{chat-context-C0gBnrEt.js → chat-context-BPN-59H_.js} +6 -6
  78. package/dist/client/assets/{checkbox-DnuAdak3.js → checkbox-Dx_8dF6M.js} +1 -1
  79. package/dist/client/assets/{choose-editor-z_RSHVAe.js → choose-editor-BC7ip7Nc.js} +1 -1
  80. package/dist/client/assets/{cli-auth-success-B04DqfZh.js → cli-auth-success-BtI4nr6q.js} +1 -1
  81. package/dist/client/assets/{client-icons-DyKPA_If.js → client-icons-LqawxIP6.js} +1 -1
  82. package/dist/client/assets/{collection-detail-Bmgm6Xpz.js → collection-detail-BWLi8Yp8.js} +1 -1
  83. package/dist/client/assets/{collection-display-button-BjYcW4FZ.js → collection-display-button-DIXlb3HT.js} +1 -1
  84. package/dist/client/assets/{collection-search-CDZk-ZPx.js → collection-search-wT-2O6av.js} +1 -1
  85. package/dist/client/assets/{collection-table-wrapper-CGGQrcHR.js → collection-table-wrapper-KlqEFRpm.js} +1 -1
  86. package/dist/client/assets/{collection-tabs-D1lKbsAt.js → collection-tabs-DwmIC6pn.js} +1 -1
  87. package/dist/client/assets/{command-Ci-j3lot.js → command-oej8g5Bm.js} +1 -1
  88. package/dist/client/assets/{commerce-onboarding-Q76OphjB.js → commerce-onboarding-C3CKBt4t.js} +1 -1
  89. package/dist/client/assets/{connect-CE0PvrLj.js → connect-CNv4HGRV.js} +2 -2
  90. package/dist/client/assets/{connect-layout-CmPm31Qh.js → connect-layout-Bs9FU53B.js} +1 -1
  91. package/dist/client/assets/{connection-gqBIrJrp.js → connection-DTCcYRuf.js} +1 -1
  92. package/dist/client/assets/{connection-card-Cuu-NGPd.js → connection-card-BUj6Oxyt.js} +1 -1
  93. package/dist/client/assets/{connection-detail-CQJhxj9a.js → connection-detail-vgM34G62.js} +1 -1
  94. package/dist/client/assets/{connection-form-helpers-CBOILzhO.js → connection-form-helpers-BhD8Ig-2.js} +1 -1
  95. package/dist/client/assets/{connections-k4235kPb.js → connections--BvKmrM5.js} +1 -1
  96. package/dist/client/assets/{create-organization-dialog-C3yQmz3P.js → create-organization-dialog-D7xcR6f4.js} +1 -1
  97. package/dist/client/assets/{decopilot-sse-pool-CdJPh08p.js → decopilot-sse-pool-FUqw15p6.js} +1 -1
  98. package/dist/client/assets/{dialog-CWKQw2WC.js → dialog-yODBqAIB.js} +1 -1
  99. package/dist/client/assets/{domain-settings-BSba6mpG.js → domain-settings-CoshmELm.js} +1 -1
  100. package/dist/client/assets/{download-app-dialog-BEy2Wnzj.js → download-app-dialog-BPAv6Pz0.js} +1 -1
  101. package/dist/client/assets/{drawer-ClX3akJx.js → drawer-YHp9oPCo.js} +1 -1
  102. package/dist/client/assets/{dropdown-menu-DUEIZWiX.js → dropdown-menu-C_6JjNPK.js} +1 -1
  103. package/dist/client/assets/{e2e-tab-DC0rCpOL.js → e2e-tab-BXRe19dB.js} +1 -1
  104. package/dist/client/assets/{editor-DeUxecc_.js → editor-DR1m6IDo.js} +1 -1
  105. package/dist/client/assets/{empty-state-DYE3rkmB.js → empty-state-AXmU5CQZ.js} +1 -1
  106. package/dist/client/assets/{empty-state-C-9VdPkJ.js → empty-state-BSVr04tA.js} +1 -1
  107. package/dist/client/assets/{extract-connection-data-KaTj8mHV.js → extract-connection-data-C50fBqr8.js} +1 -1
  108. package/dist/client/assets/{file-explorer-D4SVt02z.js → file-explorer-B-lXKwFX.js} +2 -2
  109. package/dist/client/assets/{file-type-icon-CB7H_Wiy.js → file-type-icon-d9LErpcw.js} +1 -1
  110. package/dist/client/assets/{folder-icon-C6cEeAnl.js → folder-icon-BgTq71XL.js} +1 -1
  111. package/dist/client/assets/{form-CUXIC19o.js → form-CG7U6ZC_.js} +1 -1
  112. package/dist/client/assets/{general-DW9bVist.js → general-CoVUYyMR.js} +1 -1
  113. package/dist/client/assets/{github-repo-picker-9AcEQIzR.js → github-repo-picker-DCJM6kUv.js} +1 -1
  114. package/dist/client/assets/{hooks-DquOZ-Xk.js → hooks-B_OzkqOw.js} +1 -1
  115. package/dist/client/assets/{hosting-tab-fN4y3bIT.js → hosting-tab-DWEPHzfP.js} +1 -1
  116. package/dist/client/assets/{index-m6p9dAul.js → index-8EQI4jb9.js} +1 -1
  117. package/dist/client/assets/{index-Dpj-HbFs.js → index-B6A3wuLU.js} +1 -1
  118. package/dist/client/assets/{index-D821QKnk.js → index-BCt2uFI_.js} +1 -1
  119. package/dist/client/assets/{index-BfWwYPwx.js → index-CLY_djza.js} +1 -1
  120. package/dist/client/assets/{index-BRMuylL4.js → index-Cta3b78k.js} +1 -1
  121. package/dist/client/assets/{index-DGNeXmXN.js → index-D7m14Ye7.js} +1 -1
  122. package/dist/client/assets/{index-BkawI5he.js → index-DCevbqym.js} +5 -5
  123. package/dist/client/assets/{index-D-9OW3Wb.js → index-Dj16ORNx.js} +59 -59
  124. package/dist/client/assets/{index-CnZuejsK.js → index-c6VGU_Mp.js} +1 -1
  125. package/dist/client/assets/{index-redirect-1cfJeTJH.js → index-redirect-Bv-iONkz.js} +1 -1
  126. package/dist/client/assets/{index-Cdu9R7BQ.js → index-yBKtHITd.js} +1 -1
  127. package/dist/client/assets/{infra-billing-H5rZU-k1.js → infra-billing-BvSfNyRL.js} +1 -1
  128. package/dist/client/assets/{input-fTgot4-g.js → input-C0AUQQ8_.js} +1 -1
  129. package/dist/client/assets/{integration-icon-BLOQWR7d.js → integration-icon-D4j8-Kv5.js} +1 -1
  130. package/dist/client/assets/{invite-member-dialog-BIgrWqr7.js → invite-member-dialog-B237h4QQ.js} +1 -1
  131. package/dist/client/assets/{label-CDt53aWD.js → label-CcYj76fe.js} +1 -1
  132. package/dist/client/assets/{layout-C_t6Nu2o.js → layout-DMtLYgwV.js} +1 -1
  133. package/dist/client/assets/{login-C7qvLy5B.js → login-qSSMZKk1.js} +1 -1
  134. package/dist/client/assets/{markdown-Dzj7KfMq.js → markdown-Dxg7nhkT.js} +1 -1
  135. package/dist/client/assets/{mcp-oauth-PBuEj92n.js → mcp-oauth-hwmH2hkh.js} +1 -1
  136. package/dist/client/assets/{members-D_XPbFzI.js → members-DKk_a497.js} +1 -1
  137. package/dist/client/assets/{monaco-editor-DAtKorVX.js → monaco-editor-BtYnFbuD.js} +1 -1
  138. package/dist/client/assets/{monitoring-stats-row-zC9HU0u6.js → monitoring-stats-row-DNydB8Ju.js} +1 -1
  139. package/dist/client/assets/{multi-select-Dnr7PAJj.js → multi-select-CpFeAOsg.js} +1 -1
  140. package/dist/client/assets/{oauth-callback-Cyp9j0ys.js → oauth-callback-Cr7EX1VL.js} +1 -1
  141. package/dist/client/assets/{oauth-callback-ai-provider-BkDqDLNZ.js → oauth-callback-ai-provider-CxNq8dS6.js} +1 -1
  142. package/dist/client/assets/{onboarding-CvnwGB6M.js → onboarding-D6N7LIEl.js} +1 -1
  143. package/dist/client/assets/org-layout-C7bLXRcP.js +1 -0
  144. package/dist/client/assets/{organization-choice-Brz54IKk.js → organization-choice-BiiAD_BE.js} +1 -1
  145. package/dist/client/assets/{orgs-CcUI9HgJ.js → orgs-DAij51qU.js} +1 -1
  146. package/dist/client/assets/{page-seo-form-OTDku7Z1.js → page-seo-form-CtO4naHh.js} +1 -1
  147. package/dist/client/assets/{popover-DjscXujA.js → popover-B1vPY95C.js} +1 -1
  148. package/dist/client/assets/{post-calendar-BcunQFOG.js → post-calendar-D6_-kGBy.js} +1 -1
  149. package/dist/client/assets/{post-editor-N40xpPkk.js → post-editor--5n2Y6Ns.js} +1 -1
  150. package/dist/client/assets/{primitives-_Vnzju1y.js → primitives-q5hyR4PW.js} +1 -1
  151. package/dist/client/assets/{profile-B_l90EbD.js → profile-DSF6gojZ.js} +1 -1
  152. package/dist/client/assets/project-app-view-n17Rlqgu.js +1 -0
  153. package/dist/client/assets/{project-icon-D7jcmH3z.js → project-icon-DG41Jiqt.js} +1 -1
  154. package/dist/client/assets/{prompts-fLxWWgz-.js → prompts-MWbVDrqG.js} +1 -1
  155. package/dist/client/assets/record-editor-D5Nmrr5v.js +1 -0
  156. package/dist/client/assets/{redirect-editor-BePOP1Ph.js → redirect-editor-BX-rixYX.js} +1 -1
  157. package/dist/client/assets/registry-CEjWcjYC.js +2 -0
  158. package/dist/client/assets/{registry-layout-CLY27ukG.js → registry-layout-PQ9gAZPz.js} +1 -1
  159. package/dist/client/assets/{reports-CGghkfg_.js → reports-BBj85MjG.js} +1 -1
  160. package/dist/client/assets/{require-capability-D2jyLdx0.js → require-capability-C-8ALwbk.js} +1 -1
  161. package/dist/client/assets/{required-auth-layout-ZGcoBsTU.js → required-auth-layout-4ahoETAf.js} +1 -1
  162. package/dist/client/assets/{reset-password-Dkrm3cHn.js → reset-password-BLa82Bqm.js} +1 -1
  163. package/dist/client/assets/{review-settings-DLtdjNmr.js → review-settings-CNbQ3mwW.js} +1 -1
  164. package/dist/client/assets/{roles-CcvMkry_.js → roles-CIFz5Xov.js} +1 -1
  165. package/dist/client/assets/{schema-C5E0ePqu.js → schema-ChqyfCeY.js} +1 -1
  166. package/dist/client/assets/{scroll-area-F200w2mh.js → scroll-area-B97ka3_6.js} +1 -1
  167. package/dist/client/assets/{search-input-DJIbu8BB.js → search-input-1D-dL7IT.js} +1 -1
  168. package/dist/client/assets/{secrets-DMZxvEj_.js → secrets-Cuk58Ook.js} +1 -1
  169. package/dist/client/assets/{sections-editor-DwiAEnZ7.js → sections-editor-CshbEvZL.js} +1 -1
  170. package/dist/client/assets/{select-aD2SqHOW.js → select-_6Z7cDJZ.js} +1 -1
  171. package/dist/client/assets/{select-model-BAm7L9iK.js → select-model-D7pN73ZY.js} +1 -1
  172. package/dist/client/assets/{self-tool-result-j5kSv4ca.js → self-tool-result-jxHJ1IY3.js} +1 -1
  173. package/dist/client/assets/{seo-editor-Cm_lDZye.js → seo-editor-CiZ7WUTz.js} +1 -1
  174. package/dist/client/assets/settings-layout-DW4LXV0t.js +1 -0
  175. package/dist/client/assets/{settings-sidebar-CFckzuH2.js → settings-sidebar-BBhzFqUd.js} +1 -1
  176. package/dist/client/assets/{shell-controls-B6jpfAPG.js → shell-controls-BkpRck9z.js} +1 -1
  177. package/dist/client/assets/shell-layout-C-EMvFjS.js +1 -0
  178. package/dist/client/assets/{skill-preview-Crvic_gM.js → skill-preview-Ck2vUztg.js} +1 -1
  179. package/dist/client/assets/{skills-CJys28KJ.js → skills-CyU7xTfl.js} +1 -1
  180. package/dist/client/assets/{sso-BbCXtvEm.js → sso-BQtJ8wkI.js} +1 -1
  181. package/dist/client/assets/{store-DxhB5rKM.js → store-DV6cC9kN.js} +1 -1
  182. package/dist/client/assets/store-registry-B84UBqmo.js +2 -0
  183. package/dist/client/assets/{switch-BImv-gvt.js → switch-DykvH6tM.js} +1 -1
  184. package/dist/client/assets/{synced-repos-Y5DAHAzN.js → synced-repos-C4oOjTH9.js} +1 -1
  185. package/dist/client/assets/{table-svMfP7N5.js → table-C4pM2B-P.js} +1 -1
  186. package/dist/client/assets/{tabs-DX2hIJ3b.js → tabs-XtEy_apy.js} +1 -1
  187. package/dist/client/assets/{task-board-CU2obT3r.js → task-board-D45M7WWj.js} +1 -1
  188. package/dist/client/assets/{task-route-DCBGrQpz.js → task-route-BfjAUZVG.js} +1 -1
  189. package/dist/client/assets/{tasks-g-5mQjJo.js → tasks-Cf5ap0kL.js} +1 -1
  190. package/dist/client/assets/{textarea-DJdAgtmk.js → textarea-CbdzucPE.js} +1 -1
  191. package/dist/client/assets/{toggle-group-BtNaSJHm.js → toggle-group-CVQiVlAz.js} +1 -1
  192. package/dist/client/assets/{toolbar-kq9Y7nNF.js → toolbar-C3Q3F0uS.js} +1 -1
  193. package/dist/client/assets/{toolbar-icon-button-DI6yIlPy.js → toolbar-icon-button-DsiT6SnU.js} +1 -1
  194. package/dist/client/assets/{track-X0YKsDzo.js → track-CS0bcZBI.js} +1 -1
  195. package/dist/client/assets/{types-BeDjBiKO.js → types-CFkrVfD_.js} +1 -1
  196. package/dist/client/assets/{use-ai-providers-AGwxnFdj.js → use-ai-providers-BQGN8qrC.js} +1 -1
  197. package/dist/client/assets/{use-automations-CmwM0DEc.js → use-automations-ByvjeuHl.js} +1 -1
  198. package/dist/client/assets/{use-autosave-lN3i2RtH.js → use-autosave-DGn_ADYg.js} +1 -1
  199. package/dist/client/assets/use-connection-BKS67rjc.js +1 -0
  200. package/dist/client/assets/{use-copy-DHyeBoZ8.js → use-copy-GR2jl9VX.js} +1 -1
  201. package/dist/client/assets/{use-create-virtual-mcp-BOvsC0DW.js → use-create-virtual-mcp-D9mx9J8G.js} +1 -1
  202. package/dist/client/assets/{use-debounced-autosave-8VnwrEMs.js → use-debounced-autosave-BV6DgKjG.js} +1 -1
  203. package/dist/client/assets/{use-debounced-value-3IbXIZAk.js → use-debounced-value-CqwIyrmz.js} +1 -1
  204. package/dist/client/assets/{use-decopilot-events-WOaP0SQC.js → use-decopilot-events-1dkFa-Q6.js} +1 -1
  205. package/dist/client/assets/{use-delete-connection-Df_yxWGf.js → use-delete-connection-B7nTRPtq.js} +1 -1
  206. package/dist/client/assets/{use-deployment-admin-CMRSZLUJ.js → use-deployment-admin-yelb-zCG.js} +1 -1
  207. package/dist/client/assets/{use-destination-route-B2O150Yr.js → use-destination-route-Bh5xVLwg.js} +1 -1
  208. package/dist/client/assets/{use-file-configs-B45QMkT9.js → use-file-configs-Do13WrHH.js} +1 -1
  209. package/dist/client/assets/{use-infinite-scroll-PS5OvGme.js → use-infinite-scroll-CO9wdRVK.js} +1 -1
  210. package/dist/client/assets/{use-join-requests-DPn5Hwkp.js → use-join-requests-BrAiwbQw.js} +1 -1
  211. package/dist/client/assets/{use-mcp-auth-status-CaPfR8Sa.js → use-mcp-auth-status-C3JOJnL-.js} +1 -1
  212. package/dist/client/assets/{use-mcp-client-DxE4Ab64.js → use-mcp-client-CuEugXlI.js} +1 -1
  213. package/dist/client/assets/{use-mcp-prompts-BNrqL_f0.js → use-mcp-prompts-C6hxSDwP.js} +1 -1
  214. package/dist/client/assets/{use-members-Nvqy7Dzy.js → use-members-BkAoNuwL.js} +1 -1
  215. package/dist/client/assets/{use-navigate-to-agent-Cf-IaJUb.js → use-navigate-to-agent-ykCgItNq.js} +1 -1
  216. package/dist/client/assets/{use-org-auth-client-BR0PCT04.js → use-org-auth-client-DwAe7edF.js} +1 -1
  217. package/dist/client/assets/{use-org-sso-CblCPla_.js → use-org-sso-C277NK96.js} +1 -1
  218. package/dist/client/assets/{use-organization-roles-PibAy9Wd.js → use-organization-roles-Bu1SZ-bg.js} +1 -1
  219. package/dist/client/assets/{use-organization-settings-BV17wl2V.js → use-organization-settings-D9VQupuN.js} +1 -1
  220. package/dist/client/assets/{use-panel-navigate-BG-ooS17.js → use-panel-navigate--Qp9URsG.js} +1 -1
  221. package/dist/client/assets/{use-registry-connections-CdSZH0XX.js → use-registry-connections-B9ZMyOQz.js} +1 -1
  222. package/dist/client/assets/{use-secrets-BjE52mie.js → use-secrets-BwHJE9du.js} +1 -1
  223. package/dist/client/assets/{use-section-preview-base-BmQOZ8go.js → use-section-preview-base-jF3xKJ1k.js} +1 -1
  224. package/dist/client/assets/{use-status-sounds-tS7pmMWO.js → use-status-sounds-DzHaqdGf.js} +1 -1
  225. package/dist/client/assets/{use-tags-B-KgG3zC.js → use-tags-DtvG9uK8.js} +1 -1
  226. package/dist/client/assets/{use-view-mode-DRYLjqJC.js → use-view-mode-Dgz-mdBZ.js} +1 -1
  227. package/dist/client/assets/{use-virtual-mcp-DT_fCnuE.js → use-virtual-mcp-BeE2I84u.js} +1 -1
  228. package/dist/client/assets/useInfiniteQuery-BzIdHTTV.js +1 -0
  229. package/dist/client/assets/useSuspenseInfiniteQuery-DDb6gFqx.js +1 -0
  230. package/dist/client/assets/{users-ByFjNqYU.js → users-DQly4PYO.js} +1 -1
  231. package/dist/client/assets/{variant-calendar-CJr-jUZm.js → variant-calendar-BuZ94vap.js} +1 -1
  232. package/dist/client/assets/{view-mode-toggle-DTFhAaHw.js → view-mode-toggle-BPvV4_5X.js} +1 -1
  233. package/dist/client/index.html +1 -1
  234. package/dist/server/cli.js +1 -1
  235. package/dist/server/server.js +1 -1
  236. package/package.json +1 -1
  237. package/dist/client/assets/api-keys-Dcjx1Kt1.js +0 -1
  238. package/dist/client/assets/automations-qhDCv6KW.js +0 -1
  239. package/dist/client/assets/org-layout-DItAI5Di.js +0 -1
  240. package/dist/client/assets/project-app-view-Dq7iYeXJ.js +0 -1
  241. package/dist/client/assets/record-editor-Ci_NDgeT.js +0 -1
  242. package/dist/client/assets/registry-Bh5jhzbl.js +0 -2
  243. package/dist/client/assets/settings-layout-DLlpPiRj.js +0 -1
  244. package/dist/client/assets/shell-layout-BBeCMSA6.js +0 -1
  245. package/dist/client/assets/store-registry-DECUw0kw.js +0 -2
  246. package/dist/client/assets/use-connection-CsZlLbEZ.js +0 -1
  247. package/dist/client/assets/useInfiniteQuery-Din4IYlF.js +0 -1
  248. package/dist/client/assets/useSuspenseInfiniteQuery-BeASDmXg.js +0 -1
@@ -1545,7 +1545,7 @@ Usage: deco services <up|down|status>`),process.exit(1)}}var Sn1=L(()=>{Ub()});f
1545
1545
  `.execute($);if(Number(W.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${J}/${K}, keeping in old table`);continue}}await yy`
1546
1546
  DELETE FROM kysely_migration WHERE name = ${X}
1547
1547
  `.execute($)}}async function xs1($){await G04($),await J04($);let Z=new _s1({db:$,provider:{getMigrations:()=>Promise.resolve(qn0)}}),{error:X,results:Q}=await Z.migrateToLatest(),Y=0;if(Q?.forEach((G)=>{if(G.status==="Success")Y++;else if(G.status==="Error")console.error(`Failed to execute migration "${G.migrationName}"`)}),X)throw console.error("Failed to migrate"),console.error(X),X;return Y}async function K04($){let{keepOpen:Z=!1,database:X,skipBetterAuth:Q=!1}=$??{},Y="skipped";if(!Q&&!X)Y=await Bm0();let G=X??u$(),J=async()=>{if(!Z&&!X)await WO(G).catch((K)=>{console.warn("Warning: Error closing database:",K)})};try{let K=await xs1(G.db);return await J(),{betterAuth:Y,kysely:K}}catch(K){throw await J(),K}}async function W04(){let $=u$(),Z=new _s1({db:$.db,provider:{getMigrations:()=>Promise.resolve(qn0)}}),{error:X,results:Q}=await Z.migrateDown();if(Q?.forEach((Y)=>{if(Y.status==="Success")console.log(`\u2705 Migration "${Y.migrationName}" rolled back successfully`);else if(Y.status==="Error")console.error(`\u274C Failed to rollback migration "${Y.migrationName}"`)}),X)throw console.error("Failed to rollback migration"),console.error(X),X}var bs1=L(()=>{Cs1();Om0();JX()});async function v70($){let Z={...process.env},X=I80($,Z);console.log(_E1(X.settings.encryptionKey));let Q=X.settings.betterAuthSecret||(X.settings.localMode?Ko1(X.settings.dataDir):""),{ensureServices:Y}=await Promise.resolve().then(() => (yZ0(),bZ0)),{outputs:G,services:J}=await Y({home:X.settings.dataDir,externalDatabaseUrl:X.externalDatabaseUrl,externalNatsUrl:X.externalNatsUrl});if(!X.skipMigrations){let{migrateBetterAuth:W}=await Promise.resolve().then(() => (Om0(),Ho1));await W(G.databaseUrl);let{createDatabase:H}=await Promise.resolve().then(() => (JX(),It1)),{migrateToLatest:F}=await Promise.resolve().then(() => (bs1(),fs1)),U=H(G.databaseUrl);await F({keepOpen:!0,database:U,skipBetterAuth:!0})}let K={...X.settings,betterAuthSecret:Q,databaseUrl:G.databaseUrl,natsUrls:G.natsUrls,...G.s3?{s3Endpoint:G.s3.endpoint,s3Bucket:G.s3.bucket,s3AccessKeyId:G.s3.accessKeyId,s3SecretAccessKey:G.s3.secretAccessKey,s3ForcePathStyle:G.s3.forcePathStyle}:{}};return Cn1(K),{settings:K,services:J.map((W)=>({name:W.name==="PostgreSQL"?"Postgres":W.name,port:W.port})),managedServiceNames:J.filter((W)=>W.owner==="managed").map((W)=>W.name)}}var Mn0=L(()=>{Ub();Wo1();j$()});var us1={};s(us1,{updateService:()=>eE,subscribeCliState:()=>Sn0,setTuiConsoleIntercepted:()=>x70,setServerUrl:()=>Cp,setMigrationsDone:()=>Sp,setDevMode:()=>F04,resetCliStateForTests:()=>H04,isTuiConsoleIntercepted:()=>f70,getCliState:()=>kn0,addLogEntry:()=>LO});function ys1(){return[{name:"Postgres",status:"pending",port:0},{name:"NATS",status:"pending",port:0}]}function gs1(){return{services:ys1(),migrationsStatus:"pending",serverUrl:null,logs:[]}}function H04(){tQ=gs1()}function kp(){for(let $ of Vn0)$()}function kn0(){return tQ}function Sn0($){return Vn0.add($),()=>Vn0.delete($)}function eE($){tQ={...tQ,services:tQ.services.map((Z)=>Z.name===$.name?$:Z)},kp()}function Sp(){tQ={...tQ,migrationsStatus:"done"},kp()}function Cp($){tQ={...tQ,serverUrl:$},kp()}function LO($){let Z=[...tQ.logs,$];tQ={...tQ,logs:Z.length>500?Z.slice(-500):Z},kp()}function F04(){tQ={...tQ,services:[...ys1(),{name:"API",status:"pending",port:0},{name:"Vite",status:"pending",port:0}]},kp()}function x70($){hs1=$}function f70(){return hs1}var tQ,Vn0,hs1=!1;var $j=L(()=>{tQ=gs1();Vn0=new Set});import{createServer as cs1}from"net";function U04($){return new Promise((Z)=>{let X=cs1();X.once("error",()=>Z(!1)),X.listen($,"0.0.0.0",()=>{X.close(()=>Z(!0))})})}async function _p($){if(await U04($))return $;let Z=await new Promise((X,Q)=>{let Y=cs1();Y.once("error",Q),Y.listen(0,"0.0.0.0",()=>{let G=Y.address(),J=typeof G==="object"&&G?G.port:0;Y.close(()=>X(J))})});return console.warn(`Port ${$} is in use, using port ${Z} instead.`),Z}var Cn0=()=>{};var vn0={};s(vn0,{startDevServer:()=>B04,pipeToLogStore:()=>_n0});import{join as N04}from"path";function _n0($){let Z=$.getReader(),X=new TextDecoder,Q="";function Y(){let G=Q.split(`
1548
- `);Q=G.pop()??"";for(let J of G){let K=Bun.stripANSI(J).replace(/^\[\d+\]\s*/,"").trim();if(!K)continue;LO({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:K})}}(async()=>{try{for(;;){let{done:G,value:J}=await Z.read();if(G)break;Q+=X.decode(J,{stream:!0}),Y()}}catch{}if(Q.trim()){let G=Bun.stripANSI(Q).replace(/^\[\d+\]\s*/,"").trim();if(G)LO({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:G})}})()}async function B04($){let{baseUrl:Z,noTui:X}=$,Q=process.env.HOST==="0.0.0.0"&&Boolean(process.env.PORT),Y=Q?process.env.PORT:$.vitePort,G=Z||`http://localhost:${Y}`,J=Q?await _p(Number(Y)+1):await _p(Number($.port)),{settings:K,services:W,managedServiceNames:H}=await v70({port:String(J),home:$.home,baseUrl:$.baseUrl,localMode:$.localMode,skipMigrations:$.skipMigrations,noTui:$.noTui,vitePort:$.vitePort});for(let D of W)eE({name:D.name,status:"ready",port:D.port});Sp();let F=N04(import.meta.dir,"..","..","..","..",".."),U=X===!0,N=Bun.spawn(["bun","run","dev:servers"],{cwd:F,env:{...process.env,PORT:String(K.port),VITE_PORT:String(Y),DATABASE_URL:K.databaseUrl,NATS_URL:K.natsUrls.join(","),NODE_ENV:K.nodeEnv,BASE_URL:G,DECOCMS_LOCAL_MODE:String(K.localMode),DECOCMS_HOME:K.dataDir,DATA_DIR:K.dataDir,DECO_CLI:"1",...K.betterAuthSecret?{BETTER_AUTH_SECRET:K.betterAuthSecret}:{},...K.s3Endpoint?{S3_ENDPOINT:K.s3Endpoint,S3_BUCKET:K.s3Bucket??"",S3_ACCESS_KEY_ID:K.s3AccessKeyId??"",S3_SECRET_ACCESS_KEY:K.s3SecretAccessKey??"",S3_FORCE_PATH_STYLE:String(K.s3ForcePathStyle)}:{},...K.natsCredsPath?{NATS_CREDS:K.natsCredsPath}:{}},stdio:["inherit",U?"inherit":"pipe",U?"inherit":"pipe"]});if(!U)_n0(N.stdout),_n0(N.stderr);Cp(G),eE({name:"Vite",status:"ready",port:Number(Y)}),eE({name:"API",status:"ready",port:Number(K.port)});let O=async(D)=>{if(N.kill(D),await N.exited,H.length>0){let{stopServices:w}=await Promise.resolve().then(() => (yZ0(),bZ0));await w(K.dataDir)}};return process.on("SIGINT",()=>O("SIGINT")),process.on("SIGTERM",()=>O("SIGTERM")),{port:Number(Y),process:N}}var xn0=L(()=>{Mn0();$j();Cn0()});var b70;var fn0=L(()=>{b70={name:"decocms",version:"4.325.3",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/api"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:"bun run migrate && bun run dev:server","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts",build:"bun run build:server","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","generate:tool-contracts":"bun run scripts/generate-tool-contracts.ts","db:migrate":"bun run ./dist/server/migrate.js","db:migrate:dbos":"bun run ./dist/server/migrate-dbos.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts","migrate:dbos":"bun run src/database/migrate-dbos.ts",test:"bun test src","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts",prepublishOnly:"bun run --cwd=../.. build:studio"},optionalDependencies:{"@duckdb/node-api":"^1.5.0-r.1"},dependencies:{"@ai-sdk/anthropic":"^3.0.85","@ai-sdk/google":"^3.0.83","@ai-sdk/openai":"^3.0.73","@anthropic-ai/sdk":"^0.105.0","@aws-sdk/client-s3":"^3.1013.0","@aws-sdk/client-sts":"^3.1013.0","@aws-sdk/lib-storage":"^3.1013.0","@aws-sdk/s3-request-presigner":"^3.1013.0","@clickhouse/client":"^1.8.1","@dbos-inc/dbos-sdk":"^4.21.6","@inkjs/ui":"^2.0.0","@nats-io/jetstream":"3.4.0","@nats-io/kv":"3.4.0","@nats-io/nats-core":"3.4.0","@nats-io/transport-node":"3.4.0","@openrouter/ai-sdk-provider":"^2.9.1","@opentelemetry/core":"^2.6.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12","posthog-node":"^5.0.0",react:"^19.2.6","react-dom":"^19.2.6"},devDependencies:{"@ai-sdk/provider":"^3.0.10","@better-auth/sso":"1.4.1","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/runtime":"workspace:*","@decocms/sandbox":"workspace:*","@decocms/shared":"workspace:*","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.29.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/resources":"^2.6.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","@types/bun":"^1.3.1","@types/google.maps":"^3.65.2","@types/pg":"^8.15.6","@types/react-syntax-highlighter":"^15.5.13","@vercel/nft":"^1.1.1",ai:"^6.0.208","better-auth":"1.4.22",croner:"^9.1.0",degit:"^2.8.4",hono:"^4.10.7",jose:"^6.0.11",nanoid:"^5.1.6",pg:"^8.16.3",typescript:"^7.0.2",typescript5:"npm:typescript@^5.9.3",zod:"4.3.6"},homepage:"https://github.com/decocms/studio",keywords:["mcp","model-context-protocol","ai","gateway","self-hosted","tools"],license:"MIT",publishConfig:{access:"public"}}});import{Box as L04,Text as ls1}from"ink";import{jsx as D04,jsxs as ms1}from"react/jsx-runtime";function ds1({version:$}){return ms1(L04,{flexDirection:"column",marginTop:1,children:[J70.map((Z,X)=>D04(ls1,{color:K70[X],children:Z},X)),ms1(ls1,{dimColor:!0,children:[" v",$]})]})}var is1=L(()=>{wp()});import{Box as Zj,Text as DO}from"ink";import{Spinner as w04}from"@inkjs/ui";import{jsx as UG,jsxs as gy}from"react/jsx-runtime";function ps1({status:$}){if($==="pending")return UG(w04,{label:""});return UG(DO,{color:"green",children:"\u2713"})}function E04($){return`${$.name}: ${$.port||"...."}`}function ns1({services:$,migrationsStatus:Z,home:X,serverUrl:Q}){return gy(Zj,{flexDirection:"column",paddingBottom:1,children:[UG(ds1,{version:b70.version}),UG(Zj,{marginBottom:1,children:UG(DO,{dimColor:!0,children:"\u2500".repeat(80)})}),UG(Zj,{children:gy(DO,{dimColor:!0,children:["Home: ",X]})}),gy(Zj,{gap:2,children:[$.map((Y)=>gy(Zj,{gap:1,children:[UG(DO,{children:E04(Y)}),UG(ps1,{status:Y.status})]},Y.name)),gy(Zj,{gap:1,children:[UG(DO,{children:"Migrations"}),UG(ps1,{status:Z})]})]}),UG(Zj,{children:Q?gy(DO,{children:["Open in browser: ",UG(DO,{color:"cyan",children:Q})]}):UG(DO,{dimColor:!0,children:"Starting..."})})]})}var ts1=L(()=>{fn0();is1()});import{Box as j04,Text as vp}from"ink";import{jsx as bn0,jsxs as yn0}from"react/jsx-runtime";function z04($){if($>=500)return"red";if($>=400)return"yellow";if($>=300)return"cyan";return"green"}function os1({logs:$}){return bn0(j04,{flexDirection:"column",children:$.map((Z,X)=>{if(Z.rawLine)return bn0(vp,{dimColor:!0,children:Z.rawLine},X);let Q=Z.duration<1000?`${Z.duration}ms`:`${(Z.duration/1000).toFixed(1)}s`;return yn0(vp,{children:[yn0(vp,{dimColor:!0,children:[Z.method.padEnd(6)," ",Z.path.padEnd(30)," "]}),bn0(vp,{color:z04(Z.status),children:Z.status}),yn0(vp,{dimColor:!0,children:[" ",Q.padStart(8)]})]},X)})})}var rs1=()=>{};var gn0={};s(gn0,{App:()=>T04});import{Box as P04}from"ink";import{useSyncExternalStore as A04}from"react";import{jsx as as1,jsxs as R04}from"react/jsx-runtime";function T04({home:$}){let Z=A04(Sn0,kn0);return R04(P04,{flexDirection:"column",children:[as1(ns1,{services:Z.services,migrationsStatus:Z.migrationsStatus,home:$,serverUrl:Z.serverUrl}),as1(os1,{logs:Z.logs})]})}var hn0=L(()=>{ts1();rs1();$j()});var o3="thread-gate",AU="decopilot-hosted-harness",TU="decopilot-hosted-harness-sandboxed",qJ="automations",wO="background-tools",Xj="task-board-github-reads";var ss1="11";function es1($){return{name:"decocms",systemDatabaseUrl:$.systemDatabaseUrl,systemDatabaseSchemaName:"dbos",systemDatabasePoolSize:$.poolSize,runAdminServer:!1,executorID:$.executorID,applicationVersion:ss1,...$.listenQueues!==void 0?{listenQueues:$.listenQueues}:{}}}var $e1=()=>{};import I04 from"pg";async function Xe1($,Z){let{databaseUrl:X,lockTimeoutMs:Q=q04}=$,Y=$.log??((W)=>console.log(W)),G=new I04.Client({connectionString:X});await G.connect();let J=Date.now(),K=!1;try{while(!K){if(K=(await G.query("SELECT pg_try_advisory_lock($1) AS locked",[Ze1.toString()])).rows[0]?.locked===!0,K)break;if(Date.now()-J>=Q)throw Error(`Timed out after ${Q}ms waiting for the DBOS migration lock. Another process is still migrating the dbos schema; this pod will restart and retry.`);await H$(M04)}let W=Date.now()-J;if(W>1000)Y(`[dbos] waited ${W}ms for the migration lock; another process migrated first`);return await Z()}finally{if(K)try{await G.query("SELECT pg_advisory_unlock($1)",[Ze1.toString()])}catch{}await G.end().catch(()=>{})}}var Ze1=8314027461559302n,q04=600000,M04=500;var Qe1=L(()=>{t8()});function V04(){let $=(process.env.BUN_OPTIONS??"").split(/\s+/).filter(Boolean);return[...process.argv.slice(1),...$]}function un0($,Z){for(let X=0;X<$.length;X++){let Q=$[X];if(Q===void 0)continue;if(Q===Z)return $[X+1];if(Q.startsWith(`${Z}=`))return Q.slice(Z.length+1)}return}function Ye1(){let $=V04();if($.includes("--cpu-prof")){console.log(JSON.stringify({msg:"cpu-profiling-active",dir:un0($,"--cpu-prof-dir")??process.cwd(),name:un0($,"--cpu-prof-name"),markdown:$.includes("--cpu-prof-md"),intervalUs:Number(un0($,"--cpu-prof-interval")??1000),note:"profile is written on process exit"}));return}if(process.env.CPU_PROFILE)console.warn(JSON.stringify({msg:"cpu-profiling-requested-but-inactive",hint:'CPU profiling is a Bun launch flag. Set BUN_OPTIONS="--cpu-prof --cpu-prof-md --cpu-prof-dir=/tmp" before starting the process.'}))}function Ge1(){if(process.env.HEAP_WATCH!=="1")return()=>{};let $=Number(process.env.HEAP_WATCH_INTERVAL_MS??60000),Z=async()=>{let X=oE();if(!X)return;let Q={};try{let{heapStats:Y}=await import("bun:jsc"),G=Y(),J=Object.entries(G.objectTypeCounts).sort((K,W)=>W[1]-K[1]).slice(0,20);Q={objectCount:G.objectCount,heapSize:G.heapSize,top:Object.fromEntries(J)}}catch{}console.log(JSON.stringify({msg:"heap-watch",ts:new Date().toISOString(),uptimeS:Math.round(process.uptime()),rss:X.rss,heapUsed:X.heapUsed,heapTotal:X.heapTotal,external:X.external,arrayBuffers:X.arrayBuffers,...Q}))};return Z().catch(()=>{}),y70=setInterval(()=>void Z().catch(()=>{}),$),y70.unref?.(),process.on("SIGUSR2",()=>{try{let X=Bun.generateHeapSnapshot("v8"),Q=typeof X==="string"?X:JSON.stringify(X),Y=`/tmp/heap-${process.pid}-${Date.now()}.heapsnapshot`;Bun.write(Y,Q),console.log(JSON.stringify({msg:"heap-snapshot-written",path:Y}))}catch(X){console.error("[heap-watch] snapshot failed:",X)}}),()=>{if(y70)clearInterval(y70)}}var y70;var Je1=()=>{};import*as k04 from"bun:jsc";function Ke1(){if(process.env.STALL_WATCHDOG!=="1")return()=>{};let $=Number(process.env.STALL_WATCHDOG_MS??100),Z=Number(process.env.STALL_WATCHDOG_TICK_MS??50);try{S04()}catch(G){return console.error("[stall-watchdog] failed to start sampling profiler:",G),()=>{}}let X,Q=performance.now()+Z,Y=()=>{let G=performance.now(),J=G-Q;Q=G+Z;let K=[];try{K=C04()?.traces??[]}catch{}if(J>$&&K.length>0){let W=new Map;for(let F of K){let U=F.frames.find((O)=>O.sourceURL&&!/Unknown Executable/.test(O.category??""))??F.frames[0];if(!U)continue;let N=(U.sourceURL??"?").replace(/^.*\/node_modules\//,"node_modules/"),B=`${U.name??"?"} @ ${N}:${U.line??"?"}`;W.set(B,(W.get(B)??0)+1)}let H=[...W.entries()].sort((F,U)=>U[1]-F[1]).slice(0,8).map(([F,U])=>({frame:F,count:U}));console.warn(JSON.stringify({msg:"stall-stack",ts:new Date().toISOString(),lagMs:Math.round(J),samplesInWindow:K.length,top:H}))}X=setTimeout(Y,Z),X.unref?.()};return X=setTimeout(Y,Z),X.unref?.(),()=>{if(X)clearTimeout(X)}}var S04,C04;var We1=L(()=>{({startSamplingProfiler:S04,samplingProfilerStackTraces:C04}=k04)});function He1(){Ye1();let $=[Ge1(),wt1(),Ke1()];return()=>{for(let Z of $)Z()}}var Fe1=L(()=>{Ym0();Je1();We1()});var Qj=v((Ue1)=>{Object.defineProperty(Ue1,"__esModule",{value:!0});Ue1.RepublishHeaders=Ue1.DirectMsgHeaders=Ue1.JsHeaders=Ue1.AdvisoryKind=void 0;Ue1.isOrderedPushConsumerOptions=_04;Ue1.isPullConsumer=v04;Ue1.isPushConsumer=x04;Ue1.isBoundPushConsumerOptions=f04;function _04($){if($&&typeof $==="object")return"name_prefix"in $||"deliver_subject_prefix"in $||"filter_subjects"in $||"filter_subject"in $||"deliver_policy"in $||"opt_start_seq"in $||"opt_start_time"in $||"replay_policy"in $||"inactive_threshold"in $||"headers_only"in $||"deliver_prefix"in $;return!1}function v04($){return $.isPullConsumer()}function x04($){return $.isPushConsumer()}function f04($){if($&&typeof $==="object")return"deliver_subject"in $||"deliver_group"in $||"idle_heartbeat"in $;return!1}Ue1.AdvisoryKind={API:"api_audit",StreamAction:"stream_action",ConsumerAction:"consumer_action",SnapshotCreate:"snapshot_create",SnapshotComplete:"snapshot_complete",RestoreCreate:"restore_create",RestoreComplete:"restore_complete",MaxDeliver:"max_deliver",Terminated:"terminated",Ack:"consumer_ack",StreamLeaderElected:"stream_leader_elected",StreamQuorumLost:"stream_quorum_lost",ConsumerLeaderElected:"consumer_leader_elected",ConsumerQuorumLost:"consumer_quorum_lost"};Ue1.JsHeaders={StreamSourceHdr:"Nats-Stream-Source",LastConsumerSeqHdr:"Nats-Last-Consumer",LastStreamSeqHdr:"Nats-Last-Stream",ConsumerStalledHdr:"Nats-Consumer-Stalled",MessageSizeHdr:"Nats-Msg-Size",RollupHdr:"Nats-Rollup",RollupValueSubject:"sub",RollupValueAll:"all",PendingMessagesHdr:"Nats-Pending-Messages",PendingBytesHdr:"Nats-Pending-Bytes",RequiredApiLevel:"Nats-Required-Api-Level"};Ue1.DirectMsgHeaders={Stream:"Nats-Stream",Sequence:"Nats-Sequence",TimeStamp:"Nats-Time-Stamp",Subject:"Nats-Subject",LastSequence:"Nats-Last-Sequence",NumPending:"Nats-Num-Pending"};Ue1.RepublishHeaders={Stream:"Nats-Stream",Subject:"Nats-Subject",Sequence:"Nats-Sequence",LastSequence:"Nats-Last-Sequence",Size:"Nats-Msg-Size"}});var NG=v((Be1)=>{Object.defineProperty(Be1,"__esModule",{value:!0});Be1.TD=Be1.TE=Be1.Empty=void 0;Be1.encode=d04;Be1.decode=i04;Be1.Empty=new Uint8Array(0);Be1.TE=new TextEncoder;Be1.TD=new TextDecoder;function m04(...$){let Z=0;for(let Y=0;Y<$.length;Y++)Z+=$[Y].length;let X=new Uint8Array(Z),Q=0;for(let Y=0;Y<$.length;Y++)X.set($[Y],Q),Q+=$[Y].length;return X}function d04(...$){let Z=[];for(let X=0;X<$.length;X++)Z.push(Be1.TE.encode($[X]));if(Z.length===0)return Be1.Empty;if(Z.length===1)return Z[0];return m04(...Z)}function i04($){if(!$||$.length===0)return"";return Be1.TD.decode($)}});var BG=v((De1)=>{Object.defineProperty(De1,"__esModule",{value:!0});De1.errors=De1.PermissionViolationError=De1.NoRespondersError=De1.TimeoutError=De1.RequestError=De1.ProtocolError=De1.ConnectionError=De1.DrainingConnectionError=De1.ClosedConnectionError=De1.AuthorizationError=De1.UserAuthenticationExpiredError=De1.InvalidOperationError=De1.InvalidArgumentError=De1.InvalidSubjectError=void 0;class ln0 extends Error{constructor($,Z){super(`illegal subject: '${$}'`,Z);this.name="InvalidSubjectError"}}De1.InvalidSubjectError=ln0;class g70 extends Error{constructor($,Z){super($,Z);this.name="InvalidArgumentError"}static format($,Z,X){if(Array.isArray(Z)&&Z.length>1)Z=Z[0];if(Array.isArray($))$=$.map((Q)=>`'${Q}'`),$=$.join(",");else $=`'${$}'`;return new g70(`${$} ${Z}`,X)}}De1.InvalidArgumentError=g70;class mn0 extends Error{constructor($,Z){super($,Z);this.name="InvalidOperationError"}}De1.InvalidOperationError=mn0;class h70 extends Error{constructor($,Z){super($,Z);this.name="UserAuthenticationExpiredError"}static parse($){if($.toLowerCase().indexOf("user authentication expired")!==-1)return new h70($);return null}}De1.UserAuthenticationExpiredError=h70;class u70 extends Error{constructor($,Z){super($,Z);this.name="AuthorizationError"}static parse($){let Z=["authorization violation","account authentication expired","authentication timeout"],X=$.toLowerCase();for(let Q=0;Q<Z.length;Q++)if(X.indexOf(Z[Q])!==-1)return new u70($);return null}}De1.AuthorizationError=u70;class dn0 extends Error{constructor(){super("closed connection");this.name="ClosedConnectionError"}}De1.ClosedConnectionError=dn0;class in0 extends Error{constructor(){super("connection draining");this.name="DrainingConnectionError"}}De1.DrainingConnectionError=in0;class pn0 extends Error{constructor($,Z){super($,Z);this.name="ConnectionError"}}De1.ConnectionError=pn0;class nn0 extends Error{constructor($,Z){super($,Z);this.name="ProtocolError"}}De1.ProtocolError=nn0;class tn0 extends Error{constructor($="",Z){super($,Z);this.name="RequestError"}isNoResponders(){return this.cause instanceof c70}}De1.RequestError=tn0;class on0 extends Error{constructor($){super("timeout",$);this.name="TimeoutError"}}De1.TimeoutError=on0;class c70 extends Error{subject;constructor($,Z){super(`no responders: '${$}'`,Z);this.subject=$,this.name="NoResponders"}}De1.NoRespondersError=c70;class l70 extends Error{operation;subject;queue;constructor($,Z,X,Q,Y){super($,Y);this.name="PermissionViolationError",this.operation=Z,this.subject=X,this.queue=Q}static parse($){if(($?$.toLowerCase():"").indexOf("permissions violation")===-1)return null;let X="publish",Q="",Y=void 0,G=$.match(/(Publish|Subscription) to "(\S+)"/);if(G){if(X=G[1].toLowerCase(),Q=G[2],X==="subscription"){let J=$.match(/using queue "(\S+)"/);if(J)Y=J[1]}}return new l70($,X,Q,Y)}}De1.PermissionViolationError=l70;De1.errors={AuthorizationError:u70,ClosedConnectionError:dn0,ConnectionError:pn0,DrainingConnectionError:in0,InvalidArgumentError:g70,InvalidOperationError:mn0,InvalidSubjectError:ln0,NoRespondersError:c70,PermissionViolationError:l70,ProtocolError:nn0,RequestError:tn0,TimeoutError:on0,UserAuthenticationExpiredError:h70}});var r3=v((Pe1)=>{Object.defineProperty(Pe1,"__esModule",{value:!0});Pe1.SimpleMutex=Pe1.Perf=void 0;Pe1.extend=W14;Pe1.render=H14;Pe1.timeout=F14;Pe1.delay=U14;Pe1.deadline=N14;Pe1.deferred=an0;Pe1.debugDeferred=B14;Pe1.shuffle=O14;Pe1.collect=L14;Pe1.jitter=ze1;Pe1.backoff=D14;Pe1.nanos=w14;Pe1.millis=E14;Pe1.randomToken=P14;var K14=NG(),rn0=BG();function W14($,...Z){for(let X=0;X<Z.length;X++){let Q=Z[X];Object.keys(Q).forEach(function(Y){$[Y]=Q[Y]})}return $}function H14($){return K14.TD.decode($).replace(/\n/g,"\u240A").replace(/\r/g,"\u240D")}function F14($,Z=!0){let X=Z?new rn0.TimeoutError:null,Q,Y,G=new Promise((J,K)=>{Q={cancel:()=>{if(Y)clearTimeout(Y)}},Y=setTimeout(()=>{if(X===null)K(new rn0.TimeoutError);else K(X)},$)});return Object.assign(G,Q)}function U14($=0){let Z,X=new Promise((Q)=>{let Y=setTimeout(()=>{Q()},$);Z={cancel:()=>{if(Y)clearTimeout(Y),Q()}}});return Object.assign(X,Z)}async function N14($,Z=1000){let X=an0(),Q=setTimeout(()=>{X.reject(new rn0.TimeoutError)},Z);try{return await Promise.race([$,X])}finally{clearTimeout(Q)}}function an0(){let $={},Z=new Promise((X,Q)=>{$={resolve:X,reject:Q}});return Object.assign(Z,$)}function B14(){let $={},Z=new Promise((X,Q)=>{$={resolve:(Y)=>{console.trace("resolve",Y),X(Y)},reject:(Y)=>{console.trace("reject"),Q(Y)}}});return Object.assign(Z,$)}function O14($){for(let Z=$.length-1;Z>0;Z--){let X=Math.floor(Math.random()*(Z+1));[$[Z],$[X]]=[$[X],$[Z]]}return $}async function L14($){let Z=[];for await(let X of $)Z.push(X);return Z}class Ee1{timers;measures;constructor(){this.timers=new Map,this.measures=new Map}mark($){this.timers.set($,performance.now())}measure($,Z,X){let Q=this.timers.get(Z);if(Q===void 0)throw Error(`${Z} is not defined`);let Y=this.timers.get(X);if(Y===void 0)throw Error(`${X} is not defined`);this.measures.set($,Y-Q)}getEntries(){let $=[];return this.measures.forEach((Z,X)=>{$.push({name:X,duration:Z})}),$}}Pe1.Perf=Ee1;class je1{max;current;waiting;constructor($=1){this.max=$,this.current=0,this.waiting=[]}lock(){if(this.current++,this.current<=this.max)return Promise.resolve();let $=an0();return this.waiting.push($),$}unlock(){this.current--,this.waiting.pop()?.resolve()}}Pe1.SimpleMutex=je1;function ze1($){if($===0)return 0;return Math.floor($/2+Math.random()*$)}function D14($=[0,250,250,500,500,3000,5000]){if(!Array.isArray($))$=[0,250,250,500,500,3000,5000];let Z=$.length-1;return{backoff(X){return ze1(X>Z?$[Z]:$[X])}}}function w14($){return $*1e6}function E14($){return Math.floor($/1e6)}var j14="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",RU=new Uint8Array(62);for(let $=0;$<62;$++)RU[$]=j14.charCodeAt($);var z14=218340105584896;function P14(){let $=Math.floor(Math.random()*z14),Z=$%62,X=RU[Z];$=($-Z)/62,Z=$%62;let Q=RU[Z];$=($-Z)/62,Z=$%62;let Y=RU[Z];$=($-Z)/62,Z=$%62;let G=RU[Z];$=($-Z)/62,Z=$%62;let J=RU[Z];$=($-Z)/62,Z=$%62;let K=RU[Z];$=($-Z)/62,Z=$%62;let W=RU[Z];$=($-Z)/62;let H=RU[$];return String.fromCharCode(X,Q,Y,G,J,K,W,H)}});var ke1=v((Me1)=>{Object.defineProperty(Me1,"__esModule",{value:!0});Me1.nuid=Me1.NuidImpl=void 0;var y14="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",EO=62,d70=12,Ie1=10,Te1=33,g14=333,Re1=d70+Ie1,en0=new Uint8Array(EO);for(let $=0;$<EO;$++)en0[$]=y14.charCodeAt($);var m70=4294967296,qe1=BigInt(EO)**BigInt(Ie1),xp=Number(qe1/(1n<<32n)),sn0=Number(qe1%(1n<<32n));function h14($){for(let Z=0;Z<$.length;Z++)$[Z]=Math.floor(Math.random()*256)}function u14($){if(globalThis?.crypto?.getRandomValues)globalThis.crypto.getRandomValues($);else h14($)}class $t0{buf;cbuf;seqHi;seqLo;inc;inited;constructor(){this.buf=new Uint8Array(Re1),this.cbuf=new Uint8Array(d70),this.inited=!1}init(){this.inited=!0,this.setPre(),this.initSeqAndInc(),this.fillSeq()}initSeqAndInc(){let $=0;do this.seqHi=Math.floor(Math.random()*(xp+1)),this.seqLo=Math.floor(Math.random()*m70);while($++<8&&this.seqHi===xp&&this.seqLo>=sn0);if(this.seqHi===xp&&this.seqLo>=sn0)this.seqLo=0;this.inc=Math.random()*(g14-Te1)+Te1|0}setPre(){u14(this.cbuf);for(let $=0;$<d70;$++)this.buf[$]=en0[this.cbuf[$]%EO]}fillSeq(){let $=this.seqHi,Z=this.seqLo;for(let X=Re1-1;X>=d70;X--){let Q=Math.floor($/EO),G=($-Q*EO)*m70+Z,J=Math.floor(G/EO),K=G-J*EO;this.buf[X]=en0[K],$=Q,Z=J}}next(){if(!this.inited)this.init();if(this.seqLo+=this.inc,this.seqLo>=m70)this.seqLo-=m70,this.seqHi+=1;if(this.seqHi>xp||this.seqHi===xp&&this.seqLo>=sn0)this.setPre(),this.initSeqAndInc();this.fillSeq();let $=this.buf;return String.fromCharCode($[0],$[1],$[2],$[3],$[4],$[5],$[6],$[7],$[8],$[9],$[10],$[11],$[12],$[13],$[14],$[15],$[16],$[17],$[18],$[19],$[20],$[21])}reset(){this.init()}}Me1.NuidImpl=$t0;Me1.nuid=new $t0});var ve1=v((Ce1)=>{Object.defineProperty(Ce1,"__esModule",{value:!0});Ce1.nuid=Ce1.Nuid=void 0;var Se1=ke1();Ce1.Nuid=Se1.NuidImpl;Ce1.nuid=Se1.nuid});var p70=v((i70)=>{Object.defineProperty(i70,"__esModule",{value:!0});i70.nuid=i70.Nuid=void 0;var xe1=ve1();Object.defineProperty(i70,"Nuid",{enumerable:!0,get:function(){return xe1.Nuid}});Object.defineProperty(i70,"nuid",{enumerable:!0,get:function(){return xe1.nuid}})});var jO=v((fe1)=>{Object.defineProperty(fe1,"__esModule",{value:!0});fe1.DEFAULT_HOST=fe1.DEFAULT_PORT=fe1.Match=void 0;fe1.syncIterator=p14;fe1.createInbox=n14;var d14=p70(),i14=BG();fe1.Match={Exact:"exact",CanonicalMIME:"canonical",IgnoreCase:"insensitive"};function p14($){let Z=$[Symbol.asyncIterator]();return{async next(){let X=await Z.next();if(X.done)return Promise.resolve(null);return Promise.resolve(X.value)}}}function n14($=""){if($=$||"_INBOX",typeof $!=="string")throw TypeError("prefix must be a string");return $.split(".").forEach((Z)=>{if(Z==="*"||Z===">")throw i14.InvalidArgumentError.format("prefix",`cannot have wildcards ('${$}')`)}),`${$}.${d14.nuid.next()}`}fe1.DEFAULT_PORT=4222;fe1.DEFAULT_HOST="127.0.0.1"});var fp=v((he1)=>{Object.defineProperty(he1,"__esModule",{value:!0});he1.DataBuffer=void 0;var ye1=NG();class ge1{buffers;byteLength;constructor(){this.buffers=[],this.byteLength=0}static concat(...$){let Z=0;for(let Y=0;Y<$.length;Y++)Z+=$[Y].length;let X=new Uint8Array(Z),Q=0;for(let Y=0;Y<$.length;Y++)X.set($[Y],Q),Q+=$[Y].length;return X}static fromAscii($){if(!$)$="";return ye1.TE.encode($)}static toAscii($){return ye1.TD.decode($)}reset(){this.buffers.length=0,this.byteLength=0}pack(){if(this.buffers.length>1){let $=new Uint8Array(this.byteLength),Z=0;for(let X=0;X<this.buffers.length;X++)$.set(this.buffers[X],Z),Z+=this.buffers[X].length;this.buffers.length=0,this.buffers.push($)}}shift(){if(this.buffers.length){let $=this.buffers.shift();if($)return this.byteLength-=$.length,$}return new Uint8Array(0)}drain($){if(this.buffers.length){this.pack();let Z=this.buffers.pop();if(Z){let X=this.byteLength;if($===void 0||$>X)$=X;let Q=Z.subarray(0,$);if(X>$)this.buffers.push(Z.subarray($));return this.byteLength=X-$,Q}}return new Uint8Array(0)}fill($,...Z){if($)this.buffers.push($),this.byteLength+=$.length;for(let X=0;X<Z.length;X++)if(Z[X]&&Z[X].length)this.buffers.push(Z[X]),this.byteLength+=Z[X].length}peek(){if(this.buffers.length)return this.pack(),this.buffers[0];return new Uint8Array(0)}size(){return this.byteLength}length(){return this.buffers.length}}he1.DataBuffer=ge1});var Yj=v((le1)=>{Object.defineProperty(le1,"__esModule",{value:!0});le1.LF=le1.CR=le1.CRLF=le1.CR_LF_LEN=le1.CR_LF=void 0;le1.setTransportFactory=Z$4;le1.defaultPort=X$4;le1.getUrlParseFn=Q$4;le1.newTransport=Y$4;le1.getResolveFn=G$4;le1.protoLen=ce1;le1.extractProtocolMessage=J$4;var s14=NG(),e14=jO(),$$4=fp(),OG;function Z$4($){OG=$}function X$4(){return OG!==void 0&&OG.defaultPort!==void 0?OG.defaultPort:e14.DEFAULT_PORT}function Q$4(){return OG!==void 0&&OG.urlParseFn?OG.urlParseFn:void 0}function Y$4(){if(!OG||typeof OG.factory!=="function")throw Error("transport fn is not set");return OG.factory()}function G$4(){return OG!==void 0&&OG.dnsResolveFn?OG.dnsResolveFn:void 0}le1.CR_LF=`\r
1548
+ `);Q=G.pop()??"";for(let J of G){let K=Bun.stripANSI(J).replace(/^\[\d+\]\s*/,"").trim();if(!K)continue;LO({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:K})}}(async()=>{try{for(;;){let{done:G,value:J}=await Z.read();if(G)break;Q+=X.decode(J,{stream:!0}),Y()}}catch{}if(Q.trim()){let G=Bun.stripANSI(Q).replace(/^\[\d+\]\s*/,"").trim();if(G)LO({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:G})}})()}async function B04($){let{baseUrl:Z,noTui:X}=$,Q=process.env.HOST==="0.0.0.0"&&Boolean(process.env.PORT),Y=Q?process.env.PORT:$.vitePort,G=Z||`http://localhost:${Y}`,J=Q?await _p(Number(Y)+1):await _p(Number($.port)),{settings:K,services:W,managedServiceNames:H}=await v70({port:String(J),home:$.home,baseUrl:$.baseUrl,localMode:$.localMode,skipMigrations:$.skipMigrations,noTui:$.noTui,vitePort:$.vitePort});for(let D of W)eE({name:D.name,status:"ready",port:D.port});Sp();let F=N04(import.meta.dir,"..","..","..","..",".."),U=X===!0,N=Bun.spawn(["bun","run","dev:servers"],{cwd:F,env:{...process.env,PORT:String(K.port),VITE_PORT:String(Y),DATABASE_URL:K.databaseUrl,NATS_URL:K.natsUrls.join(","),NODE_ENV:K.nodeEnv,BASE_URL:G,DECOCMS_LOCAL_MODE:String(K.localMode),DECOCMS_HOME:K.dataDir,DATA_DIR:K.dataDir,DECO_CLI:"1",...K.betterAuthSecret?{BETTER_AUTH_SECRET:K.betterAuthSecret}:{},...K.s3Endpoint?{S3_ENDPOINT:K.s3Endpoint,S3_BUCKET:K.s3Bucket??"",S3_ACCESS_KEY_ID:K.s3AccessKeyId??"",S3_SECRET_ACCESS_KEY:K.s3SecretAccessKey??"",S3_FORCE_PATH_STYLE:String(K.s3ForcePathStyle)}:{},...K.natsCredsPath?{NATS_CREDS:K.natsCredsPath}:{}},stdio:["inherit",U?"inherit":"pipe",U?"inherit":"pipe"]});if(!U)_n0(N.stdout),_n0(N.stderr);Cp(G),eE({name:"Vite",status:"ready",port:Number(Y)}),eE({name:"API",status:"ready",port:Number(K.port)});let O=async(D)=>{if(N.kill(D),await N.exited,H.length>0){let{stopServices:w}=await Promise.resolve().then(() => (yZ0(),bZ0));await w(K.dataDir)}};return process.on("SIGINT",()=>O("SIGINT")),process.on("SIGTERM",()=>O("SIGTERM")),{port:Number(Y),process:N}}var xn0=L(()=>{Mn0();$j();Cn0()});var b70;var fn0=L(()=>{b70={name:"decocms",version:"4.325.5",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/api"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:"bun run migrate && bun run dev:server","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts",build:"bun run build:server","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","generate:tool-contracts":"bun run scripts/generate-tool-contracts.ts","db:migrate":"bun run ./dist/server/migrate.js","db:migrate:dbos":"bun run ./dist/server/migrate-dbos.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts","migrate:dbos":"bun run src/database/migrate-dbos.ts",test:"bun test src","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts",prepublishOnly:"bun run --cwd=../.. build:studio"},optionalDependencies:{"@duckdb/node-api":"^1.5.0-r.1"},dependencies:{"@ai-sdk/anthropic":"^3.0.85","@ai-sdk/google":"^3.0.83","@ai-sdk/openai":"^3.0.73","@anthropic-ai/sdk":"^0.105.0","@aws-sdk/client-s3":"^3.1013.0","@aws-sdk/client-sts":"^3.1013.0","@aws-sdk/lib-storage":"^3.1013.0","@aws-sdk/s3-request-presigner":"^3.1013.0","@clickhouse/client":"^1.8.1","@dbos-inc/dbos-sdk":"^4.21.6","@inkjs/ui":"^2.0.0","@nats-io/jetstream":"3.4.0","@nats-io/kv":"3.4.0","@nats-io/nats-core":"3.4.0","@nats-io/transport-node":"3.4.0","@openrouter/ai-sdk-provider":"^2.9.1","@opentelemetry/core":"^2.6.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12","posthog-node":"^5.0.0",react:"^19.2.6","react-dom":"^19.2.6"},devDependencies:{"@ai-sdk/provider":"^3.0.10","@better-auth/sso":"1.4.1","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/runtime":"workspace:*","@decocms/sandbox":"workspace:*","@decocms/shared":"workspace:*","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.29.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/resources":"^2.6.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","@types/bun":"^1.3.1","@types/google.maps":"^3.65.2","@types/pg":"^8.15.6","@types/react-syntax-highlighter":"^15.5.13","@vercel/nft":"^1.1.1",ai:"^6.0.208","better-auth":"1.4.22",croner:"^9.1.0",degit:"^2.8.4",hono:"^4.10.7",jose:"^6.0.11",nanoid:"^5.1.6",pg:"^8.16.3",typescript:"^7.0.2",typescript5:"npm:typescript@^5.9.3",zod:"4.3.6"},homepage:"https://github.com/decocms/studio",keywords:["mcp","model-context-protocol","ai","gateway","self-hosted","tools"],license:"MIT",publishConfig:{access:"public"}}});import{Box as L04,Text as ls1}from"ink";import{jsx as D04,jsxs as ms1}from"react/jsx-runtime";function ds1({version:$}){return ms1(L04,{flexDirection:"column",marginTop:1,children:[J70.map((Z,X)=>D04(ls1,{color:K70[X],children:Z},X)),ms1(ls1,{dimColor:!0,children:[" v",$]})]})}var is1=L(()=>{wp()});import{Box as Zj,Text as DO}from"ink";import{Spinner as w04}from"@inkjs/ui";import{jsx as UG,jsxs as gy}from"react/jsx-runtime";function ps1({status:$}){if($==="pending")return UG(w04,{label:""});return UG(DO,{color:"green",children:"\u2713"})}function E04($){return`${$.name}: ${$.port||"...."}`}function ns1({services:$,migrationsStatus:Z,home:X,serverUrl:Q}){return gy(Zj,{flexDirection:"column",paddingBottom:1,children:[UG(ds1,{version:b70.version}),UG(Zj,{marginBottom:1,children:UG(DO,{dimColor:!0,children:"\u2500".repeat(80)})}),UG(Zj,{children:gy(DO,{dimColor:!0,children:["Home: ",X]})}),gy(Zj,{gap:2,children:[$.map((Y)=>gy(Zj,{gap:1,children:[UG(DO,{children:E04(Y)}),UG(ps1,{status:Y.status})]},Y.name)),gy(Zj,{gap:1,children:[UG(DO,{children:"Migrations"}),UG(ps1,{status:Z})]})]}),UG(Zj,{children:Q?gy(DO,{children:["Open in browser: ",UG(DO,{color:"cyan",children:Q})]}):UG(DO,{dimColor:!0,children:"Starting..."})})]})}var ts1=L(()=>{fn0();is1()});import{Box as j04,Text as vp}from"ink";import{jsx as bn0,jsxs as yn0}from"react/jsx-runtime";function z04($){if($>=500)return"red";if($>=400)return"yellow";if($>=300)return"cyan";return"green"}function os1({logs:$}){return bn0(j04,{flexDirection:"column",children:$.map((Z,X)=>{if(Z.rawLine)return bn0(vp,{dimColor:!0,children:Z.rawLine},X);let Q=Z.duration<1000?`${Z.duration}ms`:`${(Z.duration/1000).toFixed(1)}s`;return yn0(vp,{children:[yn0(vp,{dimColor:!0,children:[Z.method.padEnd(6)," ",Z.path.padEnd(30)," "]}),bn0(vp,{color:z04(Z.status),children:Z.status}),yn0(vp,{dimColor:!0,children:[" ",Q.padStart(8)]})]},X)})})}var rs1=()=>{};var gn0={};s(gn0,{App:()=>T04});import{Box as P04}from"ink";import{useSyncExternalStore as A04}from"react";import{jsx as as1,jsxs as R04}from"react/jsx-runtime";function T04({home:$}){let Z=A04(Sn0,kn0);return R04(P04,{flexDirection:"column",children:[as1(ns1,{services:Z.services,migrationsStatus:Z.migrationsStatus,home:$,serverUrl:Z.serverUrl}),as1(os1,{logs:Z.logs})]})}var hn0=L(()=>{ts1();rs1();$j()});var o3="thread-gate",AU="decopilot-hosted-harness",TU="decopilot-hosted-harness-sandboxed",qJ="automations",wO="background-tools",Xj="task-board-github-reads";var ss1="11";function es1($){return{name:"decocms",systemDatabaseUrl:$.systemDatabaseUrl,systemDatabaseSchemaName:"dbos",systemDatabasePoolSize:$.poolSize,runAdminServer:!1,executorID:$.executorID,applicationVersion:ss1,...$.listenQueues!==void 0?{listenQueues:$.listenQueues}:{}}}var $e1=()=>{};import I04 from"pg";async function Xe1($,Z){let{databaseUrl:X,lockTimeoutMs:Q=q04}=$,Y=$.log??((W)=>console.log(W)),G=new I04.Client({connectionString:X});await G.connect();let J=Date.now(),K=!1;try{while(!K){if(K=(await G.query("SELECT pg_try_advisory_lock($1) AS locked",[Ze1.toString()])).rows[0]?.locked===!0,K)break;if(Date.now()-J>=Q)throw Error(`Timed out after ${Q}ms waiting for the DBOS migration lock. Another process is still migrating the dbos schema; this pod will restart and retry.`);await H$(M04)}let W=Date.now()-J;if(W>1000)Y(`[dbos] waited ${W}ms for the migration lock; another process migrated first`);return await Z()}finally{if(K)try{await G.query("SELECT pg_advisory_unlock($1)",[Ze1.toString()])}catch{}await G.end().catch(()=>{})}}var Ze1=8314027461559302n,q04=600000,M04=500;var Qe1=L(()=>{t8()});function V04(){let $=(process.env.BUN_OPTIONS??"").split(/\s+/).filter(Boolean);return[...process.argv.slice(1),...$]}function un0($,Z){for(let X=0;X<$.length;X++){let Q=$[X];if(Q===void 0)continue;if(Q===Z)return $[X+1];if(Q.startsWith(`${Z}=`))return Q.slice(Z.length+1)}return}function Ye1(){let $=V04();if($.includes("--cpu-prof")){console.log(JSON.stringify({msg:"cpu-profiling-active",dir:un0($,"--cpu-prof-dir")??process.cwd(),name:un0($,"--cpu-prof-name"),markdown:$.includes("--cpu-prof-md"),intervalUs:Number(un0($,"--cpu-prof-interval")??1000),note:"profile is written on process exit"}));return}if(process.env.CPU_PROFILE)console.warn(JSON.stringify({msg:"cpu-profiling-requested-but-inactive",hint:'CPU profiling is a Bun launch flag. Set BUN_OPTIONS="--cpu-prof --cpu-prof-md --cpu-prof-dir=/tmp" before starting the process.'}))}function Ge1(){if(process.env.HEAP_WATCH!=="1")return()=>{};let $=Number(process.env.HEAP_WATCH_INTERVAL_MS??60000),Z=async()=>{let X=oE();if(!X)return;let Q={};try{let{heapStats:Y}=await import("bun:jsc"),G=Y(),J=Object.entries(G.objectTypeCounts).sort((K,W)=>W[1]-K[1]).slice(0,20);Q={objectCount:G.objectCount,heapSize:G.heapSize,top:Object.fromEntries(J)}}catch{}console.log(JSON.stringify({msg:"heap-watch",ts:new Date().toISOString(),uptimeS:Math.round(process.uptime()),rss:X.rss,heapUsed:X.heapUsed,heapTotal:X.heapTotal,external:X.external,arrayBuffers:X.arrayBuffers,...Q}))};return Z().catch(()=>{}),y70=setInterval(()=>void Z().catch(()=>{}),$),y70.unref?.(),process.on("SIGUSR2",()=>{try{let X=Bun.generateHeapSnapshot("v8"),Q=typeof X==="string"?X:JSON.stringify(X),Y=`/tmp/heap-${process.pid}-${Date.now()}.heapsnapshot`;Bun.write(Y,Q),console.log(JSON.stringify({msg:"heap-snapshot-written",path:Y}))}catch(X){console.error("[heap-watch] snapshot failed:",X)}}),()=>{if(y70)clearInterval(y70)}}var y70;var Je1=()=>{};import*as k04 from"bun:jsc";function Ke1(){if(process.env.STALL_WATCHDOG!=="1")return()=>{};let $=Number(process.env.STALL_WATCHDOG_MS??100),Z=Number(process.env.STALL_WATCHDOG_TICK_MS??50);try{S04()}catch(G){return console.error("[stall-watchdog] failed to start sampling profiler:",G),()=>{}}let X,Q=performance.now()+Z,Y=()=>{let G=performance.now(),J=G-Q;Q=G+Z;let K=[];try{K=C04()?.traces??[]}catch{}if(J>$&&K.length>0){let W=new Map;for(let F of K){let U=F.frames.find((O)=>O.sourceURL&&!/Unknown Executable/.test(O.category??""))??F.frames[0];if(!U)continue;let N=(U.sourceURL??"?").replace(/^.*\/node_modules\//,"node_modules/"),B=`${U.name??"?"} @ ${N}:${U.line??"?"}`;W.set(B,(W.get(B)??0)+1)}let H=[...W.entries()].sort((F,U)=>U[1]-F[1]).slice(0,8).map(([F,U])=>({frame:F,count:U}));console.warn(JSON.stringify({msg:"stall-stack",ts:new Date().toISOString(),lagMs:Math.round(J),samplesInWindow:K.length,top:H}))}X=setTimeout(Y,Z),X.unref?.()};return X=setTimeout(Y,Z),X.unref?.(),()=>{if(X)clearTimeout(X)}}var S04,C04;var We1=L(()=>{({startSamplingProfiler:S04,samplingProfilerStackTraces:C04}=k04)});function He1(){Ye1();let $=[Ge1(),wt1(),Ke1()];return()=>{for(let Z of $)Z()}}var Fe1=L(()=>{Ym0();Je1();We1()});var Qj=v((Ue1)=>{Object.defineProperty(Ue1,"__esModule",{value:!0});Ue1.RepublishHeaders=Ue1.DirectMsgHeaders=Ue1.JsHeaders=Ue1.AdvisoryKind=void 0;Ue1.isOrderedPushConsumerOptions=_04;Ue1.isPullConsumer=v04;Ue1.isPushConsumer=x04;Ue1.isBoundPushConsumerOptions=f04;function _04($){if($&&typeof $==="object")return"name_prefix"in $||"deliver_subject_prefix"in $||"filter_subjects"in $||"filter_subject"in $||"deliver_policy"in $||"opt_start_seq"in $||"opt_start_time"in $||"replay_policy"in $||"inactive_threshold"in $||"headers_only"in $||"deliver_prefix"in $;return!1}function v04($){return $.isPullConsumer()}function x04($){return $.isPushConsumer()}function f04($){if($&&typeof $==="object")return"deliver_subject"in $||"deliver_group"in $||"idle_heartbeat"in $;return!1}Ue1.AdvisoryKind={API:"api_audit",StreamAction:"stream_action",ConsumerAction:"consumer_action",SnapshotCreate:"snapshot_create",SnapshotComplete:"snapshot_complete",RestoreCreate:"restore_create",RestoreComplete:"restore_complete",MaxDeliver:"max_deliver",Terminated:"terminated",Ack:"consumer_ack",StreamLeaderElected:"stream_leader_elected",StreamQuorumLost:"stream_quorum_lost",ConsumerLeaderElected:"consumer_leader_elected",ConsumerQuorumLost:"consumer_quorum_lost"};Ue1.JsHeaders={StreamSourceHdr:"Nats-Stream-Source",LastConsumerSeqHdr:"Nats-Last-Consumer",LastStreamSeqHdr:"Nats-Last-Stream",ConsumerStalledHdr:"Nats-Consumer-Stalled",MessageSizeHdr:"Nats-Msg-Size",RollupHdr:"Nats-Rollup",RollupValueSubject:"sub",RollupValueAll:"all",PendingMessagesHdr:"Nats-Pending-Messages",PendingBytesHdr:"Nats-Pending-Bytes",RequiredApiLevel:"Nats-Required-Api-Level"};Ue1.DirectMsgHeaders={Stream:"Nats-Stream",Sequence:"Nats-Sequence",TimeStamp:"Nats-Time-Stamp",Subject:"Nats-Subject",LastSequence:"Nats-Last-Sequence",NumPending:"Nats-Num-Pending"};Ue1.RepublishHeaders={Stream:"Nats-Stream",Subject:"Nats-Subject",Sequence:"Nats-Sequence",LastSequence:"Nats-Last-Sequence",Size:"Nats-Msg-Size"}});var NG=v((Be1)=>{Object.defineProperty(Be1,"__esModule",{value:!0});Be1.TD=Be1.TE=Be1.Empty=void 0;Be1.encode=d04;Be1.decode=i04;Be1.Empty=new Uint8Array(0);Be1.TE=new TextEncoder;Be1.TD=new TextDecoder;function m04(...$){let Z=0;for(let Y=0;Y<$.length;Y++)Z+=$[Y].length;let X=new Uint8Array(Z),Q=0;for(let Y=0;Y<$.length;Y++)X.set($[Y],Q),Q+=$[Y].length;return X}function d04(...$){let Z=[];for(let X=0;X<$.length;X++)Z.push(Be1.TE.encode($[X]));if(Z.length===0)return Be1.Empty;if(Z.length===1)return Z[0];return m04(...Z)}function i04($){if(!$||$.length===0)return"";return Be1.TD.decode($)}});var BG=v((De1)=>{Object.defineProperty(De1,"__esModule",{value:!0});De1.errors=De1.PermissionViolationError=De1.NoRespondersError=De1.TimeoutError=De1.RequestError=De1.ProtocolError=De1.ConnectionError=De1.DrainingConnectionError=De1.ClosedConnectionError=De1.AuthorizationError=De1.UserAuthenticationExpiredError=De1.InvalidOperationError=De1.InvalidArgumentError=De1.InvalidSubjectError=void 0;class ln0 extends Error{constructor($,Z){super(`illegal subject: '${$}'`,Z);this.name="InvalidSubjectError"}}De1.InvalidSubjectError=ln0;class g70 extends Error{constructor($,Z){super($,Z);this.name="InvalidArgumentError"}static format($,Z,X){if(Array.isArray(Z)&&Z.length>1)Z=Z[0];if(Array.isArray($))$=$.map((Q)=>`'${Q}'`),$=$.join(",");else $=`'${$}'`;return new g70(`${$} ${Z}`,X)}}De1.InvalidArgumentError=g70;class mn0 extends Error{constructor($,Z){super($,Z);this.name="InvalidOperationError"}}De1.InvalidOperationError=mn0;class h70 extends Error{constructor($,Z){super($,Z);this.name="UserAuthenticationExpiredError"}static parse($){if($.toLowerCase().indexOf("user authentication expired")!==-1)return new h70($);return null}}De1.UserAuthenticationExpiredError=h70;class u70 extends Error{constructor($,Z){super($,Z);this.name="AuthorizationError"}static parse($){let Z=["authorization violation","account authentication expired","authentication timeout"],X=$.toLowerCase();for(let Q=0;Q<Z.length;Q++)if(X.indexOf(Z[Q])!==-1)return new u70($);return null}}De1.AuthorizationError=u70;class dn0 extends Error{constructor(){super("closed connection");this.name="ClosedConnectionError"}}De1.ClosedConnectionError=dn0;class in0 extends Error{constructor(){super("connection draining");this.name="DrainingConnectionError"}}De1.DrainingConnectionError=in0;class pn0 extends Error{constructor($,Z){super($,Z);this.name="ConnectionError"}}De1.ConnectionError=pn0;class nn0 extends Error{constructor($,Z){super($,Z);this.name="ProtocolError"}}De1.ProtocolError=nn0;class tn0 extends Error{constructor($="",Z){super($,Z);this.name="RequestError"}isNoResponders(){return this.cause instanceof c70}}De1.RequestError=tn0;class on0 extends Error{constructor($){super("timeout",$);this.name="TimeoutError"}}De1.TimeoutError=on0;class c70 extends Error{subject;constructor($,Z){super(`no responders: '${$}'`,Z);this.subject=$,this.name="NoResponders"}}De1.NoRespondersError=c70;class l70 extends Error{operation;subject;queue;constructor($,Z,X,Q,Y){super($,Y);this.name="PermissionViolationError",this.operation=Z,this.subject=X,this.queue=Q}static parse($){if(($?$.toLowerCase():"").indexOf("permissions violation")===-1)return null;let X="publish",Q="",Y=void 0,G=$.match(/(Publish|Subscription) to "(\S+)"/);if(G){if(X=G[1].toLowerCase(),Q=G[2],X==="subscription"){let J=$.match(/using queue "(\S+)"/);if(J)Y=J[1]}}return new l70($,X,Q,Y)}}De1.PermissionViolationError=l70;De1.errors={AuthorizationError:u70,ClosedConnectionError:dn0,ConnectionError:pn0,DrainingConnectionError:in0,InvalidArgumentError:g70,InvalidOperationError:mn0,InvalidSubjectError:ln0,NoRespondersError:c70,PermissionViolationError:l70,ProtocolError:nn0,RequestError:tn0,TimeoutError:on0,UserAuthenticationExpiredError:h70}});var r3=v((Pe1)=>{Object.defineProperty(Pe1,"__esModule",{value:!0});Pe1.SimpleMutex=Pe1.Perf=void 0;Pe1.extend=W14;Pe1.render=H14;Pe1.timeout=F14;Pe1.delay=U14;Pe1.deadline=N14;Pe1.deferred=an0;Pe1.debugDeferred=B14;Pe1.shuffle=O14;Pe1.collect=L14;Pe1.jitter=ze1;Pe1.backoff=D14;Pe1.nanos=w14;Pe1.millis=E14;Pe1.randomToken=P14;var K14=NG(),rn0=BG();function W14($,...Z){for(let X=0;X<Z.length;X++){let Q=Z[X];Object.keys(Q).forEach(function(Y){$[Y]=Q[Y]})}return $}function H14($){return K14.TD.decode($).replace(/\n/g,"\u240A").replace(/\r/g,"\u240D")}function F14($,Z=!0){let X=Z?new rn0.TimeoutError:null,Q,Y,G=new Promise((J,K)=>{Q={cancel:()=>{if(Y)clearTimeout(Y)}},Y=setTimeout(()=>{if(X===null)K(new rn0.TimeoutError);else K(X)},$)});return Object.assign(G,Q)}function U14($=0){let Z,X=new Promise((Q)=>{let Y=setTimeout(()=>{Q()},$);Z={cancel:()=>{if(Y)clearTimeout(Y),Q()}}});return Object.assign(X,Z)}async function N14($,Z=1000){let X=an0(),Q=setTimeout(()=>{X.reject(new rn0.TimeoutError)},Z);try{return await Promise.race([$,X])}finally{clearTimeout(Q)}}function an0(){let $={},Z=new Promise((X,Q)=>{$={resolve:X,reject:Q}});return Object.assign(Z,$)}function B14(){let $={},Z=new Promise((X,Q)=>{$={resolve:(Y)=>{console.trace("resolve",Y),X(Y)},reject:(Y)=>{console.trace("reject"),Q(Y)}}});return Object.assign(Z,$)}function O14($){for(let Z=$.length-1;Z>0;Z--){let X=Math.floor(Math.random()*(Z+1));[$[Z],$[X]]=[$[X],$[Z]]}return $}async function L14($){let Z=[];for await(let X of $)Z.push(X);return Z}class Ee1{timers;measures;constructor(){this.timers=new Map,this.measures=new Map}mark($){this.timers.set($,performance.now())}measure($,Z,X){let Q=this.timers.get(Z);if(Q===void 0)throw Error(`${Z} is not defined`);let Y=this.timers.get(X);if(Y===void 0)throw Error(`${X} is not defined`);this.measures.set($,Y-Q)}getEntries(){let $=[];return this.measures.forEach((Z,X)=>{$.push({name:X,duration:Z})}),$}}Pe1.Perf=Ee1;class je1{max;current;waiting;constructor($=1){this.max=$,this.current=0,this.waiting=[]}lock(){if(this.current++,this.current<=this.max)return Promise.resolve();let $=an0();return this.waiting.push($),$}unlock(){this.current--,this.waiting.pop()?.resolve()}}Pe1.SimpleMutex=je1;function ze1($){if($===0)return 0;return Math.floor($/2+Math.random()*$)}function D14($=[0,250,250,500,500,3000,5000]){if(!Array.isArray($))$=[0,250,250,500,500,3000,5000];let Z=$.length-1;return{backoff(X){return ze1(X>Z?$[Z]:$[X])}}}function w14($){return $*1e6}function E14($){return Math.floor($/1e6)}var j14="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",RU=new Uint8Array(62);for(let $=0;$<62;$++)RU[$]=j14.charCodeAt($);var z14=218340105584896;function P14(){let $=Math.floor(Math.random()*z14),Z=$%62,X=RU[Z];$=($-Z)/62,Z=$%62;let Q=RU[Z];$=($-Z)/62,Z=$%62;let Y=RU[Z];$=($-Z)/62,Z=$%62;let G=RU[Z];$=($-Z)/62,Z=$%62;let J=RU[Z];$=($-Z)/62,Z=$%62;let K=RU[Z];$=($-Z)/62,Z=$%62;let W=RU[Z];$=($-Z)/62;let H=RU[$];return String.fromCharCode(X,Q,Y,G,J,K,W,H)}});var ke1=v((Me1)=>{Object.defineProperty(Me1,"__esModule",{value:!0});Me1.nuid=Me1.NuidImpl=void 0;var y14="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",EO=62,d70=12,Ie1=10,Te1=33,g14=333,Re1=d70+Ie1,en0=new Uint8Array(EO);for(let $=0;$<EO;$++)en0[$]=y14.charCodeAt($);var m70=4294967296,qe1=BigInt(EO)**BigInt(Ie1),xp=Number(qe1/(1n<<32n)),sn0=Number(qe1%(1n<<32n));function h14($){for(let Z=0;Z<$.length;Z++)$[Z]=Math.floor(Math.random()*256)}function u14($){if(globalThis?.crypto?.getRandomValues)globalThis.crypto.getRandomValues($);else h14($)}class $t0{buf;cbuf;seqHi;seqLo;inc;inited;constructor(){this.buf=new Uint8Array(Re1),this.cbuf=new Uint8Array(d70),this.inited=!1}init(){this.inited=!0,this.setPre(),this.initSeqAndInc(),this.fillSeq()}initSeqAndInc(){let $=0;do this.seqHi=Math.floor(Math.random()*(xp+1)),this.seqLo=Math.floor(Math.random()*m70);while($++<8&&this.seqHi===xp&&this.seqLo>=sn0);if(this.seqHi===xp&&this.seqLo>=sn0)this.seqLo=0;this.inc=Math.random()*(g14-Te1)+Te1|0}setPre(){u14(this.cbuf);for(let $=0;$<d70;$++)this.buf[$]=en0[this.cbuf[$]%EO]}fillSeq(){let $=this.seqHi,Z=this.seqLo;for(let X=Re1-1;X>=d70;X--){let Q=Math.floor($/EO),G=($-Q*EO)*m70+Z,J=Math.floor(G/EO),K=G-J*EO;this.buf[X]=en0[K],$=Q,Z=J}}next(){if(!this.inited)this.init();if(this.seqLo+=this.inc,this.seqLo>=m70)this.seqLo-=m70,this.seqHi+=1;if(this.seqHi>xp||this.seqHi===xp&&this.seqLo>=sn0)this.setPre(),this.initSeqAndInc();this.fillSeq();let $=this.buf;return String.fromCharCode($[0],$[1],$[2],$[3],$[4],$[5],$[6],$[7],$[8],$[9],$[10],$[11],$[12],$[13],$[14],$[15],$[16],$[17],$[18],$[19],$[20],$[21])}reset(){this.init()}}Me1.NuidImpl=$t0;Me1.nuid=new $t0});var ve1=v((Ce1)=>{Object.defineProperty(Ce1,"__esModule",{value:!0});Ce1.nuid=Ce1.Nuid=void 0;var Se1=ke1();Ce1.Nuid=Se1.NuidImpl;Ce1.nuid=Se1.nuid});var p70=v((i70)=>{Object.defineProperty(i70,"__esModule",{value:!0});i70.nuid=i70.Nuid=void 0;var xe1=ve1();Object.defineProperty(i70,"Nuid",{enumerable:!0,get:function(){return xe1.Nuid}});Object.defineProperty(i70,"nuid",{enumerable:!0,get:function(){return xe1.nuid}})});var jO=v((fe1)=>{Object.defineProperty(fe1,"__esModule",{value:!0});fe1.DEFAULT_HOST=fe1.DEFAULT_PORT=fe1.Match=void 0;fe1.syncIterator=p14;fe1.createInbox=n14;var d14=p70(),i14=BG();fe1.Match={Exact:"exact",CanonicalMIME:"canonical",IgnoreCase:"insensitive"};function p14($){let Z=$[Symbol.asyncIterator]();return{async next(){let X=await Z.next();if(X.done)return Promise.resolve(null);return Promise.resolve(X.value)}}}function n14($=""){if($=$||"_INBOX",typeof $!=="string")throw TypeError("prefix must be a string");return $.split(".").forEach((Z)=>{if(Z==="*"||Z===">")throw i14.InvalidArgumentError.format("prefix",`cannot have wildcards ('${$}')`)}),`${$}.${d14.nuid.next()}`}fe1.DEFAULT_PORT=4222;fe1.DEFAULT_HOST="127.0.0.1"});var fp=v((he1)=>{Object.defineProperty(he1,"__esModule",{value:!0});he1.DataBuffer=void 0;var ye1=NG();class ge1{buffers;byteLength;constructor(){this.buffers=[],this.byteLength=0}static concat(...$){let Z=0;for(let Y=0;Y<$.length;Y++)Z+=$[Y].length;let X=new Uint8Array(Z),Q=0;for(let Y=0;Y<$.length;Y++)X.set($[Y],Q),Q+=$[Y].length;return X}static fromAscii($){if(!$)$="";return ye1.TE.encode($)}static toAscii($){return ye1.TD.decode($)}reset(){this.buffers.length=0,this.byteLength=0}pack(){if(this.buffers.length>1){let $=new Uint8Array(this.byteLength),Z=0;for(let X=0;X<this.buffers.length;X++)$.set(this.buffers[X],Z),Z+=this.buffers[X].length;this.buffers.length=0,this.buffers.push($)}}shift(){if(this.buffers.length){let $=this.buffers.shift();if($)return this.byteLength-=$.length,$}return new Uint8Array(0)}drain($){if(this.buffers.length){this.pack();let Z=this.buffers.pop();if(Z){let X=this.byteLength;if($===void 0||$>X)$=X;let Q=Z.subarray(0,$);if(X>$)this.buffers.push(Z.subarray($));return this.byteLength=X-$,Q}}return new Uint8Array(0)}fill($,...Z){if($)this.buffers.push($),this.byteLength+=$.length;for(let X=0;X<Z.length;X++)if(Z[X]&&Z[X].length)this.buffers.push(Z[X]),this.byteLength+=Z[X].length}peek(){if(this.buffers.length)return this.pack(),this.buffers[0];return new Uint8Array(0)}size(){return this.byteLength}length(){return this.buffers.length}}he1.DataBuffer=ge1});var Yj=v((le1)=>{Object.defineProperty(le1,"__esModule",{value:!0});le1.LF=le1.CR=le1.CRLF=le1.CR_LF_LEN=le1.CR_LF=void 0;le1.setTransportFactory=Z$4;le1.defaultPort=X$4;le1.getUrlParseFn=Q$4;le1.newTransport=Y$4;le1.getResolveFn=G$4;le1.protoLen=ce1;le1.extractProtocolMessage=J$4;var s14=NG(),e14=jO(),$$4=fp(),OG;function Z$4($){OG=$}function X$4(){return OG!==void 0&&OG.defaultPort!==void 0?OG.defaultPort:e14.DEFAULT_PORT}function Q$4(){return OG!==void 0&&OG.urlParseFn?OG.urlParseFn:void 0}function Y$4(){if(!OG||typeof OG.factory!=="function")throw Error("transport fn is not set");return OG.factory()}function G$4(){return OG!==void 0&&OG.dnsResolveFn?OG.dnsResolveFn:void 0}le1.CR_LF=`\r
1549
1549
  `;le1.CR_LF_LEN=le1.CR_LF.length;le1.CRLF=$$4.DataBuffer.fromAscii(le1.CR_LF);le1.CR=new Uint8Array(le1.CRLF)[0];le1.LF=new Uint8Array(le1.CRLF)[1];function ce1($){for(let Z=0;Z<$.length;Z++){let X=Z+1;if($.byteLength>X&&$[Z]===le1.CR&&$[X]===le1.LF)return X+1}return 0}function J$4($){let Z=ce1($);if(Z>0){let Q=new Uint8Array($).slice(0,Z);return s14.TD.decode(Q)}return""}});var Gt0=v((re1)=>{Object.defineProperty(re1,"__esModule",{value:!0});re1.ipV4=ne1;re1.isIP=w$4;re1.parseIP=te1;var bp=4,Gj=16,n70=48,pe1=57,de1=65,L$4=70,ie1=97,D$4=102,Yt0=16777215;function ne1($,Z,X,Q){let Y=new Uint8Array(Gj);return[0,0,0,0,0,0,0,0,0,0,255,255].forEach((J,K)=>{Y[K]=J}),Y[12]=$,Y[13]=Z,Y[14]=X,Y[15]=Q,Y}function w$4($){return te1($)!==void 0}function te1($){for(let Z=0;Z<$.length;Z++)switch($[Z]){case".":return oe1($);case":":return E$4($)}return}function oe1($){let Z=new Uint8Array(bp);for(let X=0;X<bp;X++){if($.length===0)return;if(X>0){if($[0]!==".")return;$=$.substring(1)}let{n:Q,c:Y,ok:G}=j$4($);if(!G||Q>255)return;$=$.substring(Y),Z[X]=Q}return ne1(Z[0],Z[1],Z[2],Z[3])}function E$4($){let Z=new Uint8Array(Gj),X=-1;if($.length>=2&&$[0]===":"&&$[1]===":"){if(X=0,$=$.substring(2),$.length===0)return Z}let Q=0;while(Q<Gj){let{n:Y,c:G,ok:J}=z$4($);if(!J||Y>65535)return;if(G<$.length&&$[G]==="."){if(X<0&&Q!=Gj-bp)return;if(Q+bp>Gj)return;let K=oe1($);if(K===void 0)return;Z[Q]=K[12],Z[Q+1]=K[13],Z[Q+2]=K[14],Z[Q+3]=K[15],$="",Q+=bp;break}if(Z[Q]=Y>>8,Z[Q+1]=Y,Q+=2,$=$.substring(G),$.length===0)break;if($[0]!==":"||$.length==1)return;if($=$.substring(1),$[0]===":"){if(X>=0)return;if(X=Q,$=$.substring(1),$.length===0)break}}if($.length!==0)return;if(Q<Gj){if(X<0)return;let Y=Gj-Q;for(let G=Q-1;G>=X;G--)Z[G+Y]=Z[G];for(let G=X+Y-1;G>=X;G--)Z[G]=0}else if(X>=0)return;return Z}function j$4($){let Z=0,X=0;for(Z=0;Z<$.length&&n70<=$.charCodeAt(Z)&&$.charCodeAt(Z)<=pe1;Z++)if(X=X*10+($.charCodeAt(Z)-n70),X>=Yt0)return{n:Yt0,c:Z,ok:!1};if(Z===0)return{n:0,c:0,ok:!1};return{n:X,c:Z,ok:!0}}function z$4($){let Z=0,X=0;for(X=0;X<$.length;X++){if(n70<=$.charCodeAt(X)&&$.charCodeAt(X)<=pe1)Z*=16,Z+=$.charCodeAt(X)-n70;else if(ie1<=$.charCodeAt(X)&&$.charCodeAt(X)<=D$4)Z*=16,Z+=$.charCodeAt(X)-ie1+10;else if(de1<=$.charCodeAt(X)&&$.charCodeAt(X)<=L$4)Z*=16,Z+=$.charCodeAt(X)-de1+10;else break;if(Z>=Yt0)return{n:0,c:X,ok:!1}}if(X===0)return{n:0,c:X,ok:!1};return{n:Z,c:X,ok:!0}}});var Ut0=v((se1)=>{Object.defineProperty(se1,"__esModule",{value:!0});se1.Servers=se1.ServerImpl=void 0;se1.isIPV4OrHostname=ae1;se1.hostPort=Ft0;var Jt0=Yj(),Kt0=r3(),Wt0=Gt0(),R$4=jO(),I$4=BG();function ae1($){if($.indexOf("[")!==-1||$.indexOf("::")!==-1)return!1;if($.indexOf(".")!==-1)return!0;if($.split(":").length<=2)return!0;return!1}function Ht0($){return!ae1($)}function q$4($){let X=$.toUpperCase().indexOf("::FFFF:");if(X!==-1&&$.indexOf(".")!==-1){let Q=$.substring(X+7);return Q=Q.replace("[",""),Q.replace("]","")}return $}function Ft0($){if($=$.trim(),$.match(/^(.*:\/\/)(.*)/m))$=$.replace(/^(.*:\/\/)(.*)/gm,"$2");if($=q$4($),Ht0($)&&$.indexOf("[")===-1)$=`[${$}]`;let Z=Ht0($)?$.match(/(]:)(\d+)/):$.match(/(:)(\d+)/),X=Z&&Z.length===3&&Z[1]&&Z[2]?parseInt(Z[2]):R$4.DEFAULT_PORT,Y=new URL(`${X===80?"https":"http"}://${$}`);Y.port=`${X}`;let G=Y.hostname;if(G.charAt(0)==="[")G=G.substring(1,G.length-1);return{listen:Y.host,hostname:G,port:X}}class hy{src;listen;hostname;port;didConnect;reconnects;lastConnect;gossiped;tlsName;resolves;constructor($,Z=!1){this.src=$,this.tlsName="";let X=Ft0($);this.listen=X.listen,this.hostname=X.hostname,this.port=X.port,this.didConnect=!1,this.reconnects=0,this.lastConnect=0,this.gossiped=Z}toString(){return this.listen}async resolve($){if(!$.fn||$.resolve===!1)return[this];let Z=[];if((0,Wt0.isIP)(this.hostname))return[this];else{let X=await $.fn(this.hostname);if($.debug)console.log(`resolve ${this.hostname} = ${X.join(",")}`);for(let Q of X){let Y=this.port===80?"https":"http",G=new URL(`${Y}://${Ht0(Q)?"["+Q+"]":Q}`);G.port=`${this.port}`;let J=new hy(G.host,!1);J.tlsName=this.hostname,Z.push(J)}}if($.randomize)(0,Kt0.shuffle)(Z);return this.resolves=Z,Z}}se1.ServerImpl=hy;class t70{firstSelect;servers;currentServer;tlsName;randomize;constructor($={}){this.firstSelect=!0,this.servers=[],this.tlsName="",this.randomize=$.randomize||!1}setServers($){if(!Array.isArray($)||$.length===0)throw I$4.InvalidArgumentError.format("servers","cannot be empty");let Z=(0,Jt0.getUrlParseFn)(),X=new Map;for(let Y of this.servers)X.set(Y.listen,Y);let Q=[];for(let Y of $){Y=Z?Z(Y):Y;let{listen:G}=Ft0(Y),J=X.get(G);if(J)J.gossiped=!1,Q.push(J);else Q.push(new hy(Y))}if(this.randomize)(0,Kt0.shuffle)(Q);if(this.servers=Q,this.currentServer===void 0||!Q.includes(this.currentServer))this.currentServer=Q[0],this.firstSelect=!0}clear(){this.servers.length=0}updateTLSName(){let $=this.getCurrentServer();if(!(0,Wt0.isIP)($.hostname))this.tlsName=$.hostname,this.servers.forEach((Z)=>{if(Z.gossiped)Z.tlsName=this.tlsName})}getCurrentServer(){return this.currentServer}addServer($,Z=!1){let X=(0,Jt0.getUrlParseFn)();$=X?X($):$;let Q=new hy($,Z);if((0,Wt0.isIP)(Q.hostname))Q.tlsName=this.tlsName;this.servers.push(Q)}selectServer(){if(this.firstSelect)return this.firstSelect=!1,this.currentServer;let $=this.servers.shift();if($)this.servers.push($),this.currentServer=$;return $}removeCurrentServer(){this.removeServer(this.currentServer)}removeServer($){if($){let Z=this.servers.indexOf($);this.servers.splice(Z,1)}}snapshot(){return t70.freezeAll(this.servers)}snapshotForHandler(){let $=this.currentServer;if(!$)return this.snapshot();let Z=this.servers.indexOf($);if(Z<=0)return this.snapshot();return t70.freezeAll([$,...this.servers.slice(0,Z),...this.servers.slice(Z+1)])}static freezeAll($){return $.map((Z)=>Object.freeze({hostname:Z.hostname,port:Z.port,listen:Z.listen,src:Z.src,tlsName:Z.tlsName,reconnects:Z.reconnects,lastConnect:Z.lastConnect,gossiped:Z.gossiped,didConnect:Z.didConnect}))}find($){return this.servers.find((Z)=>Z.listen===$.listen)}setCurrent($){this.currentServer=$}length(){return this.servers.length}next(){return this.servers.length?this.servers[0]:void 0}getServers(){return this.servers}update($,Z){let X=[],Q=[],Y=(0,Jt0.getUrlParseFn)(),G=new Map;if($.connect_urls&&$.connect_urls.length>0)$.connect_urls.forEach((K)=>{K=Y?Y(K,Z):K;let W=new hy(K,!0);G.set(K,W)});let J=[];if(this.servers.forEach((K,W)=>{let H=K.listen;if(K.gossiped&&this.currentServer.listen!==H&&G.get(H)===void 0)J.push(W);G.delete(H)}),J.reverse(),J.forEach((K)=>{let W=this.servers.splice(K,1);Q=Q.concat(W[0].listen)}),G.forEach((K,W)=>{this.servers.push(K),X.push(W)}),this.randomize&&X.length>0){let K=this.currentServer,W=this.servers.filter((H)=>H!==K);(0,Kt0.shuffle)(W),this.servers=K?[K,...W]:W}return{added:X,deleted:Q}}}se1.Servers=t70});var o70=v((X0$)=>{Object.defineProperty(X0$,"__esModule",{value:!0});X0$.QueuedIteratorImpl=void 0;var Nt0=r3(),$0$=BG();class Z0${inflight;processed;received;noIterator;iterClosed;done;signal;yields;filtered;pendingFiltered;ctx;_data;err;time;profile;yielding;didBreak;constructor(){this.inflight=0,this.filtered=0,this.pendingFiltered=0,this.processed=0,this.received=0,this.noIterator=!1,this.done=!1,this.signal=(0,Nt0.deferred)(),this.yields=[],this.iterClosed=(0,Nt0.deferred)(),this.time=0,this.yielding=!1,this.didBreak=!1,this.profile=!1}[Symbol.asyncIterator](){return this.iterate()}push($){if(this.done)return;if(this.didBreak){if(typeof $==="function"){let Z=$;try{Z()}catch(X){}}return}if(typeof $==="function")this.pendingFiltered++;this.yields.push($),this.signal.resolve()}async*iterate(){if(this.noIterator)throw new $0$.InvalidOperationError("iterator cannot be used when a callback is registered");if(this.yielding)throw new $0$.InvalidOperationError("iterator is already yielding");this.yielding=!0;try{while(!0){if(this.yields.length===0)await this.signal;if(this.err)throw this.err;let $=this.yields;this.inflight=$.length,this.yields=[];for(let Z=0;Z<$.length;Z++){if(typeof $[Z]==="function"){this.pendingFiltered--;let Q=$[Z];try{Q()}catch(Y){throw Y}if(this.err)throw this.err;continue}this.processed++,this.inflight--;let X=this.profile?Date.now():0;yield $[Z],this.time=this.profile?Date.now()-X:0}if(this.done)break;else if(this.yields.length===0)$.length=0,this.yields=$,this.signal=(0,Nt0.deferred)()}}finally{this.didBreak=!0,this.stop()}}stop($){if(this.done)return;this.err=$,this.done=!0,this.signal.resolve(),this.iterClosed.resolve($)}getProcessed(){return this.noIterator?this.received:this.processed}getPending(){return this.yields.length+this.inflight-this.pendingFiltered}getReceived(){return this.received-this.filtered}}X0$.QueuedIteratorImpl=Z0$});var Bt0=v((J0$)=>{Object.defineProperty(J0$,"__esModule",{value:!0});J0$.MuxSubscription=void 0;var S$4=jO(),Y0$=BG();class G0${baseInbox;reqs;constructor(){this.reqs=new Map}size(){return this.reqs.size}init($){return this.baseInbox=`${(0,S$4.createInbox)($)}.`,this.baseInbox}add($){if(!isNaN($.received))$.received=0;this.reqs.set($.token,$)}get($){return this.reqs.get($)}cancel($){this.reqs.delete($.token)}getToken($){let Z=$.subject||"";if(Z.indexOf(this.baseInbox)===0)return Z.substring(this.baseInbox.length);return null}all(){return Array.from(this.reqs.values())}handleError($,Z){if($)return this.all().forEach((X)=>{X.resolver(Z,{})}),!0;if(Z.operation==="publish"){let X=this.all().find((Q)=>{return Q.requestSubject===Z.subject});if(X)return X.resolver(Z,{}),!0}return!1}dispatcher(){return($,Z)=>{let X=this.getToken(Z);if(X){let Q=this.get(X);if(Q){if($===null)$=Z?.data?.length===0&&Z.headers?.code===503?new Y0$.NoRespondersError(Q.requestSubject):null;Q.resolver($,Z)}}}}close(){let $=new Y0$.RequestError("connection closed");this.reqs.forEach((Z)=>{Z.resolver($,{})})}}J0$.MuxSubscription=G0$});var Ot0=v((H0$)=>{Object.defineProperty(H0$,"__esModule",{value:!0});H0$.Heartbeat=void 0;var C$4=r3();class W0${ph;interval;maxOut;timer;pendings;constructor($,Z,X){this.ph=$,this.interval=Z,this.maxOut=X,this.pendings=[]}start(){this.cancel(),this._schedule()}cancel($){if(this.timer)clearTimeout(this.timer),this.timer=void 0;if(this._reset(),$)this.ph.disconnect()}_schedule(){this.timer=setTimeout(()=>{if(this.ph.dispatchStatus({type:"ping",pendingPings:this.pendings.length+1}),this.pendings.length===this.maxOut){this.cancel(!0);return}let $=(0,C$4.deferred)();this.ph.flush($).then(()=>{this._reset()}).catch(()=>{this.cancel()}),this.pendings.push($),this._schedule()},this.interval)}_reset(){this.pendings=this.pendings.filter(($)=>{return $.resolve(),!1})}}H0$.Heartbeat=W0$});var wt0=v((O0$)=>{Object.defineProperty(O0$,"__esModule",{value:!0});O0$.DenoBuffer=O0$.MAX_SIZE=O0$.AssertionError=void 0;O0$.assert=N0$;O0$.concat=B0$;O0$.append=v$4;O0$.readAll=x$4;O0$.writeAll=f$4;var _$4=NG();class Lt0 extends Error{constructor($){super($);this.name="AssertionError"}}O0$.AssertionError=Lt0;function N0$($,Z="Assertion failed."){if(!$)throw new Lt0(Z)}var U0$=32768;O0$.MAX_SIZE=4294967294;function r70($,Z,X=0){let Q=Z.byteLength-X;if($.byteLength>Q)$=$.subarray(0,Q);return Z.set($,X),$.byteLength}function B0$($,Z){if($===void 0&&Z===void 0)return new Uint8Array(0);if($===void 0)return Z;if(Z===void 0)return $;let X=new Uint8Array($.length+Z.length);return X.set($,0),X.set(Z,$.length),X}function v$4($,Z){return B0$($,Uint8Array.of(Z))}class Dt0{_buf;_off;constructor($){if(this._off=0,$==null){this._buf=new Uint8Array(0);return}this._buf=new Uint8Array($)}bytes($={copy:!0}){if($.copy===!1)return this._buf.subarray(this._off);return this._buf.slice(this._off)}empty(){return this._buf.byteLength<=this._off}get length(){return this._buf.byteLength-this._off}get capacity(){return this._buf.buffer.byteLength}truncate($){if($===0){this.reset();return}if($<0||$>this.length)throw Error("bytes.Buffer: truncation out of range");this._reslice(this._off+$)}reset(){this._reslice(0),this._off=0}_tryGrowByReslice($){let Z=this._buf.byteLength;if($<=this.capacity-Z)return this._reslice(Z+$),Z;return-1}_reslice($){N0$($<=this._buf.buffer.byteLength),this._buf=new Uint8Array(this._buf.buffer,0,$)}readByte(){let $=new Uint8Array(1);if(this.read($))return $[0];return null}read($){if(this.empty()){if(this.reset(),$.byteLength===0)return 0;return null}let Z=r70(this._buf.subarray(this._off),$);return this._off+=Z,Z}writeByte($){return this.write(Uint8Array.of($))}writeString($){return this.write(_$4.TE.encode($))}write($){let Z=this._grow($.byteLength);return r70($,this._buf,Z)}_grow($){let Z=this.length;if(Z===0&&this._off!==0)this.reset();let X=this._tryGrowByReslice($);if(X>=0)return X;let Q=this.capacity;if($<=Math.floor(Q/2)-Z)r70(this._buf.subarray(this._off),this._buf);else if(Q+$>O0$.MAX_SIZE)throw Error("The buffer cannot be grown beyond the maximum size.");else{let Y=new Uint8Array(Math.min(2*Q+$,O0$.MAX_SIZE));r70(this._buf.subarray(this._off),Y),this._buf=Y}return this._off=0,this._reslice(Math.min(Z+$,O0$.MAX_SIZE)),Z}grow($){if($<0)throw Error("Buffer._grow: negative count");let Z=this._grow($);this._reslice(Z)}readFrom($){let Z=0,X=new Uint8Array(U0$);while(!0){let Q=this.capacity-this.length<U0$,Y=Q?X:new Uint8Array(this._buf.buffer,this.length),G=$.read(Y);if(G===null)return Z;if(Q)this.write(Y.subarray(0,G));else this._reslice(this.length+G);Z+=G}}}O0$.DenoBuffer=Dt0;function x$4($){let Z=new Dt0;return Z.readFrom($),Z.bytes()}function f$4($,Z){let X=0;while(X<Z.length)X+=$.write(Z.subarray(X))}});var zt0=v((j0$)=>{Object.defineProperty(j0$,"__esModule",{value:!0});j0$.cc=j0$.State=j0$.Parser=j0$.Kind=void 0;j0$.describe=l$4;var Et0=wt0(),jt0=NG();j0$.Kind={OK:0,ERR:1,MSG:2,INFO:3,PING:4,PONG:5};function l$4($){let Z,X="";switch($.kind){case j0$.Kind.MSG:Z="MSG";break;case j0$.Kind.OK:Z="OK";break;case j0$.Kind.ERR:Z="ERR",X=jt0.TD.decode($.data);break;case j0$.Kind.PING:Z="PING";break;case j0$.Kind.PONG:Z="PONG";break;case j0$.Kind.INFO:Z="INFO",X=jt0.TD.decode($.data)}return`${Z}: ${X}`}function D0$(){let $={};return $.sid=-1,$.hdr=-1,$.size=-1,$}var w0$=48,m$4=57,uy=67108864;class E0${dispatcher;state;as;drop;hdr;ma;argBuf;msgBuf;constructor($){this.dispatcher=$,this.state=j0$.State.OP_START,this.as=0,this.drop=0,this.hdr=0}parse($){let Z;for(Z=0;Z<$.length;Z++){let X=$[Z];switch(this.state){case j0$.State.OP_START:switch(X){case j0$.cc.M:case j0$.cc.m:this.state=j0$.State.OP_M,this.hdr=-1,this.ma=D0$();break;case j0$.cc.H:case j0$.cc.h:this.state=j0$.State.OP_H,this.hdr=0,this.ma=D0$();break;case j0$.cc.P:case j0$.cc.p:this.state=j0$.State.OP_P;break;case j0$.cc.PLUS:this.state=j0$.State.OP_PLUS;break;case j0$.cc.MINUS:this.state=j0$.State.OP_MINUS;break;case j0$.cc.I:case j0$.cc.i:this.state=j0$.State.OP_I;break;default:throw this.fail($.subarray(Z))}break;case j0$.State.OP_H:switch(X){case j0$.cc.M:case j0$.cc.m:this.state=j0$.State.OP_M;break;default:throw this.fail($.subarray(Z))}break;case j0$.State.OP_M:switch(X){case j0$.cc.S:case j0$.cc.s:this.state=j0$.State.OP_MS;break;default:throw this.fail($.subarray(Z))}break;case j0$.State.OP_MS:switch(X){case j0$.cc.G:case j0$.cc.g:this.state=j0$.State.OP_MSG;break;default:throw this.fail($.subarray(Z))}break;case j0$.State.OP_MSG:switch(X){case j0$.cc.SPACE:case j0$.cc.TAB:this.state=j0$.State.OP_MSG_SPC;break;default:throw this.fail($.subarray(Z))}break;case j0$.State.OP_MSG_SPC:switch(X){case j0$.cc.SPACE:case j0$.cc.TAB:continue;default:this.state=j0$.State.MSG_ARG,this.as=Z}break;case j0$.State.MSG_ARG:switch(X){case j0$.cc.CR:this.drop=1;break;case j0$.cc.NL:{let Q=this.argBuf?this.argBuf.bytes():$.subarray(this.as,Z-this.drop);this.processMsgArgs(Q),this.drop=0,this.as=Z+1,this.state=j0$.State.MSG_PAYLOAD,Z=this.as+this.ma.size-1;break}default:if(this.argBuf)this.argBuf.writeByte(X)}break;case j0$.State.MSG_PAYLOAD:if(this.msgBuf)if(this.msgBuf.length>=this.ma.size){let Q=this.msgBuf.bytes({copy:!1});this.dispatcher.push({kind:j0$.Kind.MSG,msg:this.ma,data:Q}),this.argBuf=void 0,this.msgBuf=void 0,this.state=j0$.State.MSG_END}else{let Q=this.ma.size-this.msgBuf.length,Y=$.length-Z;if(Y<Q)Q=Y;if(Q>0)this.msgBuf.write($.subarray(Z,Z+Q)),Z=Z+Q-1;else this.msgBuf.writeByte(X)}else if(Z-this.as>=this.ma.size)this.dispatcher.push({kind:j0$.Kind.MSG,msg:this.ma,data:$.subarray(this.as,Z)}),this.argBuf=void 0,this.msgBuf=void 0,this.state=j0$.State.MSG_END;break;case j0$.State.MSG_END:switch(X){case j0$.cc.NL:this.drop=0,this.as=Z+1,this.state=j0$.State.OP_START;break;default:continue}break;case j0$.State.OP_PLUS:switch(X){case j0$.cc.O:case j0$.cc.o:this.state=j0$.State.OP_PLUS_O;break;default:throw this.fail($.subarray(Z))}break;case j0$.State.OP_PLUS_O:switch(X){case j0$.cc.K:case j0$.cc.k:this.state=j0$.State.OP_PLUS_OK;break;default:throw this.fail($.subarray(Z))}break;case j0$.State.OP_PLUS_OK:switch(X){case j0$.cc.NL:this.dispatcher.push({kind:j0$.Kind.OK}),this.drop=0,this.state=j0$.State.OP_START;break}break;case j0$.State.OP_MINUS:switch(X){case j0$.cc.E:case j0$.cc.e:this.state=j0$.State.OP_MINUS_E;break;default:throw this.fail($.subarray(Z))}break;case j0$.State.OP_MINUS_E:switch(X){case j0$.cc.R:case j0$.cc.r:this.state=j0$.State.OP_MINUS_ER;break;default:throw this.fail($.subarray(Z))}break;case j0$.State.OP_MINUS_ER:switch(X){case j0$.cc.R:case j0$.cc.r:this.state=j0$.State.OP_MINUS_ERR;break;default:throw this.fail($.subarray(Z))}break;case j0$.State.OP_MINUS_ERR:switch(X){case j0$.cc.SPACE:case j0$.cc.TAB:this.state=j0$.State.OP_MINUS_ERR_SPC;break;default:throw this.fail($.subarray(Z))}break;case j0$.State.OP_MINUS_ERR_SPC:switch(X){case j0$.cc.SPACE:case j0$.cc.TAB:continue;default:this.state=j0$.State.MINUS_ERR_ARG,this.as=Z}break;case j0$.State.MINUS_ERR_ARG:switch(X){case j0$.cc.CR:this.drop=1;break;case j0$.cc.NL:{let Q;if(this.argBuf)Q=this.argBuf.bytes(),this.argBuf=void 0;else Q=$.subarray(this.as,Z-this.drop);this.dispatcher.push({kind:j0$.Kind.ERR,data:Q}),this.drop=0,this.as=Z+1,this.state=j0$.State.OP_START;break}default:if(this.argBuf)this.argBuf.write(Uint8Array.of(X))}break;case j0$.State.OP_P:switch(X){case j0$.cc.I:case j0$.cc.i:this.state=j0$.State.OP_PI;break;case j0$.cc.O:case j0$.cc.o:this.state=j0$.State.OP_PO;break;default:throw this.fail($.subarray(Z))}break;case j0$.State.OP_PO:switch(X){case j0$.cc.N:case j0$.cc.n:this.state=j0$.State.OP_PON;break;default:throw this.fail($.subarray(Z))}break;case j0$.State.OP_PON:switch(X){case j0$.cc.G:case j0$.cc.g:this.state=j0$.State.OP_PONG;break;default:throw this.fail($.subarray(Z))}break;case j0$.State.OP_PONG:switch(X){case j0$.cc.NL:this.dispatcher.push({kind:j0$.Kind.PONG}),this.drop=0,this.state=j0$.State.OP_START;break}break;case j0$.State.OP_PI:switch(X){case j0$.cc.N:case j0$.cc.n:this.state=j0$.State.OP_PIN;break;default:throw this.fail($.subarray(Z))}break;case j0$.State.OP_PIN:switch(X){case j0$.cc.G:case j0$.cc.g:this.state=j0$.State.OP_PING;break;default:throw this.fail($.subarray(Z))}break;case j0$.State.OP_PING:switch(X){case j0$.cc.NL:this.dispatcher.push({kind:j0$.Kind.PING}),this.drop=0,this.state=j0$.State.OP_START;break}break;case j0$.State.OP_I:switch(X){case j0$.cc.N:case j0$.cc.n:this.state=j0$.State.OP_IN;break;default:throw this.fail($.subarray(Z))}break;case j0$.State.OP_IN:switch(X){case j0$.cc.F:case j0$.cc.f:this.state=j0$.State.OP_INF;break;default:throw this.fail($.subarray(Z))}break;case j0$.State.OP_INF:switch(X){case j0$.cc.O:case j0$.cc.o:this.state=j0$.State.OP_INFO;break;default:throw this.fail($.subarray(Z))}break;case j0$.State.OP_INFO:switch(X){case j0$.cc.SPACE:case j0$.cc.TAB:this.state=j0$.State.OP_INFO_SPC;break;default:throw this.fail($.subarray(Z))}break;case j0$.State.OP_INFO_SPC:switch(X){case j0$.cc.SPACE:case j0$.cc.TAB:continue;default:this.state=j0$.State.INFO_ARG,this.as=Z}break;case j0$.State.INFO_ARG:switch(X){case j0$.cc.CR:this.drop=1;break;case j0$.cc.NL:{let Q;if(this.argBuf)Q=this.argBuf.bytes(),this.argBuf=void 0;else Q=$.subarray(this.as,Z-this.drop);this.dispatcher.push({kind:j0$.Kind.INFO,data:Q}),this.drop=0,this.as=Z+1,this.state=j0$.State.OP_START;break}default:if(this.argBuf)this.argBuf.writeByte(X)}break;default:throw this.fail($.subarray(Z))}}if((this.state===j0$.State.MSG_ARG||this.state===j0$.State.MINUS_ERR_ARG||this.state===j0$.State.INFO_ARG)&&!this.argBuf)this.argBuf=new Et0.DenoBuffer($.subarray(this.as,Z-this.drop));if(this.state===j0$.State.MSG_PAYLOAD&&!this.msgBuf){if(!this.argBuf)this.cloneMsgArg();this.msgBuf=new Et0.DenoBuffer($.subarray(this.as))}}cloneMsgArg(){let $=this.ma.subject.length,Z=this.ma.reply?this.ma.reply.length:0,X=new Uint8Array($+Z);if(X.set(this.ma.subject),this.ma.reply)X.set(this.ma.reply,$);if(this.argBuf=new Et0.DenoBuffer(X),this.ma.subject=X.subarray(0,$),this.ma.reply)this.ma.reply=X.subarray($)}processMsgArgs($){if(this.hdr>=0)return this.processHeaderMsgArgs($);let Z=[],X=-1;for(let Q=0;Q<$.length;Q++)switch($[Q]){case j0$.cc.SPACE:case j0$.cc.TAB:case j0$.cc.CR:case j0$.cc.NL:if(X>=0)Z.push($.subarray(X,Q)),X=-1;break;default:if(X<0)X=Q}if(X>=0)Z.push($.subarray(X));switch(Z.length){case 3:this.ma.subject=Z[0],this.ma.sid=this.protoParseInt(Z[1]),this.ma.reply=void 0,this.ma.size=this.protoParseInt(Z[2],uy);break;case 4:this.ma.subject=Z[0],this.ma.sid=this.protoParseInt(Z[1]),this.ma.reply=Z[2],this.ma.size=this.protoParseInt(Z[3],uy);break;default:throw this.fail($,"processMsgArgs Parse Error")}if(this.ma.sid<0)throw this.fail($,"processMsgArgs Bad or Missing Sid Error");if(this.ma.size<0)throw this.fail($,"processMsgArgs Bad or Missing Size Error")}fail($,Z=""){if(!Z)Z=`parse error [${this.state}]`;else Z=`${Z} [${this.state}]`;return Error(`${Z}: ${jt0.TD.decode($)}`)}processHeaderMsgArgs($){let Z=[],X=-1;for(let Q=0;Q<$.length;Q++)switch($[Q]){case j0$.cc.SPACE:case j0$.cc.TAB:case j0$.cc.CR:case j0$.cc.NL:if(X>=0)Z.push($.subarray(X,Q)),X=-1;break;default:if(X<0)X=Q}if(X>=0)Z.push($.subarray(X));switch(Z.length){case 4:this.ma.subject=Z[0],this.ma.sid=this.protoParseInt(Z[1]),this.ma.reply=void 0,this.ma.hdr=this.protoParseInt(Z[2],uy),this.ma.size=this.protoParseInt(Z[3],uy);break;case 5:this.ma.subject=Z[0],this.ma.sid=this.protoParseInt(Z[1]),this.ma.reply=Z[2],this.ma.hdr=this.protoParseInt(Z[3],uy),this.ma.size=this.protoParseInt(Z[4],uy);break;default:throw this.fail($,"processHeaderMsgArgs Parse Error")}if(this.ma.sid<0)throw this.fail($,"processHeaderMsgArgs Bad or Missing Sid Error");if(this.ma.hdr<0||this.ma.hdr>this.ma.size)throw this.fail($,"processHeaderMsgArgs Bad or Missing Header Size Error");if(this.ma.size<0)throw this.fail($,"processHeaderMsgArgs Bad or Missing Size Error")}protoParseInt($,Z){if($.length===0||$.length>15)return-1;let X=0;for(let Q=0;Q<$.length;Q++){if($[Q]<w0$||$[Q]>m$4)return-1;X=X*10+($[Q]-w0$)}return Z!==void 0&&X>Z?-1:X}}j0$.Parser=E0$;j0$.State={OP_START:0,OP_PLUS:1,OP_PLUS_O:2,OP_PLUS_OK:3,OP_MINUS:4,OP_MINUS_E:5,OP_MINUS_ER:6,OP_MINUS_ERR:7,OP_MINUS_ERR_SPC:8,MINUS_ERR_ARG:9,OP_M:10,OP_MS:11,OP_MSG:12,OP_MSG_SPC:13,MSG_ARG:14,MSG_PAYLOAD:15,MSG_END:16,OP_H:17,OP_P:18,OP_PI:19,OP_PIN:20,OP_PING:21,OP_PO:22,OP_PON:23,OP_PONG:24,OP_I:25,OP_IN:26,OP_INF:27,OP_INFO:28,OP_INFO_SPC:29,INFO_ARG:30};j0$.cc={CR:13,E:69,e:101,F:70,f:102,G:71,g:103,H:72,h:104,I:73,i:105,K:75,k:107,M:77,m:109,MINUS:45,N:78,n:110,NL:10,O:79,o:111,P:80,p:112,PLUS:43,R:82,r:114,S:83,s:115,SPACE:32,TAB:9}});var e70=v((P0$)=>{Object.defineProperty(P0$,"__esModule",{value:!0});P0$.MsgHdrsImpl=void 0;P0$.canonicalMIMEHeaderKey=At0;P0$.headers=p$4;var z0$=NG(),a3=jO(),s70=BG();function At0($){let F=!0,U=Array($.length);for(let N=0;N<$.length;N++){let B=$.charCodeAt(N);if(B===58||B<33||B>126)throw s70.InvalidArgumentError.format("header",`'${$[N]}' is not a valid character in a header name`);if(F&&97<=B&&B<=122)B-=32;else if(!F&&65<=B&&B<=90)B+=32;U[N]=B,F=B==45}return String.fromCharCode(...U)}function p$4($=0,Z=""){if($===0&&Z!=="")throw s70.InvalidArgumentError.format("code","is required");else if($>0&&Z==="")throw s70.InvalidArgumentError.format("description","is required");return new cy($,Z)}var Pt0="NATS/1.0";class cy{_code;headers;_description;constructor($=0,Z=""){this._code=$,this._description=Z,this.headers=new Map}[Symbol.iterator](){return this.headers.entries()}size(){return this.headers.size}equals($){if($&&this.headers.size===$.headers.size&&this._code===$._code){for(let[Z,X]of this.headers){let Q=$.values(Z);if(X.length!==Q.length)return!1;let Y=[...X].sort(),G=[...Q].sort();for(let J=0;J<Y.length;J++)if(Y[J]!==G[J])return!1}return!0}return!1}static decode($){let Z=new cy,Q=z0$.TD.decode($).split(`\r
1550
1550
  `),Y=Q[0];if(Y!==Pt0){let G=Y.replace(Pt0,"").trim();if(G.length>0){if(Z._code=parseInt(G,10),isNaN(Z._code))Z._code=0;let J=Z._code.toString();G=G.replace(J,""),Z._description=G.trim()}}if(Q.length>=1)Q.slice(1).map((G)=>{if(G){let J=G.indexOf(":");if(J>-1){let K=G.slice(0,J),W=G.slice(J+1).trim();Z.append(K,W)}}});return Z}toString(){if(this.headers.size===0&&this._code===0)return"";let $=Pt0;if(this._code>0&&this._description!=="")$+=` ${this._code} ${this._description}`;for(let[Z,X]of this.headers)for(let Q=0;Q<X.length;Q++)$=`${$}\r
1551
1551
  ${Z}: ${X[Q]}`;return`${$}\r
@@ -2980,7 +2980,7 @@ Respond with ONLY a JSON object of this shape, and nothing else:
2980
2980
  ${G.join(`
2981
2981
  `)}`:Y}function yN6($){let Z=new Set;for(let X of $)for(let Q of X.split(`
2982
2982
  `)){let Y=Q.trim();if(/^Co-authored-by:\s/i.test(Y))Z.add(Y)}return[...Z]}var Wd$=200,MN6=12,VN6,CN6=300,m71=3;var i71=D(()=>{rD();ST0();VN6={aheadBy:0,behindBy:0,files:[]}});function hN6($){if(!$||$.includes(".."))return!1;return gN6.test($)}function Fd$($){let Z=typeof $.__resolveType==="string"?$.__resolveType:null;if(!Z||!hN6(Z))return null;let{__resolveType:X,...Q}=$;return{resolveType:Z,payload:Q}}function Hd$($,Z){return`${$.replace(/\/+$/,"")}/deco/invoke/${Z}`}var gN6;var Ud$=D(()=>{gN6=/^[\w./@-]+$/});function Is($,Z){let X=$?.githubRepo;if(!X?.owner||!X?.name)return null;if(!X.connectionId)return X;if(!Z.includes(X.connectionId))return null;return X}async function Nd$($,Z,X,Q){if(!Q.connectionId)throw new kv("Push requires a connected GitHub account. Connect mcp-github for this project and restart the sandbox.");let Y=$.organization?.id;if(!Y)throw new kv(F9);await xO({ctx:$,connectionId:Q.connectionId,organizationId:Y,forceRefresh:!0,onLegacyMintError:(H)=>{let U=H instanceof Error?H.message:F9;throw new kv(U)}});let{cloneUrl:G,gitUserName:J,gitUserEmail:W}=await fK(Q.connectionId,Q.owner,Q.name,$.db,$.vault).catch((H)=>{let{code:U,message:N}=w9$(H instanceof Error?H.message:String(H));throw U?new kv(N):H}),K=eu($),F=await Z.proxyDaemonRequest(X,"/_sandbox/config",{method:"PUT",headers:new Headers({"content-type":"application/json"}),body:JSON.stringify({git:{repository:{cloneUrl:G},identity:{userName:J,userEmail:W}},...K?{operator:K}:{}})});if(!F.ok){let H=await bO(F,uN6).catch(()=>F.statusText);throw Error(`Failed to refresh sandbox git credentials (${F.status}): ${H}`)}}var uN6=10485760,kv;var p71=D(()=>{KJ();jT0();On();gi0();dy();kv=class kv extends Error{constructor($){super($);this.name="GitPushAuthError"}}});function cN6($){let Z=$.startsWith("thread:")?$.slice(7):$;if(!Z||Z.length>255||Z.includes("..")||Z.startsWith("/")||Z.endsWith("/")||Z.endsWith(".lock")||!lN6.test(Z))throw Error(`Invalid branch name: ${$}`)}function Vv($){return AbortSignal.any([$.req.raw.signal,AbortSignal.timeout(mN6)])}async function pN6($,Z){let X=$.var.studioContext,Q=JJ(Z.branch),Y=$.req.query("thread")??Q,G=Y&&Y===Q?Z.branchThread:Y?await X.storage.threads.get(Y).catch(()=>null):null,J=G?.virtual_mcp_id===Z.virtualMcpId?G:null,W=MC(J?.metadata?.runtime);if(W)return W;let K=WD0(Z.virtualMcpMetadata),F=K==="cms"?await q71(X,{claimName:Z.claimName}):"alive",H=K==="cms"&&F!=="alive"?"cms":"sandbox",U=!!J&&(F==="gone"||F==="alive"&&K==="cms");if(U&&J)cn(X,J.id,H);if(K==="cms")console.log("sandbox proxy: no runtime stamp",{route:$.req.path,method:$.req.method,reason:J?"unstamped":"threadless",liveness:F,resolved:H,stamped:U});return H}async function nN6($){let Z=$.get("vmClaim");if(Z.runner)return Z.runner;try{return await KQ($.var.studioContext)}catch{return null}}function Sv($){let{runner:Z}=$.get("vmClaim");if(!Z)return $.json({error:"No sandbox runner configured"},503);return Z}async function Yl($){let{virtualMcpMetadata:Z,connectionIds:X}=$.get("vmClaim"),Q=$.var.studioContext,Y=Is(Z,X);if(!Y)throw new d4(404,"AUTH","repo","Project has no GitHub repository");let G=n(Q);return zT0(Q,G.id,Y)}function n71($,Z){if(Z instanceof AA0)return $.json({error:Z.message},429,{...R5,...Z.retryAfterMs===null?{}:{"Retry-After":String(Math.ceil(Z.retryAfterMs/1000))}});if(Z instanceof d4){let Q=Z.status===404?404:Z.status===409||Z.status===422?409:502;return $.json({error:Z.message},Q,R5)}let X=Z instanceof Error?Z.message:String(Z);return $.json({error:X},502,R5)}async function Dd$($,Z,X){let Q;try{Q=await fetch(Z,X)}catch{return $.json({error:"Preview unreachable"},502)}let Y;try{Y=await Q.text()}catch{return $.json({error:"Preview unreachable"},502)}return new Response(Y,{status:Q.status,headers:{"content-type":Q.headers.get("content-type")??"application/json"}})}async function wd$($){try{let Z=await Yl($),X=await CT0(Z,$.get("vmClaim").branch);return $.json(X,200,R5)}catch(Z){return n71($,Z)}}function qs($,Z){let Q=(fT0.get($)??Promise.resolve()).catch(()=>{}).then(Z),Y=Q.catch(()=>{});return fT0.set($,Y),Y.finally(()=>{if(fT0.get($)===Y)fT0.delete($)}),Q}async function aZ($,Z,X){if(!X?.runner&&$.get("vmClaim").runtime==="cms")return $.json({error:"sandbox not found: this session is sandbox-less"},404,R5);let Q=X?.runner??Sv($);if(Q instanceof Response)return Q;let{claimName:Y,userId:G,projectRef:J}=$.get("vmClaim"),W=X?.method??"POST",K=null,F=new Headers;if(X?.jsonBody!==void 0)K=X.jsonBody,F.set("content-type","application/json");else if(X?.forwardJsonBody)K=await $.req.text(),F.set("content-type","application/json");let H=X?.signal,U={method:W,headers:F,body:K,...H?{signal:H}:{}},N=async()=>{let B=await Q.proxyDaemonRequest(Y,Z,U);if(X?.map404to410&&B.status===404){try{await B.body?.cancel()}catch{}if(await Q.adoptLiveClaim({userId:G,projectRef:J},Y))B=await Q.proxyDaemonRequest(Y,Z,U);if(B.status===404){try{await B.body?.cancel()}catch{}return new Response(JSON.stringify({error:"Sandbox handle is gone. The sandbox needs to be re-provisioned."}),{status:410,headers:{"content-type":"application/json",...R5}})}}let O=await B.text(),w=X?.redactRepoDir?tN6(O):O,L=B.headers.get("content-type")??"application/json";return new Response(w,{status:B.status,headers:{"content-type":L,...R5}})};try{if(H){let B=N();return B.catch(()=>{}),await Promise.race([B,new Promise((w,L)=>{if(H.aborted)return L(H.reason);H.addEventListener("abort",()=>L(H.reason),{once:!0})})])}return await N()}catch(B){let O=B instanceof Error?B.message:String(B);return $.json({error:`Daemon unreachable: ${O}`},502)}}function tN6($){try{let Z=JSON.parse($);if(Z&&typeof Z==="object"&&!Array.isArray(Z)&&"repoDir"in Z)return JSON.stringify({...Z,repoDir:null})}catch{}return $}async function bT0($,Z,X,Q="GET",Y){let G=await $.proxyDaemonRequest(Z,X,{method:Q,headers:new Headers,body:null});if(G.status===404&&Y){try{await G.body?.cancel()}catch{}if(await $.adoptLiveClaim(Y,Z))G=await $.proxyDaemonRequest(Z,X,{method:Q,headers:new Headers,body:null})}if(G.status===404){try{await G.body?.cancel()}catch{}throw Error("SANDBOX_GONE")}let J=await G.text();if(!G.ok){let W=`Daemon error (${G.status})`;try{W=JSON.parse(J).error??W}catch{}throw Error(W)}return JSON.parse(J)}function oN6($){return Ld$.includes($)}var lN6,Bd$=524288,dN6=65536,mN6=1e4,Od$=2000,iN6,fT0,R5,Ld$,Ed$=()=>{let $=new W1;$.use("/:virtualMcpId/:branch/*",iN6),$.post("/:virtualMcpId/:branch/write",(X)=>aZ(X,"/_sandbox/write",{forwardJsonBody:!0,signal:Vv(X)})),$.post("/:virtualMcpId/:branch/unlink",(X)=>aZ(X,"/_sandbox/unlink",{forwardJsonBody:!0,signal:Vv(X)})),$.post("/:virtualMcpId/:branch/mkdir",(X)=>aZ(X,"/_sandbox/mkdir",{forwardJsonBody:!0,signal:Vv(X)})),$.post("/:virtualMcpId/:branch/rename",(X)=>aZ(X,"/_sandbox/rename",{forwardJsonBody:!0,signal:Vv(X)})),$.post("/:virtualMcpId/:branch/read",(X)=>aZ(X,"/_sandbox/read",{forwardJsonBody:!0,signal:Vv(X)})),$.post("/:virtualMcpId/:branch/glob",(X)=>aZ(X,"/_sandbox/glob",{forwardJsonBody:!0,signal:Vv(X)})),$.post("/:virtualMcpId/:branch/grep",(X)=>aZ(X,"/_sandbox/grep",{forwardJsonBody:!0,signal:Vv(X)})),$.post("/:virtualMcpId/:branch/exec/:script",async(X)=>{let Q=X.req.param("script");if(!Q)return X.json({error:"missing script name"},400);return aZ(X,`/_sandbox/exec/${encodeURIComponent(Q)}`)}),$.post("/:virtualMcpId/:branch/exec/:script/kill",async(X)=>{let Q=X.req.param("script");if(!Q)return X.json({error:"missing script name"},400);return aZ(X,`/_sandbox/exec/${encodeURIComponent(Q)}/kill`)}),$.get("/:virtualMcpId/:branch/config",(X)=>aZ(X,"/_sandbox/config",{method:"GET",map404to410:!0,redactRepoDir:!0})),$.put("/:virtualMcpId/:branch/config",(X)=>aZ(X,"/_sandbox/config",{method:"PUT",forwardJsonBody:!0,map404to410:!0})),$.post("/:virtualMcpId/:branch/setup/:step",async(X)=>{let Q=X.req.param("step");if(!Q||!oN6(Q))return X.json({error:`step must be one of: ${Ld$.join(", ")}`},400);let Y=X.get("vmClaim"),G=await q71(X.var.studioContext,{claimName:Y.claimName})==="gone"?null:await nN6(X);if(!G)return X.json({error:"sandbox not found: nothing is running at this ref"},404,R5);if(Q==="start"){let J=n(X.var.studioContext),W=ly(Y.virtualMcpMetadata);try{await q70({ctx:X.var.studioContext,runner:G,handle:Y.claimName,orgId:J.id,userId:Y.callerUserId,entries:W})}catch(K){let F=K instanceof Error?K.message:String(K);return X.json({error:`Failed to push env to daemon: ${F}`},502)}}return aZ(X,`/_sandbox/setup/${Q}`,{signal:X.req.raw.signal,map404to410:!0,runner:G})}),$.get("/:virtualMcpId/:branch/events",(X)=>{let Q=X.get("vmClaim");if(!Q.runner)return sU(X,async(Y)=>{await Y.writeSSE({event:"phase",data:JSON.stringify({kind:"failed",reason:"unknown",message:"No sandbox runner configured on this studio instance."})})});return Ec$(X,{ctx:X.var.studioContext,claimName:Q.claimName,runner:Q.runner,virtualMcpId:Q.virtualMcpId,branch:Q.branch,userId:Q.userId,projectRef:Q.projectRef,virtualMcpMetadata:Q.virtualMcpMetadata})}),$.get("/:virtualMcpId/:branch/git/status",(X)=>{if(X.get("vmClaim").runtime==="cms")return wd$(X);return Z(X)});let Z=(X)=>aZ(X,"/_sandbox/git/status",{method:"GET",map404to410:!0,signal:AbortSignal.any([X.req.raw.signal,AbortSignal.timeout(Od$)])});return $.post("/:virtualMcpId/:branch/git/status",(X)=>{if(X.get("vmClaim").runtime==="cms")return wd$(X);return aZ(X,"/_sandbox/git/status",{map404to410:!0,signal:AbortSignal.any([X.req.raw.signal,AbortSignal.timeout(Od$)])})}),$.post("/:virtualMcpId/:branch/git/diff",async(X)=>{let Q=X.get("vmClaim");if(Q.runtime==="cms")try{let Y=await X.req.json().catch(()=>({})),G=await Yl(X),J=await _T0(G,Q.branch,Y.base);return X.json(J,200,R5)}catch(Y){return n71(X,Y)}return aZ(X,"/_sandbox/git/diff",{forwardJsonBody:!0,map404to410:!0})}),$.post("/:virtualMcpId/:branch/git/publish",async(X)=>{if(X.get("vmClaim").runtime==="cms")return X.json({ok:!0},200,R5);let Q=Sv(X);if(Q instanceof Response)return Q;let{claimName:Y,virtualMcpMetadata:G,connectionIds:J}=X.get("vmClaim"),W=X.var.studioContext;return qs(Y,async()=>{try{await M71(W,Q,Y);let K=Is(G,J);if(K)await Nd$(W,Q,Y,K)}catch(K){if(K instanceof kv)return X.json({error:K.message},403,R5);let F=K instanceof Error?K.message:String(K);return X.json({error:F},502,R5)}return aZ(X,"/_sandbox/git/publish",{forwardJsonBody:!0,map404to410:!0})})}),$.post("/:virtualMcpId/:branch/git/discard",async(X)=>{let Q=X.get("vmClaim");if(Q.runtime==="cms")return qs(Q.claimName,async()=>{let Y=await X.req.json().catch(()=>({})),G=Array.isArray(Y.filepaths)?Y.filepaths.filter((J)=>typeof J==="string"):[];if(G.length===0)return X.json({error:"filepaths is required"},400,R5);try{let J=await Yl(X);return await Kd$(J,Q.branch,G),X.json({ok:!0},200,R5)}catch(J){let W=J instanceof d4&&J.status===409?409:502,K=J instanceof Error?J.message:String(J);return X.json({error:K},W,R5)}});return qs(Q.claimName,()=>aZ(X,"/_sandbox/git/discard",{forwardJsonBody:!0,map404to410:!0}))}),$.post("/:virtualMcpId/:branch/git/rebase",async(X)=>{let Q=X.get("vmClaim");if(Q.runtime==="cms")return qs(Q.claimName,async()=>{try{let W=await X.req.json().catch(()=>({})),K=await Yl(X),F=W.base??await K.getDefaultBranch();return await vT0(K,Q.branch,F),X.json({ok:!0},200,R5)}catch(W){return n71(X,W)}});let Y=Sv(X);if(Y instanceof Response)return Y;let{claimName:G}=X.get("vmClaim"),J=X.var.studioContext;return qs(G,async()=>{try{await M71(J,Y,G)}catch(W){let K=W instanceof Error?W.message:String(W);return X.json({error:K},502,R5)}return aZ(X,"/_sandbox/git/rebase",{forwardJsonBody:!0,map404to410:!0})})}),$.post("/:virtualMcpId/:branch/git/suggest-commit",r5({maxSize:Bd$,onError:(X)=>X.json({error:"Payload too large"},413,R5)}),async(X)=>{let Q=X.get("vmClaim"),Y=null;if(Q.runtime!=="cms"){let F=Sv(X);if(F instanceof Response)return F;Y=F}let{claimName:G,userId:J,projectRef:W}=Q,K=X.var.studioContext;try{let F=await X.req.json().catch(()=>({})),H=F.status,U=F.diff,N=U!=null&&typeof U.diffs==="object"&&U.diffs!==null,[B,O]=S71(H)&&N?[H,U]:Y?await Promise.all([bT0(Y,G,"/_sandbox/git/status","GET",{userId:J,projectRef:W}),bT0(Y,G,"/_sandbox/git/diff","GET",{userId:J,projectRef:W})]):await(async()=>{let L=await Yl(X);return Promise.all([CT0(L,Q.branch),_T0(L,Q.branch)])})(),w=await Tc$(K,B,O);return X.json(w,200,R5)}catch(F){let H=F instanceof Error?F.message:String(F);if(H==="SANDBOX_GONE")return X.json({error:"Sandbox handle is gone. The sandbox needs to be re-provisioned."},410,R5);return X.json({error:H},502,R5)}}),$.post("/:virtualMcpId/:branch/git/judge-review",r5({maxSize:Bd$,onError:(X)=>X.json({error:"Payload too large"},413,R5)}),async(X)=>{let Q=X.get("vmClaim"),Y=null;if(Q.runtime!=="cms"){let F=Sv(X);if(F instanceof Response)return F;Y=F}let{claimName:G,userId:J,projectRef:W}=Q,K=X.var.studioContext;try{let F=await X.req.json().catch(()=>({})),H=F.status,U=F.diff,N=U!=null&&typeof U.diffs==="object"&&U.diffs!==null,[B,O]=S71(H)&&N?[H,U]:Y?await Promise.all([bT0(Y,G,"/_sandbox/git/status","GET",{userId:J,projectRef:W}),bT0(Y,G,"/_sandbox/git/diff","GET",{userId:J,projectRef:W})]):await(async()=>{let L=await Yl(X);return Promise.all([CT0(L,Q.branch),_T0(L,Q.branch)])})(),w=await Ic$(K,B,O,typeof F.language==="string"?F.language:void 0);return X.json(w,200,R5)}catch(F){let H=F instanceof Error?F.message:String(F);if(H==="SANDBOX_GONE")return X.json({error:"Sandbox handle is gone. The sandbox needs to be re-provisioned."},410,R5);return X.json({error:H},502,R5)}}),$.get("/:virtualMcpId/:branch/preview-fetch",async(X)=>{let Q=Sv(X);if(Q instanceof Response)return Q;let{claimName:Y}=X.get("vmClaim"),G=X.req.query("path");if(!G||!G.startsWith("/")||G.startsWith("//")||G.includes("..")||G.includes("\\"))return X.json({error:"Path not allowed"},403);let J;try{J=await Q.getPreviewUrl(Y)}catch{return X.json({error:"Preview not available"},502)}if(!J)return X.json({error:"Preview not available"},502);let W=J.replace(/\/+$/,"");return Dd$(X,`${W}${G}`)}),$.post("/:virtualMcpId/:branch/preview-invoke",r5({maxSize:dN6,onError:(X)=>X.json({error:"Payload too large"},413)}),async(X)=>{let Q=Sv(X);if(Q instanceof Response)return Q;let{claimName:Y}=X.get("vmClaim"),G;try{G=await Q.getPreviewUrl(Y)}catch{return X.json({error:"Preview not available"},502)}if(!G)return X.json({error:"Preview not available"},502);let J;try{J=await X.req.json()}catch{return X.json({error:"Invalid JSON body"},400)}if(!J||typeof J!=="object"||Array.isArray(J))return X.json({error:"Invalid JSON body"},400);let W=Fd$(J);if(!W)return X.json({error:"Invalid or missing __resolveType"},400);let K=Hd$(G,W.resolveType);return Dd$(X,K,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(W.payload),signal:AbortSignal.timeout(30000)})}),$};var jd$=D(()=>{c$();MF();su();I71();Kn();Dc$();i3();Jg();wc$();r3();Lc$();jc$();bi0();Nn();v71();qc$();b71();rD();i71();Ud$();p71();lN6=/^[a-zA-Z0-9][a-zA-Z0-9/._-]*$/;iN6=ET0(async($,Z)=>{let X=$.var.studioContext;try{t(X)}catch{return $.json({error:"Unauthorized"},401)}let Q=t0(X);if(!Q)return $.json({error:"Unauthorized"},401);let Y;try{Y=n(X)}catch{return $.json({error:"Organization scope required"},403)}let G=$.req.param("virtualMcpId"),J=$.req.param("branch");if(!G||!J)return $.json({error:"virtualMcpId and branch are required"},400);try{cN6(J)}catch(w){let L=w instanceof Error?w.message:String(w);return $.json({error:L},400)}let W=await X.storage.virtualMcps.findById(G);if(!W||W.organization_id!==Y.id)return $.json({error:"Virtual MCP not found"},404);let K=Jn({orgId:Y.id,virtualMcpId:G,branch:J}),F=await Vi0(X,J),H=Si0(F,Q),U=Oc$({userId:H,projectRef:K}),N=W.metadata??null,B=await pN6($,{claimName:U,branch:J,virtualMcpId:G,sandboxUserId:H,virtualMcpMetadata:N,branchThread:F});if(B==="cms")return $.set("vmClaim",{claimName:U,callerUserId:Q,runner:null,virtualMcpId:G,branch:J,userId:H,projectRef:K,virtualMcpMetadata:N,connectionIds:W.connections?.map((w)=>w.connection_id)??[],runtime:B}),Z();let O;try{O=await KQ(X)}catch{O=null}if(!O)return $.json({error:"No sandbox runner found"},404);return $.set("vmClaim",{claimName:U,callerUserId:Q,runner:O,virtualMcpId:G,branch:J,userId:H,projectRef:K,virtualMcpMetadata:N,connectionIds:W.connections?.map((w)=>w.connection_id)??[],runtime:B}),Z()});fT0=new Map;R5={"Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache"};Ld$=["clone","install","start"]});function zd$($,Z,X){let Q=t71.get($);if(!Q)Q={pending:null,running:!1},t71.set($,Q);if(!Q.pending)Q.pending={set:new Map,del:new Set,deps:Z,resolvers:[],rejecters:[]};let Y=Q.pending;Y.deps=Z;for(let[J,W]of Object.entries(X.set??{}))Y.set.set(J,W),Y.del.delete(J);for(let J of X.delete??[])Y.del.add(J),Y.set.delete(J);let G=new Promise((J,W)=>{Y.resolvers.push(J),Y.rejecters.push(W)});if(!Q.running)aN6($,Q);return G}async function aN6($,Z){Z.running=!0;try{while(Z.pending){let X=Z.pending;Z.pending=null;try{let Q=await sN6(X);for(let Y of X.resolvers)Y(Q)}catch(Q){for(let Y of X.rejecters)Y(Q)}}}finally{if(Z.running=!1,!Z.pending)t71.delete($)}}async function sN6($){let{client:Z,branch:X,packagePath:Q}=$.deps;for(let Y=0;;Y++){let G=await Ql(Z,X),J=await Z.getCommitTreeSha(G),W=await Z.getDecofileTree(J,Q),K=c71(W,Q),F=[],H=new Map(K.map((O)=>[O.path,{stem:O.stem,sha:O.sha}]));for(let[O,w]of $.set){let L=d71(K,O),E=`${JSON.stringify(w,null,2)}
2983
- `,j=await Z.createBlob(E);await Yd$(Z.owner,Z.repo,j,E);let z=L[0]??`${VT0(Q)}/${y71(O)}.json`;F.push({path:z,mode:"100644",type:"blob",sha:j});let P=z.slice(z.lastIndexOf("/")+1,-5);H.set(z,{stem:P,sha:j,content:E});for(let A of L.slice(1))F.push({path:A,mode:"100644",type:"blob",sha:null}),H.delete(A)}for(let O of $.del)for(let w of d71(K,O))F.push({path:w,mode:"100644",type:"blob",sha:null}),H.delete(w);if(F.length===0)return G;let U=Q?`${Q}/.deco/blocks.gen.json`:".deco/blocks.gen.json";if(W.some((O)=>O.type==="blob"&&O.path===U)){let O=await Promise.all([...H.values()].map(async(j)=>({stem:j.stem,content:j.content??await Z.getBlobText(j.sha)}))),{decofile:w,skipped:L}=Ps(O);if(L.length>0)console.warn("decofile gen: dropped blocks that were not valid JSON",{repo:`${Z.owner}/${Z.repo}`,branch:X,packagePath:Q,blocks:L.map((j)=>j.key)});let E=await Z.createBlob(w);F.push({path:U,mode:"100644",type:"blob",sha:E})}let N=await Z.createTree(J,F),B=await Z.createCommit({message:eN6($),treeSha:N,parentShas:[G]});try{return await Z.updateRef(X,B),B}catch(O){if(!(O instanceof d4&&O.status===422)||Y>=rN6-1)throw O;await L$($7(2000,200,Y,2,0.5))}}}function eN6($){let Z=(Y)=>{let G=Y.slice(0,3).join(", ");return Y.length>3?`${G} (+${Y.length-3} more)`:G},X=[];if($.set.size>0)X.push(`update ${Z([...$.set.keys()])}`);if($.del.size>0)X.push(`delete ${Z([...$.del])}`);let Q=`chore(decofile): ${X.join("; ")}`;return ji0(Q,$.deps.coAuthor)}var rN6=3,t71;var Pd$=D(()=>{P70();AT0();a8();rD();ST0();t71=new Map});import{createHmac as Ad$,randomBytes as $B6,timingSafeEqual as ZB6}from"crypto";function Td$(){if(xT0)return xT0;let $;try{let Z=V0();$=Z.studioJwtSecret??Z.betterAuthSecret}catch{$=void 0}return xT0=$?Buffer.from($):$B6(32),xT0}function o71($){let Z=$.nowMs??Date.now(),X={o:$.organizationId,m:$.virtualMcpId,b:$.branch,e:Math.floor((Z+XB6)/1000)},Q=Buffer.from(JSON.stringify(X)).toString("base64url"),Y=Ad$("sha256",Td$()).update(Q).digest("base64url");return`${Q}.${Y}`}function Rd$($,Z){let X=$.indexOf(".");if(X<0)return!1;let Q=$.slice(0,X),Y=Buffer.from($.slice(X+1)),G=Buffer.from(Ad$("sha256",Td$()).update(Q).digest("base64url"));if(Y.length!==G.length||!ZB6(Y,G))return!1;let J;try{J=JSON.parse(Buffer.from(Q,"base64url").toString())}catch{return!1}let W=Math.floor((Z.nowMs??Date.now())/1000);return J.o===Z.organizationId&&J.m===Z.virtualMcpId&&J.b===Z.branch&&typeof J.e==="number"&&J.e>=W}var XB6=21600000,xT0=null;var Id$=D(()=>{D$()});import{z as Gl}from"zod";function YB6($){return $.length>0&&$.length<=255&&!$.includes("..")&&!$.endsWith("/")&&!$.endsWith(".lock")&&QB6.test($)}function Sd$($){return $.req.header("x-forwarded-host")??new URL($.req.url).host}async function Ms($){let Z=$.get("decofileScope");return zT0($.var.studioContext,Z.organizationId,Z.githubRepo)}function ks($,Z){if(Z instanceof d4){let Q=Z.status===404?404:Z.status===409?409:Z.status===422?409:502;return $.json({error:Z.message},Q)}let X=Z instanceof Error?Z.message:String(Z);return $.json({error:X},500)}function Cd$(){let $=new W1;return $.use("/:virtualMcpId/:branch",Vd$),$.use("/:virtualMcpId/:branch/*",Vd$),$.get("/:virtualMcpId/:branch",async(Z)=>{let X=Z.get("decofileScope");try{let Q=await Ms(Z),Y=await Gd$(Q,X.branch,X.packagePath,{createBranchIfMissing:!!X.userId}),G={ETag:`"${Y.sha}"`,"Cache-Control":"no-store","Access-Control-Allow-Origin":"*"};if(Z.req.header("if-none-match")===`"${Y.sha}"`)return Z.body(null,304,G);if(!X.userId)return Z.body(Y.decofile,200,{...G,"content-type":"application/json"});let J=o71({organizationId:X.organizationId,virtualMcpId:X.virtualMcpId,branch:X.branch});return Z.body(`{"version":${JSON.stringify(Y.sha)},"token":${JSON.stringify(J)},"apiHost":${JSON.stringify(Sd$(Z))},"decofile":${Y.decofile}}`,200,{...G,"content-type":"application/json"})}catch(Q){return ks(Z,Q)}}),$.get("/:virtualMcpId/:branch/meta",async(Z)=>{let X=Z.get("decofileScope"),Q=X.packagePath?`${X.packagePath}/.deco/meta.gen.json`:".deco/meta.gen.json";try{let Y=await Ms(Z),G=await Y.getFileTextAtRef(X.branch,Q);if(G===null){let J=await Y.getDefaultBranch();if(J!==X.branch)G=await Y.getFileTextAtRef(J,Q)}if(G===null)return Z.json({error:"meta.gen.json not committed"},404);return Z.body(G,200,{"content-type":"application/json","Cache-Control":"no-store","Access-Control-Allow-Origin":"*"})}catch(Y){return ks(Z,Y)}}),$.patch("/:virtualMcpId/:branch",JB6,async(Z)=>{let X=Z.get("decofileScope"),Q=Z.var.studioContext,Y=WB6.safeParse(await Z.req.json().catch(()=>null));if(!Y.success)return Z.json({error:"Invalid body",details:Y.error.issues},400);let G=Y.data;for(let J of[...Object.keys(G.set??{}),...G.delete??[]])try{PT0(J)}catch(W){let K=W instanceof Error?W.message:String(W);return Z.json({error:K},400)}for(let[J,W]of Object.entries(G.set??{})){if(typeof W!=="object"||W===null||Array.isArray(W))return Z.json({error:`Block "${J}" must be a JSON object`},400);if(x71(J))return Z.json({error:`Block key "${J}" collides with a framework resolver module and cannot be written`},400)}try{let J=await Ms(Z),W=await zd$(`${X.organizationId}/${X.virtualMcpId}/${X.branch}`,{client:J,branch:X.branch,packagePath:X.packagePath,coAuthor:eu(Q)},G),K=o71({organizationId:X.organizationId,virtualMcpId:X.virtualMcpId,branch:X.branch});return Z.json({version:W,token:K,apiHost:Sd$(Z)})}catch(J){return ks(Z,J)}}),$.post("/:virtualMcpId/:branch/publish",async(Z)=>{let X=Z.get("decofileScope");try{let Q=await Ms(Z),Y=await Q.getDefaultBranch();if(Y===X.branch)return Z.json({error:"Branch is already the default branch"},400);let G=`chore(decofile): publish ${X.branch}`;try{let J;try{J=await Q.mergeBranch(Y,X.branch,G)}catch(W){if(!(W instanceof d4&&W.status===409))throw W;await vT0(Q,X.branch,Y),J=await Q.mergeBranch(Y,X.branch,G)}return J?Z.json({result:"merged",sha:J}):Z.json({result:"up-to-date"})}catch(J){if(J instanceof d4&&J.status===409)return Z.json({error:"merge-conflict"},409);if(J instanceof d4&&J.status===405){let K=await Q.findOpenPullRequest(Y,X.branch)??await Q.createPullRequest({base:Y,head:X.branch,title:`Publish ${X.branch}`});return Z.json({result:"pull-request",number:K.number,url:K.html_url})}throw J}}catch(Q){return ks(Z,Q)}}),$.get("/:virtualMcpId/:branch/status",async(Z)=>{let X=Z.get("decofileScope");try{let Q=await Ms(Z),Y=await Q.getDefaultBranch();if(Y===X.branch)return Z.json({baseBranch:Y,aheadBy:0,behindBy:0,lastCommitAt:null});try{let[{aheadBy:G,behindBy:J},W]=await Promise.all([Q.compare(Y,X.branch),Q.getBranchHead(X.branch)]);return Z.json({baseBranch:Y,aheadBy:G,behindBy:J,lastCommitAt:W.committedAt})}catch(G){if(G instanceof d4&&G.status===404)return Z.json({baseBranch:Y,aheadBy:0,behindBy:0,lastCommitAt:null});throw G}}catch(Q){return ks(Z,Q)}}),$}var QB6,qd$=500,Md$=1048576,kd$=1024,GB6=8388608,JB6,WB6,Vd$;var _d$=D(()=>{Qt0();AT0();c$();MF();I71();jT0();p71();b71();Pd$();Id$();i71();rD();ST0();QB6=/^[a-zA-Z0-9][a-zA-Z0-9/._-]*$/;JB6=r5({maxSize:GB6,onError:($)=>$.json({error:"Payload too large"},413)}),WB6=Gl.object({set:Gl.record(Gl.string(),Gl.unknown()).optional(),delete:Gl.array(Gl.string()).optional()}).refine(($)=>Object.keys($.set??{}).length>0||($.delete?.length??0)>0,{message:"Patch must set or delete at least one block"}).refine(($)=>Object.keys($.set??{}).length+($.delete?.length??0)<=qd$,{message:`Patch cannot touch more than ${qd$} blocks`}).refine(($)=>Object.values($.set??{}).every((Z)=>JSON.stringify(Z).length<=Md$),{message:`Each block must be at most ${Md$} bytes`}).refine(($)=>[...Object.keys($.set??{}),...$.delete??[]].every((Z)=>Z.length<=kd$),{message:`Each block key must be at most ${kd$} characters`}),Vd$=ET0(async($,Z)=>{let X=$.var.studioContext,Q=X.organization;if(!Q)return $.json({error:"Organization scope required"},500);let Y=$.req.param("virtualMcpId"),G=$.req.param("branch");if(!Y||!G)return $.json({error:"virtualMcpId and branch are required"},400);if(!YB6(G))return $.json({error:`Invalid branch name: ${G}`},400);let J=X.auth?.user?.id??null;if(!J){let B=$.req.query("token");if(!($.req.method==="GET"&&!$.req.path.match(/\/(publish|status)$/)))return $.json({error:"Unauthorized"},401);if(!B||!Rd$(B,{organizationId:Q.id,virtualMcpId:Y,branch:G}))return $.json({error:"Unauthorized"},401)}let W=await X.storage.virtualMcps.findById(Y);if(!W||W.organization_id!==Q.id)return $.json({error:"Virtual MCP not found"},404);let K=W.metadata??null;if(!JD0(K))return $.json({error:"Project has no preview server configured"},404);let H=W.connections?.map((B)=>B.connection_id)??[],U=Is(K,H);if(!U)return $.json({error:"Project has no GitHub repository"},404);let N=K?.runtime;return $.set("decofileScope",{organizationId:Q.id,virtualMcpId:Y,branch:G,packagePath:N?.path?.replace(/^\/+|\/+$/g,"")||null,githubRepo:U,userId:J}),Z()})});var vd$=($)=>{let Z=new W1;if(Z.use("*",wv),Z.route("/",_A0()),Z.route("/",og$()),Z.route("/",Zc$()),Z.route("/",sl$()),Z.route("/",DT0()),Z.route("/tools",Kc$()),Z.route("/",Gc$()),Z.route("/",Cl$({kvStorage:$.kvStorage})),Z.route("/",Vl$()),Z.route("/fs",il$({getConnection:$.getNatsConnection})),Z.route("/sandbox",Ed$()),Z.route("/decofile",Cd$()),Z.route("/",ol$()),Z.route("/deco-sites",fA0()),Z.route("/hosting",gg$()),Z.route("/monitor",ig$()),Z.route("/sso",qA0()),Z.route("/",wT0({tokenStorage:$.tokenStorage,automationEventDispatcher:$.automationEventDispatcher})),Z.route("/webhooks",vg$()),$.mountDevAssets)Z.route("/dev-assets",gA0({orgFromPath:!0}));return Z.use("/mcp/:connectionId?",$.mcpAuth),Z.use("/mcp/:connectionId/ui-resource",$.mcpAuth),Z.use("/mcp/gateway/:virtualMcpId?",$.mcpAuth),Z.use("/mcp/virtual-mcp/:virtualMcpId?",$.mcpAuth),Z.use("/mcp/self",$.mcpAuth),Z.use("/mcp/task-run/:threadId",$.mcpAuth),Z.route("/",Xx$()),Z.get("/mcp/:gateway?/:connectionId/.well-known/oauth-protected-resource/*",$.betterAuthProtectedResourceHandler),Z.get("/mcp/.well-known/oauth-protected-resource",$.betterAuthProtectedResourceHandler),Z.route("/mcp/task-run",nl$()),Z.route("/mcp",bL0()),Z.route("/mcp/self",OT0()),Z.route("/mcp",gL0()),Z.all("/oauth-proxy/:connectionId/*",$.oauthProxyHandler),Z.get("/watch",$.watchHandler),Z};var fd$=D(()=>{c$();zA0();fg$();o91();hg$();pg$();hA0();na();m91();Sl$();_l$();pl$();tt();g91();hL0();E71();tl$();rl$();el$();Xc$();Jc$();z71();Fc$();P71();xL0();jd$();_d$()});function KB6($){return $.filter((Z)=>Z.vendors?.alias).map((Z)=>({name:Z.name,title:Z.title,description:Z.description,logo:Z.logo,category:Z.category,vendor:{alias:Z.vendors.alias,url:Z.vendors.url}}))}var FB6=async($,Z)=>{if(!$.get("studioContext").auth.user?.id)return $.json({error:"Unauthorized"},401);return Z()},bd$=()=>{let $=new W1;return $.use("*",FB6),$.get("/",async(Z)=>{let X=V0(),Q=X.decoSupabaseUrl,Y=X.decoSupabaseServiceKey;if(!Q||!Y)return Z.json({apps:[]});try{let G=await zY(Q,Y,"apps?select=name,title,description,logo,category,vendors(alias,url)");return Z.json({apps:KB6(G)})}catch(G){return console.error("[deco-apps] GET error:",G),Z.json({error:"Failed to fetch apps"},502)}}),$};var xd$=D(()=>{c$();D$();VP0()});import{z as q1}from"zod";function vF($,Z="invalid_request_error",X=null,Q=null){return{error:{message:$,type:Z,param:X,code:Q}}}function jB6($){if(!$)return null;let Z=$.indexOf(":");if(Z===-1)return{credentialId:null,modelId:$};let X=$.substring(0,Z),Q=$.substring(Z+1);if(!X||!Q)return null;return{credentialId:X,modelId:Q}}function zB6($,Z,X){try{return JSON.parse($)}catch{throw new hd$(`Invalid JSON in tool call arguments for function '${X}' (tool_call_id: ${Z}): ${$}`)}}function PB6($){let Z={};for(let X of $)if(X.role==="assistant"&&X.tool_calls)for(let Q of X.tool_calls)Z[Q.id]=Q.function.name;return $.map((X)=>{switch(X.role){case"system":return{role:"system",content:X.content};case"user":if(typeof X.content==="string")return{role:"user",content:X.content};return{role:"user",content:X.content.map((Y)=>{if(Y.type==="text")return{type:"text",text:Y.text};return{type:"image",image:Y.image_url.url}})};case"assistant":if(X.tool_calls&&X.tool_calls.length>0)return{role:"assistant",content:X.tool_calls.map((Y)=>({type:"tool-call",toolCallId:Y.id,toolName:Y.function.name,input:zB6(Y.function.arguments,Y.id,Y.function.name)}))};return{role:"assistant",content:X.content??""};case"tool":let Q=Z[X.tool_call_id]??"unknown";return{role:"tool",content:[{type:"tool-result",toolCallId:X.tool_call_id,toolName:Q,output:{type:"text",value:X.content}}]}}})}function AB6($){let Z=$.map((X)=>{let Q=X.function.parameters?aY(X.function.parameters):aY({type:"object",properties:{}});return[X.function.name,V$({description:X.function.description,inputSchema:Q})]});return Object.fromEntries(Z)}function TB6($){if(!$)return;return{openai:{response_format:$}}}function RB6(){return`chatcmpl-${crypto.randomUUID().replace(/-/g,"").substring(0,29)}`}function yd$($,Z,X,Q,Y,G){let J={model:$,messages:Z,tools:X,temperature:Q.temperature,maxTokens:Q.max_tokens,topP:Q.top_p,frequencyPenalty:Q.frequency_penalty,presencePenalty:Q.presence_penalty,stopSequences:Q.stop?Array.isArray(Q.stop)?Q.stop:[Q.stop]:void 0,abortSignal:G};return Y?{...J,providerOptions:Y}:J}function gd$($){if($==="tool-calls")return"tool_calls";if($==="length")return"length";return"stop"}var HB6=256,UB6,NB6,BB6,OB6,DB6,wB6,LB6,EB6,hd$,ud$,ld$;var cd$=D(()=>{g4();c$();su();SU();UB6=q1.object({type:q1.literal("function"),function:q1.object({name:q1.string(),description:q1.string().optional(),parameters:q1.record(q1.string(),q1.unknown()).optional()})}),NB6=q1.object({id:q1.string(),type:q1.literal("function"),function:q1.object({name:q1.string(),arguments:q1.string()})}),BB6=q1.discriminatedUnion("role",[q1.object({role:q1.literal("system"),content:q1.string(),name:q1.string().optional()}),q1.object({role:q1.literal("user"),content:q1.union([q1.string(),q1.array(q1.union([q1.object({type:q1.literal("text"),text:q1.string()}),q1.object({type:q1.literal("image_url"),image_url:q1.object({url:q1.string(),detail:q1.string().optional()})})]))]),name:q1.string().optional()}),q1.object({role:q1.literal("assistant"),content:q1.string().nullable().optional(),name:q1.string().optional(),tool_calls:q1.array(NB6).optional()}),q1.object({role:q1.literal("tool"),content:q1.string(),tool_call_id:q1.string()})]),OB6=q1.object({type:q1.literal("text")}),DB6=q1.object({type:q1.literal("json_object")}),wB6=q1.object({type:q1.literal("json_schema"),json_schema:q1.object({name:q1.string(),description:q1.string().optional(),schema:q1.record(q1.string(),q1.unknown()),strict:q1.boolean().optional()})}),LB6=q1.union([OB6,DB6,wB6]),EB6=q1.object({model:q1.string().describe("Format: 'model_id' or 'credential_id:model_id'"),messages:q1.array(BB6),stream:q1.boolean().optional().default(!1),temperature:q1.number().min(0).max(2).optional(),max_tokens:q1.number().positive().optional(),top_p:q1.number().min(0).max(1).optional(),frequency_penalty:q1.number().min(-2).max(2).optional(),presence_penalty:q1.number().min(-2).max(2).optional(),stop:q1.union([q1.string(),q1.array(q1.string())]).optional(),tools:q1.array(UB6).optional(),tool_choice:q1.union([q1.literal("auto"),q1.literal("none"),q1.literal("required"),q1.object({type:q1.literal("function"),function:q1.object({name:q1.string()})})]).optional(),response_format:LB6.optional(),user:q1.string().optional()});hd$=class hd$ extends Error{constructor($){super($);this.name="MessageConversionError"}};ud$=new W1;ud$.post("/:org/v1/chat/completions",async($)=>{let Z=$.get("studioContext"),X=$.req.param("org");try{if(!Z.auth.apiKey?.id)return $.json(vF("API key authentication required. Provide a valid API key via Authorization header.","authentication_error"),401);if(!Z.organization)return $.json(vF("Organization context is required. Ensure your API key has organization metadata.","invalid_request_error","organization"),400);if((Z.organization.slug??Z.organization.id)!==X)return $.json(vF("Organization mismatch. The API key's organization does not match the requested organization.","invalid_request_error","organization"),403);let Q=await $.req.json(),Y=EB6.safeParse(Q);if(!Y.success){let L=Y.error.issues[0]??{message:"Invalid request",path:[]};return $.json(vF(`Invalid request: ${L.message}`,"invalid_request_error",L.path.length>0?L.path.join("."):null),400)}let G=Y.data,J=jB6(G.model);if(!J)return $.json(vF("Invalid model format. Expected 'model_id' or 'credential_id:model_id' (e.g., 'claude-sonnet-4-6' or 'key_abc123:claude-sonnet-4-6')","invalid_request_error","model"),400);let{credentialId:W}=J,{modelId:K}=J;if(!W){let E=(await Z.storage.aiProviderKeys.list({organizationId:Z.organization.id})).find((j)=>BL(j.providerId));if(!E)return $.json(vF("No AI provider credentials configured for this organization. Add a credential in settings or specify one explicitly via 'credential_id:model_id'.","invalid_request_error","model"),400);W=E.id}let F;try{F=await Z.aiProviders.activate(W,Z.organization.id)}catch{return $.json(vF(`AI provider credential not found or inaccessible: ${W}`,"invalid_request_error","model"),404)}let H=F.aiSdk.languageModel(K),U=PB6(G.messages),N=G.tools?AB6(G.tools):void 0,B=TB6(G.response_format),O=RB6(),w=Math.floor(Date.now()/1000);if(G.stream)return sU($,async(L)=>{let E=yd$(H,U,N,G,B,$.req.raw.signal);try{let j=SO(E),z=!1,P=0,A="",I=async()=>{if(A.length===0)return;let k=A;A="",await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:w,model:G.model,choices:[{index:0,delta:{content:k},finish_reason:null}]})})};for await(let k of j.fullStream){if(!z&&(k.type==="text-delta"||k.type==="tool-call"))await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:w,model:G.model,choices:[{index:0,delta:{role:"assistant",content:""},finish_reason:null}]})}),z=!0;if(k.type==="text-delta"){if(A+=k.text,A.length>=HB6)await I()}else if(k.type==="tool-call"){await I();let M=P++;await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:w,model:G.model,choices:[{index:0,delta:{tool_calls:[{index:M,id:k.toolCallId,type:"function",function:{name:k.toolName,arguments:JSON.stringify(k.input)}}]},finish_reason:null}]})})}else if(k.type==="finish")await I(),await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:w,model:G.model,choices:[{index:0,delta:{},finish_reason:gd$(k.finishReason)}],usage:k.totalUsage?{prompt_tokens:k.totalUsage.inputTokens??0,completion_tokens:k.totalUsage.outputTokens??0,total_tokens:k.totalUsage.totalTokens??0}:void 0})})}await I(),await L.writeSSE({data:"[DONE]"})}catch(j){let z=j;console.error("[openai-compat:stream] Error:",z.message),await L.writeSSE({data:JSON.stringify({error:{message:z.message,type:"server_error"}})})}});else{let L=yd$(H,U,N,G,B,$.req.raw.signal),E=await kO(L),j={role:"assistant",content:E.text||null};if(E.toolCalls&&E.toolCalls.length>0)j.tool_calls=E.toolCalls.map((z)=>({id:z.toolCallId,type:"function",function:{name:z.toolName,arguments:JSON.stringify("input"in z?z.input:{})}})),j.content=null;return $.json({id:O,object:"chat.completion",created:w,model:G.model,choices:[{index:0,message:j,finish_reason:gd$(E.finishReason)}],usage:{prompt_tokens:E.usage?.inputTokens??0,completion_tokens:E.usage?.outputTokens??0,total_tokens:E.usage?.totalTokens??0}})}}catch(Q){let Y=Q;if(Y.name==="AbortError")return $.json(vF("Request aborted","invalid_request_error"),400);if(Y.name==="MessageConversionError")return $.json(vF(Y.message,"invalid_request_error","messages"),400);return console.error("[openai-compat] Error:",Y.message,Y.stack),$.json(vF(Y.message,"server_error"),500)}});ld$=ud$});function IB6($){if(typeof $!=="object"||$===null)return!1;let X=$.githubRepo?.url;return typeof X==="string"&&X.length>0}function dd$(){let $=new W1;return $.use("*",async(Z,X)=>{await X(),Z.header("Cache-Control","private, no-store"),Z.header("Vary","Cookie")}),$.get("/",async(Z)=>{let X=Z.get("studioContext"),Q=t0(X);if(!Q)return Z.json({error:"Authentication required"},401);let G=(Z.req.query("site")??"").trim().toLowerCase();if(!aX(G))return Z.json({error:"Invalid site slug"},400);let J=await X.db.selectFrom("member").innerJoin("organization","organization.id","member.organizationId").select(["organization.id as id","organization.slug as slug","organization.name as name","organization.metadata as metadata"]).where("member.userId","=",Q).execute(),W=[];for(let F of J){if(!F.slug||m9(F))continue;let H=await X.storage.virtualMcps.list(F.id);for(let U of H){if(he1(U)!==G)continue;if(!IB6(U.metadata))continue;W.push({orgSlug:F.slug,orgName:F.name??F.slug,project:{id:U.id,title:U.title,icon:U.icon??null}})}}let K={matches:W};return Z.json(K)}),$}var md$=D(()=>{c$();hH()});var pd$;var id$=D(()=>{pd$={name:"decocms",version:"4.325.3",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/api"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:"bun run migrate && bun run dev:server","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts",build:"bun run build:server","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","generate:tool-contracts":"bun run scripts/generate-tool-contracts.ts","db:migrate":"bun run ./dist/server/migrate.js","db:migrate:dbos":"bun run ./dist/server/migrate-dbos.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts","migrate:dbos":"bun run src/database/migrate-dbos.ts",test:"bun test src","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts",prepublishOnly:"bun run --cwd=../.. build:studio"},optionalDependencies:{"@duckdb/node-api":"^1.5.0-r.1"},dependencies:{"@ai-sdk/anthropic":"^3.0.85","@ai-sdk/google":"^3.0.83","@ai-sdk/openai":"^3.0.73","@anthropic-ai/sdk":"^0.105.0","@aws-sdk/client-s3":"^3.1013.0","@aws-sdk/client-sts":"^3.1013.0","@aws-sdk/lib-storage":"^3.1013.0","@aws-sdk/s3-request-presigner":"^3.1013.0","@clickhouse/client":"^1.8.1","@dbos-inc/dbos-sdk":"^4.21.6","@inkjs/ui":"^2.0.0","@nats-io/jetstream":"3.4.0","@nats-io/kv":"3.4.0","@nats-io/nats-core":"3.4.0","@nats-io/transport-node":"3.4.0","@openrouter/ai-sdk-provider":"^2.9.1","@opentelemetry/core":"^2.6.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12","posthog-node":"^5.0.0",react:"^19.2.6","react-dom":"^19.2.6"},devDependencies:{"@ai-sdk/provider":"^3.0.10","@better-auth/sso":"1.4.1","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/runtime":"workspace:*","@decocms/sandbox":"workspace:*","@decocms/shared":"workspace:*","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.29.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/resources":"^2.6.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","@types/bun":"^1.3.1","@types/google.maps":"^3.65.2","@types/pg":"^8.15.6","@types/react-syntax-highlighter":"^15.5.13","@vercel/nft":"^1.1.1",ai:"^6.0.208","better-auth":"1.4.22",croner:"^9.1.0",degit:"^2.8.4",hono:"^4.10.7",jose:"^6.0.11",nanoid:"^5.1.6",pg:"^8.16.3",typescript:"^7.0.2",typescript5:"npm:typescript@^5.9.3",zod:"4.3.6"},homepage:"https://github.com/decocms/studio",keywords:["mcp","model-context-protocol","ai","gateway","self-hosted","tools"],license:"MIT",publishConfig:{access:"public"}}});function kB6(){let $=process.env.POSTHOG_KEY;if(!$)return null;return{key:$,host:process.env.POSTHOG_HOST??MB6}}var nd$,MB6="https://ph.studio.decocms.com",td$;var od$=D(()=>{c$();$90();eC();h5();D$();q91();id$();nd$=new W1;nd$.get("/",($)=>{let Z={version:pd$.version,theme:Zp1(),..._H().logo&&{logo:_H().logo},...LU()&&{internalUrl:M_1()},...V0().enableDecoImport&&{enableDecoImport:!0},brandExtractEnabled:!!V0().firecrawlApiKey,hostingEnabled:!!V0().controlplaneRestUrl&&!!V0().controlplaneServiceToken,hostingControlPlaneGa:V0().hostingControlPlaneGa,monitorEnabled:!!V0().clickhouseAnalyticsUrl&&!!V0().clickhouseAnalyticsPassword,monitorGa:V0().monitorGa,auth:gy$(),posthog:kB6(),googleMapsApiKey:process.env.GOOGLE_MAPS_API_KEY?.trim()||null,runtime:{agentSandbox:xs()}};return $.header("Cache-Control","no-store"),$.json({success:!0,config:Z})});td$=nd$});function Jl($){let Z=($??"").trim().toLowerCase();return Z=Z.replace(/^https?:\/\//,""),Z=Z.replace(/^www\./,""),Z=Z.split(/[/?#]/)[0]??"",Z.replace(/\/+$/,"")}function r71($){return(Jl($).split(".")[0]||$).replace(/[-_]/g," ").split(" ").filter(Boolean).map((X)=>X.charAt(0).toUpperCase()+X.slice(1)).join(" ")}function ad$($,Z=64){return`https://www.google.com/s2/favicons?domain=${encodeURIComponent(Jl($))}&sz=${Z}`}function rd$($,Z){let X=$.trim();if(X.length<=Z)return X;let Q=X.slice(0,Z-1),Y=Q.lastIndexOf(" ");return`${(Y>Z*0.6?Q.slice(0,Y):Q).trimEnd()}\u2026`}function sd$($){let{brand:Z,domain:X,score:Q,verdict:Y}=$,G=typeof Q==="number"?`${Z} commerce report \u2014 ${Math.round(Q)}/100 \xB7 decocms`:`${Z} commerce report \xB7 decocms`,J=`See the full ${Z} scorecard \u2014 SEO, performance, conversion & AEO signals scored by decocms.`,W=Y?.trim()?rd$(`${Y.trim().replace(/\s+/g," ")} \u2014 ${J}`,200):rd$(`How does ${X} really perform? ${J}`,200);return{title:G,description:W}}import{z as u0}from"zod";var Cv,VB6,SB6,CB6,_B6,ed$;var $m$=D(()=>{Cv=u0.enum(["good","bad","neutral"]),VB6=u0.preprocess(($)=>{if(Array.isArray($))return{kind:"text",value:$.find((X)=>X!==null&&typeof X!=="object")??""};return $!==null&&typeof $==="object"?$:{kind:"text",value:$}},u0.object({kind:u0.enum(["text","number","sparkline","badge","score"]).catch("text"),value:u0.coerce.string().optional(),tone:Cv.optional(),muted:u0.boolean().optional(),delta:u0.coerce.string().optional(),deltaDir:u0.enum(["up","down","neutral"]).optional(),points:u0.array(u0.coerce.number()).optional(),label:u0.coerce.string().optional()}).transform(($)=>{if($.kind==="badge"&&$.label==null)$.label=$.value??"";if($.kind==="score"){let Z=Number($.value);if(Number.isNaN(Z))return{...$,kind:"text"}}return $})),SB6=u0.preprocess(($)=>{let Z=$;if(Z&&typeof Z==="object"&&!Array.isArray(Z)&&Array.isArray(Z.cells))Z=Z.cells;if(Array.isArray(Z)&&Z.length===1&&Array.isArray(Z[0]))Z=Z[0];if(Array.isArray(Z))return Z;if(Z&&typeof Z==="object")return Object.values(Z);return Z},u0.array(VB6)),CB6={key:u0.coerce.string(),title:u0.coerce.string(),eyebrow:u0.coerce.string().optional(),headline:u0.coerce.string(),annotation:u0.coerce.string().optional(),methodology:u0.coerce.string().optional(),sources:u0.array(u0.object({name:u0.coerce.string(),logoUrl:u0.coerce.string()})).optional()},_B6=u0.discriminatedUnion("template",[u0.object({template:u0.literal("cover"),score:u0.object({value:u0.coerce.number(),max:u0.coerce.number().optional(),grade:u0.coerce.string().optional(),label:u0.coerce.string().optional()}).optional(),brandImage:u0.coerce.string().optional(),screenshot:u0.coerce.string().optional(),mobileScreenshot:u0.coerce.string().optional()}),u0.object({template:u0.literal("cta"),ctaUrl:u0.coerce.string().optional(),ctaLabel:u0.coerce.string().optional(),bullets:u0.array(u0.coerce.string()).optional()}),u0.object({template:u0.literal("series"),points:u0.array(u0.coerce.number()).min(2),xLabels:u0.array(u0.coerce.string()).min(1),unit:u0.coerce.string().optional(),callout:u0.object({index:u0.coerce.number(),value:u0.coerce.string(),tone:Cv.optional()})}),u0.object({template:u0.literal("threshold"),value:u0.coerce.string().default(""),metricLabel:u0.coerce.string().optional(),ratio:u0.coerce.number(),thresholdRatio:u0.coerce.number().optional(),thresholdLabel:u0.coerce.string().default(""),tone:Cv.optional()}),u0.object({template:u0.literal("stats"),stats:u0.array(u0.object({value:u0.coerce.string(),label:u0.coerce.string(),tone:Cv.optional()})).min(1)}),u0.object({template:u0.literal("bars"),items:u0.array(u0.object({value:u0.coerce.string(),label:u0.coerce.string(),ratio:u0.coerce.number(),tone:Cv.optional()})).min(1)}),u0.object({template:u0.literal("gauges"),gauges:u0.array(u0.object({label:u0.coerce.string(),value:u0.coerce.string(),status:u0.enum(["good","warn","bad"]).catch("warn"),caption:u0.coerce.string().optional(),ratio:u0.coerce.number().optional()})).min(1)}),u0.object({template:u0.literal("checklist"),checks:u0.array(u0.object({label:u0.coerce.string(),status:u0.enum(["pass","fail","warn"]).catch("fail"),value:u0.coerce.string().optional()})).min(1)}),u0.object({template:u0.literal("table"),columns:u0.array(u0.object({label:u0.coerce.string(),align:u0.enum(["left","right"]).optional()})).min(1),rows:u0.array(SB6).min(1),highlightRow:u0.coerce.number().optional()}),u0.object({template:u0.literal("products"),products:u0.array(u0.object({name:u0.coerce.string(),price:u0.coerce.string().optional(),image:u0.coerce.string().optional(),url:u0.coerce.string().optional()})).min(1)}),u0.object({template:u0.literal("list"),entries:u0.array(u0.object({label:u0.coerce.string(),severity:u0.enum(["error","warning","notice"]).catch("notice")})).min(1),moreCount:u0.coerce.number().optional()}),u0.object({template:u0.literal("keywords"),volumeLabel:u0.coerce.string().optional(),keywords:u0.array(u0.object({term:u0.coerce.string(),volume:u0.coerce.string(),position:u0.coerce.number().catch(0)})).min(1)}),u0.object({template:u0.literal("competitor"),metricLabel:u0.coerce.string().optional(),competitors:u0.array(u0.object({name:u0.coerce.string(),value:u0.coerce.string(),tone:Cv.optional(),isYou:u0.boolean().optional()})).min(1)}),u0.object({template:u0.literal("scorecard"),rivalLabel:u0.coerce.string().optional(),dimensions:u0.array(u0.object({label:u0.coerce.string(),you:u0.coerce.string(),rival:u0.coerce.string().optional(),rivalName:u0.coerce.string().optional(),tone:Cv.optional()})).min(1)})]),ed$=u0.object({...CB6,template:_B6})});function yT0($){let Z=[],X=[...$.sections].sort((Y,G)=>Y.position-G.position).map((Y)=>{let G=ed$.safeParse(Y.props);if(G.success)return G.data;let J=G.error.issues[0];return Z.push({section_type:Y.section_type,position:Y.position,reason:J?`${J.path.join(".")||"(root)"}: ${J.message}`:"contract violation"}),null}).filter((Y)=>Y!==null),Q=X.filter((Y)=>Y.template.template!=="cover"&&Y.template.template!=="cta").map((Y)=>({key:Y.key,title:Y.title}));return{deck:{meta:{...$.meta,scores:$.summary?.scores,scannedAt:$.scanned_at,toc:Q},slides:X},drops:Z}}var a71=D(()=>{$m$()});import{join as Zm$}from"path";async function fB6($){try{let Z=await fetch(`${DK({})}/api/v2/public/diagnostics/${encodeURIComponent($)}`,{headers:{Accept:"application/json"},signal:AbortSignal.timeout(vB6)});if(!Z.ok)return null;let X=await Z.json(),{deck:Q}=yT0(X);if(!Q.slides.length)return null;let Y=Q.slides.find((W)=>W.template.template==="cover"),G=Y?.template,J=G&&G.template==="cover"?G:void 0;return{brand:Q.meta.brand?.trim()||r71($),score:Q.meta.scores?.cover??J?.score?.value,verdict:Y?.annotation?.trim()||Y?.headline?.trim()||void 0}}catch{return null}}function TG($){return $.replaceAll("&","&amp;").replaceAll("<","&lt;").replaceAll(">","&gt;").replaceAll('"',"&quot;")}function bB6($,Z){let X=Jl($),Q=Z?.brand?.trim()||r71(X),Y=ad$(X,128),J=`${(V0().baseUrl??"https://studio.decocms.com").replace(/\/+$/,"")}/report/${encodeURIComponent(X)}`,{title:W,description:K}=sd$({brand:Q,domain:X,score:Z?.score,verdict:Z?.verdict}),F=`${J}/og.png`,H=`${Q} commerce report by decocms`;return[`<title>${TG(W)}</title>`,`<meta name="description" content="${TG(K)}" />`,'<meta name="robots" content="noindex, follow" />','<meta property="og:type" content="website" />','<meta property="og:site_name" content="decocms" />',`<meta property="og:title" content="${TG(W)}" />`,`<meta property="og:description" content="${TG(K)}" />`,`<meta property="og:url" content="${TG(J)}" />`,`<meta property="og:image" content="${TG(F)}" />`,'<meta property="og:image:width" content="1200" />','<meta property="og:image:height" content="630" />',`<meta property="og:image:alt" content="${TG(H)}" />`,'<meta name="twitter:card" content="summary_large_image" />',`<meta name="twitter:title" content="${TG(W)}" />`,`<meta name="twitter:description" content="${TG(K)}" />`,`<meta name="twitter:image" content="${TG(F)}" />`,`<meta name="twitter:image:alt" content="${TG(H)}" />`,`<link rel="canonical" href="${TG(J)}" />`,`<link rel="icon" href="${TG(Y)}" sizes="any" />`].join(`
2983
+ `,j=await Z.createBlob(E);await Yd$(Z.owner,Z.repo,j,E);let z=L[0]??`${VT0(Q)}/${y71(O)}.json`;F.push({path:z,mode:"100644",type:"blob",sha:j});let P=z.slice(z.lastIndexOf("/")+1,-5);H.set(z,{stem:P,sha:j,content:E});for(let A of L.slice(1))F.push({path:A,mode:"100644",type:"blob",sha:null}),H.delete(A)}for(let O of $.del)for(let w of d71(K,O))F.push({path:w,mode:"100644",type:"blob",sha:null}),H.delete(w);if(F.length===0)return G;let U=Q?`${Q}/.deco/blocks.gen.json`:".deco/blocks.gen.json";if(W.some((O)=>O.type==="blob"&&O.path===U)){let O=await Promise.all([...H.values()].map(async(j)=>({stem:j.stem,content:j.content??await Z.getBlobText(j.sha)}))),{decofile:w,skipped:L}=Ps(O);if(L.length>0)console.warn("decofile gen: dropped blocks that were not valid JSON",{repo:`${Z.owner}/${Z.repo}`,branch:X,packagePath:Q,blocks:L.map((j)=>j.key)});let E=await Z.createBlob(w);F.push({path:U,mode:"100644",type:"blob",sha:E})}let N=await Z.createTree(J,F),B=await Z.createCommit({message:eN6($),treeSha:N,parentShas:[G]});try{return await Z.updateRef(X,B),B}catch(O){if(!(O instanceof d4&&O.status===422)||Y>=rN6-1)throw O;await L$($7(2000,200,Y,2,0.5))}}}function eN6($){let Z=(Y)=>{let G=Y.slice(0,3).join(", ");return Y.length>3?`${G} (+${Y.length-3} more)`:G},X=[];if($.set.size>0)X.push(`update ${Z([...$.set.keys()])}`);if($.del.size>0)X.push(`delete ${Z([...$.del])}`);let Q=`chore(decofile): ${X.join("; ")}`;return ji0(Q,$.deps.coAuthor)}var rN6=3,t71;var Pd$=D(()=>{P70();AT0();a8();rD();ST0();t71=new Map});import{createHmac as Ad$,randomBytes as $B6,timingSafeEqual as ZB6}from"crypto";function Td$(){if(xT0)return xT0;let $;try{let Z=V0();$=Z.studioJwtSecret??Z.betterAuthSecret}catch{$=void 0}return xT0=$?Buffer.from($):$B6(32),xT0}function o71($){let Z=$.nowMs??Date.now(),X={o:$.organizationId,m:$.virtualMcpId,b:$.branch,e:Math.floor((Z+XB6)/1000)},Q=Buffer.from(JSON.stringify(X)).toString("base64url"),Y=Ad$("sha256",Td$()).update(Q).digest("base64url");return`${Q}.${Y}`}function Rd$($,Z){let X=$.indexOf(".");if(X<0)return!1;let Q=$.slice(0,X),Y=Buffer.from($.slice(X+1)),G=Buffer.from(Ad$("sha256",Td$()).update(Q).digest("base64url"));if(Y.length!==G.length||!ZB6(Y,G))return!1;let J;try{J=JSON.parse(Buffer.from(Q,"base64url").toString())}catch{return!1}let W=Math.floor((Z.nowMs??Date.now())/1000);return J.o===Z.organizationId&&J.m===Z.virtualMcpId&&J.b===Z.branch&&typeof J.e==="number"&&J.e>=W}var XB6=21600000,xT0=null;var Id$=D(()=>{D$()});import{z as Gl}from"zod";function YB6($){return $.length>0&&$.length<=255&&!$.includes("..")&&!$.endsWith("/")&&!$.endsWith(".lock")&&QB6.test($)}function Sd$($){return $.req.header("x-forwarded-host")??new URL($.req.url).host}async function Ms($){let Z=$.get("decofileScope");return zT0($.var.studioContext,Z.organizationId,Z.githubRepo)}function ks($,Z){if(Z instanceof d4){let Q=Z.status===404?404:Z.status===409?409:Z.status===422?409:502;return $.json({error:Z.message},Q)}let X=Z instanceof Error?Z.message:String(Z);return $.json({error:X},500)}function Cd$(){let $=new W1;return $.use("/:virtualMcpId/:branch",Vd$),$.use("/:virtualMcpId/:branch/*",Vd$),$.get("/:virtualMcpId/:branch",async(Z)=>{let X=Z.get("decofileScope");try{let Q=await Ms(Z),Y=await Gd$(Q,X.branch,X.packagePath,{createBranchIfMissing:!!X.userId}),G={ETag:`"${Y.sha}"`,"Cache-Control":"no-store","Access-Control-Allow-Origin":"*"};if(Z.req.header("if-none-match")===`"${Y.sha}"`)return Z.body(null,304,G);if(!X.userId)return Z.body(Y.decofile,200,{...G,"content-type":"application/json"});let J=o71({organizationId:X.organizationId,virtualMcpId:X.virtualMcpId,branch:X.branch});return Z.body(`{"version":${JSON.stringify(Y.sha)},"token":${JSON.stringify(J)},"apiHost":${JSON.stringify(Sd$(Z))},"decofile":${Y.decofile}}`,200,{...G,"content-type":"application/json"})}catch(Q){return ks(Z,Q)}}),$.get("/:virtualMcpId/:branch/meta",async(Z)=>{let X=Z.get("decofileScope"),Q=X.packagePath?`${X.packagePath}/.deco/meta.gen.json`:".deco/meta.gen.json";try{let Y=await Ms(Z),G=await Y.getFileTextAtRef(X.branch,Q);if(G===null){let J=await Y.getDefaultBranch();if(J!==X.branch)G=await Y.getFileTextAtRef(J,Q)}if(G===null)return Z.json({error:"meta.gen.json not committed"},404);return Z.body(G,200,{"content-type":"application/json","Cache-Control":"no-store","Access-Control-Allow-Origin":"*"})}catch(Y){return ks(Z,Y)}}),$.patch("/:virtualMcpId/:branch",JB6,async(Z)=>{let X=Z.get("decofileScope"),Q=Z.var.studioContext,Y=WB6.safeParse(await Z.req.json().catch(()=>null));if(!Y.success)return Z.json({error:"Invalid body",details:Y.error.issues},400);let G=Y.data;for(let J of[...Object.keys(G.set??{}),...G.delete??[]])try{PT0(J)}catch(W){let K=W instanceof Error?W.message:String(W);return Z.json({error:K},400)}for(let[J,W]of Object.entries(G.set??{})){if(typeof W!=="object"||W===null||Array.isArray(W))return Z.json({error:`Block "${J}" must be a JSON object`},400);if(x71(J))return Z.json({error:`Block key "${J}" collides with a framework resolver module and cannot be written`},400)}try{let J=await Ms(Z),W=await zd$(`${X.organizationId}/${X.virtualMcpId}/${X.branch}`,{client:J,branch:X.branch,packagePath:X.packagePath,coAuthor:eu(Q)},G),K=o71({organizationId:X.organizationId,virtualMcpId:X.virtualMcpId,branch:X.branch});return Z.json({version:W,token:K,apiHost:Sd$(Z)})}catch(J){return ks(Z,J)}}),$.post("/:virtualMcpId/:branch/publish",async(Z)=>{let X=Z.get("decofileScope");try{let Q=await Ms(Z),Y=await Q.getDefaultBranch();if(Y===X.branch)return Z.json({error:"Branch is already the default branch"},400);let G=`chore(decofile): publish ${X.branch}`;try{let J;try{J=await Q.mergeBranch(Y,X.branch,G)}catch(W){if(!(W instanceof d4&&W.status===409))throw W;await vT0(Q,X.branch,Y),J=await Q.mergeBranch(Y,X.branch,G)}return J?Z.json({result:"merged",sha:J}):Z.json({result:"up-to-date"})}catch(J){if(J instanceof d4&&J.status===409)return Z.json({error:"merge-conflict"},409);if(J instanceof d4&&J.status===405){let K=await Q.findOpenPullRequest(Y,X.branch)??await Q.createPullRequest({base:Y,head:X.branch,title:`Publish ${X.branch}`});return Z.json({result:"pull-request",number:K.number,url:K.html_url})}throw J}}catch(Q){return ks(Z,Q)}}),$.get("/:virtualMcpId/:branch/status",async(Z)=>{let X=Z.get("decofileScope");try{let Q=await Ms(Z),Y=await Q.getDefaultBranch();if(Y===X.branch)return Z.json({baseBranch:Y,aheadBy:0,behindBy:0,lastCommitAt:null});try{let[{aheadBy:G,behindBy:J},W]=await Promise.all([Q.compare(Y,X.branch),Q.getBranchHead(X.branch)]);return Z.json({baseBranch:Y,aheadBy:G,behindBy:J,lastCommitAt:W.committedAt})}catch(G){if(G instanceof d4&&G.status===404)return Z.json({baseBranch:Y,aheadBy:0,behindBy:0,lastCommitAt:null});throw G}}catch(Q){return ks(Z,Q)}}),$}var QB6,qd$=500,Md$=1048576,kd$=1024,GB6=8388608,JB6,WB6,Vd$;var _d$=D(()=>{Qt0();AT0();c$();MF();I71();jT0();p71();b71();Pd$();Id$();i71();rD();ST0();QB6=/^[a-zA-Z0-9][a-zA-Z0-9/._-]*$/;JB6=r5({maxSize:GB6,onError:($)=>$.json({error:"Payload too large"},413)}),WB6=Gl.object({set:Gl.record(Gl.string(),Gl.unknown()).optional(),delete:Gl.array(Gl.string()).optional()}).refine(($)=>Object.keys($.set??{}).length>0||($.delete?.length??0)>0,{message:"Patch must set or delete at least one block"}).refine(($)=>Object.keys($.set??{}).length+($.delete?.length??0)<=qd$,{message:`Patch cannot touch more than ${qd$} blocks`}).refine(($)=>Object.values($.set??{}).every((Z)=>JSON.stringify(Z).length<=Md$),{message:`Each block must be at most ${Md$} bytes`}).refine(($)=>[...Object.keys($.set??{}),...$.delete??[]].every((Z)=>Z.length<=kd$),{message:`Each block key must be at most ${kd$} characters`}),Vd$=ET0(async($,Z)=>{let X=$.var.studioContext,Q=X.organization;if(!Q)return $.json({error:"Organization scope required"},500);let Y=$.req.param("virtualMcpId"),G=$.req.param("branch");if(!Y||!G)return $.json({error:"virtualMcpId and branch are required"},400);if(!YB6(G))return $.json({error:`Invalid branch name: ${G}`},400);let J=X.auth?.user?.id??null;if(!J){let B=$.req.query("token");if(!($.req.method==="GET"&&!$.req.path.match(/\/(publish|status)$/)))return $.json({error:"Unauthorized"},401);if(!B||!Rd$(B,{organizationId:Q.id,virtualMcpId:Y,branch:G}))return $.json({error:"Unauthorized"},401)}let W=await X.storage.virtualMcps.findById(Y);if(!W||W.organization_id!==Q.id)return $.json({error:"Virtual MCP not found"},404);let K=W.metadata??null;if(!JD0(K))return $.json({error:"Project has no preview server configured"},404);let H=W.connections?.map((B)=>B.connection_id)??[],U=Is(K,H);if(!U)return $.json({error:"Project has no GitHub repository"},404);let N=K?.runtime;return $.set("decofileScope",{organizationId:Q.id,virtualMcpId:Y,branch:G,packagePath:N?.path?.replace(/^\/+|\/+$/g,"")||null,githubRepo:U,userId:J}),Z()})});var vd$=($)=>{let Z=new W1;if(Z.use("*",wv),Z.route("/",_A0()),Z.route("/",og$()),Z.route("/",Zc$()),Z.route("/",sl$()),Z.route("/",DT0()),Z.route("/tools",Kc$()),Z.route("/",Gc$()),Z.route("/",Cl$({kvStorage:$.kvStorage})),Z.route("/",Vl$()),Z.route("/fs",il$({getConnection:$.getNatsConnection})),Z.route("/sandbox",Ed$()),Z.route("/decofile",Cd$()),Z.route("/",ol$()),Z.route("/deco-sites",fA0()),Z.route("/hosting",gg$()),Z.route("/monitor",ig$()),Z.route("/sso",qA0()),Z.route("/",wT0({tokenStorage:$.tokenStorage,automationEventDispatcher:$.automationEventDispatcher})),Z.route("/webhooks",vg$()),$.mountDevAssets)Z.route("/dev-assets",gA0({orgFromPath:!0}));return Z.use("/mcp/:connectionId?",$.mcpAuth),Z.use("/mcp/:connectionId/ui-resource",$.mcpAuth),Z.use("/mcp/gateway/:virtualMcpId?",$.mcpAuth),Z.use("/mcp/virtual-mcp/:virtualMcpId?",$.mcpAuth),Z.use("/mcp/self",$.mcpAuth),Z.use("/mcp/task-run/:threadId",$.mcpAuth),Z.route("/",Xx$()),Z.get("/mcp/:gateway?/:connectionId/.well-known/oauth-protected-resource/*",$.betterAuthProtectedResourceHandler),Z.get("/mcp/.well-known/oauth-protected-resource",$.betterAuthProtectedResourceHandler),Z.route("/mcp/task-run",nl$()),Z.route("/mcp",bL0()),Z.route("/mcp/self",OT0()),Z.route("/mcp",gL0()),Z.all("/oauth-proxy/:connectionId/*",$.oauthProxyHandler),Z.get("/watch",$.watchHandler),Z};var fd$=D(()=>{c$();zA0();fg$();o91();hg$();pg$();hA0();na();m91();Sl$();_l$();pl$();tt();g91();hL0();E71();tl$();rl$();el$();Xc$();Jc$();z71();Fc$();P71();xL0();jd$();_d$()});function KB6($){return $.filter((Z)=>Z.vendors?.alias).map((Z)=>({name:Z.name,title:Z.title,description:Z.description,logo:Z.logo,category:Z.category,vendor:{alias:Z.vendors.alias,url:Z.vendors.url}}))}var FB6=async($,Z)=>{if(!$.get("studioContext").auth.user?.id)return $.json({error:"Unauthorized"},401);return Z()},bd$=()=>{let $=new W1;return $.use("*",FB6),$.get("/",async(Z)=>{let X=V0(),Q=X.decoSupabaseUrl,Y=X.decoSupabaseServiceKey;if(!Q||!Y)return Z.json({apps:[]});try{let G=await zY(Q,Y,"apps?select=name,title,description,logo,category,vendors(alias,url)");return Z.json({apps:KB6(G)})}catch(G){return console.error("[deco-apps] GET error:",G),Z.json({error:"Failed to fetch apps"},502)}}),$};var xd$=D(()=>{c$();D$();VP0()});import{z as q1}from"zod";function vF($,Z="invalid_request_error",X=null,Q=null){return{error:{message:$,type:Z,param:X,code:Q}}}function jB6($){if(!$)return null;let Z=$.indexOf(":");if(Z===-1)return{credentialId:null,modelId:$};let X=$.substring(0,Z),Q=$.substring(Z+1);if(!X||!Q)return null;return{credentialId:X,modelId:Q}}function zB6($,Z,X){try{return JSON.parse($)}catch{throw new hd$(`Invalid JSON in tool call arguments for function '${X}' (tool_call_id: ${Z}): ${$}`)}}function PB6($){let Z={};for(let X of $)if(X.role==="assistant"&&X.tool_calls)for(let Q of X.tool_calls)Z[Q.id]=Q.function.name;return $.map((X)=>{switch(X.role){case"system":return{role:"system",content:X.content};case"user":if(typeof X.content==="string")return{role:"user",content:X.content};return{role:"user",content:X.content.map((Y)=>{if(Y.type==="text")return{type:"text",text:Y.text};return{type:"image",image:Y.image_url.url}})};case"assistant":if(X.tool_calls&&X.tool_calls.length>0)return{role:"assistant",content:X.tool_calls.map((Y)=>({type:"tool-call",toolCallId:Y.id,toolName:Y.function.name,input:zB6(Y.function.arguments,Y.id,Y.function.name)}))};return{role:"assistant",content:X.content??""};case"tool":let Q=Z[X.tool_call_id]??"unknown";return{role:"tool",content:[{type:"tool-result",toolCallId:X.tool_call_id,toolName:Q,output:{type:"text",value:X.content}}]}}})}function AB6($){let Z=$.map((X)=>{let Q=X.function.parameters?aY(X.function.parameters):aY({type:"object",properties:{}});return[X.function.name,V$({description:X.function.description,inputSchema:Q})]});return Object.fromEntries(Z)}function TB6($){if(!$)return;return{openai:{response_format:$}}}function RB6(){return`chatcmpl-${crypto.randomUUID().replace(/-/g,"").substring(0,29)}`}function yd$($,Z,X,Q,Y,G){let J={model:$,messages:Z,tools:X,temperature:Q.temperature,maxTokens:Q.max_tokens,topP:Q.top_p,frequencyPenalty:Q.frequency_penalty,presencePenalty:Q.presence_penalty,stopSequences:Q.stop?Array.isArray(Q.stop)?Q.stop:[Q.stop]:void 0,abortSignal:G};return Y?{...J,providerOptions:Y}:J}function gd$($){if($==="tool-calls")return"tool_calls";if($==="length")return"length";return"stop"}var HB6=256,UB6,NB6,BB6,OB6,DB6,wB6,LB6,EB6,hd$,ud$,ld$;var cd$=D(()=>{g4();c$();su();SU();UB6=q1.object({type:q1.literal("function"),function:q1.object({name:q1.string(),description:q1.string().optional(),parameters:q1.record(q1.string(),q1.unknown()).optional()})}),NB6=q1.object({id:q1.string(),type:q1.literal("function"),function:q1.object({name:q1.string(),arguments:q1.string()})}),BB6=q1.discriminatedUnion("role",[q1.object({role:q1.literal("system"),content:q1.string(),name:q1.string().optional()}),q1.object({role:q1.literal("user"),content:q1.union([q1.string(),q1.array(q1.union([q1.object({type:q1.literal("text"),text:q1.string()}),q1.object({type:q1.literal("image_url"),image_url:q1.object({url:q1.string(),detail:q1.string().optional()})})]))]),name:q1.string().optional()}),q1.object({role:q1.literal("assistant"),content:q1.string().nullable().optional(),name:q1.string().optional(),tool_calls:q1.array(NB6).optional()}),q1.object({role:q1.literal("tool"),content:q1.string(),tool_call_id:q1.string()})]),OB6=q1.object({type:q1.literal("text")}),DB6=q1.object({type:q1.literal("json_object")}),wB6=q1.object({type:q1.literal("json_schema"),json_schema:q1.object({name:q1.string(),description:q1.string().optional(),schema:q1.record(q1.string(),q1.unknown()),strict:q1.boolean().optional()})}),LB6=q1.union([OB6,DB6,wB6]),EB6=q1.object({model:q1.string().describe("Format: 'model_id' or 'credential_id:model_id'"),messages:q1.array(BB6),stream:q1.boolean().optional().default(!1),temperature:q1.number().min(0).max(2).optional(),max_tokens:q1.number().positive().optional(),top_p:q1.number().min(0).max(1).optional(),frequency_penalty:q1.number().min(-2).max(2).optional(),presence_penalty:q1.number().min(-2).max(2).optional(),stop:q1.union([q1.string(),q1.array(q1.string())]).optional(),tools:q1.array(UB6).optional(),tool_choice:q1.union([q1.literal("auto"),q1.literal("none"),q1.literal("required"),q1.object({type:q1.literal("function"),function:q1.object({name:q1.string()})})]).optional(),response_format:LB6.optional(),user:q1.string().optional()});hd$=class hd$ extends Error{constructor($){super($);this.name="MessageConversionError"}};ud$=new W1;ud$.post("/:org/v1/chat/completions",async($)=>{let Z=$.get("studioContext"),X=$.req.param("org");try{if(!Z.auth.apiKey?.id)return $.json(vF("API key authentication required. Provide a valid API key via Authorization header.","authentication_error"),401);if(!Z.organization)return $.json(vF("Organization context is required. Ensure your API key has organization metadata.","invalid_request_error","organization"),400);if((Z.organization.slug??Z.organization.id)!==X)return $.json(vF("Organization mismatch. The API key's organization does not match the requested organization.","invalid_request_error","organization"),403);let Q=await $.req.json(),Y=EB6.safeParse(Q);if(!Y.success){let L=Y.error.issues[0]??{message:"Invalid request",path:[]};return $.json(vF(`Invalid request: ${L.message}`,"invalid_request_error",L.path.length>0?L.path.join("."):null),400)}let G=Y.data,J=jB6(G.model);if(!J)return $.json(vF("Invalid model format. Expected 'model_id' or 'credential_id:model_id' (e.g., 'claude-sonnet-4-6' or 'key_abc123:claude-sonnet-4-6')","invalid_request_error","model"),400);let{credentialId:W}=J,{modelId:K}=J;if(!W){let E=(await Z.storage.aiProviderKeys.list({organizationId:Z.organization.id})).find((j)=>BL(j.providerId));if(!E)return $.json(vF("No AI provider credentials configured for this organization. Add a credential in settings or specify one explicitly via 'credential_id:model_id'.","invalid_request_error","model"),400);W=E.id}let F;try{F=await Z.aiProviders.activate(W,Z.organization.id)}catch{return $.json(vF(`AI provider credential not found or inaccessible: ${W}`,"invalid_request_error","model"),404)}let H=F.aiSdk.languageModel(K),U=PB6(G.messages),N=G.tools?AB6(G.tools):void 0,B=TB6(G.response_format),O=RB6(),w=Math.floor(Date.now()/1000);if(G.stream)return sU($,async(L)=>{let E=yd$(H,U,N,G,B,$.req.raw.signal);try{let j=SO(E),z=!1,P=0,A="",I=async()=>{if(A.length===0)return;let k=A;A="",await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:w,model:G.model,choices:[{index:0,delta:{content:k},finish_reason:null}]})})};for await(let k of j.fullStream){if(!z&&(k.type==="text-delta"||k.type==="tool-call"))await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:w,model:G.model,choices:[{index:0,delta:{role:"assistant",content:""},finish_reason:null}]})}),z=!0;if(k.type==="text-delta"){if(A+=k.text,A.length>=HB6)await I()}else if(k.type==="tool-call"){await I();let M=P++;await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:w,model:G.model,choices:[{index:0,delta:{tool_calls:[{index:M,id:k.toolCallId,type:"function",function:{name:k.toolName,arguments:JSON.stringify(k.input)}}]},finish_reason:null}]})})}else if(k.type==="finish")await I(),await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:w,model:G.model,choices:[{index:0,delta:{},finish_reason:gd$(k.finishReason)}],usage:k.totalUsage?{prompt_tokens:k.totalUsage.inputTokens??0,completion_tokens:k.totalUsage.outputTokens??0,total_tokens:k.totalUsage.totalTokens??0}:void 0})})}await I(),await L.writeSSE({data:"[DONE]"})}catch(j){let z=j;console.error("[openai-compat:stream] Error:",z.message),await L.writeSSE({data:JSON.stringify({error:{message:z.message,type:"server_error"}})})}});else{let L=yd$(H,U,N,G,B,$.req.raw.signal),E=await kO(L),j={role:"assistant",content:E.text||null};if(E.toolCalls&&E.toolCalls.length>0)j.tool_calls=E.toolCalls.map((z)=>({id:z.toolCallId,type:"function",function:{name:z.toolName,arguments:JSON.stringify("input"in z?z.input:{})}})),j.content=null;return $.json({id:O,object:"chat.completion",created:w,model:G.model,choices:[{index:0,message:j,finish_reason:gd$(E.finishReason)}],usage:{prompt_tokens:E.usage?.inputTokens??0,completion_tokens:E.usage?.outputTokens??0,total_tokens:E.usage?.totalTokens??0}})}}catch(Q){let Y=Q;if(Y.name==="AbortError")return $.json(vF("Request aborted","invalid_request_error"),400);if(Y.name==="MessageConversionError")return $.json(vF(Y.message,"invalid_request_error","messages"),400);return console.error("[openai-compat] Error:",Y.message,Y.stack),$.json(vF(Y.message,"server_error"),500)}});ld$=ud$});function IB6($){if(typeof $!=="object"||$===null)return!1;let X=$.githubRepo?.url;return typeof X==="string"&&X.length>0}function dd$(){let $=new W1;return $.use("*",async(Z,X)=>{await X(),Z.header("Cache-Control","private, no-store"),Z.header("Vary","Cookie")}),$.get("/",async(Z)=>{let X=Z.get("studioContext"),Q=t0(X);if(!Q)return Z.json({error:"Authentication required"},401);let G=(Z.req.query("site")??"").trim().toLowerCase();if(!aX(G))return Z.json({error:"Invalid site slug"},400);let J=await X.db.selectFrom("member").innerJoin("organization","organization.id","member.organizationId").select(["organization.id as id","organization.slug as slug","organization.name as name","organization.metadata as metadata"]).where("member.userId","=",Q).execute(),W=[];for(let F of J){if(!F.slug||m9(F))continue;let H=await X.storage.virtualMcps.list(F.id);for(let U of H){if(he1(U)!==G)continue;if(!IB6(U.metadata))continue;W.push({orgSlug:F.slug,orgName:F.name??F.slug,project:{id:U.id,title:U.title,icon:U.icon??null}})}}let K={matches:W};return Z.json(K)}),$}var md$=D(()=>{c$();hH()});var pd$;var id$=D(()=>{pd$={name:"decocms",version:"4.325.5",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/api"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:"bun run migrate && bun run dev:server","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts",build:"bun run build:server","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","generate:tool-contracts":"bun run scripts/generate-tool-contracts.ts","db:migrate":"bun run ./dist/server/migrate.js","db:migrate:dbos":"bun run ./dist/server/migrate-dbos.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts","migrate:dbos":"bun run src/database/migrate-dbos.ts",test:"bun test src","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts",prepublishOnly:"bun run --cwd=../.. build:studio"},optionalDependencies:{"@duckdb/node-api":"^1.5.0-r.1"},dependencies:{"@ai-sdk/anthropic":"^3.0.85","@ai-sdk/google":"^3.0.83","@ai-sdk/openai":"^3.0.73","@anthropic-ai/sdk":"^0.105.0","@aws-sdk/client-s3":"^3.1013.0","@aws-sdk/client-sts":"^3.1013.0","@aws-sdk/lib-storage":"^3.1013.0","@aws-sdk/s3-request-presigner":"^3.1013.0","@clickhouse/client":"^1.8.1","@dbos-inc/dbos-sdk":"^4.21.6","@inkjs/ui":"^2.0.0","@nats-io/jetstream":"3.4.0","@nats-io/kv":"3.4.0","@nats-io/nats-core":"3.4.0","@nats-io/transport-node":"3.4.0","@openrouter/ai-sdk-provider":"^2.9.1","@opentelemetry/core":"^2.6.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12","posthog-node":"^5.0.0",react:"^19.2.6","react-dom":"^19.2.6"},devDependencies:{"@ai-sdk/provider":"^3.0.10","@better-auth/sso":"1.4.1","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/runtime":"workspace:*","@decocms/sandbox":"workspace:*","@decocms/shared":"workspace:*","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.29.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/resources":"^2.6.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","@types/bun":"^1.3.1","@types/google.maps":"^3.65.2","@types/pg":"^8.15.6","@types/react-syntax-highlighter":"^15.5.13","@vercel/nft":"^1.1.1",ai:"^6.0.208","better-auth":"1.4.22",croner:"^9.1.0",degit:"^2.8.4",hono:"^4.10.7",jose:"^6.0.11",nanoid:"^5.1.6",pg:"^8.16.3",typescript:"^7.0.2",typescript5:"npm:typescript@^5.9.3",zod:"4.3.6"},homepage:"https://github.com/decocms/studio",keywords:["mcp","model-context-protocol","ai","gateway","self-hosted","tools"],license:"MIT",publishConfig:{access:"public"}}});function kB6(){let $=process.env.POSTHOG_KEY;if(!$)return null;return{key:$,host:process.env.POSTHOG_HOST??MB6}}var nd$,MB6="https://ph.studio.decocms.com",td$;var od$=D(()=>{c$();$90();eC();h5();D$();q91();id$();nd$=new W1;nd$.get("/",($)=>{let Z={version:pd$.version,theme:Zp1(),..._H().logo&&{logo:_H().logo},...LU()&&{internalUrl:M_1()},...V0().enableDecoImport&&{enableDecoImport:!0},brandExtractEnabled:!!V0().firecrawlApiKey,hostingEnabled:!!V0().controlplaneRestUrl&&!!V0().controlplaneServiceToken,hostingControlPlaneGa:V0().hostingControlPlaneGa,monitorEnabled:!!V0().clickhouseAnalyticsUrl&&!!V0().clickhouseAnalyticsPassword,monitorGa:V0().monitorGa,auth:gy$(),posthog:kB6(),googleMapsApiKey:process.env.GOOGLE_MAPS_API_KEY?.trim()||null,runtime:{agentSandbox:xs()}};return $.header("Cache-Control","no-store"),$.json({success:!0,config:Z})});td$=nd$});function Jl($){let Z=($??"").trim().toLowerCase();return Z=Z.replace(/^https?:\/\//,""),Z=Z.replace(/^www\./,""),Z=Z.split(/[/?#]/)[0]??"",Z.replace(/\/+$/,"")}function r71($){return(Jl($).split(".")[0]||$).replace(/[-_]/g," ").split(" ").filter(Boolean).map((X)=>X.charAt(0).toUpperCase()+X.slice(1)).join(" ")}function ad$($,Z=64){return`https://www.google.com/s2/favicons?domain=${encodeURIComponent(Jl($))}&sz=${Z}`}function rd$($,Z){let X=$.trim();if(X.length<=Z)return X;let Q=X.slice(0,Z-1),Y=Q.lastIndexOf(" ");return`${(Y>Z*0.6?Q.slice(0,Y):Q).trimEnd()}\u2026`}function sd$($){let{brand:Z,domain:X,score:Q,verdict:Y}=$,G=typeof Q==="number"?`${Z} commerce report \u2014 ${Math.round(Q)}/100 \xB7 decocms`:`${Z} commerce report \xB7 decocms`,J=`See the full ${Z} scorecard \u2014 SEO, performance, conversion & AEO signals scored by decocms.`,W=Y?.trim()?rd$(`${Y.trim().replace(/\s+/g," ")} \u2014 ${J}`,200):rd$(`How does ${X} really perform? ${J}`,200);return{title:G,description:W}}import{z as u0}from"zod";var Cv,VB6,SB6,CB6,_B6,ed$;var $m$=D(()=>{Cv=u0.enum(["good","bad","neutral"]),VB6=u0.preprocess(($)=>{if(Array.isArray($))return{kind:"text",value:$.find((X)=>X!==null&&typeof X!=="object")??""};return $!==null&&typeof $==="object"?$:{kind:"text",value:$}},u0.object({kind:u0.enum(["text","number","sparkline","badge","score"]).catch("text"),value:u0.coerce.string().optional(),tone:Cv.optional(),muted:u0.boolean().optional(),delta:u0.coerce.string().optional(),deltaDir:u0.enum(["up","down","neutral"]).optional(),points:u0.array(u0.coerce.number()).optional(),label:u0.coerce.string().optional()}).transform(($)=>{if($.kind==="badge"&&$.label==null)$.label=$.value??"";if($.kind==="score"){let Z=Number($.value);if(Number.isNaN(Z))return{...$,kind:"text"}}return $})),SB6=u0.preprocess(($)=>{let Z=$;if(Z&&typeof Z==="object"&&!Array.isArray(Z)&&Array.isArray(Z.cells))Z=Z.cells;if(Array.isArray(Z)&&Z.length===1&&Array.isArray(Z[0]))Z=Z[0];if(Array.isArray(Z))return Z;if(Z&&typeof Z==="object")return Object.values(Z);return Z},u0.array(VB6)),CB6={key:u0.coerce.string(),title:u0.coerce.string(),eyebrow:u0.coerce.string().optional(),headline:u0.coerce.string(),annotation:u0.coerce.string().optional(),methodology:u0.coerce.string().optional(),sources:u0.array(u0.object({name:u0.coerce.string(),logoUrl:u0.coerce.string()})).optional()},_B6=u0.discriminatedUnion("template",[u0.object({template:u0.literal("cover"),score:u0.object({value:u0.coerce.number(),max:u0.coerce.number().optional(),grade:u0.coerce.string().optional(),label:u0.coerce.string().optional()}).optional(),brandImage:u0.coerce.string().optional(),screenshot:u0.coerce.string().optional(),mobileScreenshot:u0.coerce.string().optional()}),u0.object({template:u0.literal("cta"),ctaUrl:u0.coerce.string().optional(),ctaLabel:u0.coerce.string().optional(),bullets:u0.array(u0.coerce.string()).optional()}),u0.object({template:u0.literal("series"),points:u0.array(u0.coerce.number()).min(2),xLabels:u0.array(u0.coerce.string()).min(1),unit:u0.coerce.string().optional(),callout:u0.object({index:u0.coerce.number(),value:u0.coerce.string(),tone:Cv.optional()})}),u0.object({template:u0.literal("threshold"),value:u0.coerce.string().default(""),metricLabel:u0.coerce.string().optional(),ratio:u0.coerce.number(),thresholdRatio:u0.coerce.number().optional(),thresholdLabel:u0.coerce.string().default(""),tone:Cv.optional()}),u0.object({template:u0.literal("stats"),stats:u0.array(u0.object({value:u0.coerce.string(),label:u0.coerce.string(),tone:Cv.optional()})).min(1)}),u0.object({template:u0.literal("bars"),items:u0.array(u0.object({value:u0.coerce.string(),label:u0.coerce.string(),ratio:u0.coerce.number(),tone:Cv.optional()})).min(1)}),u0.object({template:u0.literal("gauges"),gauges:u0.array(u0.object({label:u0.coerce.string(),value:u0.coerce.string(),status:u0.enum(["good","warn","bad"]).catch("warn"),caption:u0.coerce.string().optional(),ratio:u0.coerce.number().optional()})).min(1)}),u0.object({template:u0.literal("checklist"),checks:u0.array(u0.object({label:u0.coerce.string(),status:u0.enum(["pass","fail","warn"]).catch("fail"),value:u0.coerce.string().optional()})).min(1)}),u0.object({template:u0.literal("table"),columns:u0.array(u0.object({label:u0.coerce.string(),align:u0.enum(["left","right"]).optional()})).min(1),rows:u0.array(SB6).min(1),highlightRow:u0.coerce.number().optional()}),u0.object({template:u0.literal("products"),products:u0.array(u0.object({name:u0.coerce.string(),price:u0.coerce.string().optional(),image:u0.coerce.string().optional(),url:u0.coerce.string().optional()})).min(1)}),u0.object({template:u0.literal("list"),entries:u0.array(u0.object({label:u0.coerce.string(),severity:u0.enum(["error","warning","notice"]).catch("notice")})).min(1),moreCount:u0.coerce.number().optional()}),u0.object({template:u0.literal("keywords"),volumeLabel:u0.coerce.string().optional(),keywords:u0.array(u0.object({term:u0.coerce.string(),volume:u0.coerce.string(),position:u0.coerce.number().catch(0)})).min(1)}),u0.object({template:u0.literal("competitor"),metricLabel:u0.coerce.string().optional(),competitors:u0.array(u0.object({name:u0.coerce.string(),value:u0.coerce.string(),tone:Cv.optional(),isYou:u0.boolean().optional()})).min(1)}),u0.object({template:u0.literal("scorecard"),rivalLabel:u0.coerce.string().optional(),dimensions:u0.array(u0.object({label:u0.coerce.string(),you:u0.coerce.string(),rival:u0.coerce.string().optional(),rivalName:u0.coerce.string().optional(),tone:Cv.optional()})).min(1)})]),ed$=u0.object({...CB6,template:_B6})});function yT0($){let Z=[],X=[...$.sections].sort((Y,G)=>Y.position-G.position).map((Y)=>{let G=ed$.safeParse(Y.props);if(G.success)return G.data;let J=G.error.issues[0];return Z.push({section_type:Y.section_type,position:Y.position,reason:J?`${J.path.join(".")||"(root)"}: ${J.message}`:"contract violation"}),null}).filter((Y)=>Y!==null),Q=X.filter((Y)=>Y.template.template!=="cover"&&Y.template.template!=="cta").map((Y)=>({key:Y.key,title:Y.title}));return{deck:{meta:{...$.meta,scores:$.summary?.scores,scannedAt:$.scanned_at,toc:Q},slides:X},drops:Z}}var a71=D(()=>{$m$()});import{join as Zm$}from"path";async function fB6($){try{let Z=await fetch(`${DK({})}/api/v2/public/diagnostics/${encodeURIComponent($)}`,{headers:{Accept:"application/json"},signal:AbortSignal.timeout(vB6)});if(!Z.ok)return null;let X=await Z.json(),{deck:Q}=yT0(X);if(!Q.slides.length)return null;let Y=Q.slides.find((W)=>W.template.template==="cover"),G=Y?.template,J=G&&G.template==="cover"?G:void 0;return{brand:Q.meta.brand?.trim()||r71($),score:Q.meta.scores?.cover??J?.score?.value,verdict:Y?.annotation?.trim()||Y?.headline?.trim()||void 0}}catch{return null}}function TG($){return $.replaceAll("&","&amp;").replaceAll("<","&lt;").replaceAll(">","&gt;").replaceAll('"',"&quot;")}function bB6($,Z){let X=Jl($),Q=Z?.brand?.trim()||r71(X),Y=ad$(X,128),J=`${(V0().baseUrl??"https://studio.decocms.com").replace(/\/+$/,"")}/report/${encodeURIComponent(X)}`,{title:W,description:K}=sd$({brand:Q,domain:X,score:Z?.score,verdict:Z?.verdict}),F=`${J}/og.png`,H=`${Q} commerce report by decocms`;return[`<title>${TG(W)}</title>`,`<meta name="description" content="${TG(K)}" />`,'<meta name="robots" content="noindex, follow" />','<meta property="og:type" content="website" />','<meta property="og:site_name" content="decocms" />',`<meta property="og:title" content="${TG(W)}" />`,`<meta property="og:description" content="${TG(K)}" />`,`<meta property="og:url" content="${TG(J)}" />`,`<meta property="og:image" content="${TG(F)}" />`,'<meta property="og:image:width" content="1200" />','<meta property="og:image:height" content="630" />',`<meta property="og:image:alt" content="${TG(H)}" />`,'<meta name="twitter:card" content="summary_large_image" />',`<meta name="twitter:title" content="${TG(W)}" />`,`<meta name="twitter:description" content="${TG(K)}" />`,`<meta name="twitter:image" content="${TG(F)}" />`,`<meta name="twitter:image:alt" content="${TG(H)}" />`,`<link rel="canonical" href="${TG(J)}" />`,`<link rel="icon" href="${TG(Y)}" sizes="any" />`].join(`
2984
2984
  `)}function xB6($,Z){return $.replace(/<title>[\s\S]*?<\/title>\s*/i,"").replace(/<meta\s+name="(?:description|twitter:[^"]*)"[^>]*>\s*/gi,"").replace(/<meta\s+property="og:[^"]*"[^>]*>\s*/gi,"").replace(/<link\s+rel="icon"[^>]*>\s*/gi,"").replace("</head>",` ${Z}
2985
2985
  </head>`)}function Xm$($){let Z=new W1;return Z.get("/:domain/og.png",async(X)=>{let Q=Jl(X.req.param("domain")),Y=async()=>{let G=$?Bun.file(Zm$($,"report-og-fallback.png")):null;if(!G||!await G.exists())return X.notFound();return X.body(new Uint8Array(await G.arrayBuffer()),200,{"Content-Type":"image/png","Cache-Control":"public, max-age=0, s-maxage=3600"})};try{let G=await fetch(`${DK({})}/api/v2/public/diagnostics/${encodeURIComponent(Q)}/og.png`,{signal:AbortSignal.timeout(yB6)}),J=G.headers.get("content-type")??"";if(!G.ok||!J.startsWith("image/")||!G.body)return Y();return X.body(G.body,200,{"Content-Type":J,"Cache-Control":"public, max-age=0, s-maxage=604800"})}catch{return Y()}}),Z.get("/:domain",async(X)=>{let Q=X.req.param("domain"),Y=$?Zm$($,"index.html"):null,G=Y?Bun.file(Y):null;if(!G||!await G.exists())return X.notFound();let J=await G.text();try{let W=await fB6(Jl(Q)),K=bB6(Q,W);return X.html(xB6(J,K),200,{"Cache-Control":"public, max-age=0, s-maxage=300"})}catch{return X.html(J)}}),Z}var vB6=2500,yB6=1e4;var Qm$=D(()=>{c$();a71();EE();D$()});function Vs($,Z){return fetch(`${DK({})}${$}`,Z)}async function gB6($,Z,X){let Q=new URLSearchParams;if(Z)Q.set("pw",Z);if(X)Q.set("lang",X);let Y=Q.toString()?`?${Q.toString()}`:"",G=await Vs(`/api/v2/public/diagnostics/${encodeURIComponent($)}${Y}`,{headers:{Accept:"application/json"}});if(G.status===404)return{status:"not_found",deck:null,scanned_at:null,drops:[]};if(!G.ok)throw Error(`report read HTTP ${G.status}`);let J=await G.json(),{deck:W,drops:K}=yT0(J);return{status:W.slides.length?"ready":"empty",deck:W,scanned_at:J.scanned_at,drops:K}}var hB6,$N,Ym$=async($,Z)=>{if(!$.get("reportUser"))return $.json({error:"Authentication required"},401);await Z();return},Gm$;var Jm$=D(()=>{c$();nY();EE();a71();hB6=new Set(["complete","errored","terminated","unknown"]),$N=new W1;$N.use("*",async($,Z)=>{let X=await e$.api.getSession({headers:$.req.raw.headers});$.set("reportUser",X?.user?.id?{email:X.user.email}:void 0),await Z(),$.header("Cache-Control","private, no-store"),$.header("Vary","Cookie");return});$N.use("/link-token/*",Ym$);$N.use("/suggest",Ym$);$N.get("/site/:domain",async($)=>{let Z=$.req.param("domain").trim();if(!Z)return $.json({error:"domain is required"},400);let X=$.get("reportUser"),Q=$.req.query("key")?.trim()||void 0,Y=$.req.query("lang")?.trim()||void 0;try{let G=await gB6(Z,Q,Y);if($.header("Cache-Control","private, no-store"),X||!G.deck)return $.json(G);return $.json({...G,deck:{...G.deck,slides:G.deck.slides.slice(0,1)},truncated:G.status==="ready"})}catch{return $.json({error:"report read failed"},502)}});$N.post("/run",async($)=>{let Z=$.get("reportUser"),X;try{X=await $.req.json()}catch{return $.json({error:"invalid JSON"},400)}let Q=typeof X.domain==="string"?X.domain.trim():"";if(!Q)return $.json({error:"domain is required"},400);let Y=Z?.email,G=typeof X.distinctId==="string"&&X.distinctId.trim()&&X.distinctId.length<=200?X.distinctId.trim():void 0;try{let J=await Vs("/api/v2/diagnostics/run",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${LE({})}`},body:JSON.stringify({url:Q,...Y?{email:Y}:{},distinct_id:G})});if(!J.ok)return $.json({error:`run HTTP ${J.status}`},502);let W=await J.json(),K=W.blocked?{state:"blocked"}:W.status==="fresh"?{state:"fresh"}:W.mode==="sync"?{state:"sync"}:{state:"running",id:W.id??null};return $.json(K)}catch{return $.json({error:"run failed"},502)}});$N.get("/status",async($)=>{let Z=$.req.query("id");if(!Z)return $.json({error:"id is required"},400);try{let X=await Vs(`/api/v2/diagnostics/status?id=${encodeURIComponent(Z)}`,{headers:{Authorization:`Bearer ${LE({})}`}});if(!X.ok)return $.json({error:`status HTTP ${X.status}`},502);let Y=(await X.json()).status??"unknown",G={done:hB6.has(Y),status:Y};return $.json(G)}catch{return $.json({error:"status failed"},502)}});$N.get("/link-token/:id",async($)=>{let Z=$.req.param("id");try{let X=await Vs(`/api/v2/public/link-tokens/${encodeURIComponent(Z)}`,{headers:{Accept:"application/json"}});if(X.status===404)return $.json(null);if(!X.ok)return $.json({error:`link token HTTP ${X.status}`},502);return $.json(await X.json())}catch{return $.json({error:"link token resolve failed"},502)}});$N.get("/suggest",async($)=>{let Z=($.req.query("q")??"").trim().slice(0,64);if(Z.length<2)return $.json({suggestions:[]});try{let X=await Vs(`/api/v2/public/suggest?q=${encodeURIComponent(Z)}`,{headers:{Accept:"application/json"}});if(!X.ok)return $.json({suggestions:[]});let Q=await X.json();return $.json({suggestions:Array.isArray(Q.suggestions)?Q.suggestions:[]})}catch{return $.json({suggestions:[]})}});Gm$=$N});import{createHmac as uB6,timingSafeEqual as lB6}from"crypto";function Km$($,Z,X,Q=Date.now()){if(!Z||!X)return!1;let Y,G=[];for(let F of Z.split(",")){let H=F.indexOf("=");if(H<=0)continue;let U=F.slice(0,H).trim(),N=F.slice(H+1).trim();if(U==="t")Y=N;else if(U==="v1")G.push(N)}if(!Y||G.length===0)return!1;let J=Number(Y);if(!Number.isFinite(J)||Math.abs(Q/1000-J)>cB6)return!1;let W=uB6("sha256",X).update(`${Y}.${$}`).digest("hex"),K=Buffer.from(W,"hex");return G.some((F)=>{let H=Buffer.from(F,"hex");return K.length===H.length&&lB6(K,H)})}function Fm$($){let Z;try{Z=JSON.parse($)}catch{return null}let X=cJ(Z),Q=cJ(cJ(X?.data)?.object);if(!X||typeof X.type!=="string"||!Q)return null;return{id:fF(X.id),type:X.type,created:typeof X.created==="number"?X.created:void 0,livemode:typeof X.livemode==="boolean"?X.livemode:void 0,data:{object:Q}}}function Hm$($){switch($){case"active":case"trialing":return"active";case"past_due":return"past_due";default:return"canceled"}}function fF($){return typeof $==="string"?$:void 0}function cJ($){return typeof $==="object"&&$!==null?$:void 0}function gT0($){return typeof $==="number"?new Date($*1000):null}function $X1($){return fF($)??fF(cJ($)?.id)}function dB6($){return $X1($.subscription)??fF(cJ(cJ($.parent)?.subscription_details)?.subscription)}function mB6($){let Z=gT0($.current_period_end);if(Z)return Z;let X=cJ($.items)?.data;if(!Array.isArray(X))return null;let Q=0;for(let Y of X){let G=cJ(Y)?.current_period_end;if(typeof G==="number"&&G>Q)Q=G}return Q>0?new Date(Q*1000):null}function s71($,Z){let X=gT0($.created);return!!X&&!!Z.lastStripeEventAt&&X<Z.lastStripeEventAt}function e71($,Z){let X=gT0($.created);if(!X)return;return Z.lastStripeEventAt&&Z.lastStripeEventAt>X?void 0:X}async function iB6($,Z){let X=Z.data.object;switch(Z.type){case"checkout.session.completed":case"checkout.session.async_payment_succeeded":{let Q=fF(cJ(X.metadata)?.orgId);if(!Q)return{handled:!1,reason:"no orgId"};if(fF(cJ(X.metadata)?.kind)==="topup"){if(X.mode!=="payment")return{handled:!1,reason:"topup with wrong mode"};if(fF(X.payment_status)!=="paid")return{handled:!1,reason:"payment not confirmed"};let J=fF(X.id);if(!J)return console.error("stripe webhook: topup session without id",{eventId:Z.id,organizationId:Q}),{handled:!1,reason:"topup session without id"};let W=Number(cJ(X.metadata)?.creditCents);if(!Number.isInteger(W)||W<=0)return console.error("stripe webhook: paid topup with bad metadata \u2014 credit NOT applied",{eventId:Z.id,organizationId:Q,creditCents:cJ(X.metadata)?.creditCents}),{handled:!1,reason:"bad topup metadata"};return{handled:!0,organizationId:Q,topUp:{creditCents:W,referenceId:`stripe-topup:${J}`}}}if(X.mode!=="subscription")return{handled:!1,reason:"not a subscription checkout"};if(fF(X.payment_status)!=="paid")return{handled:!1,reason:"payment not confirmed"};let Y=await $.getBilling(Q);if(!Y)return{handled:!1,reason:"unknown org"};let G=$X1(X.subscription);if(Y.stripeSubscriptionId&&G&&Y.stripeSubscriptionId!==G)return console.error("stripe webhook: refused checkout rebind",{organizationId:Q,eventId:Z.id}),{handled:!1,reason:"org already bound to another subscription",orphanSubscriptionId:G};if(s71(Z,Y))return{handled:!1,reason:"stale event"};return await $.updateStripeState(Q,{stripeCustomerId:$X1(X.customer),stripeSubscriptionId:G,status:"active",lastStripeEventAt:e71(Z,Y)}),{handled:!0,organizationId:Q}}case"customer.subscription.updated":case"customer.subscription.deleted":{let Q=fF(X.id);if(!Q)return{handled:!1,reason:"no sub id"};let Y=await $.getBillingByStripeSubscriptionId(Q);if(!Y)return{handled:!1,reason:"unknown subscription"};let G=Z.type==="customer.subscription.deleted";if(!G&&s71(Z,Y))return{handled:!1,reason:"stale event"};let J=G?"canceled":Hm$(X.status);return await $.updateStripeState(Y.organizationId,{status:J,currentPeriodEnd:mB6(X),...G&&{stripeSubscriptionId:null},lastStripeEventAt:e71(Z,Y)}),{handled:!0,organizationId:Y.organizationId}}case"invoice.paid":{let Q=dB6(X);if(!Q)return{handled:!1,reason:"no sub id"};let Y=await $.getBillingByStripeSubscriptionId(Q);if(!Y)return{handled:!1,reason:"unknown subscription"};if(s71(Z,Y))return{handled:!1,reason:"stale event"};return await $.updateStripeState(Y.organizationId,{status:"active",currentPeriodEnd:gT0(X.period_end),lastStripeEventAt:e71(Z,Y)}),{handled:!0,organizationId:Y.organizationId}}default:return{handled:!1,reason:`unhandled event ${Z.type}`}}}function pB6($,Z){if(!Z.handled||$.livemode===!1)return null;let X=$.data.object;if(Z.topUp)return{name:"credits_topup_succeeded",organizationId:Z.organizationId,properties:{credit_cents:Z.topUp.creditCents}};switch($.type){case"checkout.session.completed":case"checkout.session.async_payment_succeeded":return{name:"subscription_started",organizationId:Z.organizationId,properties:{}};case"customer.subscription.deleted":return{name:"subscription_canceled",organizationId:Z.organizationId,properties:{}};case"customer.subscription.updated":return{name:"subscription_updated",organizationId:Z.organizationId,properties:{status:Hm$(X.status),...typeof X.cancel_at_period_end==="boolean"?{cancel_at_period_end:X.cancel_at_period_end}:{}}};case"invoice.paid":if(X.billing_reason==="subscription_create")return null;return{name:"subscription_renewed",organizationId:Z.organizationId,properties:{}};default:return null}}function Wm$($,Z){let X=pB6($,Z);if(!X)return;dY({event:X.name,organizationId:X.organizationId,...$.id?{uuid:Ft1(`stripe:${$.id}:${X.name}`)}:{},...$.created?{timestamp:new Date($.created*1000)}:{},properties:X.properties})}async function Um$($){let Z=new UK(B8().db),X=await iB6(Z,$);if(!(X.handled&&X.topUp))Wm$($,X);if(X.handled&&X.topUp)await kj$({organizationId:X.organizationId,amountCents:X.topUp.creditCents,referenceId:X.topUp.referenceId}),Wm$($,X);if(!X.handled&&X.orphanSubscriptionId)try{await h0$(X.orphanSubscriptionId),console.error("stripe webhook: canceled orphan subscription",{subscriptionId:X.orphanSubscriptionId,eventId:$.id})}catch(Q){if(!(Q instanceof tY&&(Q.status===400||Q.status===404)))throw Q}return X}var cB6=300;var Nm$=D(()=>{rG();v4();v50();SE();W11()});var nB6=1048576,ZX1;var Bm$=D(()=>{c$();MF();D$();Nm$();ZX1=new W1;ZX1.post("/webhook",r5({maxSize:nB6,onError:($)=>$.json({error:"payload too large"},413)}),async($)=>{let Z=V0().stripeWebhookSecret;if(!Z)return $.json({error:"stripe billing not configured"},503);let X=await $.req.text();if(!Km$(X,$.req.header("stripe-signature"),Z))return $.json({error:"invalid signature"},400);let Y=Fm$(X);if(!Y)return $.json({error:"invalid payload"},400);let G=await Um$(Y);return console.log("stripe webhook",{eventId:Y.id,type:Y.type,livemode:Y.livemode,...G}),$.json({received:!0})})});import{timingSafeEqual as tB6}from"crypto";function rB6($,Z,X){if(!Z?.startsWith("sha256="))return!1;let Q=new Bun.CryptoHasher("sha256",X).update($).digest("hex"),Y=Z.slice(7);if(Y.length!==Q.length)return!1;return tB6(Buffer.from(Y),Buffer.from(Q))}var oB6=5242880,XX1;var Om$=D(()=>{c$();MF();r3();XX1=new W1;XX1.post("/webhook",r5({maxSize:oB6,onError:($)=>$.json({error:"payload too large"},413)}),async($)=>{let Z=process.env.GITHUB_WEBHOOK_SECRET;if(!Z)return $.json({error:"github webhook not configured"},503);let X=await $.req.text();if(!rB6(X,$.req.header("x-hub-signature-256"),Z))return $.json({error:"invalid signature"},400);if($.req.header("x-github-event")!=="push")return $.json({ok:!0,ignored:"event"});let Q;try{Q=JSON.parse(X)}catch{return $.json({error:"invalid payload"},400)}let Y=Q.ref,G=Q.repository?.full_name;if(!Y||!G)return $.json({ok:!0,ignored:"shape"});let W=(await Zt0())?.markTenantPoolsDirty(G,Y)??[];return $.json({ok:!0,pools:W})})});function Dm$($){let Z=new cU($.db,new gX($.encryptionKey)),X=new W1;return X.get("/attachments/:token",async(Q)=>{let Y=_K$(Q.req.param("token"));if(!Y)return Q.json({error:"Invalid or expired link"},404);let G=await Z.getByOrg(Y.organizationId);if(!G)return Q.json({error:"Jira is not connected"},404);let W=await new GG(G.siteUrl,G.email,G.apiToken).downloadAttachment(Y.attachmentId);if(!W.ok||!W.body)return Q.json({error:"Jira refused the download"},502);let K=new Headers;for(let F of["content-type","content-length","content-disposition"]){let H=W.headers.get(F);if(H)K.set(F,H)}return K.set("cache-control","no-store"),new Response(W.body,{status:200,headers:K})}),X}var wm$=D(()=>{c$();iN();st0();gC()});function Lm$($){if(typeof $!=="object"||$===null)return null;let Z=$;if(Z.webhookEvent!=="jira:issue_updated")return null;let X=Z.issue?.id,Q=Z.issue?.key,Y=Z.changelog?.id;if(typeof X!=="string"&&typeof X!=="number"||typeof Q!=="string"||typeof Y!=="string"&&typeof Y!=="number")return null;let G=Z.changelog?.items?.find((J)=>J.field==="status");if(!G||typeof G.toString!=="string")return null;return{issueId:String(X),issueKey:Q,toStatus:G.toString,changelogId:String(Y)}}function Em$($,Z,X){let Q=[];for(let Y of Z){if(new Date(Y.created).getTime()<X.getTime())continue;let G=Y.items.find((J)=>J.field==="status");if(!G||typeof G.toString!=="string")continue;Q.push({issueId:$.id,issueKey:$.key,toStatus:G.toString,changelogId:Y.id})}return Q.sort((Y,G)=>Number(Y.changelogId)-Number(G.changelogId))}function eB6($){return`Jira ${$.key}: ${$.summary}`}async function hT0($,Z,X){if(!Z.enabled)return"disabled";let Q=Z.organizationId,Y=await $.storage.jiraIntegrations.getAutomation(Q,X.toStatus);if(!Y)return"no_rule";let G=new GG(Z.siteUrl,Z.email,Z.apiToken),J=await eD0(G,Z.siteUrl,X.issueId),W=await $O6($,Z,X,J);if(!await $.storage.jiraIntegrations.claimTrigger(Q,X.issueId,X.changelogId))return"duplicate";let F=await $.storage.taskBoard.update(W.id,Q,{assigneeId:d$,assignedBy:Z.createdBy},Z.createdBy);try{await ZW($,F,{instruction:Y.prompt??aB6,source:{kind:"jira",issueKey:J.key,title:eB6(J),body:`${$w0(J)}
2986
2986
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "decocms",
3
- "version": "4.325.3",
3
+ "version": "4.325.5",
4
4
  "description": "Deco CMS — Self-hostable MCP Gateway for managing AI connections and tools",
5
5
  "author": "Deco team",
6
6
  "repository": {
@@ -1 +0,0 @@
1
- import{c as o,j as r}from"./index-BkawI5he.js";import{O as m}from"./api-keys-CwoRMmEY.js";import{R as p}from"./require-capability-D2jyLdx0.js";import"./AlertCircle-Wbx84J6P.js";import"./Copy01-sos155fT.js";import"./Key01-ladeKbIs.js";import"./Plus-CjjCgafZ.js";import"./Trash01-B8XVvUnv.js";import"./alert-dialog-Cj0fNCkE.js";import"./dialog-CWKQw2WC.js";import"./input-fTgot4-g.js";import"./label-CDt53aWD.js";import"./use-mcp-client-DxE4Ab64.js";import"./constants-DNuUCxmW.js";import"./auth-DzRAXSGB.js";import"./access-gate-65i3zTD_.js";import"./capability-load-error-Du-FbaTG.js";function A(){const t=o.c(1);let i;return t[0]===Symbol.for("react.memo_cache_sentinel")?(i=r.jsx(p,{capability:"api-keys:manage",area:"api-keys",children:r.jsx(m,{})}),t[0]=i):i=t[0],i}export{A as default};
@@ -1 +0,0 @@
1
- import{c as B,j as o,b as $,W as D,d as M,r as q,P as d,B as V,o as R}from"./index-BkawI5he.js";import{s as W}from"./Plus-CjjCgafZ.js";import{i as S}from"./Zap-Bf8uxQjq.js";import{S as F}from"./search-input-DJIbu8BB.js";import{E as T}from"./empty-state-C-9VdPkJ.js";import{c as G}from"./use-automations-CmwM0DEc.js";import{u as H}from"./use-navigate-to-agent-Cf-IaJUb.js";import{A as J}from"./automation-list-row-BR_7Wuv2.js";import{h as K}from"./constants-DNuUCxmW.js";import{a as O}from"./use-virtual-mcp-DT_fCnuE.js";import{R as Q}from"./require-capability-D2jyLdx0.js";import"./SearchMd-CZf0Jno3.js";import"./use-mcp-client-DxE4Ab64.js";import"./auth-DzRAXSGB.js";import"./use-destination-route-B2O150Yr.js";import"./hooks-DquOZ-Xk.js";import"./delay-CnY5UFtP.js";import"./backoff-CrEUbyZT.js";import"./decopilot-sse-pool-CdJPh08p.js";import"./task-board-CU2obT3r.js";import"./schema-C5E0ePqu.js";import"./chat-context-C0gBnrEt.js";import"./use-panel-navigate-BG-ooS17.js";import"./slugify-CEUa2lfQ.js";import"./use-is-desktop-app-BNujXJc_.js";import"./use-ai-providers-AGwxnFdj.js";import"./location-oTTXFrSF.js";import"./use-decopilot-events-WOaP0SQC.js";import"./use-organization-settings-BV17wl2V.js";import"./github-repo-COLY3wWI.js";import"./alert-dialog-Cj0fNCkE.js";import"./dropdown-menu-DUEIZWiX.js";import"./Check-AnkVYvzC.js";import"./ChevronRight-pYTAY0dL.js";import"./DotsVertical-DuuOH2An.js";import"./agent-icon-Sp3pGLLY.js";import"./AlertCircle-Wbx84J6P.js";import"./Tool01-Z3QYZ79t.js";import"./ArrowUp-BSj9TnDQ.js";import"./ArrowLeft-BJlpl6z3.js";import"./Tool02-BQmdN0LJ.js";import"./XCircle-DlF5M8M0.js";import"./TrendUp01-CP0vQywV.js";import"./ZoomOut-fURlNFfr.js";import"./Users03-jn24Kly8.js";import"./CheckCircle-DwmOpGug.js";import"./ChevronUp-3g3WN6eT.js";import"./ChevronSelectorVertical-BbsmXbxd.js";import"./UserSquare-BYbdOYH9.js";import"./Copy01-sos155fT.js";import"./CreditCard01-VG7XqKoo.js";import"./Download01-DcuqUkne.js";import"./Settings02-DA_70bcH.js";import"./Eye-UqfDVX8c.js";import"./Share07-B_yFA1PQ.js";import"./GitBranch01-DLsJ2eA8.js";import"./Globe01-g_WhroPz.js";import"./XClose-CakjP9Y8.js";import"./HardDrive-DZFCo6aQ.js";import"./Image01-BZ7eP3sg.js";import"./Key01-ladeKbIs.js";import"./Link01-Cx-fsoFK.js";import"./LinkExternal01-Ct6ls10Y.js";import"./Monitor01-CHYJhnW7.js";import"./Sun-DwCUi13i.js";import"./Package-DlB0zfSe.js";import"./Palette-Cwg4Tz5U.js";import"./Play-CNXxnEyG.js";import"./Shield01-P1rLU6cR.js";import"./Stars01-izYFmAbe.js";import"./Trash01-B8XVvUnv.js";import"./Upload01-CbAoc2QM.js";import"./User01-Ct0i24vv.js";import"./Users01-BYaxTYGQ.js";import"./access-gate-65i3zTD_.js";import"./capability-load-error-Du-FbaTG.js";function U(){const t=B.c(20),i=$(),{org:l}=D(),{data:C}=G(void 0),g=C===void 0?[]:C,k=O(),P=H(),f=M(),[x,E]=q.useState(""),h=x.toLowerCase(),A=new Map(k.map(X)),b=g.filter(e=>{if(!h||e.name.toLowerCase().includes(h))return!0;if(e.virtual_mcp_id){const p=A.get(e.virtual_mcp_id);if(p&&p.title.toLowerCase().includes(h))return!0}return!1}),z=(e,p)=>{const N=p&&A.has(p)?p:K(l.id);R("automations_list_row_clicked",{automation_id:e,agent_id:N,source:"settings_automations"}),P(N,{panel:`automation:${e}`})};let c;t[0]!==f||t[1]!==l.slug?(c=()=>{R("automations_empty_state_browse_agents_clicked"),f({to:"/$org/settings/agents",params:{org:l.slug}})},t[0]=f,t[1]=l.slug,t[2]=c):c=t[2];const L=c,j=d,v=d,w=d;let s;t[3]!==i?(s=i("settings.automations.pageTitle"),t[3]=i,t[4]=s):s=t[4];let r;t[5]!==s?(r=o.jsx(d.Title,{children:s}),t[5]=s,t[6]=r):r=t[6];const _=g.length>0&&o.jsx(F,{value:x,onChange:E,placeholder:i("settings.automations.searchPlaceholder"),className:"w-full md:w-[375px]"});let m;t[7]!==r||t[8]!==_?(m=o.jsxs("div",{className:"flex flex-col gap-6",children:[r,_]}),t[7]=r,t[8]=_,t[9]=m):m=t[9];const y=g.length===0?o.jsx("div",{className:"flex items-center justify-center py-20",children:o.jsx(T,{image:o.jsx(S,{size:48,className:"text-muted-foreground"}),title:i("settings.automations.emptyTitle"),description:i("settings.automations.emptyDescription"),actions:o.jsxs(V,{size:"sm",onClick:L,children:[o.jsx(W,{size:14}),i("settings.automations.browseAgentsButton")]})})}):b.length===0?o.jsx("div",{className:"flex items-center justify-center py-20",children:o.jsx(T,{image:o.jsx(S,{size:48,className:"text-muted-foreground"}),title:i("settings.automations.noResultsTitle"),description:i("settings.automations.noResultsDescription",{search:x})})}):o.jsx("div",{className:"mt-6 rounded-xl border border-border overflow-hidden",children:b.map(e=>o.jsx(J,{automation:e,showAgent:!0,onClick:()=>z(e.id,e.virtual_mcp_id)},e.id))});let n;t[10]!==w.Body||t[11]!==m||t[12]!==y?(n=o.jsxs(w.Body,{children:[m,y]}),t[10]=w.Body,t[11]=m,t[12]=y,t[13]=n):n=t[13];let a;t[14]!==v.Content||t[15]!==n?(a=o.jsx(v.Content,{children:n}),t[14]=v.Content,t[15]=n,t[16]=a):a=t[16];let u;return t[17]!==j||t[18]!==a?(u=o.jsx(j,{children:a}),t[17]=j,t[18]=a,t[19]=u):u=t[19],u}function X(t){return[t.id,t]}function wo(){const t=B.c(1);let i;return t[0]===Symbol.for("react.memo_cache_sentinel")?(i=o.jsx(Q,{capability:"automations:manage",area:"automations",children:o.jsx(U,{})}),t[0]=i):i=t[0],i}export{wo as default};
@@ -1 +0,0 @@
1
- import{c as w,b as z,G as g,j as a,H as _,r as j,I as D,J as I,M as O,O as L,R as A,U as M}from"./index-BkawI5he.js";import{S as T}from"./index-Dpj-HbFs.js";import{u as H}from"./settings-sidebar-CFckzuH2.js";import"./task-route-DCBGrQpz.js";import"./hooks-DquOZ-Xk.js";import"./use-destination-route-B2O150Yr.js";import"./constants-DNuUCxmW.js";import"./use-mcp-client-DxE4Ab64.js";import"./auth-DzRAXSGB.js";import"./delay-CnY5UFtP.js";import"./backoff-CrEUbyZT.js";import"./decopilot-sse-pool-CdJPh08p.js";import"./task-board-CU2obT3r.js";import"./schema-C5E0ePqu.js";import"./ChevronUp-3g3WN6eT.js";import"./agent-icon-Sp3pGLLY.js";import"./AlertCircle-Wbx84J6P.js";import"./Tool01-Z3QYZ79t.js";import"./ArrowUp-BSj9TnDQ.js";import"./ArrowLeft-BJlpl6z3.js";import"./Tool02-BQmdN0LJ.js";import"./XCircle-DlF5M8M0.js";import"./TrendUp01-CP0vQywV.js";import"./ZoomOut-fURlNFfr.js";import"./Users03-jn24Kly8.js";import"./CheckCircle-DwmOpGug.js";import"./Check-AnkVYvzC.js";import"./ChevronRight-pYTAY0dL.js";import"./ChevronSelectorVertical-BbsmXbxd.js";import"./DotsVertical-DuuOH2An.js";import"./UserSquare-BYbdOYH9.js";import"./Copy01-sos155fT.js";import"./CreditCard01-VG7XqKoo.js";import"./Download01-DcuqUkne.js";import"./Settings02-DA_70bcH.js";import"./Eye-UqfDVX8c.js";import"./Share07-B_yFA1PQ.js";import"./GitBranch01-DLsJ2eA8.js";import"./Globe01-g_WhroPz.js";import"./XClose-CakjP9Y8.js";import"./HardDrive-DZFCo6aQ.js";import"./Image01-BZ7eP3sg.js";import"./Key01-ladeKbIs.js";import"./Link01-Cx-fsoFK.js";import"./LinkExternal01-Ct6ls10Y.js";import"./Monitor01-CHYJhnW7.js";import"./Sun-DwCUi13i.js";import"./Package-DlB0zfSe.js";import"./Palette-Cwg4Tz5U.js";import"./Play-CNXxnEyG.js";import"./Plus-CjjCgafZ.js";import"./SearchMd-CZf0Jno3.js";import"./Shield01-P1rLU6cR.js";import"./Stars01-izYFmAbe.js";import"./Trash01-B8XVvUnv.js";import"./Upload01-CbAoc2QM.js";import"./User01-Ct0i24vv.js";import"./Users01-BYaxTYGQ.js";import"./Zap-Bf8uxQjq.js";import"./use-virtual-mcp-DT_fCnuE.js";import"./github-repo-COLY3wWI.js";import"./use-navigate-to-agent-Cf-IaJUb.js";import"./chat-context-C0gBnrEt.js";import"./use-panel-navigate-BG-ooS17.js";import"./slugify-CEUa2lfQ.js";import"./use-is-desktop-app-BNujXJc_.js";import"./use-ai-providers-AGwxnFdj.js";import"./location-oTTXFrSF.js";import"./use-decopilot-events-WOaP0SQC.js";import"./use-organization-settings-BV17wl2V.js";import"./toolbar-icon-button-DI6yIlPy.js";import"./popover-DjscXujA.js";import"./drawer-ClX3akJx.js";import"./github-repo-picker-9AcEQIzR.js";import"./dialog-CWKQw2WC.js";import"./collection-search-CDZk-ZPx.js";import"./use-debounced-value-3IbXIZAk.js";import"./use-connection-CsZlLbEZ.js";import"./authenticate-and-persist-oauth-B1cWso3x.js";import"./mcp-oauth-PBuEj92n.js";import"./extract-connection-data-KaTj8mHV.js";import"./metadata-dUsYcpuu.js";import"./connection-gqBIrJrp.js";import"./provision-repo-scoped-github-connection-WQFARyHG.js";import"./project-icon-D7jcmH3z.js";import"./shell-layout-BBeCMSA6.js";import"./avatar-B5NKRFBP.js";import"./download-app-dialog-BEy2Wnzj.js";import"./command-Ci-j3lot.js";import"./index-BRMuylL4.js";import"./required-auth-layout-ZGcoBsTU.js";import"./use-org-sso-CblCPla_.js";import"./connection-card-Cuu-NGPd.js";import"./use-registry-connections-CdSZH0XX.js";import"./useInfiniteQuery-Din4IYlF.js";import"./use-infinite-scroll-PS5OvGme.js";import"./retry-CErkP7V6.js";import"./connection-slug-CITJ0kGN.js";import"./integration-icon-BLOQWR7d.js";import"./form-CUXIC19o.js";import"./label-CDt53aWD.js";import"./input-fTgot4-g.js";import"./select-aD2SqHOW.js";import"./textarea-DJdAgtmk.js";import"./connection-form-helpers-CBOILzhO.js";import"./collection-tabs-D1lKbsAt.js";import"./badge-BmwbVsh5.js";import"./useSuspenseInfiniteQuery-BeASDmXg.js";import"./use-file-configs-B45QMkT9.js";import"./site-slug-uya6Wp4-.js";import"./dropdown-menu-DUEIZWiX.js";import"./get-initials-D-f_fDFw.js";import"./use-deployment-admin-CMRSZLUJ.js";import"./invite-member-dialog-BIgrWqr7.js";import"./use-org-auth-client-BR0PCT04.js";import"./use-organization-roles-PibAy9Wd.js";import"./scroll-area-F200w2mh.js";import"./format-time-BnbuEtat.js";import"./differenceInSeconds-NQ4PDo0z.js";import"./create-organization-dialog-C3yQmz3P.js";import"./alert-dialog-Cj0fNCkE.js";import"./use-join-requests-DPn5Hwkp.js";function N(t){const e=w.c(11),{onPointerDown:o,onDoubleClick:l}=t,i=z(),{isMobile:b}=g(),c=H();if(b||c)return null;let s;e[0]!==i?(s=i("sidebar.sidebarResizeHandle.ariaLabel"),e[0]=i,e[1]=s):s=e[1];let r;e[2]!==i?(r=i("sidebar.sidebarResizeHandle.title"),e[2]=i,e[3]=r):r=e[3];let p,m;e[4]===Symbol.for("react.memo_cache_sentinel")?(p={left:"var(--sidebar-width)"},m=a.jsx("span",{className:"pointer-events-none absolute inset-y-0 left-1/2 w-px -translate-x-1/2 bg-transparent transition-colors duration-150 group-hover/resize:bg-border group-active/resize:bg-border"}),e[4]=p,e[5]=m):(p=e[4],m=e[5]);let n;return e[6]!==l||e[7]!==o||e[8]!==s||e[9]!==r?(n=a.jsx("div",{role:"separator","aria-orientation":"vertical","aria-label":s,title:r,onPointerDown:o,onDoubleClick:l,className:"group/resize absolute top-0 z-20 h-full w-2 -translate-x-1/2 cursor-col-resize",style:p,children:m}),e[6]=l,e[7]=o,e[8]=s,e[9]=r,e[10]=n):n=e[10],n}const v=240,W=400,C="sidebar.width";function S(t){return Math.max(v,Math.min(W,t))}function X(){const t=w.c(11),[e,o]=_(C,$),l=j.useRef(null);let i;t[0]!==o||t[1]!==e?(i=m=>{m.preventDefault();const n=m.clientX,d=S(e),f=l.current??(typeof document<"u"?document.querySelector('[data-slot="sidebar-wrapper"]'):null),u=f?Array.from(f.querySelectorAll('[data-slot="sidebar"], [data-slot="sidebar-container"]')):[];for(const y of u)y.style.transition="none";const h=y=>{const x=S(d+(y.clientX-n));f?.style.setProperty("--sidebar-width",`${x}px`)},R=y=>{const x=S(d+(y.clientX-n));o(x);for(const E of u)E.style.transition="";window.removeEventListener("pointermove",h),window.removeEventListener("pointerup",R),document.body.style.userSelect="",document.body.style.cursor=""};document.body.style.userSelect="none",document.body.style.cursor="col-resize",window.addEventListener("pointermove",h),window.addEventListener("pointerup",R)},t[0]=o,t[1]=e,t[2]=i):i=t[2];const b=i;let c;t[3]!==o?(c=()=>{o(v)},t[3]=o,t[4]=c):c=t[4];const s=c;let r;t[5]!==e?(r=S(e),t[5]=e,t[6]=r):r=t[6];let p;return t[7]!==b||t[8]!==s||t[9]!==r?(p={width:r,wrapperRef:l,onStartResize:b,resetWidth:s},t[7]=b,t[8]=s,t[9]=r,t[10]=p):p=t[10],p}function $(t){return typeof t=="number"?S(t):v}const P="3.125rem";function rr(){const t=w.c(16),e=D();let o;t[0]===Symbol.for("react.memo_cache_sentinel")?(o=I.sidebarOpen(),t[0]=o):o=t[0];const[l,i]=_(o,!0),{width:b,wrapperRef:c,onStartResize:s,resetWidth:r}=X(),p=`${b}px`;let m;t[1]!==p?(m={"--sidebar-width":p,"--sidebar-width-icon":P},t[1]=p,t[2]=m):m=t[2];const n=m;let d;t[3]!==e||t[4]!==s||t[5]!==r?(d=!e&&a.jsxs(a.Fragment,{children:[a.jsx(T,{}),a.jsx(N,{onPointerDown:s,onDoubleClick:r})]}),t[3]=e,t[4]=s,t[5]=r,t[6]=d):d=t[6];let f;t[7]===Symbol.for("react.memo_cache_sentinel")?(f=a.jsx(O,{className:"flex flex-col min-h-0",style:{background:"transparent",containerType:"inline-size"},children:a.jsx(L,{})}),t[7]=f):f=t[7];let u;t[8]!==n||t[9]!==d||t[10]!==c?(u=a.jsx("div",{className:"app-shell-root flex flex-col h-dvh overflow-hidden",children:a.jsxs(A,{ref:c,className:"flex-1 bg-sidebar relative min-h-0",style:n,children:[d,f]})}),t[8]=n,t[9]=d,t[10]=c,t[11]=u):u=t[11];let h;return t[12]!==i||t[13]!==l||t[14]!==u?(h=a.jsx(M,{open:l,onOpenChange:i,children:u}),t[12]=i,t[13]=l,t[14]=u,t[15]=h):h=t[15],h}export{rr as default};