decocms 4.344.2 → 4.344.4

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 (257) hide show
  1. package/dist/client/assets/{AlertCircle-C0qny1px.js → AlertCircle-MMXQB5BT.js} +1 -1
  2. package/dist/client/assets/{AreaChart-BNxcydhF.js → AreaChart-yVeAt06n.js} +1 -1
  3. package/dist/client/assets/{ArrowLeft-B2XPOt0B.js → ArrowLeft-DcqEiCXC.js} +1 -1
  4. package/dist/client/assets/{ArrowUp-Bhh1sF6B.js → ArrowUp-C0l-cSxr.js} +1 -1
  5. package/dist/client/assets/{Check-CmQ2oLwV.js → Check-COlZG_Iq.js} +1 -1
  6. package/dist/client/assets/{CheckCircle-5VIyydf8.js → CheckCircle-DlrGO-LV.js} +1 -1
  7. package/dist/client/assets/{ChevronRight-B27Hv5xi.js → ChevronRight-lhy77Wwp.js} +1 -1
  8. package/dist/client/assets/{ChevronSelectorVertical-C16IZ1zE.js → ChevronSelectorVertical-DrBBU4AT.js} +1 -1
  9. package/dist/client/assets/{ChevronUp-DjhaEVdT.js → ChevronUp-BBoq4dQx.js} +1 -1
  10. package/dist/client/assets/{Copy01-hpwMZEjO.js → Copy01-ByTSNoHg.js} +1 -1
  11. package/dist/client/assets/{CreditCard01-_mA3pKi1.js → CreditCard01-qqfxWQO_.js} +1 -1
  12. package/dist/client/assets/{DotsVertical-BdoeS7iv.js → DotsVertical-BK7lUtpM.js} +1 -1
  13. package/dist/client/assets/{Download01-LaiEzG3K.js → Download01-Cqs5gANt.js} +1 -1
  14. package/dist/client/assets/{ErrorBarContext-GHNxgIhL.js → ErrorBarContext-CaFlLJMw.js} +1 -1
  15. package/dist/client/assets/{Eye-Dv6k5qFi.js → Eye-De6iXjt2.js} +1 -1
  16. package/dist/client/assets/{GitBranch01--7681EQG.js → GitBranch01-C7r39_B1.js} +1 -1
  17. package/dist/client/assets/{Globe01-DbmZ0o2m.js → Globe01-BVw1J1dL.js} +1 -1
  18. package/dist/client/assets/{HardDrive-DhrO38sr.js → HardDrive-UD8cThYr.js} +1 -1
  19. package/dist/client/assets/{Image01-B__pNkrA.js → Image01-2rJjksWt.js} +1 -1
  20. package/dist/client/assets/{Key01-B99AObCK.js → Key01-g1jGSd1T.js} +1 -1
  21. package/dist/client/assets/{Link01-BqiRcefs.js → Link01-BECijxK2.js} +1 -1
  22. package/dist/client/assets/{LinkExternal01-uMPfzQw5.js → LinkExternal01-CO1G1_g7.js} +1 -1
  23. package/dist/client/assets/{Monitor01-meoYyhOW.js → Monitor01-BbOgpVrd.js} +1 -1
  24. package/dist/client/assets/{Package-Cz3ieF2n.js → Package-CLE_ytpB.js} +1 -1
  25. package/dist/client/assets/{Palette-CYkdSv-c.js → Palette-CLZ81RQu.js} +1 -1
  26. package/dist/client/assets/{Play-CYQqcuRA.js → Play-BS6znGOA.js} +1 -1
  27. package/dist/client/assets/{Plus-C93pYF67.js → Plus-RDqtgmUn.js} +1 -1
  28. package/dist/client/assets/{SearchMd-BgrahhLJ.js → SearchMd-BPJyn57v.js} +1 -1
  29. package/dist/client/assets/{Sector-DA4aDIUa.js → Sector-0dGAognD.js} +1 -1
  30. package/dist/client/assets/{Settings02-CF6_FXnL.js → Settings02-DCwLCWga.js} +1 -1
  31. package/dist/client/assets/{Share07-DNrUoDK2.js → Share07-CZ9aibs3.js} +1 -1
  32. package/dist/client/assets/{Shield01-BK6WsY_Q.js → Shield01-D_ej3uf2.js} +1 -1
  33. package/dist/client/assets/{Stars01-CMlFN1iY.js → Stars01-CpnggJLh.js} +1 -1
  34. package/dist/client/assets/{Sun-DcyZD3fZ.js → Sun-BVXGJtHB.js} +1 -1
  35. package/dist/client/assets/{Tool01-CJk3kST-.js → Tool01-lLgSUXVY.js} +1 -1
  36. package/dist/client/assets/{Tool02-C5AbXwYZ.js → Tool02-DbSkbpld.js} +1 -1
  37. package/dist/client/assets/{Trash01-DXUyyosw.js → Trash01-BKalTQIS.js} +1 -1
  38. package/dist/client/assets/{TrendUp01-BpraasBt.js → TrendUp01-Cm7YwYbt.js} +1 -1
  39. package/dist/client/assets/{Upload01-CAEKyOZy.js → Upload01-HHF0-qzw.js} +1 -1
  40. package/dist/client/assets/{User01-By3UU9_0.js → User01-r0_GbQ8r.js} +1 -1
  41. package/dist/client/assets/{UserSquare-C9Yj5vKH.js → UserSquare-hcaj17gz.js} +1 -1
  42. package/dist/client/assets/{Users01-BnSJOwH_.js → Users01-Bu5fyBA6.js} +1 -1
  43. package/dist/client/assets/{Users03-Br54yZny.js → Users03-BOFJsacM.js} +1 -1
  44. package/dist/client/assets/{XCircle-xCNpg4_3.js → XCircle-Mj5ql-Qx.js} +1 -1
  45. package/dist/client/assets/{XClose-D6CVjuQD.js → XClose-Df2qGXCV.js} +1 -1
  46. package/dist/client/assets/{Zap-B9B8yhi7.js → Zap-Cokcdzem.js} +1 -1
  47. package/dist/client/assets/{ZoomOut-C6ZLfLr7.js → ZoomOut-T2TmOAC7.js} +1 -1
  48. package/dist/client/assets/{access-gate-BqfCjr72.js → access-gate-tjl-KQc5.js} +1 -1
  49. package/dist/client/assets/{agent-icon-Sokr2wRV.js → agent-icon-Dud4Dgyt.js} +1 -1
  50. package/dist/client/assets/{agents-list-ClI3IQyW.js → agents-list-C2SALbi7.js} +1 -1
  51. package/dist/client/assets/{ai-providers-BiPyBRlR.js → ai-providers-DrsNB3ZL.js} +1 -1
  52. package/dist/client/assets/{alert-CFcbNqtp.js → alert-CSBIES1I.js} +1 -1
  53. package/dist/client/assets/{alert-dialog-CNldqZsO.js → alert-dialog-DR3U9WH-.js} +1 -1
  54. package/dist/client/assets/{analytics-tab-BQJ-onyb.js → analytics-tab-NgL3s46L.js} +1 -1
  55. package/dist/client/assets/{api-keys-WzJqP8Kj.js → api-keys-B9YvTwjr.js} +1 -1
  56. package/dist/client/assets/api-keys-BKUTfUtI.js +1 -0
  57. package/dist/client/assets/app-editor-B7bRgdBC.js +1 -0
  58. package/dist/client/assets/{auth-catchall-DhQ_dsU6.js → auth-catchall-DlIPkq35.js} +1 -1
  59. package/dist/client/assets/{auth-entry-H_tkAl6r.js → auth-entry-DYxJPWB9.js} +1 -1
  60. package/dist/client/assets/{auth-DwMcGIkW.js → auth-pxmXflMC.js} +1 -1
  61. package/dist/client/assets/{auth-split-layout-DDvsORYF.js → auth-split-layout-BEtw3h52.js} +1 -1
  62. package/dist/client/assets/{authenticate-and-persist-oauth-CUqRnEoc.js → authenticate-and-persist-oauth-DEt4nWzC.js} +1 -1
  63. package/dist/client/assets/{automation-list-row-czAKSqCd.js → automation-list-row-w_6dod7A.js} +1 -1
  64. package/dist/client/assets/{automation-runs-B1sDggeq.js → automation-runs-CSMD6Fno.js} +1 -1
  65. package/dist/client/assets/{automations-mh1wCA2E.js → automations-Chklo3P6.js} +1 -1
  66. package/dist/client/assets/{autosend-C2M3oMWg.js → autosend-BTepWx3_.js} +1 -1
  67. package/dist/client/assets/{avatar-E3Ku78Qr.js → avatar--vQE0XAV.js} +1 -1
  68. package/dist/client/assets/{badge-C1plUCvU.js → badge-BsDrwMQC.js} +1 -1
  69. package/dist/client/assets/{block-document-DnS9PwNb.js → block-document-CvifDrCI.js} +1 -1
  70. package/dist/client/assets/{breadcrumb-CEOyoxxM.js → breadcrumb--1eSMHFt.js} +1 -1
  71. package/dist/client/assets/{buckets-C25mccgP.js → buckets-CXTxvCv-.js} +1 -1
  72. package/dist/client/assets/{bulk-category-panel-6WLeyrzh.js → bulk-category-panel-Bx5YHxjU.js} +1 -1
  73. package/dist/client/assets/{capability-load-error-DaASiLKE.js → capability-load-error-Dafmx4Ll.js} +1 -1
  74. package/dist/client/assets/{cards-DrEtEuSA.js → cards-DWh17eYP.js} +1 -1
  75. package/dist/client/assets/{category-editor-B09JH3m-.js → category-editor-BeXDYFhG.js} +1 -1
  76. package/dist/client/assets/{cdn-tab-CZ1Rz28V.js → cdn-tab-C1FgbuSh.js} +1 -1
  77. package/dist/client/assets/{chart-DLN94Yuh.js → chart-DClpxfm_.js} +1 -1
  78. package/dist/client/assets/{chat-context-Cj5PFaOM.js → chat-context-C9lWTtFJ.js} +1 -1
  79. package/dist/client/assets/{checkbox-CVnXYBps.js → checkbox-QNc1bP0G.js} +1 -1
  80. package/dist/client/assets/{choose-editor-BE92k8jI.js → choose-editor-CHBT1o2b.js} +1 -1
  81. package/dist/client/assets/{cli-auth-success-BMGCM_8X.js → cli-auth-success-ItLmOJgn.js} +1 -1
  82. package/dist/client/assets/{client-icons-C2e6COqB.js → client-icons-CAQi5x0D.js} +1 -1
  83. package/dist/client/assets/{collection-detail-x7ykT2Ry.js → collection-detail-D8x6ZU5_.js} +1 -1
  84. package/dist/client/assets/{collection-display-button-CfIQymG1.js → collection-display-button-sHhiXn17.js} +1 -1
  85. package/dist/client/assets/{collection-search-DxOane-0.js → collection-search-BQUnJFre.js} +1 -1
  86. package/dist/client/assets/{collection-table-wrapper-CpVYdRK4.js → collection-table-wrapper-BEX1_xVZ.js} +1 -1
  87. package/dist/client/assets/{collection-tabs-CyauGvwq.js → collection-tabs-CPQ4VrZ9.js} +1 -1
  88. package/dist/client/assets/{command-Hj_raW8k.js → command-CfiREnnD.js} +1 -1
  89. package/dist/client/assets/{commerce-onboarding-CuLqtbcy.js → commerce-onboarding-DiMj1pm4.js} +1 -1
  90. package/dist/client/assets/{connect-Xz6c3641.js → connect-C590HPCH.js} +1 -1
  91. package/dist/client/assets/{connect-layout-K-hZ0_ym.js → connect-layout-uoNJYOn4.js} +1 -1
  92. package/dist/client/assets/{connection-BmloY6wm.js → connection-C8iBaknC.js} +1 -1
  93. package/dist/client/assets/{connection-card-DkeFitC9.js → connection-card-BRtH_NyF.js} +1 -1
  94. package/dist/client/assets/{connection-detail-DsNeFFvP.js → connection-detail-DAZ9PGtT.js} +1 -1
  95. package/dist/client/assets/{connection-form-helpers-BqIKeSnw.js → connection-form-helpers-BExi3iUW.js} +1 -1
  96. package/dist/client/assets/{connections-aykt3abn.js → connections-DxzZcAAQ.js} +1 -1
  97. package/dist/client/assets/{create-organization-dialog-BX0CUO0j.js → create-organization-dialog-CMEbcfeY.js} +1 -1
  98. package/dist/client/assets/{decopilot-sse-pool-DZr2L-JD.js → decopilot-sse-pool-BEKKOta-.js} +1 -1
  99. package/dist/client/assets/{dialog-DQfbJCC6.js → dialog-Dn9dA6Rv.js} +1 -1
  100. package/dist/client/assets/{domain-settings-A8c7ke5N.js → domain-settings-HD-p0a2P.js} +1 -1
  101. package/dist/client/assets/{drawer-B9bDs4Ls.js → drawer-C2zduVGY.js} +1 -1
  102. package/dist/client/assets/{dropdown-menu-DOECFeLR.js → dropdown-menu-nFmVNZOj.js} +1 -1
  103. package/dist/client/assets/{e2e-tab-Blf2Ap_9.js → e2e-tab-CPMFk97B.js} +1 -1
  104. package/dist/client/assets/{editor-fUuz2MTe.js → editor-CTbgd0DG.js} +1 -1
  105. package/dist/client/assets/{empty-state-DB7HW5VU.js → empty-state-B4rx-IxR.js} +1 -1
  106. package/dist/client/assets/{empty-state-13O4lRlk.js → empty-state-BhGR8qhU.js} +1 -1
  107. package/dist/client/assets/{extract-connection-data-B45ll6gx.js → extract-connection-data-BzkNyMFd.js} +1 -1
  108. package/dist/client/assets/{file-explorer-rIcSF1Wr.js → file-explorer-Czaff-IK.js} +1 -1
  109. package/dist/client/assets/{file-type-icon-GIi5lUDa.js → file-type-icon-DdLRSJG1.js} +1 -1
  110. package/dist/client/assets/{folder-icon-1B7OaZuC.js → folder-icon-BmvMT_Zn.js} +1 -1
  111. package/dist/client/assets/{form-D1uCY5P6.js → form-fu44NVNg.js} +1 -1
  112. package/dist/client/assets/{general-Co5dzuX-.js → general-DbNOgsZ8.js} +1 -1
  113. package/dist/client/assets/{github-icon-BCHup1mY.js → github-icon-CWspdq_p.js} +1 -1
  114. package/dist/client/assets/{hooks-Bp1NdkLZ.js → hooks-DbYjnhUf.js} +1 -1
  115. package/dist/client/assets/{hosting-tab-WhehOhV2.js → hosting-tab-Cgg1sG_u.js} +1 -1
  116. package/dist/client/assets/{index-BxhlSimQ.js → index-8Crc8SXX.js} +1 -1
  117. package/dist/client/assets/{index-D7qUeb84.js → index-BWDxLD35.js} +6 -6
  118. package/dist/client/assets/{index-BQcoMXia.js → index-BZsplvNT.js} +25 -25
  119. package/dist/client/assets/{index-DppZ6Cuh.js → index-BjFdFeie.js} +1 -1
  120. package/dist/client/assets/{index-BqWHsoZ7.js → index-Ct5rA0-g.js} +1 -1
  121. package/dist/client/assets/{index-DgzjHRte.js → index-CynzbMm4.js} +1 -1
  122. package/dist/client/assets/{index-Bwb7o3GW.js → index-DN-3imGW.js} +1 -1
  123. package/dist/client/assets/{index-CvfUTEg1.js → index-QjV5PBHw.js} +1 -1
  124. package/dist/client/assets/{index-B-SFzwQ0.js → index-jvb5JpTh.js} +1 -1
  125. package/dist/client/assets/{index-DF7KW54C.js → index-kyz_nUCi.js} +1 -1
  126. package/dist/client/assets/{index-redirect-CHqT86li.js → index-redirect-D3POnIh8.js} +1 -1
  127. package/dist/client/assets/{infiniteQueryObserver-B6kEjjrG.js → infiniteQueryObserver-OPx_IdGS.js} +1 -1
  128. package/dist/client/assets/{infra-billing-DZmmt6zX.js → infra-billing-CRZG7-9t.js} +1 -1
  129. package/dist/client/assets/{input-CMpXoJQQ.js → input-MZsLaCQZ.js} +1 -1
  130. package/dist/client/assets/{integration-icon-KBoNAUV5.js → integration-icon-BN_v-AR8.js} +1 -1
  131. package/dist/client/assets/{invite-member-dialog-DzmoZ7z0.js → invite-member-dialog-BLEWp8gy.js} +1 -1
  132. package/dist/client/assets/{label-DodRSPBl.js → label-CLbn6I-z.js} +1 -1
  133. package/dist/client/assets/{layout-p84CPw_W.js → layout-Cndx-lJE.js} +1 -1
  134. package/dist/client/assets/{login-qaDZ6pfK.js → login-HuqqF-1k.js} +1 -1
  135. package/dist/client/assets/{markdown-CXIAcTBJ.js → markdown-DAt9kqvI.js} +1 -1
  136. package/dist/client/assets/{mcp-app-renderer-iVlibFiT.js → mcp-app-renderer-BWNi86_e.js} +1 -1
  137. package/dist/client/assets/{mcp-oauth-Cahsr_xA.js → mcp-oauth-Dwal9CtL.js} +1 -1
  138. package/dist/client/assets/{members-CVoitCGA.js → members-m6A5KiaB.js} +1 -1
  139. package/dist/client/assets/{monaco-editor-Dlrh6WT0.js → monaco-editor-BDGu60Kj.js} +1 -1
  140. package/dist/client/assets/{monitoring-stats-row-UUJjSC2L.js → monitoring-stats-row-CbsfH-jC.js} +1 -1
  141. package/dist/client/assets/{multi-select-C9FaGgMm.js → multi-select-BWbyu4GD.js} +1 -1
  142. package/dist/client/assets/{oauth-callback-BrsfA7zh.js → oauth-callback-DI2eutSn.js} +1 -1
  143. package/dist/client/assets/{oauth-callback-ai-provider-CijU2vJE.js → oauth-callback-ai-provider-Bq0wfzLm.js} +1 -1
  144. package/dist/client/assets/{onboarding-CkcuLiZT.js → onboarding-CkiQtPaQ.js} +1 -1
  145. package/dist/client/assets/{org-layout-C1jBywh4.js → org-layout-d65Yldzy.js} +1 -1
  146. package/dist/client/assets/{organization-choice-CpltQ7-f.js → organization-choice-C88i014U.js} +1 -1
  147. package/dist/client/assets/{orgs-WhkmcxJ0.js → orgs-B2ed6u31.js} +1 -1
  148. package/dist/client/assets/{page-seo-form-DCTcv1uv.js → page-seo-form-wint5qXC.js} +1 -1
  149. package/dist/client/assets/{popover-1HuPDlq4.js → popover-hKCv1VM6.js} +1 -1
  150. package/dist/client/assets/{post-calendar-MP1XEDcJ.js → post-calendar-pp6SUqf1.js} +1 -1
  151. package/dist/client/assets/{post-editor-U0U-5c0E.js → post-editor-CmMNYzrc.js} +1 -1
  152. package/dist/client/assets/{primitives-KfqX5TVa.js → primitives-B-O1UE0A.js} +1 -1
  153. package/dist/client/assets/{profile-v9KeCx-y.js → profile-DM7rMY2F.js} +1 -1
  154. package/dist/client/assets/{project-app-view-BwZk6Udn.js → project-app-view-BNsHn5Uh.js} +1 -1
  155. package/dist/client/assets/{project-icon-DMd26Pls.js → project-icon-D8jpcjeG.js} +1 -1
  156. package/dist/client/assets/{prompts-CBgpH6_D.js → prompts-DkkC-eqS.js} +1 -1
  157. package/dist/client/assets/record-editor-BmqGb_Zo.js +1 -0
  158. package/dist/client/assets/redirect-editor-CyyPNlIj.js +1 -0
  159. package/dist/client/assets/{registry-layout-CzT3YaK7.js → registry-layout-D4YhR76r.js} +1 -1
  160. package/dist/client/assets/registry-tFRQZakc.js +2 -0
  161. package/dist/client/assets/{reports-DjQdnDXe.js → reports-CH1NPn70.js} +1 -1
  162. package/dist/client/assets/repositories-VIP8TM6S.js +1 -0
  163. package/dist/client/assets/{repository-import-picker-C4ReqfSZ.js → repository-import-picker-BtZlpocU.js} +1 -1
  164. package/dist/client/assets/repository-picker-nNmLRtMV.js +1 -0
  165. package/dist/client/assets/{require-capability-BiJ9J6gK.js → require-capability-DeSNM-qc.js} +1 -1
  166. package/dist/client/assets/{required-auth-layout-CCzrqs7a.js → required-auth-layout-DDtOwDBP.js} +1 -1
  167. package/dist/client/assets/{reset-password-DzD5F-bQ.js → reset-password-CCPqEEuB.js} +1 -1
  168. package/dist/client/assets/{review-settings-ChCihbTS.js → review-settings-D7yIvq08.js} +1 -1
  169. package/dist/client/assets/{roles-DkR-RRyj.js → roles-ByD_eMtG.js} +1 -1
  170. package/dist/client/assets/{schema-DM4fDgzo.js → schema-D-Yt_dVJ.js} +1 -1
  171. package/dist/client/assets/{scroll-area-DWyWk7Jv.js → scroll-area-BCJcp5qm.js} +1 -1
  172. package/dist/client/assets/{search-input-BrPxku06.js → search-input-CfYSReFc.js} +1 -1
  173. package/dist/client/assets/{secrets-hNPljrJ4.js → secrets-VhaU4I-n.js} +1 -1
  174. package/dist/client/assets/{sections-editor-DnGZRBS3.js → sections-editor-CbIx_gFP.js} +1 -1
  175. package/dist/client/assets/{select-Biz9Nswo.js → select-NANblt2H.js} +1 -1
  176. package/dist/client/assets/{select-model-BgSq1LgM.js → select-model-DUIjK9U7.js} +1 -1
  177. package/dist/client/assets/{self-tool-result-klr6v5UO.js → self-tool-result-C6WuYAjK.js} +1 -1
  178. package/dist/client/assets/{seo-editor-DfcoS9MP.js → seo-editor-MilAfPeH.js} +1 -1
  179. package/dist/client/assets/settings-layout-qx89HSSt.js +1 -0
  180. package/dist/client/assets/{settings-sidebar-BeUFOMYU.js → settings-sidebar-jJm3A_Wp.js} +1 -1
  181. package/dist/client/assets/{shell-controls-DUYrjBrP.js → shell-controls-B0eaQlPV.js} +1 -1
  182. package/dist/client/assets/{shell-layout-DedSudP1.js → shell-layout-CV8Ixl8_.js} +1 -1
  183. package/dist/client/assets/{skill-preview-KNzIWmHY.js → skill-preview-DqgiXYj-.js} +1 -1
  184. package/dist/client/assets/{skills-SswbLa5T.js → skills-PrvnaupX.js} +1 -1
  185. package/dist/client/assets/{sso-CXJr0VQP.js → sso-gxLIhDQT.js} +1 -1
  186. package/dist/client/assets/{store-Dfdc4PHh.js → store-BTWjEs30.js} +1 -1
  187. package/dist/client/assets/store-registry-DIHiXDnw.js +2 -0
  188. package/dist/client/assets/{switch-vGB5Iw30.js → switch-2iiOxMIT.js} +1 -1
  189. package/dist/client/assets/{synced-repos-CUidyAWL.js → synced-repos-Dq0mvbwm.js} +1 -1
  190. package/dist/client/assets/{table-DSdoGDbv.js → table-BI2-Msk8.js} +1 -1
  191. package/dist/client/assets/{tabs-B-iSBwwB.js → tabs-KWxF94R5.js} +1 -1
  192. package/dist/client/assets/{task-board-YGgzMS53.js → task-board-CIYSPfni.js} +1 -1
  193. package/dist/client/assets/{task-route-Ce5mQ3Za.js → task-route-Qet1qaWg.js} +1 -1
  194. package/dist/client/assets/{tasks-Bse92t-v.js → tasks-mySCoXvt.js} +1 -1
  195. package/dist/client/assets/{textarea-BHyVakeU.js → textarea-BrZpmcDa.js} +1 -1
  196. package/dist/client/assets/{thread-intent-Du1_x4Jo.js → thread-intent-D83P1YX-.js} +1 -1
  197. package/dist/client/assets/{thread-route-FbwK7fgk.js → thread-route-BJMImioz.js} +1 -1
  198. package/dist/client/assets/{toggle-group-Dax2ER5x.js → toggle-group-B8axbJ88.js} +1 -1
  199. package/dist/client/assets/{toolbar-BwnpNgw5.js → toolbar-CQ1c9TU5.js} +1 -1
  200. package/dist/client/assets/{toolbar-icon-button-MI8EHgxl.js → toolbar-icon-button-TKQD0EoO.js} +1 -1
  201. package/dist/client/assets/{track-BHRpjdS1.js → track-DtXEYVxz.js} +1 -1
  202. package/dist/client/assets/{types-CksA11PS.js → types-DIafnHyw.js} +1 -1
  203. package/dist/client/assets/{use-ai-providers-CR5aXXx9.js → use-ai-providers-C6jqS37t.js} +1 -1
  204. package/dist/client/assets/{use-automations-CR3y-cno.js → use-automations-0rXR_jur.js} +1 -1
  205. package/dist/client/assets/{use-autosave-DZ8ozoxR.js → use-autosave-ONqifd0v.js} +1 -1
  206. package/dist/client/assets/{use-connection-DevEmQgx.js → use-connection-BASuVort.js} +1 -1
  207. package/dist/client/assets/{use-copy-BwhkoVWT.js → use-copy-CfbW_sJF.js} +1 -1
  208. package/dist/client/assets/{use-create-virtual-mcp-DSbrYl04.js → use-create-virtual-mcp-BFwR2LLd.js} +1 -1
  209. package/dist/client/assets/{use-date-fns-locale-CsR-muSU.js → use-date-fns-locale-rJyU17pO.js} +1 -1
  210. package/dist/client/assets/{use-debounced-autosave-DKLFJ5dE.js → use-debounced-autosave-DE2qvgUH.js} +1 -1
  211. package/dist/client/assets/{use-debounced-value-HSbVg15K.js → use-debounced-value-CPoNgVAT.js} +1 -1
  212. package/dist/client/assets/{use-decopilot-events-BjUmeoBW.js → use-decopilot-events-Ba2e0p8u.js} +1 -1
  213. package/dist/client/assets/{use-delete-connection-Cwrx1UQB.js → use-delete-connection-CLSY2jpQ.js} +1 -1
  214. package/dist/client/assets/{use-deployment-admin-cCGiEL7u.js → use-deployment-admin-DjyhNRVh.js} +1 -1
  215. package/dist/client/assets/{use-destination-route-Cy6Wb0tP.js → use-destination-route-BqyAy3Oj.js} +1 -1
  216. package/dist/client/assets/{use-file-configs-BvYm0UJv.js → use-file-configs-DEwUByyO.js} +1 -1
  217. package/dist/client/assets/{use-infinite-scroll-DltgLysD.js → use-infinite-scroll-xe2j8vP-.js} +1 -1
  218. package/dist/client/assets/{use-join-requests-DDT_8QXv.js → use-join-requests-DWRW4Nw6.js} +1 -1
  219. package/dist/client/assets/{use-mcp-auth-status-DEs88obf.js → use-mcp-auth-status-D_UjuiQT.js} +1 -1
  220. package/dist/client/assets/{use-mcp-client-Bcw5zCo1.js → use-mcp-client-Czt5As3J.js} +1 -1
  221. package/dist/client/assets/{use-mcp-prompts-ShaK7Sn1.js → use-mcp-prompts-BdJKj4LE.js} +1 -1
  222. package/dist/client/assets/{use-mcp-tools-BbuyA-nn.js → use-mcp-tools-CrhdqfI1.js} +1 -1
  223. package/dist/client/assets/{use-members-DWHm6J5E.js → use-members-CjQN-pzi.js} +1 -1
  224. package/dist/client/assets/{use-navigate-to-agent-C5VUtvNR.js → use-navigate-to-agent-CSvXEd48.js} +1 -1
  225. package/dist/client/assets/{use-org-auth-client-U6rTeVug.js → use-org-auth-client-C1KTKuFD.js} +1 -1
  226. package/dist/client/assets/{use-org-notice-D-KSDtqd.js → use-org-notice-CMibf9Lb.js} +1 -1
  227. package/dist/client/assets/{use-org-sso-DRZKsxoE.js → use-org-sso-Dt4n-uJ6.js} +1 -1
  228. package/dist/client/assets/{use-organization-roles-Bc3vsckc.js → use-organization-roles-BQX1Apru.js} +1 -1
  229. package/dist/client/assets/{use-organization-settings-CvNxIv-E.js → use-organization-settings-DUnuAPqv.js} +1 -1
  230. package/dist/client/assets/{use-panel-navigate-ByHiKiT-.js → use-panel-navigate-CClWc1o5.js} +1 -1
  231. package/dist/client/assets/{use-registry-connections-esc0qiTG.js → use-registry-connections--YU44G6-.js} +1 -1
  232. package/dist/client/assets/{use-secrets-DsTKtQMN.js → use-secrets-CAcbMNuV.js} +1 -1
  233. package/dist/client/assets/{use-section-preview-base-DcluO2Ni.js → use-section-preview-base-BJKm5dYq.js} +1 -1
  234. package/dist/client/assets/{use-status-sounds-kmyo4ncc.js → use-status-sounds-DRFYHjKx.js} +1 -1
  235. package/dist/client/assets/{use-tags-dH77QWAi.js → use-tags-WZbYjj0q.js} +1 -1
  236. package/dist/client/assets/{use-view-mode-CWAbp_M4.js → use-view-mode-ClHuh5-e.js} +1 -1
  237. package/dist/client/assets/{use-virtual-mcp-DQRWXbcv.js → use-virtual-mcp-B-ZmtBG6.js} +1 -1
  238. package/dist/client/assets/useInfiniteQuery-Cfow7UUh.js +1 -0
  239. package/dist/client/assets/useSuspenseInfiniteQuery-Btts--oR.js +1 -0
  240. package/dist/client/assets/{users-CQ9RsvIu.js → users-CbysTzDo.js} +1 -1
  241. package/dist/client/assets/{variant-calendar-Cm-vJHJd.js → variant-calendar-COq-MIb2.js} +1 -1
  242. package/dist/client/assets/{view-mode-toggle-BAznsDzK.js → view-mode-toggle-CNRnTxNm.js} +1 -1
  243. package/dist/client/index.html +1 -1
  244. package/dist/server/cli.js +3 -3
  245. package/dist/server/server.js +3 -3
  246. package/package.json +1 -1
  247. package/dist/client/assets/api-keys-ChG3M8Mw.js +0 -1
  248. package/dist/client/assets/app-editor-8aYF0SAd.js +0 -1
  249. package/dist/client/assets/record-editor-COIIYg4K.js +0 -1
  250. package/dist/client/assets/redirect-editor-CsEXUbgi.js +0 -1
  251. package/dist/client/assets/registry-C8XSrdWL.js +0 -2
  252. package/dist/client/assets/repositories-AYkI0R1m.js +0 -1
  253. package/dist/client/assets/repository-picker-D40DSLJP.js +0 -1
  254. package/dist/client/assets/settings-layout-BxIBM9qK.js +0 -1
  255. package/dist/client/assets/store-registry-7tXK9BjC.js +0 -2
  256. package/dist/client/assets/useInfiniteQuery-D4aaR12K.js +0 -1
  257. package/dist/client/assets/useSuspenseInfiniteQuery-FTKrOF08.js +0 -1
@@ -1939,7 +1939,7 @@ Usage: deco services <up|down|status>`),process.exit(1)}}var qr1=D(()=>{Fy()});f
1939
1939
  `.execute($);if(Number(W.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${G}/${K}, keeping in old table`);continue}}await bg`
1940
1940
  DELETE FROM kysely_migration WHERE name = ${Q}
1941
1941
  `.execute($)}}async function h1$($){await W64($),await H64($);let Z=new y1$({db:$,provider:{getMigrations:()=>Promise.resolve(Mo0)}}),{error:Q,results:X}=await Z.migrateToLatest(),Y=0;if(X?.forEach((J)=>{if(J.status==="Success")Y++;else if(J.status==="Error")console.error(`Failed to execute migration "${J.migrationName}"`)}),Q)throw console.error("Failed to migrate"),console.error(Q),Q;return Y}async function F64($){let{keepOpen:Z=!1,database:Q,skipBetterAuth:X=!1}=$??{},Y="skipped";if(!X&&!Q)Y=await Xi0();let J=Q??u$(),G=async()=>{if(!Z&&!Q)await uO(J).catch((K)=>{console.warn("Warning: Error closing database:",K)})};try{let K=await h1$(J.db);return await G(),{betterAuth:Y,kysely:K}}catch(K){throw await G(),K}}async function U64(){let $=u$(),Z=new y1$({db:$.db,provider:{getMigrations:()=>Promise.resolve(Mo0)}}),{error:Q,results:X}=await Z.migrateDown();if(X?.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}"`)}),Q)throw console.error("Failed to rollback migration"),console.error(Q),Q}var c1$=D(()=>{b1$();Yi0();wQ()});async function BX0($){let Z={...process.env},Q=X60($,Z);console.log(VP1(Q.settings.encryptionKey));let X=Q.settings.betterAuthSecret||(Q.settings.localMode?Ys1(Q.settings.dataDir):""),{ensureServices:Y}=await Promise.resolve().then(() => (DQ0(),OQ0)),{outputs:J,services:G}=await Y({home:Q.settings.dataDir,externalDatabaseUrl:Q.externalDatabaseUrl,externalNatsUrl:Q.externalNatsUrl});if(!Q.skipMigrations){let{migrateBetterAuth:W}=await Promise.resolve().then(() => (Yi0(),Gs1));await W(J.databaseUrl);let{createDatabase:H}=await Promise.resolve().then(() => (wQ(),Aa1)),{migrateToLatest:F}=await Promise.resolve().then(() => (c1$(),u1$)),U=H(J.databaseUrl);await F({keepOpen:!0,database:U,skipBetterAuth:!0})}let K={...Q.settings,betterAuthSecret:X,databaseUrl:J.databaseUrl,natsUrls:J.natsUrls,...J.s3?{s3Endpoint:J.s3.endpoint,s3Bucket:J.s3.bucket,s3AccessKeyId:J.s3.accessKeyId,s3SecretAccessKey:J.s3.secretAccessKey,s3ForcePathStyle:J.s3.forcePathStyle}:{}};return Mr1(K),{settings:K,services:G.map((W)=>({name:W.name==="PostgreSQL"?"Postgres":W.name,port:W.port})),managedServiceNames:G.filter((W)=>W.owner==="managed").map((W)=>W.name)}}var Vo0=D(()=>{Fy();Js1();A$()});var i1$={};e(i1$,{updateService:()=>bE,subscribeCliState:()=>Co0,setTuiConsoleIntercepted:()=>OX0,setServerUrl:()=>hn,setMigrationsDone:()=>gn,setDevMode:()=>B64,resetCliStateForTests:()=>N64,isTuiConsoleIntercepted:()=>DX0,getCliState:()=>So0,addLogEntry:()=>nO});function l1$(){return[{name:"Postgres",status:"pending",port:0},{name:"NATS",status:"pending",port:0}]}function m1$(){return{services:l1$(),migrationsStatus:"pending",serverUrl:null,logs:[]}}function N64(){KY=m1$()}function yn(){for(let $ of ko0)$()}function So0(){return KY}function Co0($){return ko0.add($),()=>ko0.delete($)}function bE($){KY={...KY,services:KY.services.map((Z)=>Z.name===$.name?$:Z)},yn()}function gn(){KY={...KY,migrationsStatus:"done"},yn()}function hn($){KY={...KY,serverUrl:$},yn()}function nO($){let Z=[...KY.logs,$];KY={...KY,logs:Z.length>500?Z.slice(-500):Z},yn()}function B64(){KY={...KY,services:[...l1$(),{name:"API",status:"pending",port:0},{name:"Vite",status:"pending",port:0}]},yn()}function OX0($){d1$=$}function DX0(){return d1$}var KY,ko0,d1$=!1;var yE=D(()=>{KY=m1$();ko0=new Set});import{createServer as p1$}from"net";function O64($){return new Promise((Z)=>{let Q=p1$();Q.once("error",()=>Z(!1)),Q.listen($,"0.0.0.0",()=>{Q.close(()=>Z(!0))})})}async function un($){if(await O64($))return $;let Z=await new Promise((Q,X)=>{let Y=p1$();Y.once("error",X),Y.listen(0,"0.0.0.0",()=>{let J=Y.address(),G=typeof J==="object"&&J?J.port:0;Y.close(()=>Q(G))})});return console.warn(`Port ${$} is in use, using port ${Z} instead.`),Z}var _o0=()=>{};var xo0={};e(xo0,{startDevServer:()=>L64,pipeToLogStore:()=>vo0});import{join as D64}from"path";function vo0($){let Z=$.getReader(),Q=new TextDecoder,X="";function Y(){let J=X.split(`
1942
- `);X=J.pop()??"";for(let G of J){let K=Bun.stripANSI(G).replace(/^\[\d+\]\s*/,"").trim();if(!K)continue;nO({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:K})}}(async()=>{try{for(;;){let{done:J,value:G}=await Z.read();if(J)break;X+=Q.decode(G,{stream:!0}),Y()}}catch{}if(X.trim()){let J=Bun.stripANSI(X).replace(/^\[\d+\]\s*/,"").trim();if(J)nO({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:J})}})()}async function L64($){let{baseUrl:Z,noTui:Q}=$,X=process.env.HOST==="0.0.0.0"&&Boolean(process.env.PORT),Y=X?process.env.PORT:$.vitePort,J=Z||`http://localhost:${Y}`,G=X?await un(Number(Y)+1):await un(Number($.port)),{settings:K,services:W,managedServiceNames:H}=await BX0({port:String(G),home:$.home,baseUrl:$.baseUrl,localMode:$.localMode,skipMigrations:$.skipMigrations,noTui:$.noTui,vitePort:$.vitePort});for(let L of W)bE({name:L.name,status:"ready",port:L.port});gn();let F=D64(import.meta.dir,"..","..","..","..",".."),U=Q===!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:J,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)vo0(N.stdout),vo0(N.stderr);hn(J),bE({name:"Vite",status:"ready",port:Number(Y)}),bE({name:"API",status:"ready",port:Number(K.port)});let O=async(L)=>{if(N.kill(L),await N.exited,H.length>0){let{stopServices:w}=await Promise.resolve().then(() => (DQ0(),OQ0));await w(K.dataDir)}};return process.on("SIGINT",()=>O("SIGINT")),process.on("SIGTERM",()=>O("SIGTERM")),{port:Number(Y),process:N}}var fo0=D(()=>{Vo0();yE();_o0()});var LX0;var bo0=D(()=>{LX0={name:"decocms",version:"4.344.2",description:"Deco CMS \u2014 Self-hostable MCP Gateway for managing AI connections and tools",author:"Deco team",repository:{type:"git",url:"git+https://github.com/decocms/studio.git",directory:"apps/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 j64,Text as n1$}from"ink";import{jsx as E64,jsxs as t1$}from"react/jsx-runtime";function o1$({version:$}){return t1$(j64,{flexDirection:"column",marginTop:1,children:[gQ0.map((Z,Q)=>E64(n1$,{color:hQ0[Q],children:Z},Q)),t1$(n1$,{dimColor:!0,children:[" v",$]})]})}var r1$=D(()=>{Rn()});import{Box as gE,Text as tO}from"ink";import{Spinner as z64}from"@inkjs/ui";import{jsx as TJ,jsxs as yg}from"react/jsx-runtime";function a1$({status:$}){if($==="pending")return TJ(z64,{label:""});return TJ(tO,{color:"green",children:"\u2713"})}function P64($){return`${$.name}: ${$.port||"...."}`}function s1$({services:$,migrationsStatus:Z,home:Q,serverUrl:X}){return yg(gE,{flexDirection:"column",paddingBottom:1,children:[TJ(o1$,{version:LX0.version}),TJ(gE,{marginBottom:1,children:TJ(tO,{dimColor:!0,children:"\u2500".repeat(80)})}),TJ(gE,{children:yg(tO,{dimColor:!0,children:["Home: ",Q]})}),yg(gE,{gap:2,children:[$.map((Y)=>yg(gE,{gap:1,children:[TJ(tO,{children:P64(Y)}),TJ(a1$,{status:Y.status})]},Y.name)),yg(gE,{gap:1,children:[TJ(tO,{children:"Migrations"}),TJ(a1$,{status:Z})]})]}),TJ(gE,{children:X?yg(tO,{children:["Open in browser: ",TJ(tO,{color:"cyan",children:X})]}):TJ(tO,{dimColor:!0,children:"Starting..."})})]})}var e1$=D(()=>{bo0();r1$()});import{Box as A64,Text as cn}from"ink";import{jsx as yo0,jsxs as go0}from"react/jsx-runtime";function T64($){if($>=500)return"red";if($>=400)return"yellow";if($>=300)return"cyan";return"green"}function $$$({logs:$}){return yo0(A64,{flexDirection:"column",children:$.map((Z,Q)=>{if(Z.rawLine)return yo0(cn,{dimColor:!0,children:Z.rawLine},Q);let X=Z.duration<1000?`${Z.duration}ms`:`${(Z.duration/1000).toFixed(1)}s`;return go0(cn,{children:[go0(cn,{dimColor:!0,children:[Z.method.padEnd(6)," ",Z.path.padEnd(30)," "]}),yo0(cn,{color:T64(Z.status),children:Z.status}),go0(cn,{dimColor:!0,children:[" ",X.padStart(8)]})]},Q)})})}var Z$$=()=>{};var ho0={};e(ho0,{App:()=>q64});import{Box as R64}from"ink";import{useSyncExternalStore as I64}from"react";import{jsx as Q$$,jsxs as M64}from"react/jsx-runtime";function q64({home:$}){let Z=I64(Co0,So0);return M64(R64,{flexDirection:"column",children:[Q$$(s1$,{services:Z.services,migrationsStatus:Z.migrationsStatus,home:$,serverUrl:Z.serverUrl}),Q$$($$$,{logs:Z.logs})]})}var uo0=D(()=>{e1$();Z$$();yE()});var OK="thread-gate",nU="decopilot-hosted-harness",tU="decopilot-hosted-harness-sandboxed",lG="automations",oO="background-tools",hE="task-board-github-reads";var X$$="11";function Y$$($){return{name:"decocms",systemDatabaseUrl:$.systemDatabaseUrl,systemDatabaseSchemaName:"dbos",systemDatabasePoolSize:$.poolSize,runAdminServer:!1,executorID:$.executorID,applicationVersion:X$$,...$.listenQueues!==void 0?{listenQueues:$.listenQueues}:{}}}var J$$=()=>{};import V64 from"pg";async function K$$($,Z){let{databaseUrl:Q,lockTimeoutMs:X=k64}=$,Y=$.log??((W)=>console.log(W)),J=new V64.Client({connectionString:Q});await J.connect();let G=Date.now(),K=!1;try{while(!K){if(K=(await J.query("SELECT pg_try_advisory_lock($1) AS locked",[G$$.toString()])).rows[0]?.locked===!0,K)break;if(Date.now()-G>=X)throw Error(`Timed out after ${X}ms waiting for the DBOS migration lock. Another process is still migrating the dbos schema; this pod will restart and retry.`);await B$(S64)}let W=Date.now()-G;if(W>1000)Y(`[dbos] waited ${W}ms for the migration lock; another process migrated first`);return await Z()}finally{if(K)try{await J.query("SELECT pg_advisory_unlock($1)",[G$$.toString()])}catch{}await J.end().catch(()=>{})}}var G$$=8314027461559302n,k64=600000,S64=500;var W$$=D(()=>{C8()});function C64(){let $=(process.env.BUN_OPTIONS??"").split(/\s+/).filter(Boolean);return[...process.argv.slice(1),...$]}function co0($,Z){for(let Q=0;Q<$.length;Q++){let X=$[Q];if(X===void 0)continue;if(X===Z)return $[Q+1];if(X.startsWith(`${Z}=`))return X.slice(Z.length+1)}return}function H$$(){let $=C64();if($.includes("--cpu-prof")){console.log(JSON.stringify({msg:"cpu-profiling-active",dir:co0($,"--cpu-prof-dir")??process.cwd(),name:co0($,"--cpu-prof-name"),markdown:$.includes("--cpu-prof-md"),intervalUs:Number(co0($,"--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 F$$(){if(process.env.HEAP_WATCH!=="1")return()=>{};let $=Number(process.env.HEAP_WATCH_INTERVAL_MS??60000),Z=async()=>{let Q=_E();if(!Q)return;let X={};try{let{heapStats:Y}=await import("bun:jsc"),J=Y(),G=Object.entries(J.objectTypeCounts).sort((K,W)=>W[1]-K[1]).slice(0,20);X={objectCount:J.objectCount,heapSize:J.heapSize,top:Object.fromEntries(G)}}catch{}console.log(JSON.stringify({msg:"heap-watch",ts:new Date().toISOString(),uptimeS:Math.round(process.uptime()),rss:Q.rss,heapUsed:Q.heapUsed,heapTotal:Q.heapTotal,external:Q.external,arrayBuffers:Q.arrayBuffers,...X}))};return Z().catch(()=>{}),wX0=setInterval(()=>void Z().catch(()=>{}),$),wX0.unref?.(),process.on("SIGUSR2",()=>{try{let Q=Bun.generateHeapSnapshot("v8"),X=typeof Q==="string"?Q:JSON.stringify(Q),Y=`/tmp/heap-${process.pid}-${Date.now()}.heapsnapshot`;Bun.write(Y,X),console.log(JSON.stringify({msg:"heap-snapshot-written",path:Y}))}catch(Q){console.error("[heap-watch] snapshot failed:",Q)}}),()=>{if(wX0)clearInterval(wX0)}}var wX0;var U$$=()=>{};import*as _64 from"bun:jsc";function N$$(){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{v64()}catch(J){return console.error("[stall-watchdog] failed to start sampling profiler:",J),()=>{}}let Q,X=performance.now()+Z,Y=()=>{let J=performance.now(),G=J-X;X=J+Z;let K=[];try{K=x64()?.traces??[]}catch{}if(G>$&&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(G),samplesInWindow:K.length,top:H}))}Q=setTimeout(Y,Z),Q.unref?.()};return Q=setTimeout(Y,Z),Q.unref?.(),()=>{if(Q)clearTimeout(Q)}}var v64,x64;var B$$=D(()=>{({startSamplingProfiler:v64,samplingProfilerStackTraces:x64}=_64)});function O$$(){H$$();let $=[F$$(),Oa1(),N$$()];return()=>{for(let Z of $)Z()}}var D$$=D(()=>{td0();U$$();B$$()});var uE=v((L$$)=>{Object.defineProperty(L$$,"__esModule",{value:!0});L$$.RepublishHeaders=L$$.DirectMsgHeaders=L$$.JsHeaders=L$$.AdvisoryKind=void 0;L$$.isOrderedPushConsumerOptions=f64;L$$.isPullConsumer=b64;L$$.isPushConsumer=y64;L$$.isBoundPushConsumerOptions=g64;function f64($){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 b64($){return $.isPullConsumer()}function y64($){return $.isPushConsumer()}function g64($){if($&&typeof $==="object")return"deliver_subject"in $||"deliver_group"in $||"idle_heartbeat"in $;return!1}L$$.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"};L$$.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"};L$$.DirectMsgHeaders={Stream:"Nats-Stream",Sequence:"Nats-Sequence",TimeStamp:"Nats-Time-Stamp",Subject:"Nats-Subject",LastSequence:"Nats-Last-Sequence",NumPending:"Nats-Num-Pending"};L$$.RepublishHeaders={Stream:"Nats-Stream",Subject:"Nats-Subject",Sequence:"Nats-Sequence",LastSequence:"Nats-Last-Sequence",Size:"Nats-Msg-Size"}});var RJ=v((j$$)=>{Object.defineProperty(j$$,"__esModule",{value:!0});j$$.TD=j$$.TE=j$$.Empty=void 0;j$$.encode=n64;j$$.decode=t64;j$$.Empty=new Uint8Array(0);j$$.TE=new TextEncoder;j$$.TD=new TextDecoder;function p64(...$){let Z=0;for(let Y=0;Y<$.length;Y++)Z+=$[Y].length;let Q=new Uint8Array(Z),X=0;for(let Y=0;Y<$.length;Y++)Q.set($[Y],X),X+=$[Y].length;return Q}function n64(...$){let Z=[];for(let Q=0;Q<$.length;Q++)Z.push(j$$.TE.encode($[Q]));if(Z.length===0)return j$$.Empty;if(Z.length===1)return Z[0];return p64(...Z)}function t64($){if(!$||$.length===0)return"";return j$$.TD.decode($)}});var IJ=v((P$$)=>{Object.defineProperty(P$$,"__esModule",{value:!0});P$$.errors=P$$.PermissionViolationError=P$$.NoRespondersError=P$$.TimeoutError=P$$.RequestError=P$$.ProtocolError=P$$.ConnectionError=P$$.DrainingConnectionError=P$$.ClosedConnectionError=P$$.AuthorizationError=P$$.UserAuthenticationExpiredError=P$$.InvalidOperationError=P$$.InvalidArgumentError=P$$.InvalidSubjectError=void 0;class mo0 extends Error{constructor($,Z){super(`illegal subject: '${$}'`,Z);this.name="InvalidSubjectError"}}P$$.InvalidSubjectError=mo0;class jX0 extends Error{constructor($,Z){super($,Z);this.name="InvalidArgumentError"}static format($,Z,Q){if(Array.isArray(Z)&&Z.length>1)Z=Z[0];if(Array.isArray($))$=$.map((X)=>`'${X}'`),$=$.join(",");else $=`'${$}'`;return new jX0(`${$} ${Z}`,Q)}}P$$.InvalidArgumentError=jX0;class do0 extends Error{constructor($,Z){super($,Z);this.name="InvalidOperationError"}}P$$.InvalidOperationError=do0;class EX0 extends Error{constructor($,Z){super($,Z);this.name="UserAuthenticationExpiredError"}static parse($){if($.toLowerCase().indexOf("user authentication expired")!==-1)return new EX0($);return null}}P$$.UserAuthenticationExpiredError=EX0;class zX0 extends Error{constructor($,Z){super($,Z);this.name="AuthorizationError"}static parse($){let Z=["authorization violation","account authentication expired","authentication timeout"],Q=$.toLowerCase();for(let X=0;X<Z.length;X++)if(Q.indexOf(Z[X])!==-1)return new zX0($);return null}}P$$.AuthorizationError=zX0;class io0 extends Error{constructor(){super("closed connection");this.name="ClosedConnectionError"}}P$$.ClosedConnectionError=io0;class po0 extends Error{constructor(){super("connection draining");this.name="DrainingConnectionError"}}P$$.DrainingConnectionError=po0;class no0 extends Error{constructor($,Z){super($,Z);this.name="ConnectionError"}}P$$.ConnectionError=no0;class to0 extends Error{constructor($,Z){super($,Z);this.name="ProtocolError"}}P$$.ProtocolError=to0;class oo0 extends Error{constructor($="",Z){super($,Z);this.name="RequestError"}isNoResponders(){return this.cause instanceof PX0}}P$$.RequestError=oo0;class ro0 extends Error{constructor($){super("timeout",$);this.name="TimeoutError"}}P$$.TimeoutError=ro0;class PX0 extends Error{subject;constructor($,Z){super(`no responders: '${$}'`,Z);this.subject=$,this.name="NoResponders"}}P$$.NoRespondersError=PX0;class AX0 extends Error{operation;subject;queue;constructor($,Z,Q,X,Y){super($,Y);this.name="PermissionViolationError",this.operation=Z,this.subject=Q,this.queue=X}static parse($){if(($?$.toLowerCase():"").indexOf("permissions violation")===-1)return null;let Q="publish",X="",Y=void 0,J=$.match(/(Publish|Subscription) to "(\S+)"/);if(J){if(Q=J[1].toLowerCase(),X=J[2],Q==="subscription"){let G=$.match(/using queue "(\S+)"/);if(G)Y=G[1]}}return new AX0($,Q,X,Y)}}P$$.PermissionViolationError=AX0;P$$.errors={AuthorizationError:zX0,ClosedConnectionError:io0,ConnectionError:no0,DrainingConnectionError:po0,InvalidArgumentError:jX0,InvalidOperationError:do0,InvalidSubjectError:mo0,NoRespondersError:PX0,PermissionViolationError:AX0,ProtocolError:to0,RequestError:oo0,TimeoutError:ro0,UserAuthenticationExpiredError:EX0}});var DK=v((q$$)=>{Object.defineProperty(q$$,"__esModule",{value:!0});q$$.SimpleMutex=q$$.Perf=void 0;q$$.extend=U54;q$$.render=N54;q$$.timeout=B54;q$$.delay=O54;q$$.deadline=D54;q$$.deferred=so0;q$$.debugDeferred=L54;q$$.shuffle=w54;q$$.collect=j54;q$$.jitter=I$$;q$$.backoff=E54;q$$.nanos=z54;q$$.millis=P54;q$$.randomToken=R54;var F54=RJ(),ao0=IJ();function U54($,...Z){for(let Q=0;Q<Z.length;Q++){let X=Z[Q];Object.keys(X).forEach(function(Y){$[Y]=X[Y]})}return $}function N54($){return F54.TD.decode($).replace(/\n/g,"\u240A").replace(/\r/g,"\u240D")}function B54($,Z=!0){let Q=Z?new ao0.TimeoutError:null,X,Y,J=new Promise((G,K)=>{X={cancel:()=>{if(Y)clearTimeout(Y)}},Y=setTimeout(()=>{if(Q===null)K(new ao0.TimeoutError);else K(Q)},$)});return Object.assign(J,X)}function O54($=0){let Z,Q=new Promise((X)=>{let Y=setTimeout(()=>{X()},$);Z={cancel:()=>{if(Y)clearTimeout(Y),X()}}});return Object.assign(Q,Z)}async function D54($,Z=1000){let Q=so0(),X=setTimeout(()=>{Q.reject(new ao0.TimeoutError)},Z);try{return await Promise.race([$,Q])}finally{clearTimeout(X)}}function so0(){let $={},Z=new Promise((Q,X)=>{$={resolve:Q,reject:X}});return Object.assign(Z,$)}function L54(){let $={},Z=new Promise((Q,X)=>{$={resolve:(Y)=>{console.trace("resolve",Y),Q(Y)},reject:(Y)=>{console.trace("reject"),X(Y)}}});return Object.assign(Z,$)}function w54($){for(let Z=$.length-1;Z>0;Z--){let Q=Math.floor(Math.random()*(Z+1));[$[Z],$[Q]]=[$[Q],$[Z]]}return $}async function j54($){let Z=[];for await(let Q of $)Z.push(Q);return Z}class T$${timers;measures;constructor(){this.timers=new Map,this.measures=new Map}mark($){this.timers.set($,performance.now())}measure($,Z,Q){let X=this.timers.get(Z);if(X===void 0)throw Error(`${Z} is not defined`);let Y=this.timers.get(Q);if(Y===void 0)throw Error(`${Q} is not defined`);this.measures.set($,Y-X)}getEntries(){let $=[];return this.measures.forEach((Z,Q)=>{$.push({name:Q,duration:Z})}),$}}q$$.Perf=T$$;class R$${max;current;waiting;constructor($=1){this.max=$,this.current=0,this.waiting=[]}lock(){if(this.current++,this.current<=this.max)return Promise.resolve();let $=so0();return this.waiting.push($),$}unlock(){this.current--,this.waiting.pop()?.resolve()}}q$$.SimpleMutex=R$$;function I$$($){if($===0)return 0;return Math.floor($/2+Math.random()*$)}function E54($=[0,250,250,500,500,3000,5000]){if(!Array.isArray($))$=[0,250,250,500,500,3000,5000];let Z=$.length-1;return{backoff(Q){return I$$(Q>Z?$[Z]:$[Q])}}}function z54($){return $*1e6}function P54($){return Math.floor($/1e6)}var A54="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",oU=new Uint8Array(62);for(let $=0;$<62;$++)oU[$]=A54.charCodeAt($);var T54=218340105584896;function R54(){let $=Math.floor(Math.random()*T54),Z=$%62,Q=oU[Z];$=($-Z)/62,Z=$%62;let X=oU[Z];$=($-Z)/62,Z=$%62;let Y=oU[Z];$=($-Z)/62,Z=$%62;let J=oU[Z];$=($-Z)/62,Z=$%62;let G=oU[Z];$=($-Z)/62,Z=$%62;let K=oU[Z];$=($-Z)/62,Z=$%62;let W=oU[Z];$=($-Z)/62;let H=oU[$];return String.fromCharCode(Q,X,Y,J,G,K,W,H)}});var x$$=v((_$$)=>{Object.defineProperty(_$$,"__esModule",{value:!0});_$$.nuid=_$$.NuidImpl=void 0;var u54="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",rO=62,RX0=12,S$$=10,V$$=33,c54=333,k$$=RX0+S$$,$r0=new Uint8Array(rO);for(let $=0;$<rO;$++)$r0[$]=u54.charCodeAt($);var TX0=4294967296,C$$=BigInt(rO)**BigInt(S$$),ln=Number(C$$/(1n<<32n)),eo0=Number(C$$%(1n<<32n));function l54($){for(let Z=0;Z<$.length;Z++)$[Z]=Math.floor(Math.random()*256)}function m54($){if(globalThis?.crypto?.getRandomValues)globalThis.crypto.getRandomValues($);else l54($)}class Zr0{buf;cbuf;seqHi;seqLo;inc;inited;constructor(){this.buf=new Uint8Array(k$$),this.cbuf=new Uint8Array(RX0),this.inited=!1}init(){this.inited=!0,this.setPre(),this.initSeqAndInc(),this.fillSeq()}initSeqAndInc(){let $=0;do this.seqHi=Math.floor(Math.random()*(ln+1)),this.seqLo=Math.floor(Math.random()*TX0);while($++<8&&this.seqHi===ln&&this.seqLo>=eo0);if(this.seqHi===ln&&this.seqLo>=eo0)this.seqLo=0;this.inc=Math.random()*(c54-V$$)+V$$|0}setPre(){m54(this.cbuf);for(let $=0;$<RX0;$++)this.buf[$]=$r0[this.cbuf[$]%rO]}fillSeq(){let $=this.seqHi,Z=this.seqLo;for(let Q=k$$-1;Q>=RX0;Q--){let X=Math.floor($/rO),J=($-X*rO)*TX0+Z,G=Math.floor(J/rO),K=J-G*rO;this.buf[Q]=$r0[K],$=X,Z=G}}next(){if(!this.inited)this.init();if(this.seqLo+=this.inc,this.seqLo>=TX0)this.seqLo-=TX0,this.seqHi+=1;if(this.seqHi>ln||this.seqHi===ln&&this.seqLo>=eo0)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()}}_$$.NuidImpl=Zr0;_$$.nuid=new Zr0});var g$$=v((b$$)=>{Object.defineProperty(b$$,"__esModule",{value:!0});b$$.nuid=b$$.Nuid=void 0;var f$$=x$$();b$$.Nuid=f$$.NuidImpl;b$$.nuid=f$$.nuid});var qX0=v((IX0)=>{Object.defineProperty(IX0,"__esModule",{value:!0});IX0.nuid=IX0.Nuid=void 0;var h$$=g$$();Object.defineProperty(IX0,"Nuid",{enumerable:!0,get:function(){return h$$.Nuid}});Object.defineProperty(IX0,"nuid",{enumerable:!0,get:function(){return h$$.nuid}})});var aO=v((u$$)=>{Object.defineProperty(u$$,"__esModule",{value:!0});u$$.DEFAULT_HOST=u$$.DEFAULT_PORT=u$$.Match=void 0;u$$.syncIterator=o54;u$$.createInbox=r54;var n54=qX0(),t54=IJ();u$$.Match={Exact:"exact",CanonicalMIME:"canonical",IgnoreCase:"insensitive"};function o54($){let Z=$[Symbol.asyncIterator]();return{async next(){let Q=await Z.next();if(Q.done)return Promise.resolve(null);return Promise.resolve(Q.value)}}}function r54($=""){if($=$||"_INBOX",typeof $!=="string")throw TypeError("prefix must be a string");return $.split(".").forEach((Z)=>{if(Z==="*"||Z===">")throw t54.InvalidArgumentError.format("prefix",`cannot have wildcards ('${$}')`)}),`${$}.${n54.nuid.next()}`}u$$.DEFAULT_PORT=4222;u$$.DEFAULT_HOST="127.0.0.1"});var mn=v((d$$)=>{Object.defineProperty(d$$,"__esModule",{value:!0});d$$.DataBuffer=void 0;var l$$=RJ();class m$${buffers;byteLength;constructor(){this.buffers=[],this.byteLength=0}static concat(...$){let Z=0;for(let Y=0;Y<$.length;Y++)Z+=$[Y].length;let Q=new Uint8Array(Z),X=0;for(let Y=0;Y<$.length;Y++)Q.set($[Y],X),X+=$[Y].length;return Q}static fromAscii($){if(!$)$="";return l$$.TE.encode($)}static toAscii($){return l$$.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 Q=0;Q<this.buffers.length;Q++)$.set(this.buffers[Q],Z),Z+=this.buffers[Q].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 Q=this.byteLength;if($===void 0||$>Q)$=Q;let X=Z.subarray(0,$);if(Q>$)this.buffers.push(Z.subarray($));return this.byteLength=Q-$,X}}return new Uint8Array(0)}fill($,...Z){if($)this.buffers.push($),this.byteLength+=$.length;for(let Q=0;Q<Z.length;Q++)if(Z[Q]&&Z[Q].length)this.buffers.push(Z[Q]),this.byteLength+=Z[Q].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}}d$$.DataBuffer=m$$});var cE=v((n$$)=>{Object.defineProperty(n$$,"__esModule",{value:!0});n$$.LF=n$$.CR=n$$.CRLF=n$$.CR_LF_LEN=n$$.CR_LF=void 0;n$$.setTransportFactory=Y94;n$$.defaultPort=J94;n$$.getUrlParseFn=G94;n$$.newTransport=K94;n$$.getResolveFn=W94;n$$.protoLen=p$$;n$$.extractProtocolMessage=H94;var Z94=RJ(),Q94=aO(),X94=mn(),qJ;function Y94($){qJ=$}function J94(){return qJ!==void 0&&qJ.defaultPort!==void 0?qJ.defaultPort:Q94.DEFAULT_PORT}function G94(){return qJ!==void 0&&qJ.urlParseFn?qJ.urlParseFn:void 0}function K94(){if(!qJ||typeof qJ.factory!=="function")throw Error("transport fn is not set");return qJ.factory()}function W94(){return qJ!==void 0&&qJ.dnsResolveFn?qJ.dnsResolveFn:void 0}n$$.CR_LF=`\r
1942
+ `);X=J.pop()??"";for(let G of J){let K=Bun.stripANSI(G).replace(/^\[\d+\]\s*/,"").trim();if(!K)continue;nO({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:K})}}(async()=>{try{for(;;){let{done:J,value:G}=await Z.read();if(J)break;X+=Q.decode(G,{stream:!0}),Y()}}catch{}if(X.trim()){let J=Bun.stripANSI(X).replace(/^\[\d+\]\s*/,"").trim();if(J)nO({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:J})}})()}async function L64($){let{baseUrl:Z,noTui:Q}=$,X=process.env.HOST==="0.0.0.0"&&Boolean(process.env.PORT),Y=X?process.env.PORT:$.vitePort,J=Z||`http://localhost:${Y}`,G=X?await un(Number(Y)+1):await un(Number($.port)),{settings:K,services:W,managedServiceNames:H}=await BX0({port:String(G),home:$.home,baseUrl:$.baseUrl,localMode:$.localMode,skipMigrations:$.skipMigrations,noTui:$.noTui,vitePort:$.vitePort});for(let L of W)bE({name:L.name,status:"ready",port:L.port});gn();let F=D64(import.meta.dir,"..","..","..","..",".."),U=Q===!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:J,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)vo0(N.stdout),vo0(N.stderr);hn(J),bE({name:"Vite",status:"ready",port:Number(Y)}),bE({name:"API",status:"ready",port:Number(K.port)});let O=async(L)=>{if(N.kill(L),await N.exited,H.length>0){let{stopServices:w}=await Promise.resolve().then(() => (DQ0(),OQ0));await w(K.dataDir)}};return process.on("SIGINT",()=>O("SIGINT")),process.on("SIGTERM",()=>O("SIGTERM")),{port:Number(Y),process:N}}var fo0=D(()=>{Vo0();yE();_o0()});var LX0;var bo0=D(()=>{LX0={name:"decocms",version:"4.344.4",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 j64,Text as n1$}from"ink";import{jsx as E64,jsxs as t1$}from"react/jsx-runtime";function o1$({version:$}){return t1$(j64,{flexDirection:"column",marginTop:1,children:[gQ0.map((Z,Q)=>E64(n1$,{color:hQ0[Q],children:Z},Q)),t1$(n1$,{dimColor:!0,children:[" v",$]})]})}var r1$=D(()=>{Rn()});import{Box as gE,Text as tO}from"ink";import{Spinner as z64}from"@inkjs/ui";import{jsx as TJ,jsxs as yg}from"react/jsx-runtime";function a1$({status:$}){if($==="pending")return TJ(z64,{label:""});return TJ(tO,{color:"green",children:"\u2713"})}function P64($){return`${$.name}: ${$.port||"...."}`}function s1$({services:$,migrationsStatus:Z,home:Q,serverUrl:X}){return yg(gE,{flexDirection:"column",paddingBottom:1,children:[TJ(o1$,{version:LX0.version}),TJ(gE,{marginBottom:1,children:TJ(tO,{dimColor:!0,children:"\u2500".repeat(80)})}),TJ(gE,{children:yg(tO,{dimColor:!0,children:["Home: ",Q]})}),yg(gE,{gap:2,children:[$.map((Y)=>yg(gE,{gap:1,children:[TJ(tO,{children:P64(Y)}),TJ(a1$,{status:Y.status})]},Y.name)),yg(gE,{gap:1,children:[TJ(tO,{children:"Migrations"}),TJ(a1$,{status:Z})]})]}),TJ(gE,{children:X?yg(tO,{children:["Open in browser: ",TJ(tO,{color:"cyan",children:X})]}):TJ(tO,{dimColor:!0,children:"Starting..."})})]})}var e1$=D(()=>{bo0();r1$()});import{Box as A64,Text as cn}from"ink";import{jsx as yo0,jsxs as go0}from"react/jsx-runtime";function T64($){if($>=500)return"red";if($>=400)return"yellow";if($>=300)return"cyan";return"green"}function $$$({logs:$}){return yo0(A64,{flexDirection:"column",children:$.map((Z,Q)=>{if(Z.rawLine)return yo0(cn,{dimColor:!0,children:Z.rawLine},Q);let X=Z.duration<1000?`${Z.duration}ms`:`${(Z.duration/1000).toFixed(1)}s`;return go0(cn,{children:[go0(cn,{dimColor:!0,children:[Z.method.padEnd(6)," ",Z.path.padEnd(30)," "]}),yo0(cn,{color:T64(Z.status),children:Z.status}),go0(cn,{dimColor:!0,children:[" ",X.padStart(8)]})]},Q)})})}var Z$$=()=>{};var ho0={};e(ho0,{App:()=>q64});import{Box as R64}from"ink";import{useSyncExternalStore as I64}from"react";import{jsx as Q$$,jsxs as M64}from"react/jsx-runtime";function q64({home:$}){let Z=I64(Co0,So0);return M64(R64,{flexDirection:"column",children:[Q$$(s1$,{services:Z.services,migrationsStatus:Z.migrationsStatus,home:$,serverUrl:Z.serverUrl}),Q$$($$$,{logs:Z.logs})]})}var uo0=D(()=>{e1$();Z$$();yE()});var OK="thread-gate",nU="decopilot-hosted-harness",tU="decopilot-hosted-harness-sandboxed",lG="automations",oO="background-tools",hE="task-board-github-reads";var X$$="11";function Y$$($){return{name:"decocms",systemDatabaseUrl:$.systemDatabaseUrl,systemDatabaseSchemaName:"dbos",systemDatabasePoolSize:$.poolSize,runAdminServer:!1,executorID:$.executorID,applicationVersion:X$$,...$.listenQueues!==void 0?{listenQueues:$.listenQueues}:{}}}var J$$=()=>{};import V64 from"pg";async function K$$($,Z){let{databaseUrl:Q,lockTimeoutMs:X=k64}=$,Y=$.log??((W)=>console.log(W)),J=new V64.Client({connectionString:Q});await J.connect();let G=Date.now(),K=!1;try{while(!K){if(K=(await J.query("SELECT pg_try_advisory_lock($1) AS locked",[G$$.toString()])).rows[0]?.locked===!0,K)break;if(Date.now()-G>=X)throw Error(`Timed out after ${X}ms waiting for the DBOS migration lock. Another process is still migrating the dbos schema; this pod will restart and retry.`);await B$(S64)}let W=Date.now()-G;if(W>1000)Y(`[dbos] waited ${W}ms for the migration lock; another process migrated first`);return await Z()}finally{if(K)try{await J.query("SELECT pg_advisory_unlock($1)",[G$$.toString()])}catch{}await J.end().catch(()=>{})}}var G$$=8314027461559302n,k64=600000,S64=500;var W$$=D(()=>{C8()});function C64(){let $=(process.env.BUN_OPTIONS??"").split(/\s+/).filter(Boolean);return[...process.argv.slice(1),...$]}function co0($,Z){for(let Q=0;Q<$.length;Q++){let X=$[Q];if(X===void 0)continue;if(X===Z)return $[Q+1];if(X.startsWith(`${Z}=`))return X.slice(Z.length+1)}return}function H$$(){let $=C64();if($.includes("--cpu-prof")){console.log(JSON.stringify({msg:"cpu-profiling-active",dir:co0($,"--cpu-prof-dir")??process.cwd(),name:co0($,"--cpu-prof-name"),markdown:$.includes("--cpu-prof-md"),intervalUs:Number(co0($,"--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 F$$(){if(process.env.HEAP_WATCH!=="1")return()=>{};let $=Number(process.env.HEAP_WATCH_INTERVAL_MS??60000),Z=async()=>{let Q=_E();if(!Q)return;let X={};try{let{heapStats:Y}=await import("bun:jsc"),J=Y(),G=Object.entries(J.objectTypeCounts).sort((K,W)=>W[1]-K[1]).slice(0,20);X={objectCount:J.objectCount,heapSize:J.heapSize,top:Object.fromEntries(G)}}catch{}console.log(JSON.stringify({msg:"heap-watch",ts:new Date().toISOString(),uptimeS:Math.round(process.uptime()),rss:Q.rss,heapUsed:Q.heapUsed,heapTotal:Q.heapTotal,external:Q.external,arrayBuffers:Q.arrayBuffers,...X}))};return Z().catch(()=>{}),wX0=setInterval(()=>void Z().catch(()=>{}),$),wX0.unref?.(),process.on("SIGUSR2",()=>{try{let Q=Bun.generateHeapSnapshot("v8"),X=typeof Q==="string"?Q:JSON.stringify(Q),Y=`/tmp/heap-${process.pid}-${Date.now()}.heapsnapshot`;Bun.write(Y,X),console.log(JSON.stringify({msg:"heap-snapshot-written",path:Y}))}catch(Q){console.error("[heap-watch] snapshot failed:",Q)}}),()=>{if(wX0)clearInterval(wX0)}}var wX0;var U$$=()=>{};import*as _64 from"bun:jsc";function N$$(){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{v64()}catch(J){return console.error("[stall-watchdog] failed to start sampling profiler:",J),()=>{}}let Q,X=performance.now()+Z,Y=()=>{let J=performance.now(),G=J-X;X=J+Z;let K=[];try{K=x64()?.traces??[]}catch{}if(G>$&&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(G),samplesInWindow:K.length,top:H}))}Q=setTimeout(Y,Z),Q.unref?.()};return Q=setTimeout(Y,Z),Q.unref?.(),()=>{if(Q)clearTimeout(Q)}}var v64,x64;var B$$=D(()=>{({startSamplingProfiler:v64,samplingProfilerStackTraces:x64}=_64)});function O$$(){H$$();let $=[F$$(),Oa1(),N$$()];return()=>{for(let Z of $)Z()}}var D$$=D(()=>{td0();U$$();B$$()});var uE=v((L$$)=>{Object.defineProperty(L$$,"__esModule",{value:!0});L$$.RepublishHeaders=L$$.DirectMsgHeaders=L$$.JsHeaders=L$$.AdvisoryKind=void 0;L$$.isOrderedPushConsumerOptions=f64;L$$.isPullConsumer=b64;L$$.isPushConsumer=y64;L$$.isBoundPushConsumerOptions=g64;function f64($){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 b64($){return $.isPullConsumer()}function y64($){return $.isPushConsumer()}function g64($){if($&&typeof $==="object")return"deliver_subject"in $||"deliver_group"in $||"idle_heartbeat"in $;return!1}L$$.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"};L$$.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"};L$$.DirectMsgHeaders={Stream:"Nats-Stream",Sequence:"Nats-Sequence",TimeStamp:"Nats-Time-Stamp",Subject:"Nats-Subject",LastSequence:"Nats-Last-Sequence",NumPending:"Nats-Num-Pending"};L$$.RepublishHeaders={Stream:"Nats-Stream",Subject:"Nats-Subject",Sequence:"Nats-Sequence",LastSequence:"Nats-Last-Sequence",Size:"Nats-Msg-Size"}});var RJ=v((j$$)=>{Object.defineProperty(j$$,"__esModule",{value:!0});j$$.TD=j$$.TE=j$$.Empty=void 0;j$$.encode=n64;j$$.decode=t64;j$$.Empty=new Uint8Array(0);j$$.TE=new TextEncoder;j$$.TD=new TextDecoder;function p64(...$){let Z=0;for(let Y=0;Y<$.length;Y++)Z+=$[Y].length;let Q=new Uint8Array(Z),X=0;for(let Y=0;Y<$.length;Y++)Q.set($[Y],X),X+=$[Y].length;return Q}function n64(...$){let Z=[];for(let Q=0;Q<$.length;Q++)Z.push(j$$.TE.encode($[Q]));if(Z.length===0)return j$$.Empty;if(Z.length===1)return Z[0];return p64(...Z)}function t64($){if(!$||$.length===0)return"";return j$$.TD.decode($)}});var IJ=v((P$$)=>{Object.defineProperty(P$$,"__esModule",{value:!0});P$$.errors=P$$.PermissionViolationError=P$$.NoRespondersError=P$$.TimeoutError=P$$.RequestError=P$$.ProtocolError=P$$.ConnectionError=P$$.DrainingConnectionError=P$$.ClosedConnectionError=P$$.AuthorizationError=P$$.UserAuthenticationExpiredError=P$$.InvalidOperationError=P$$.InvalidArgumentError=P$$.InvalidSubjectError=void 0;class mo0 extends Error{constructor($,Z){super(`illegal subject: '${$}'`,Z);this.name="InvalidSubjectError"}}P$$.InvalidSubjectError=mo0;class jX0 extends Error{constructor($,Z){super($,Z);this.name="InvalidArgumentError"}static format($,Z,Q){if(Array.isArray(Z)&&Z.length>1)Z=Z[0];if(Array.isArray($))$=$.map((X)=>`'${X}'`),$=$.join(",");else $=`'${$}'`;return new jX0(`${$} ${Z}`,Q)}}P$$.InvalidArgumentError=jX0;class do0 extends Error{constructor($,Z){super($,Z);this.name="InvalidOperationError"}}P$$.InvalidOperationError=do0;class EX0 extends Error{constructor($,Z){super($,Z);this.name="UserAuthenticationExpiredError"}static parse($){if($.toLowerCase().indexOf("user authentication expired")!==-1)return new EX0($);return null}}P$$.UserAuthenticationExpiredError=EX0;class zX0 extends Error{constructor($,Z){super($,Z);this.name="AuthorizationError"}static parse($){let Z=["authorization violation","account authentication expired","authentication timeout"],Q=$.toLowerCase();for(let X=0;X<Z.length;X++)if(Q.indexOf(Z[X])!==-1)return new zX0($);return null}}P$$.AuthorizationError=zX0;class io0 extends Error{constructor(){super("closed connection");this.name="ClosedConnectionError"}}P$$.ClosedConnectionError=io0;class po0 extends Error{constructor(){super("connection draining");this.name="DrainingConnectionError"}}P$$.DrainingConnectionError=po0;class no0 extends Error{constructor($,Z){super($,Z);this.name="ConnectionError"}}P$$.ConnectionError=no0;class to0 extends Error{constructor($,Z){super($,Z);this.name="ProtocolError"}}P$$.ProtocolError=to0;class oo0 extends Error{constructor($="",Z){super($,Z);this.name="RequestError"}isNoResponders(){return this.cause instanceof PX0}}P$$.RequestError=oo0;class ro0 extends Error{constructor($){super("timeout",$);this.name="TimeoutError"}}P$$.TimeoutError=ro0;class PX0 extends Error{subject;constructor($,Z){super(`no responders: '${$}'`,Z);this.subject=$,this.name="NoResponders"}}P$$.NoRespondersError=PX0;class AX0 extends Error{operation;subject;queue;constructor($,Z,Q,X,Y){super($,Y);this.name="PermissionViolationError",this.operation=Z,this.subject=Q,this.queue=X}static parse($){if(($?$.toLowerCase():"").indexOf("permissions violation")===-1)return null;let Q="publish",X="",Y=void 0,J=$.match(/(Publish|Subscription) to "(\S+)"/);if(J){if(Q=J[1].toLowerCase(),X=J[2],Q==="subscription"){let G=$.match(/using queue "(\S+)"/);if(G)Y=G[1]}}return new AX0($,Q,X,Y)}}P$$.PermissionViolationError=AX0;P$$.errors={AuthorizationError:zX0,ClosedConnectionError:io0,ConnectionError:no0,DrainingConnectionError:po0,InvalidArgumentError:jX0,InvalidOperationError:do0,InvalidSubjectError:mo0,NoRespondersError:PX0,PermissionViolationError:AX0,ProtocolError:to0,RequestError:oo0,TimeoutError:ro0,UserAuthenticationExpiredError:EX0}});var DK=v((q$$)=>{Object.defineProperty(q$$,"__esModule",{value:!0});q$$.SimpleMutex=q$$.Perf=void 0;q$$.extend=U54;q$$.render=N54;q$$.timeout=B54;q$$.delay=O54;q$$.deadline=D54;q$$.deferred=so0;q$$.debugDeferred=L54;q$$.shuffle=w54;q$$.collect=j54;q$$.jitter=I$$;q$$.backoff=E54;q$$.nanos=z54;q$$.millis=P54;q$$.randomToken=R54;var F54=RJ(),ao0=IJ();function U54($,...Z){for(let Q=0;Q<Z.length;Q++){let X=Z[Q];Object.keys(X).forEach(function(Y){$[Y]=X[Y]})}return $}function N54($){return F54.TD.decode($).replace(/\n/g,"\u240A").replace(/\r/g,"\u240D")}function B54($,Z=!0){let Q=Z?new ao0.TimeoutError:null,X,Y,J=new Promise((G,K)=>{X={cancel:()=>{if(Y)clearTimeout(Y)}},Y=setTimeout(()=>{if(Q===null)K(new ao0.TimeoutError);else K(Q)},$)});return Object.assign(J,X)}function O54($=0){let Z,Q=new Promise((X)=>{let Y=setTimeout(()=>{X()},$);Z={cancel:()=>{if(Y)clearTimeout(Y),X()}}});return Object.assign(Q,Z)}async function D54($,Z=1000){let Q=so0(),X=setTimeout(()=>{Q.reject(new ao0.TimeoutError)},Z);try{return await Promise.race([$,Q])}finally{clearTimeout(X)}}function so0(){let $={},Z=new Promise((Q,X)=>{$={resolve:Q,reject:X}});return Object.assign(Z,$)}function L54(){let $={},Z=new Promise((Q,X)=>{$={resolve:(Y)=>{console.trace("resolve",Y),Q(Y)},reject:(Y)=>{console.trace("reject"),X(Y)}}});return Object.assign(Z,$)}function w54($){for(let Z=$.length-1;Z>0;Z--){let Q=Math.floor(Math.random()*(Z+1));[$[Z],$[Q]]=[$[Q],$[Z]]}return $}async function j54($){let Z=[];for await(let Q of $)Z.push(Q);return Z}class T$${timers;measures;constructor(){this.timers=new Map,this.measures=new Map}mark($){this.timers.set($,performance.now())}measure($,Z,Q){let X=this.timers.get(Z);if(X===void 0)throw Error(`${Z} is not defined`);let Y=this.timers.get(Q);if(Y===void 0)throw Error(`${Q} is not defined`);this.measures.set($,Y-X)}getEntries(){let $=[];return this.measures.forEach((Z,Q)=>{$.push({name:Q,duration:Z})}),$}}q$$.Perf=T$$;class R$${max;current;waiting;constructor($=1){this.max=$,this.current=0,this.waiting=[]}lock(){if(this.current++,this.current<=this.max)return Promise.resolve();let $=so0();return this.waiting.push($),$}unlock(){this.current--,this.waiting.pop()?.resolve()}}q$$.SimpleMutex=R$$;function I$$($){if($===0)return 0;return Math.floor($/2+Math.random()*$)}function E54($=[0,250,250,500,500,3000,5000]){if(!Array.isArray($))$=[0,250,250,500,500,3000,5000];let Z=$.length-1;return{backoff(Q){return I$$(Q>Z?$[Z]:$[Q])}}}function z54($){return $*1e6}function P54($){return Math.floor($/1e6)}var A54="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",oU=new Uint8Array(62);for(let $=0;$<62;$++)oU[$]=A54.charCodeAt($);var T54=218340105584896;function R54(){let $=Math.floor(Math.random()*T54),Z=$%62,Q=oU[Z];$=($-Z)/62,Z=$%62;let X=oU[Z];$=($-Z)/62,Z=$%62;let Y=oU[Z];$=($-Z)/62,Z=$%62;let J=oU[Z];$=($-Z)/62,Z=$%62;let G=oU[Z];$=($-Z)/62,Z=$%62;let K=oU[Z];$=($-Z)/62,Z=$%62;let W=oU[Z];$=($-Z)/62;let H=oU[$];return String.fromCharCode(Q,X,Y,J,G,K,W,H)}});var x$$=v((_$$)=>{Object.defineProperty(_$$,"__esModule",{value:!0});_$$.nuid=_$$.NuidImpl=void 0;var u54="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",rO=62,RX0=12,S$$=10,V$$=33,c54=333,k$$=RX0+S$$,$r0=new Uint8Array(rO);for(let $=0;$<rO;$++)$r0[$]=u54.charCodeAt($);var TX0=4294967296,C$$=BigInt(rO)**BigInt(S$$),ln=Number(C$$/(1n<<32n)),eo0=Number(C$$%(1n<<32n));function l54($){for(let Z=0;Z<$.length;Z++)$[Z]=Math.floor(Math.random()*256)}function m54($){if(globalThis?.crypto?.getRandomValues)globalThis.crypto.getRandomValues($);else l54($)}class Zr0{buf;cbuf;seqHi;seqLo;inc;inited;constructor(){this.buf=new Uint8Array(k$$),this.cbuf=new Uint8Array(RX0),this.inited=!1}init(){this.inited=!0,this.setPre(),this.initSeqAndInc(),this.fillSeq()}initSeqAndInc(){let $=0;do this.seqHi=Math.floor(Math.random()*(ln+1)),this.seqLo=Math.floor(Math.random()*TX0);while($++<8&&this.seqHi===ln&&this.seqLo>=eo0);if(this.seqHi===ln&&this.seqLo>=eo0)this.seqLo=0;this.inc=Math.random()*(c54-V$$)+V$$|0}setPre(){m54(this.cbuf);for(let $=0;$<RX0;$++)this.buf[$]=$r0[this.cbuf[$]%rO]}fillSeq(){let $=this.seqHi,Z=this.seqLo;for(let Q=k$$-1;Q>=RX0;Q--){let X=Math.floor($/rO),J=($-X*rO)*TX0+Z,G=Math.floor(J/rO),K=J-G*rO;this.buf[Q]=$r0[K],$=X,Z=G}}next(){if(!this.inited)this.init();if(this.seqLo+=this.inc,this.seqLo>=TX0)this.seqLo-=TX0,this.seqHi+=1;if(this.seqHi>ln||this.seqHi===ln&&this.seqLo>=eo0)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()}}_$$.NuidImpl=Zr0;_$$.nuid=new Zr0});var g$$=v((b$$)=>{Object.defineProperty(b$$,"__esModule",{value:!0});b$$.nuid=b$$.Nuid=void 0;var f$$=x$$();b$$.Nuid=f$$.NuidImpl;b$$.nuid=f$$.nuid});var qX0=v((IX0)=>{Object.defineProperty(IX0,"__esModule",{value:!0});IX0.nuid=IX0.Nuid=void 0;var h$$=g$$();Object.defineProperty(IX0,"Nuid",{enumerable:!0,get:function(){return h$$.Nuid}});Object.defineProperty(IX0,"nuid",{enumerable:!0,get:function(){return h$$.nuid}})});var aO=v((u$$)=>{Object.defineProperty(u$$,"__esModule",{value:!0});u$$.DEFAULT_HOST=u$$.DEFAULT_PORT=u$$.Match=void 0;u$$.syncIterator=o54;u$$.createInbox=r54;var n54=qX0(),t54=IJ();u$$.Match={Exact:"exact",CanonicalMIME:"canonical",IgnoreCase:"insensitive"};function o54($){let Z=$[Symbol.asyncIterator]();return{async next(){let Q=await Z.next();if(Q.done)return Promise.resolve(null);return Promise.resolve(Q.value)}}}function r54($=""){if($=$||"_INBOX",typeof $!=="string")throw TypeError("prefix must be a string");return $.split(".").forEach((Z)=>{if(Z==="*"||Z===">")throw t54.InvalidArgumentError.format("prefix",`cannot have wildcards ('${$}')`)}),`${$}.${n54.nuid.next()}`}u$$.DEFAULT_PORT=4222;u$$.DEFAULT_HOST="127.0.0.1"});var mn=v((d$$)=>{Object.defineProperty(d$$,"__esModule",{value:!0});d$$.DataBuffer=void 0;var l$$=RJ();class m$${buffers;byteLength;constructor(){this.buffers=[],this.byteLength=0}static concat(...$){let Z=0;for(let Y=0;Y<$.length;Y++)Z+=$[Y].length;let Q=new Uint8Array(Z),X=0;for(let Y=0;Y<$.length;Y++)Q.set($[Y],X),X+=$[Y].length;return Q}static fromAscii($){if(!$)$="";return l$$.TE.encode($)}static toAscii($){return l$$.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 Q=0;Q<this.buffers.length;Q++)$.set(this.buffers[Q],Z),Z+=this.buffers[Q].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 Q=this.byteLength;if($===void 0||$>Q)$=Q;let X=Z.subarray(0,$);if(Q>$)this.buffers.push(Z.subarray($));return this.byteLength=Q-$,X}}return new Uint8Array(0)}fill($,...Z){if($)this.buffers.push($),this.byteLength+=$.length;for(let Q=0;Q<Z.length;Q++)if(Z[Q]&&Z[Q].length)this.buffers.push(Z[Q]),this.byteLength+=Z[Q].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}}d$$.DataBuffer=m$$});var cE=v((n$$)=>{Object.defineProperty(n$$,"__esModule",{value:!0});n$$.LF=n$$.CR=n$$.CRLF=n$$.CR_LF_LEN=n$$.CR_LF=void 0;n$$.setTransportFactory=Y94;n$$.defaultPort=J94;n$$.getUrlParseFn=G94;n$$.newTransport=K94;n$$.getResolveFn=W94;n$$.protoLen=p$$;n$$.extractProtocolMessage=H94;var Z94=RJ(),Q94=aO(),X94=mn(),qJ;function Y94($){qJ=$}function J94(){return qJ!==void 0&&qJ.defaultPort!==void 0?qJ.defaultPort:Q94.DEFAULT_PORT}function G94(){return qJ!==void 0&&qJ.urlParseFn?qJ.urlParseFn:void 0}function K94(){if(!qJ||typeof qJ.factory!=="function")throw Error("transport fn is not set");return qJ.factory()}function W94(){return qJ!==void 0&&qJ.dnsResolveFn?qJ.dnsResolveFn:void 0}n$$.CR_LF=`\r
1943
1943
  `;n$$.CR_LF_LEN=n$$.CR_LF.length;n$$.CRLF=X94.DataBuffer.fromAscii(n$$.CR_LF);n$$.CR=new Uint8Array(n$$.CRLF)[0];n$$.LF=new Uint8Array(n$$.CRLF)[1];function p$$($){for(let Z=0;Z<$.length;Z++){let Q=Z+1;if($.byteLength>Q&&$[Z]===n$$.CR&&$[Q]===n$$.LF)return Q+1}return 0}function H94($){let Z=p$$($);if(Z>0){let X=new Uint8Array($).slice(0,Z);return Z94.TD.decode(X)}return""}});var Gr0=v((Z8$)=>{Object.defineProperty(Z8$,"__esModule",{value:!0});Z8$.ipV4=s$$;Z8$.isIP=z94;Z8$.parseIP=e$$;var dn=4,lE=16,MX0=48,a$$=57,o$$=65,j94=70,r$$=97,E94=102,Jr0=16777215;function s$$($,Z,Q,X){let Y=new Uint8Array(lE);return[0,0,0,0,0,0,0,0,0,0,255,255].forEach((G,K)=>{Y[K]=G}),Y[12]=$,Y[13]=Z,Y[14]=Q,Y[15]=X,Y}function z94($){return e$$($)!==void 0}function e$$($){for(let Z=0;Z<$.length;Z++)switch($[Z]){case".":return $8$($);case":":return P94($)}return}function $8$($){let Z=new Uint8Array(dn);for(let Q=0;Q<dn;Q++){if($.length===0)return;if(Q>0){if($[0]!==".")return;$=$.substring(1)}let{n:X,c:Y,ok:J}=A94($);if(!J||X>255)return;$=$.substring(Y),Z[Q]=X}return s$$(Z[0],Z[1],Z[2],Z[3])}function P94($){let Z=new Uint8Array(lE),Q=-1;if($.length>=2&&$[0]===":"&&$[1]===":"){if(Q=0,$=$.substring(2),$.length===0)return Z}let X=0;while(X<lE){let{n:Y,c:J,ok:G}=T94($);if(!G||Y>65535)return;if(J<$.length&&$[J]==="."){if(Q<0&&X!=lE-dn)return;if(X+dn>lE)return;let K=$8$($);if(K===void 0)return;Z[X]=K[12],Z[X+1]=K[13],Z[X+2]=K[14],Z[X+3]=K[15],$="",X+=dn;break}if(Z[X]=Y>>8,Z[X+1]=Y,X+=2,$=$.substring(J),$.length===0)break;if($[0]!==":"||$.length==1)return;if($=$.substring(1),$[0]===":"){if(Q>=0)return;if(Q=X,$=$.substring(1),$.length===0)break}}if($.length!==0)return;if(X<lE){if(Q<0)return;let Y=lE-X;for(let J=X-1;J>=Q;J--)Z[J+Y]=Z[J];for(let J=Q+Y-1;J>=Q;J--)Z[J]=0}else if(Q>=0)return;return Z}function A94($){let Z=0,Q=0;for(Z=0;Z<$.length&&MX0<=$.charCodeAt(Z)&&$.charCodeAt(Z)<=a$$;Z++)if(Q=Q*10+($.charCodeAt(Z)-MX0),Q>=Jr0)return{n:Jr0,c:Z,ok:!1};if(Z===0)return{n:0,c:0,ok:!1};return{n:Q,c:Z,ok:!0}}function T94($){let Z=0,Q=0;for(Q=0;Q<$.length;Q++){if(MX0<=$.charCodeAt(Q)&&$.charCodeAt(Q)<=a$$)Z*=16,Z+=$.charCodeAt(Q)-MX0;else if(r$$<=$.charCodeAt(Q)&&$.charCodeAt(Q)<=E94)Z*=16,Z+=$.charCodeAt(Q)-r$$+10;else if(o$$<=$.charCodeAt(Q)&&$.charCodeAt(Q)<=j94)Z*=16,Z+=$.charCodeAt(Q)-o$$+10;else break;if(Z>=Jr0)return{n:0,c:Q,ok:!1}}if(Q===0)return{n:0,c:Q,ok:!1};return{n:Z,c:Q,ok:!0}}});var Nr0=v((X8$)=>{Object.defineProperty(X8$,"__esModule",{value:!0});X8$.Servers=X8$.ServerImpl=void 0;X8$.isIPV4OrHostname=Q8$;X8$.hostPort=Ur0;var Kr0=cE(),Wr0=DK(),Hr0=Gr0(),M94=aO(),V94=IJ();function Q8$($){if($.indexOf("[")!==-1||$.indexOf("::")!==-1)return!1;if($.indexOf(".")!==-1)return!0;if($.split(":").length<=2)return!0;return!1}function Fr0($){return!Q8$($)}function k94($){let Q=$.toUpperCase().indexOf("::FFFF:");if(Q!==-1&&$.indexOf(".")!==-1){let X=$.substring(Q+7);return X=X.replace("[",""),X.replace("]","")}return $}function Ur0($){if($=$.trim(),$.match(/^(.*:\/\/)(.*)/m))$=$.replace(/^(.*:\/\/)(.*)/gm,"$2");if($=k94($),Fr0($)&&$.indexOf("[")===-1)$=`[${$}]`;let Z=Fr0($)?$.match(/(]:)(\d+)/):$.match(/(:)(\d+)/),Q=Z&&Z.length===3&&Z[1]&&Z[2]?parseInt(Z[2]):M94.DEFAULT_PORT,Y=new URL(`${Q===80?"https":"http"}://${$}`);Y.port=`${Q}`;let J=Y.hostname;if(J.charAt(0)==="[")J=J.substring(1,J.length-1);return{listen:Y.host,hostname:J,port:Q}}class gg{src;listen;hostname;port;didConnect;reconnects;lastConnect;gossiped;tlsName;resolves;constructor($,Z=!1){this.src=$,this.tlsName="";let Q=Ur0($);this.listen=Q.listen,this.hostname=Q.hostname,this.port=Q.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,Hr0.isIP)(this.hostname))return[this];else{let Q=await $.fn(this.hostname);if($.debug)console.log(`resolve ${this.hostname} = ${Q.join(",")}`);for(let X of Q){let Y=this.port===80?"https":"http",J=new URL(`${Y}://${Fr0(X)?"["+X+"]":X}`);J.port=`${this.port}`;let G=new gg(J.host,!1);G.tlsName=this.hostname,Z.push(G)}}if($.randomize)(0,Wr0.shuffle)(Z);return this.resolves=Z,Z}}X8$.ServerImpl=gg;class VX0{firstSelect;servers;currentServer;tlsName;randomize;constructor($={}){this.firstSelect=!0,this.servers=[],this.tlsName="",this.randomize=$.randomize||!1}setServers($){if(!Array.isArray($)||$.length===0)throw V94.InvalidArgumentError.format("servers","cannot be empty");let Z=(0,Kr0.getUrlParseFn)(),Q=new Map;for(let Y of this.servers)Q.set(Y.listen,Y);let X=[];for(let Y of $){Y=Z?Z(Y):Y;let{listen:J}=Ur0(Y),G=Q.get(J);if(G)G.gossiped=!1,X.push(G);else X.push(new gg(Y))}if(this.randomize)(0,Wr0.shuffle)(X);if(this.servers=X,this.currentServer===void 0||!X.includes(this.currentServer))this.currentServer=X[0],this.firstSelect=!0}clear(){this.servers.length=0}updateTLSName(){let $=this.getCurrentServer();if(!(0,Hr0.isIP)($.hostname))this.tlsName=$.hostname,this.servers.forEach((Z)=>{if(Z.gossiped)Z.tlsName=this.tlsName})}getCurrentServer(){return this.currentServer}addServer($,Z=!1){let Q=(0,Kr0.getUrlParseFn)();$=Q?Q($):$;let X=new gg($,Z);if((0,Hr0.isIP)(X.hostname))X.tlsName=this.tlsName;this.servers.push(X)}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 VX0.freezeAll(this.servers)}snapshotForHandler(){let $=this.currentServer;if(!$)return this.snapshot();let Z=this.servers.indexOf($);if(Z<=0)return this.snapshot();return VX0.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 Q=[],X=[],Y=(0,Kr0.getUrlParseFn)(),J=new Map;if($.connect_urls&&$.connect_urls.length>0)$.connect_urls.forEach((K)=>{K=Y?Y(K,Z):K;let W=new gg(K,!0);J.set(K,W)});let G=[];if(this.servers.forEach((K,W)=>{let H=K.listen;if(K.gossiped&&this.currentServer.listen!==H&&J.get(H)===void 0)G.push(W);J.delete(H)}),G.reverse(),G.forEach((K)=>{let W=this.servers.splice(K,1);X=X.concat(W[0].listen)}),J.forEach((K,W)=>{this.servers.push(K),Q.push(W)}),this.randomize&&Q.length>0){let K=this.currentServer,W=this.servers.filter((H)=>H!==K);(0,Wr0.shuffle)(W),this.servers=K?[K,...W]:W}return{added:Q,deleted:X}}}X8$.Servers=VX0});var kX0=v((K8$)=>{Object.defineProperty(K8$,"__esModule",{value:!0});K8$.QueuedIteratorImpl=void 0;var Br0=DK(),J8$=IJ();class G8${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,Br0.deferred)(),this.yields=[],this.iterClosed=(0,Br0.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(Q){}}return}if(typeof $==="function")this.pendingFiltered++;this.yields.push($),this.signal.resolve()}async*iterate(){if(this.noIterator)throw new J8$.InvalidOperationError("iterator cannot be used when a callback is registered");if(this.yielding)throw new J8$.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 X=$[Z];try{X()}catch(Y){throw Y}if(this.err)throw this.err;continue}this.processed++,this.inflight--;let Q=this.profile?Date.now():0;yield $[Z],this.time=this.profile?Date.now()-Q:0}if(this.done)break;else if(this.yields.length===0)$.length=0,this.yields=$,this.signal=(0,Br0.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}}K8$.QueuedIteratorImpl=G8$});var Or0=v((U8$)=>{Object.defineProperty(U8$,"__esModule",{value:!0});U8$.MuxSubscription=void 0;var v94=aO(),H8$=IJ();class F8${baseInbox;reqs;constructor(){this.reqs=new Map}size(){return this.reqs.size}init($){return this.baseInbox=`${(0,v94.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((Q)=>{Q.resolver(Z,{})}),!0;if(Z.operation==="publish"){let Q=this.all().find((X)=>{return X.requestSubject===Z.subject});if(Q)return Q.resolver(Z,{}),!0}return!1}dispatcher(){return($,Z)=>{let Q=this.getToken(Z);if(Q){let X=this.get(Q);if(X){if($===null)$=Z?.data?.length===0&&Z.headers?.code===503?new H8$.NoRespondersError(X.requestSubject):null;X.resolver($,Z)}}}}close(){let $=new H8$.RequestError("connection closed");this.reqs.forEach((Z)=>{Z.resolver($,{})})}}U8$.MuxSubscription=F8$});var Dr0=v((O8$)=>{Object.defineProperty(O8$,"__esModule",{value:!0});O8$.Heartbeat=void 0;var x94=DK();class B8${ph;interval;maxOut;timer;pendings;constructor($,Z,Q){this.ph=$,this.interval=Z,this.maxOut=Q,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,x94.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})}}O8$.Heartbeat=B8$});var jr0=v((E8$)=>{Object.defineProperty(E8$,"__esModule",{value:!0});E8$.DenoBuffer=E8$.MAX_SIZE=E8$.AssertionError=void 0;E8$.assert=w8$;E8$.concat=j8$;E8$.append=b94;E8$.readAll=y94;E8$.writeAll=g94;var f94=RJ();class Lr0 extends Error{constructor($){super($);this.name="AssertionError"}}E8$.AssertionError=Lr0;function w8$($,Z="Assertion failed."){if(!$)throw new Lr0(Z)}var L8$=32768;E8$.MAX_SIZE=4294967294;function SX0($,Z,Q=0){let X=Z.byteLength-Q;if($.byteLength>X)$=$.subarray(0,X);return Z.set($,Q),$.byteLength}function j8$($,Z){if($===void 0&&Z===void 0)return new Uint8Array(0);if($===void 0)return Z;if(Z===void 0)return $;let Q=new Uint8Array($.length+Z.length);return Q.set($,0),Q.set(Z,$.length),Q}function b94($,Z){return j8$($,Uint8Array.of(Z))}class wr0{_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($){w8$($<=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=SX0(this._buf.subarray(this._off),$);return this._off+=Z,Z}writeByte($){return this.write(Uint8Array.of($))}writeString($){return this.write(f94.TE.encode($))}write($){let Z=this._grow($.byteLength);return SX0($,this._buf,Z)}_grow($){let Z=this.length;if(Z===0&&this._off!==0)this.reset();let Q=this._tryGrowByReslice($);if(Q>=0)return Q;let X=this.capacity;if($<=Math.floor(X/2)-Z)SX0(this._buf.subarray(this._off),this._buf);else if(X+$>E8$.MAX_SIZE)throw Error("The buffer cannot be grown beyond the maximum size.");else{let Y=new Uint8Array(Math.min(2*X+$,E8$.MAX_SIZE));SX0(this._buf.subarray(this._off),Y),this._buf=Y}return this._off=0,this._reslice(Math.min(Z+$,E8$.MAX_SIZE)),Z}grow($){if($<0)throw Error("Buffer._grow: negative count");let Z=this._grow($);this._reslice(Z)}readFrom($){let Z=0,Q=new Uint8Array(L8$);while(!0){let X=this.capacity-this.length<L8$,Y=X?Q:new Uint8Array(this._buf.buffer,this.length),J=$.read(Y);if(J===null)return Z;if(X)this.write(Y.subarray(0,J));else this._reslice(this.length+J);Z+=J}}}E8$.DenoBuffer=wr0;function y94($){let Z=new wr0;return Z.readFrom($),Z.bytes()}function g94($,Z){let Q=0;while(Q<Z.length)Q+=$.write(Z.subarray(Q))}});var Pr0=v((R8$)=>{Object.defineProperty(R8$,"__esModule",{value:!0});R8$.cc=R8$.State=R8$.Parser=R8$.Kind=void 0;R8$.describe=i94;var Er0=jr0(),zr0=RJ();R8$.Kind={OK:0,ERR:1,MSG:2,INFO:3,PING:4,PONG:5};function i94($){let Z,Q="";switch($.kind){case R8$.Kind.MSG:Z="MSG";break;case R8$.Kind.OK:Z="OK";break;case R8$.Kind.ERR:Z="ERR",Q=zr0.TD.decode($.data);break;case R8$.Kind.PING:Z="PING";break;case R8$.Kind.PONG:Z="PONG";break;case R8$.Kind.INFO:Z="INFO",Q=zr0.TD.decode($.data)}return`${Z}: ${Q}`}function P8$(){let $={};return $.sid=-1,$.hdr=-1,$.size=-1,$}var A8$=48,p94=57,hg=67108864;class T8${dispatcher;state;as;drop;hdr;ma;argBuf;msgBuf;constructor($){this.dispatcher=$,this.state=R8$.State.OP_START,this.as=0,this.drop=0,this.hdr=0}parse($){let Z;for(Z=0;Z<$.length;Z++){let Q=$[Z];switch(this.state){case R8$.State.OP_START:switch(Q){case R8$.cc.M:case R8$.cc.m:this.state=R8$.State.OP_M,this.hdr=-1,this.ma=P8$();break;case R8$.cc.H:case R8$.cc.h:this.state=R8$.State.OP_H,this.hdr=0,this.ma=P8$();break;case R8$.cc.P:case R8$.cc.p:this.state=R8$.State.OP_P;break;case R8$.cc.PLUS:this.state=R8$.State.OP_PLUS;break;case R8$.cc.MINUS:this.state=R8$.State.OP_MINUS;break;case R8$.cc.I:case R8$.cc.i:this.state=R8$.State.OP_I;break;default:throw this.fail($.subarray(Z))}break;case R8$.State.OP_H:switch(Q){case R8$.cc.M:case R8$.cc.m:this.state=R8$.State.OP_M;break;default:throw this.fail($.subarray(Z))}break;case R8$.State.OP_M:switch(Q){case R8$.cc.S:case R8$.cc.s:this.state=R8$.State.OP_MS;break;default:throw this.fail($.subarray(Z))}break;case R8$.State.OP_MS:switch(Q){case R8$.cc.G:case R8$.cc.g:this.state=R8$.State.OP_MSG;break;default:throw this.fail($.subarray(Z))}break;case R8$.State.OP_MSG:switch(Q){case R8$.cc.SPACE:case R8$.cc.TAB:this.state=R8$.State.OP_MSG_SPC;break;default:throw this.fail($.subarray(Z))}break;case R8$.State.OP_MSG_SPC:switch(Q){case R8$.cc.SPACE:case R8$.cc.TAB:continue;default:this.state=R8$.State.MSG_ARG,this.as=Z}break;case R8$.State.MSG_ARG:switch(Q){case R8$.cc.CR:this.drop=1;break;case R8$.cc.NL:{let X=this.argBuf?this.argBuf.bytes():$.subarray(this.as,Z-this.drop);this.processMsgArgs(X),this.drop=0,this.as=Z+1,this.state=R8$.State.MSG_PAYLOAD,Z=this.as+this.ma.size-1;break}default:if(this.argBuf)this.argBuf.writeByte(Q)}break;case R8$.State.MSG_PAYLOAD:if(this.msgBuf)if(this.msgBuf.length>=this.ma.size){let X=this.msgBuf.bytes({copy:!1});this.dispatcher.push({kind:R8$.Kind.MSG,msg:this.ma,data:X}),this.argBuf=void 0,this.msgBuf=void 0,this.state=R8$.State.MSG_END}else{let X=this.ma.size-this.msgBuf.length,Y=$.length-Z;if(Y<X)X=Y;if(X>0)this.msgBuf.write($.subarray(Z,Z+X)),Z=Z+X-1;else this.msgBuf.writeByte(Q)}else if(Z-this.as>=this.ma.size)this.dispatcher.push({kind:R8$.Kind.MSG,msg:this.ma,data:$.subarray(this.as,Z)}),this.argBuf=void 0,this.msgBuf=void 0,this.state=R8$.State.MSG_END;break;case R8$.State.MSG_END:switch(Q){case R8$.cc.NL:this.drop=0,this.as=Z+1,this.state=R8$.State.OP_START;break;default:continue}break;case R8$.State.OP_PLUS:switch(Q){case R8$.cc.O:case R8$.cc.o:this.state=R8$.State.OP_PLUS_O;break;default:throw this.fail($.subarray(Z))}break;case R8$.State.OP_PLUS_O:switch(Q){case R8$.cc.K:case R8$.cc.k:this.state=R8$.State.OP_PLUS_OK;break;default:throw this.fail($.subarray(Z))}break;case R8$.State.OP_PLUS_OK:switch(Q){case R8$.cc.NL:this.dispatcher.push({kind:R8$.Kind.OK}),this.drop=0,this.state=R8$.State.OP_START;break}break;case R8$.State.OP_MINUS:switch(Q){case R8$.cc.E:case R8$.cc.e:this.state=R8$.State.OP_MINUS_E;break;default:throw this.fail($.subarray(Z))}break;case R8$.State.OP_MINUS_E:switch(Q){case R8$.cc.R:case R8$.cc.r:this.state=R8$.State.OP_MINUS_ER;break;default:throw this.fail($.subarray(Z))}break;case R8$.State.OP_MINUS_ER:switch(Q){case R8$.cc.R:case R8$.cc.r:this.state=R8$.State.OP_MINUS_ERR;break;default:throw this.fail($.subarray(Z))}break;case R8$.State.OP_MINUS_ERR:switch(Q){case R8$.cc.SPACE:case R8$.cc.TAB:this.state=R8$.State.OP_MINUS_ERR_SPC;break;default:throw this.fail($.subarray(Z))}break;case R8$.State.OP_MINUS_ERR_SPC:switch(Q){case R8$.cc.SPACE:case R8$.cc.TAB:continue;default:this.state=R8$.State.MINUS_ERR_ARG,this.as=Z}break;case R8$.State.MINUS_ERR_ARG:switch(Q){case R8$.cc.CR:this.drop=1;break;case R8$.cc.NL:{let X;if(this.argBuf)X=this.argBuf.bytes(),this.argBuf=void 0;else X=$.subarray(this.as,Z-this.drop);this.dispatcher.push({kind:R8$.Kind.ERR,data:X}),this.drop=0,this.as=Z+1,this.state=R8$.State.OP_START;break}default:if(this.argBuf)this.argBuf.write(Uint8Array.of(Q))}break;case R8$.State.OP_P:switch(Q){case R8$.cc.I:case R8$.cc.i:this.state=R8$.State.OP_PI;break;case R8$.cc.O:case R8$.cc.o:this.state=R8$.State.OP_PO;break;default:throw this.fail($.subarray(Z))}break;case R8$.State.OP_PO:switch(Q){case R8$.cc.N:case R8$.cc.n:this.state=R8$.State.OP_PON;break;default:throw this.fail($.subarray(Z))}break;case R8$.State.OP_PON:switch(Q){case R8$.cc.G:case R8$.cc.g:this.state=R8$.State.OP_PONG;break;default:throw this.fail($.subarray(Z))}break;case R8$.State.OP_PONG:switch(Q){case R8$.cc.NL:this.dispatcher.push({kind:R8$.Kind.PONG}),this.drop=0,this.state=R8$.State.OP_START;break}break;case R8$.State.OP_PI:switch(Q){case R8$.cc.N:case R8$.cc.n:this.state=R8$.State.OP_PIN;break;default:throw this.fail($.subarray(Z))}break;case R8$.State.OP_PIN:switch(Q){case R8$.cc.G:case R8$.cc.g:this.state=R8$.State.OP_PING;break;default:throw this.fail($.subarray(Z))}break;case R8$.State.OP_PING:switch(Q){case R8$.cc.NL:this.dispatcher.push({kind:R8$.Kind.PING}),this.drop=0,this.state=R8$.State.OP_START;break}break;case R8$.State.OP_I:switch(Q){case R8$.cc.N:case R8$.cc.n:this.state=R8$.State.OP_IN;break;default:throw this.fail($.subarray(Z))}break;case R8$.State.OP_IN:switch(Q){case R8$.cc.F:case R8$.cc.f:this.state=R8$.State.OP_INF;break;default:throw this.fail($.subarray(Z))}break;case R8$.State.OP_INF:switch(Q){case R8$.cc.O:case R8$.cc.o:this.state=R8$.State.OP_INFO;break;default:throw this.fail($.subarray(Z))}break;case R8$.State.OP_INFO:switch(Q){case R8$.cc.SPACE:case R8$.cc.TAB:this.state=R8$.State.OP_INFO_SPC;break;default:throw this.fail($.subarray(Z))}break;case R8$.State.OP_INFO_SPC:switch(Q){case R8$.cc.SPACE:case R8$.cc.TAB:continue;default:this.state=R8$.State.INFO_ARG,this.as=Z}break;case R8$.State.INFO_ARG:switch(Q){case R8$.cc.CR:this.drop=1;break;case R8$.cc.NL:{let X;if(this.argBuf)X=this.argBuf.bytes(),this.argBuf=void 0;else X=$.subarray(this.as,Z-this.drop);this.dispatcher.push({kind:R8$.Kind.INFO,data:X}),this.drop=0,this.as=Z+1,this.state=R8$.State.OP_START;break}default:if(this.argBuf)this.argBuf.writeByte(Q)}break;default:throw this.fail($.subarray(Z))}}if((this.state===R8$.State.MSG_ARG||this.state===R8$.State.MINUS_ERR_ARG||this.state===R8$.State.INFO_ARG)&&!this.argBuf)this.argBuf=new Er0.DenoBuffer($.subarray(this.as,Z-this.drop));if(this.state===R8$.State.MSG_PAYLOAD&&!this.msgBuf){if(!this.argBuf)this.cloneMsgArg();this.msgBuf=new Er0.DenoBuffer($.subarray(this.as))}}cloneMsgArg(){let $=this.ma.subject.length,Z=this.ma.reply?this.ma.reply.length:0,Q=new Uint8Array($+Z);if(Q.set(this.ma.subject),this.ma.reply)Q.set(this.ma.reply,$);if(this.argBuf=new Er0.DenoBuffer(Q),this.ma.subject=Q.subarray(0,$),this.ma.reply)this.ma.reply=Q.subarray($)}processMsgArgs($){if(this.hdr>=0)return this.processHeaderMsgArgs($);let Z=[],Q=-1;for(let X=0;X<$.length;X++)switch($[X]){case R8$.cc.SPACE:case R8$.cc.TAB:case R8$.cc.CR:case R8$.cc.NL:if(Q>=0)Z.push($.subarray(Q,X)),Q=-1;break;default:if(Q<0)Q=X}if(Q>=0)Z.push($.subarray(Q));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],hg);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],hg);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}: ${zr0.TD.decode($)}`)}processHeaderMsgArgs($){let Z=[],Q=-1;for(let X=0;X<$.length;X++)switch($[X]){case R8$.cc.SPACE:case R8$.cc.TAB:case R8$.cc.CR:case R8$.cc.NL:if(Q>=0)Z.push($.subarray(Q,X)),Q=-1;break;default:if(Q<0)Q=X}if(Q>=0)Z.push($.subarray(Q));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],hg),this.ma.size=this.protoParseInt(Z[3],hg);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],hg),this.ma.size=this.protoParseInt(Z[4],hg);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 Q=0;for(let X=0;X<$.length;X++){if($[X]<A8$||$[X]>p94)return-1;Q=Q*10+($[X]-A8$)}return Z!==void 0&&Q>Z?-1:Q}}R8$.Parser=T8$;R8$.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};R8$.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 vX0=v((q8$)=>{Object.defineProperty(q8$,"__esModule",{value:!0});q8$.MsgHdrsImpl=void 0;q8$.canonicalMIMEHeaderKey=Tr0;q8$.headers=o94;var I8$=RJ(),LK=aO(),_X0=IJ();function Tr0($){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 _X0.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 o94($=0,Z=""){if($===0&&Z!=="")throw _X0.InvalidArgumentError.format("code","is required");else if($>0&&Z==="")throw _X0.InvalidArgumentError.format("description","is required");return new ug($,Z)}var Ar0="NATS/1.0";class ug{_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,Q]of this.headers){let X=$.values(Z);if(Q.length!==X.length)return!1;let Y=[...Q].sort(),J=[...X].sort();for(let G=0;G<Y.length;G++)if(Y[G]!==J[G])return!1}return!0}return!1}static decode($){let Z=new ug,X=I8$.TD.decode($).split(`\r
1944
1944
  `),Y=X[0];if(Y!==Ar0){let J=Y.replace(Ar0,"").trim();if(J.length>0){if(Z._code=parseInt(J,10),isNaN(Z._code))Z._code=0;let G=Z._code.toString();J=J.replace(G,""),Z._description=J.trim()}}if(X.length>=1)X.slice(1).map((J)=>{if(J){let G=J.indexOf(":");if(G>-1){let K=J.slice(0,G),W=J.slice(G+1).trim();Z.append(K,W)}}});return Z}toString(){if(this.headers.size===0&&this._code===0)return"";let $=Ar0;if(this._code>0&&this._description!=="")$+=` ${this._code} ${this._description}`;for(let[Z,Q]of this.headers)for(let X=0;X<Q.length;X++)$=`${$}\r
1945
1945
  ${Z}: ${Q[X]}`;return`${$}\r
@@ -2689,7 +2689,7 @@ You are the Usage Manager. You analyze how this workspace is actually used \u201
2689
2689
  `,W),U=F===-1?$.slice(W):$.slice(W,F);Q+=U,W+=U.length-1;continue}if($.startsWith("/*",W)){let F=1,U=W+2;while(F>0&&U<$.length)if($.startsWith("/*",U))F++,U+=2;else if($.startsWith("*/",U))F--,U+=2;else U++;let N=$.slice(W,U);Q+=N,W+=N.length-1;continue}}if(K!==null){let F=`$${K}$`;if($.startsWith(F,W))Q+=F,W+=F.length-1,K=null;else Q+=H;continue}if(Y&&G&&H==="\\"&&W+1<$.length){Q+=H+$[W+1],W+=1;continue}if(!J&&H==="'"){if(!Y){let F=$[W-1],U=$[W-2]??"";G=(F==="e"||F==="E")&&!/[A-Za-z0-9_]/.test(U)}Y=!Y,Q+=H;continue}if(!Y&&H==='"'){J=!J,Q+=H;continue}if(!Y&&!J&&H==="$"){let F=/^\$(\d+)/.exec($.slice(W)),U=F?Number(F[1])-1:-1;if(F&&U>=0&&U<Z.length){Q+=Mj$(Z[U]),W+=F[0].length-1;continue}let N=/^\$([A-Za-z_][A-Za-z0-9_]*)?\$/.exec($.slice(W));if(N){K=N[1]??"",Q+=N[0],W+=N[0].length-1;continue}}else if(!Y&&!J&&H==="?"&&X<Z.length){Q+=Mj$(Z[X]),X++;continue}Q+=H}return Q}function Vj$($){return $.replace(/-/g,"_")}function P_4($){return`app_${Vj$($)}`}function A_4($){return`app_role_${Vj$($)}`}function T_4($){if($ instanceof Error){let Z=$.message.toLowerCase(),Q=$.code;return Q==="3F000"||Q==="42704"||Q==="22023"||Z.includes("schema")&&Z.includes("does not exist")||Z.includes("role")&&Z.includes("does not exist")}return!1}async function R_4($,Z,Q){if(await m4`CREATE SCHEMA IF NOT EXISTS ${m4.id(Z)}`.execute($),!(await m4`
2690
2690
  SELECT EXISTS (SELECT 1 FROM pg_roles WHERE rolname = ${Q}) as exists
2691
2691
  `.execute($)).rows[0]?.exists)await m4`CREATE ROLE ${m4.id(Q)} NOLOGIN`.execute($);await m4`GRANT ${m4.id(Q)} TO CURRENT_USER`.execute($),await m4`GRANT USAGE, CREATE ON SCHEMA ${m4.id(Z)} TO ${m4.id(Q)}`.execute($),await m4`GRANT ALL ON ALL TABLES IN SCHEMA ${m4.id(Z)} TO ${m4.id(Q)}`.execute($),await m4`GRANT ALL ON ALL SEQUENCES IN SCHEMA ${m4.id(Z)} TO ${m4.id(Q)}`.execute($),await m4`ALTER DEFAULT PRIVILEGES IN SCHEMA ${m4.id(Z)} GRANT ALL ON TABLES TO ${m4.id(Q)}`.execute($),await m4`ALTER DEFAULT PRIVILEGES IN SCHEMA ${m4.id(Z)} GRANT ALL ON SEQUENCES TO ${m4.id(Q)}`.execute($),await m4`REVOKE ALL ON SCHEMA public FROM ${m4.id(Q)}`.execute($)}async function I_4($,Z,Q,X){try{return await $.transaction().execute(async(Y)=>{return await m4`SET LOCAL ROLE ${m4.id(Q)}`.execute(Y),await m4`SET LOCAL search_path TO ${m4.id(Z)}`.execute(Y),await m4.raw(X).execute(Y)})}catch(Y){if(T_4(Y))return await R_4($,Z,Q),await $.transaction().execute(async(J)=>{return await m4`SET LOCAL ROLE ${m4.id(Q)}`.execute(J),await m4`SET LOCAL search_path TO ${m4.id(Z)}`.execute(J),await m4.raw(X).execute(J)});throw Y}}var j_4,z_4,kj$;var Sj$=D(()=>{M0();j_4=oH.object({results:oH.array(oH.unknown()).optional(),success:oH.boolean().optional()});z_4=oH.object({sql:oH.string().describe("The SQL query to run"),params:oH.array(oH.unknown()).describe("The parameters to pass to the SQL query").optional()});kj$=h({name:"DATABASES_RUN_SQL",description:"Run a SQL query in a connection-scoped isolated schema. Supports SELECT, DDL, and DML.",annotations:{title:"Run SQL Query",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!1},inputSchema:z_4,outputSchema:oH.object({result:oH.array(j_4)}),handler:async($,Z)=>{r(Z),await Z.access.check();let Q=E_4($.sql,$.params||[]);if(!Z.connectionId)throw Error("Connection context required for database access");console.warn("DATABASES_RUN_SQL invoked",{"tool.deprecation_probe":"DATABASES_RUN_SQL","connection.id":Z.connectionId,"organization.id":Z.organization?.id??null,"user.id":Z.auth.user?.id??null});let X=P_4(Z.connectionId),Y=A_4(Z.connectionId);return{result:[{results:(await I_4(Z.db,X,Y,Q)).rows,success:!0}]}}})});function FW0($){let Z=$.access.getRole();if(!RZ(Z))throw new CJ("Only organization owners and admins can change org-wide pin status")}var M61=D(()=>{zX();GN()});async function UW0($,Z,Q){let X=[...new Set(Q)],Y=await Promise.all(X.map((G)=>$.storage.connections.findById(G,Z))),J=X.filter((G,K)=>!Y[K]);if(J.length>0)throw Error(`Connection not found: ${J.join(", ")}`)}function RN($){return $.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"")}function NW0($){let Z=2166136261;for(let Q=0;Q<$.length;Q++)Z=Math.imul(Z^$.charCodeAt(Q),16777619);return`a${(Z>>>0).toString(36).padStart(6,"0").slice(-6)}`}function BW0($){if($&&typeof $==="object"&&"gatewayClientId"in $&&typeof $.gatewayClientId==="string")return $.gatewayClientId;return}function OW0($,Z){if(!Z)return $;let Q=`${NW0(Z)}_`;return $.startsWith(Q)?$.slice(Q.length):$}function M_4($){return $.split(/[-_]/).map((Z)=>Z?Z.charAt(0).toUpperCase()+Z.slice(1):Z).join(" ")}function V_4($,Z,Q){let X,Y=new Promise((J,G)=>{X=setTimeout(()=>G(Error(Q)),Z)});return Promise.race([$,Y]).finally(()=>clearTimeout(X))}var LP;var Cj$=D(()=>{kH();LP=class LP extends $Z{static MAX_PAGES_PER_CLIENT=1000;static DEFAULT_LIST_TIMEOUT_MS=30000;clients;slugToKey=new Map;resolvedClients=new Map;toolsCache=null;resourcesCache=null;resourceTemplatesCache=null;promptsCache=null;resourceRouteMap=new Map;listTimeoutMs;constructor($,Z){super(Z?.clientInfo??{name:"gateway-client",version:"1.0.0"},{capabilities:Z?.capabilities});this.clients=$,this.listTimeoutMs=Z?.listTimeoutMs??LP.DEFAULT_LIST_TIMEOUT_MS;for(let Q of Object.keys($)){let X=NW0(Q);if(this.slugToKey.has(X))throw Error(`GatewayClient: duplicate namespace code "${X}" from keys "${this.slugToKey.get(X)}" and "${Q}"`);this.slugToKey.set(X,Q)}}namespace($,Z){return`${NW0($)}_${Z}`}async resolveNamespacedTarget($,Z,Q){let X=$.indexOf("_");if(X!==-1){let Y=$.slice(0,X),J=this.slugToKey.get(Y);if(J)return[J,$.slice(X+1)]}for(let Y of await Q()){let J=BW0(Y._meta);if(!J)continue;if(OW0(Y.name,J)===$)return[J,$]}if(X===-1)throw Error(`GatewayClient: could not resolve ${Z} "${$}" \u2014 no namespace prefix and not found in any client`);throw Error(`GatewayClient: unknown namespace "${$.slice(0,X)}" in "${$}" and not found by original name in any client`)}resolveToolTarget($){return this.resolveNamespacedTarget($,"tool",async()=>(await this.listTools()).tools)}resolvePromptTarget($){return this.resolveNamespacedTarget($,"prompt",async()=>(await this.listPrompts()).prompts)}resolveClient($){let Z=this.resolvedClients.get($);if(Z)return Z;let Q=this.clients[$];if(!Q)return Promise.reject(Error(`GatewayClient: unknown client key "${$}"`));let X=Q.client,Y;try{Y=typeof X==="function"?Promise.resolve(X()):Promise.resolve(X)}catch(G){return Promise.reject(G)}let J=Y.catch((G)=>{throw this.resolvedClients.delete($),G});return this.resolvedClients.set($,J),J}getResolvedClient($){return this.resolveClient($)}async listFromClient($,Z,Q){try{return await V_4((async()=>{let X=await this.resolveClient($);return await Z(X)})(),this.listTimeoutMs,`timed out after ${this.listTimeoutMs}ms`)}catch(X){return console.warn(`GatewayClient: skipping ${Q} from client "${$}" \u2014 ${X?.message??X}`),[]}}listFromAllClients($,Z){return Promise.all(Object.entries(this.clients).map(async([Q,X])=>[Q,X,await this.listFromClient(Q,(Y)=>$(Y,Q),Z)]))}async paginate($,Z,Q){let X=[],Y,J=0;do{let G=await Q(Y);X.push(...G.items),Y=G.nextCursor,J++}while(Y&&J<LP.MAX_PAGES_PER_CLIENT);if(Y)console.warn(`GatewayClient: client "${$}" exceeded ${LP.MAX_PAGES_PER_CLIENT} pages listing ${Z} \u2014 truncating`);return X}fetchAllTools($,Z){return this.paginate(Z,"tools",async(Q)=>{let X=await $.listTools(Q?{cursor:Q}:void 0);return{items:X.tools,nextCursor:X.nextCursor}})}fetchAllResources($,Z){return this.paginate(Z,"resources",async(Q)=>{let X=await $.listResources(Q?{cursor:Q}:void 0);return{items:X.resources,nextCursor:X.nextCursor}})}fetchAllResourceTemplates($,Z){return this.paginate(Z,"resource templates",async(Q)=>{let X=await $.listResourceTemplates(Q?{cursor:Q}:void 0);return{items:X.resourceTemplates,nextCursor:X.nextCursor}})}fetchAllPrompts($,Z){return this.paginate(Z,"prompts",async(Q)=>{let X=await $.listPrompts(Q?{cursor:Q}:void 0);return{items:X.prompts,nextCursor:X.nextCursor}})}listTools($,Z){if(!this.toolsCache)this.toolsCache=this.aggregateTools();return this.toolsCache}async aggregateTools(){let $=[],Z=await this.listFromAllClients((Q,X)=>this.fetchAllTools(Q,X),"tools");for(let[Q,X,Y]of Z){let J=X.tools,G=J?new Set(J):null;for(let K of Y){if(G&&!G.has(K.name))continue;$.push({...K,name:this.namespace(Q,K.name),_meta:{...K._meta??{},gatewayClientId:Q}})}}return{tools:$}}listResources($,Z){if(!this.resourcesCache)this.resourcesCache=this.aggregateResources();return this.resourcesCache}async aggregateResources(){let $=new Set,Z=[],Q=new Map,X=await this.listFromAllClients((Y,J)=>this.fetchAllResources(Y,J),"resources");for(let[Y,J,G]of X){let K=J.resources,W=K?new Set(K):null;for(let H of G){if(W&&!W.has(H.uri)&&!(H.name&&W.has(H.name)))continue;if($.has(H.uri)){console.warn(`GatewayClient: duplicate resource "${H.uri}" from client "${Y}" \u2014 skipping`);continue}$.add(H.uri),Q.set(H.uri,Y),Z.push({...H,_meta:{...H._meta??{},gatewayClientId:Y}})}}return this.resourceRouteMap=Q,{resources:Z}}listResourceTemplates($,Z){if(!this.resourceTemplatesCache)this.resourceTemplatesCache=this.aggregateResourceTemplates();return this.resourceTemplatesCache}async aggregateResourceTemplates(){let $=new Set,Z=[],Q=await this.listFromAllClients((X,Y)=>this.fetchAllResourceTemplates(X,Y),"resource templates");for(let[X,Y,J]of Q)for(let G of J){if($.has(G.uriTemplate)){console.warn(`GatewayClient: duplicate resource template "${G.uriTemplate}" from client "${X}" \u2014 skipping`);continue}$.add(G.uriTemplate),Z.push({...G,_meta:{...G._meta??{},gatewayClientId:X}})}return{resourceTemplates:Z}}listPrompts($,Z){if(!this.promptsCache)this.promptsCache=this.aggregatePrompts();return this.promptsCache}async aggregatePrompts(){let $=[],Z=await this.listFromAllClients((Q,X)=>this.fetchAllPrompts(Q,X),"prompts");for(let[Q,X,Y]of Z){let J=X.prompts,G=J?new Set(J):null;for(let K of Y){if(G&&!G.has(K.name))continue;$.push({...K,name:this.namespace(Q,K.name),title:K.title??M_4(K.name),_meta:{...K._meta??{},gatewayClientId:Q}})}}return{prompts:$}}async callTool($,Z,Q){let[X,Y]=await this.resolveToolTarget($.name);return(await this.resolveClient(X)).callTool({...$,name:Y},Z,Q)}async readResource($,Z){let Q=await this.resolveResourceRoute($.uri);return(await this.resolveClient(Q)).readResource($)}async getPrompt($,Z){let[Q,X]=await this.resolvePromptTarget($.name);return(await this.resolveClient(Q)).getPrompt({...$,name:X})}async resolveResourceRoute($){let Z=this.resourceRouteMap.get($);if(Z)return Z;if(this.resourcesCache=null,await this.listResources(),Z=this.resourceRouteMap.get($),Z)return Z;throw Error(`GatewayClient: resource "${$}" not found in any upstream client`)}getServerCapabilities(){return{tools:{},resources:{},prompts:{}}}getInstructions(){return}refresh(){this.toolsCache=null,this.resourcesCache=null,this.resourceTemplatesCache=null,this.promptsCache=null}async close(){let $=[...this.resolvedClients.values()].map((Z)=>Z.then((Q)=>Q.close()).catch(()=>{}));await Promise.allSettled($),await super.close()}}});var DW0=D(()=>{Cj$()});function k61($){return RN($)}function S_4($,Z){let Q=RN(Z)||"prompt";return`${String($).padStart(k_4,"0")}-${Q}`}async function S61($,Z,Q){try{await $.delete(LW0,k61(Z),{actor:Q})}catch(X){console.error("[agent-prompts] failed to delete prompts",{agentId:Z,err:X})}}async function wW0($,Z,Q,X){let Y=k61(Z);await S61($,Z,Q),await Promise.all(X.slice(0,V61).map(async(J,G)=>{let K=S_4(G,J.title),W={name:K,title:J.title,description:J.description,text:J.text};try{await $.write(LW0,`${Y}/${K}.json`,JSON.stringify(W),{actor:Q,contentType:"application/json"})}catch(H){console.error("[agent-prompts] failed to seed prompt",{agentId:Z,name:K,err:H})}}))}async function _j$($,Z){let Q=k61(Z),X;try{X=await $.listDir(LW0,Q)}catch{return[]}let Y=X.filter((G)=>G.kind==="file"&&G.path.endsWith(".json")).slice(0,V61),J=[];for(let G of Y)try{let K=await $.read(LW0,G.path),W=JSON.parse(new TextDecoder().decode(K));if(W&&typeof W.name==="string"&&typeof W.title==="string"&&typeof W.text==="string")J.push(W)}catch{}return J}var LW0="agent-prompts",V61=20,k_4;var fa=D(()=>{DW0();k_4=String(V61-1).length});function jc($){if(!$)return $;let Z={...$};return delete Z.sandboxMap,Z}import{z as fj$}from"zod";function C_4(){let $=vj$[Math.floor(Math.random()*vj$.length)];return`icon://${xj$[Math.floor(Math.random()*xj$.length)]}?color=${$}`}var vj$,xj$,__4,v_4,wP;var C61=D(()=>{M0();LL();M61();fa();vj$=["red","orange","amber","yellow","lime","green","emerald","cyan","sky","blue","indigo","violet","purple","fuchsia","pink","rose"],xj$=["Star01","Zap","Heart","Globe01","Compass03","Lightbulb02","Rocket01","Flag01","BookOpen01","Shield01","Key01","Diamond01","Cube01","Target04","Award01","Briefcase01","Coffee","Feather","Hexagon01","Layers3_01","Map01","Palette","Package","Terminal"];__4=fj$.object({data:_Y0.describe("Data for the new virtual MCP")}),v_4=fj$.object({item:zQ.describe("The created virtual MCP entity")}),wP=h({name:"COLLECTION_VIRTUAL_MCP_CREATE",description:"Create a Virtual MCP (agent) that aggregates tools from multiple connections into one endpoint. Pass `prompts` to seed the agent with kickstart prompts (conversation starters shown as icebreakers). Author them from the agent's role/instructions and the descriptions of the tools it will have, so the starters are coherent and immediately useful.",annotations:{title:"Create Virtual MCP",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!1},inputSchema:__4,outputSchema:v_4,handler:async($,Z)=>{r(Z);let Q=t(Z);await Z.access.check();let X=o0(Z);if(!X)throw Error("User ID required to create virtual MCP");if($.data.pinned===!0)FW0(Z);let{prompts:Y,metadata:J,...G}=$.data,K=jc(J);if(G.connections.length>0)await UW0(Z,Q.id,G.connections.map((F)=>F.connection_id));let W={...G,metadata:K,icon:G.icon??C_4()},H=await Z.storage.virtualMcps.create(Q.id,X,W);if(Y?.length&&Z.orgFs&&H.id)await wW0(Z.orgFs,H.id,X,Y);return{item:H}}})});function x_4($){let Z=[],Q=0;while(Q<$.length){let X=$[Q];if(X==="%")Z.push(".*");else if(X==="_")Z.push(".");else if(/[.*+?^${}()|[\]\\]/.test(X))Z.push("\\"+X);else Z.push(X);Q++}return Z.join("")}function IL($){return typeof $==="string"||typeof $==="number"}function _61($,Z){let Q=Z.split("."),X=$;for(let Y of Q){if(X==null||typeof X!=="object")return;X=X[Y]}return X}function f_4($,Z){return $.connections.some((Q)=>Q.connection_id===Z)}function jW0($,Z){if("conditions"in Z){let{operator:K,conditions:W}=Z;switch(K){case"and":return W.every((H)=>jW0($,H));case"or":return W.some((H)=>jW0($,H));case"not":return!W.every((H)=>jW0($,H));default:return!0}}let{field:Q,operator:X,value:Y}=Z,J=Q.join(".");if(J==="connection_id"){if(X!=="eq"||typeof Y!=="string")return!1;return f_4($,Y)}let G=_61($,J);switch(X){case"eq":return G===Y;case"gt":return IL(G)&&IL(Y)&&G>Y;case"gte":return IL(G)&&IL(Y)&&G>=Y;case"lt":return IL(G)&&IL(Y)&&G<Y;case"lte":return IL(G)&&IL(Y)&&G<=Y;case"in":return Array.isArray(Y)&&Y.includes(G);case"like":if(typeof G!=="string"||typeof Y!=="string")return!1;if(Y.length>100)return!1;let K=x_4(Y);return new RegExp(`^${K}$`,"i").test(G);case"contains":if(typeof G!=="string"||typeof Y!=="string")return!1;return G.toLowerCase().includes(Y.toLowerCase());default:return!0}}function b_4($,Z){return[...$].sort((Q,X)=>{for(let Y of Z){let J=Y.field.join("."),G=_61(Q,J),K=_61(X,J),W=0;if(G==null&&K==null)continue;if(G==null)W=Y.nulls==="first"?-1:1;else if(K==null)W=Y.nulls==="first"?1:-1;else if(typeof G==="string"&&typeof K==="string")W=G.localeCompare(K);else if(typeof G==="number"&&typeof K==="number")W=G-K;else W=String(G).localeCompare(String(K));if(W!==0)return Y.direction==="desc"?-W:W}return 0})}var y_4,g_4,jP;var v61=D(()=>{J3();M0();LL();y_4=nK,g_4=AN(zQ),jP=h({name:"COLLECTION_VIRTUAL_MCP_LIST",description:"List all MCP virtual MCPs in the organization",annotations:{title:"List Virtual MCPs",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:y_4,outputSchema:g_4,handler:async($,Z)=>{await Z.access.check();let Q=t(Z),X=$.where&&!("conditions"in $.where)&&$.where.field.join(".")==="connection_id"&&$.where.operator==="eq"&&typeof $.where.value==="string"?$.where.value:void 0,Y=$.where&&!("conditions"in $.where)&&$.where.field.join(".")==="pinned"&&$.where.operator==="eq"&&typeof $.where.value==="boolean"?$.where.value:void 0,G=X?await Z.storage.virtualMcps.listByConnectionId(Q.id,X):await Z.storage.virtualMcps.list(Q.id,Y!==void 0?{pinnedOnly:Y}:void 0);if($.where)G=G.filter((N)=>jW0(N,$.where));if($.orderBy&&$.orderBy.length>0)G=b_4(G,$.orderBy);let K=G.length,W=$.offset??0,H=$.limit??100,F=G.slice(W,W+H),U=W+H<K;return{items:F,totalCount:K,hasMore:U}}})});import{z as x61}from"zod";var h_4,u_4,EP;var f61=D(()=>{M0();LL();h_4=x61.object({id:x61.string().describe("ID of the virtual MCP to retrieve")}),u_4=x61.object({item:zQ.nullable().describe("The retrieved virtual MCP, or null if not found")}),EP=h({name:"COLLECTION_VIRTUAL_MCP_GET",description:"Get a Virtual MCP's configuration, connections, and virtual tools by ID.",annotations:{title:"Get Virtual MCP",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:h_4,outputSchema:u_4,handler:async($,Z)=>{r(Z);let Q=t(Z);await Z.access.check();let X=await Z.storage.virtualMcps.findById($.id);if(X&&X.organization_id!==Q.id)return{item:null};if(!X)return{item:null};return{item:X}}})});function CX($){return b61.test($)}function bj$($){let Z=(Q)=>typeof Q==="string"?Q.trim().toLowerCase():"";return Z($?.metadata?.siteSlug)||Z($?.title)||null}var b61;var IN=D(()=>{b61=/^[a-z0-9][a-z0-9-]{0,59}$/});function yj$($){let{nextTitle:Z,currentTitle:Q,currentSiteSlug:X}=$;if(X?.trim())return null;if(Z===void 0||Z===Q)return null;let Y=Q?.trim().toLowerCase()??"";return CX(Y)?Y:null}var gj$=D(()=>{IN()});import{z as y61}from"zod";var c_4,l_4,zP;var g61=D(()=>{M0();fa();LL();M61();gj$();c_4=y61.object({id:y61.string().describe("ID of the virtual MCP to update"),data:vY0.describe("Partial virtual MCP data to update")}),l_4=y61.object({item:zQ.describe("The updated virtual MCP entity")}),zP=h({name:"COLLECTION_VIRTUAL_MCP_UPDATE",description:"Update a Virtual MCP's name, slug, connection list, or kickstart prompts. Pass `prompts` to replace the agent's conversation starters (full set; empty array clears them).",annotations:{title:"Update Virtual MCP",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:c_4,outputSchema:l_4,handler:async($,Z)=>{r(Z);let Q=t(Z);await Z.access.check();let X=o0(Z);if(!X)throw Error("User ID required to update virtual MCP");let Y=await Z.storage.virtualMcps.findById($.id);if(!Y)throw Error(`Virtual MCP not found: ${$.id}`);if(Y.organization_id!==Q.id)throw Error(`Virtual MCP not found: ${$.id}`);let{prompts:J,metadata:G,...K}=$.data,W=jc(G);if(W&&Y.metadata)W={...Y.metadata,...W};else if(W===null&&Y.metadata?.sandboxMap)W={sandboxMap:Y.metadata.sandboxMap};let H={...K,...G!==void 0?{metadata:W}:{}},F=yj$({nextTitle:H.title,currentTitle:Y.title,currentSiteSlug:Y.metadata?.siteSlug});if(F)H.metadata={...Y.metadata,...H.metadata,siteSlug:F};if(H.pinned!==void 0&&H.pinned!==Y.pinned)FW0(Z);if(H.connections?.length)await UW0(Z,Q.id,H.connections.map((N)=>N.connection_id));let U=await Z.storage.virtualMcps.update($.id,X,H);if(J!==void 0&&Z.orgFs)await wW0(Z.orgFs,$.id,X,J);return{item:U}}})});function u61($){if(!$)return!1;let Z=ba.join("|");return new RegExp(`permission\\s+"?(?:${Z})"?\\s+is not allowed`,"i").test($)||/permissions exceed what the github app/i.test($)}function hj$($){let Z={...$};for(let Q of ba)Z[Q]="read";return Z}async function uj$($,Z){let Q={...Z};for(;;){let X=await $(Q);if(!X.isError)return{result:X,grantedPermissions:Q};let Y=X.content?.find((W)=>W.type==="text")?.text,J=ba.find((W)=>(W in Q));if(!J||!u61(Y))return{result:X,grantedPermissions:Q};let{[J]:G,...K}=Q;Q=K}}function m_4($){if(!$||typeof $!=="object"||Array.isArray($))return EW0;let Z=$;if(Object.values(Z).some((Q)=>typeof Q!=="string"))return EW0;return Z}function d_4($){if(typeof $!=="number"||!Number.isFinite($)||!Number.isInteger($)||$<=0)return;return $}function J9($){let Z=$.metadata?.repoScope;if(!Z||typeof Z.installationId!=="number"||!Number.isFinite(Z.installationId)||!Number.isInteger(Z.installationId)||Z.installationId<=0||typeof Z.owner!=="string"||typeof Z.repo!=="string"||Z.owner.length===0||Z.repo.length===0)return null;let Q=d_4(Z.repositoryId);return{sourceConnectionId:typeof Z.sourceConnectionId==="string"?Z.sourceConnectionId:void 0,installationId:Z.installationId,repositoryId:Q,owner:Z.owner,repo:Z.repo,permissions:m_4(Z.permissions),grantProvider:Z.grantProvider==="github-mcp"?"github-mcp":void 0}}function qL($){return $.metadata?.orgShared===!0}function cj$($){let Z=new Set,Q=[];for(let X of $??[]){if(X.status!=="active")continue;let Y=J9(X);if(Y===null)continue;let J=h61(Y.owner,Y.repo);if(Z.has(J))continue;Z.add(J),Q.push(`${Y.owner}/${Y.repo}`)}return Q}function zW0($,Z,Q){let X=h61(Z,Q),Y=($??[]).filter((J)=>{if(J.status&&J.status!=="active")return!1;let G=J9(J);return G!==null&&h61(G.owner,G.repo)===X});return Y.find(qL)??Y[0]??null}var EW0,ba,h61=($,Z)=>`${$}/${Z}`.toLowerCase();var TY=D(()=>{EW0={contents:"write",metadata:"read",pull_requests:"write",issues:"write",checks:"read",deployments:"read"},ba=["deployments","checks"]});function lj$($){return IQ($)!==null||KG0($)!==null}var mj$=D(()=>{x8()});import{z as c61}from"zod";var i_4,p_4,PP;var l61=D(()=>{TY();tK();M0();fa();LL();mj$();i_4=c61.object({id:c61.string().describe("ID of the virtual MCP to delete")}),p_4=c61.object({item:zQ.describe("The deleted virtual MCP entity")}),PP=h({name:"COLLECTION_VIRTUAL_MCP_DELETE",description:"Permanently delete a Virtual MCP and its virtual tools.",annotations:{title:"Delete Virtual MCP",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:i_4,outputSchema:p_4,handler:async($,Z)=>{r(Z);let Q=t(Z);if(await Z.access.check(),lj$($.id))throw Error(`Virtual MCP not found: ${$.id}`);let X=await Z.storage.virtualMcps.findById($.id);if(!X)throw Error(`Virtual MCP not found: ${$.id}`);if(X.organization_id!==Q.id)throw Error(`Virtual MCP not found: ${$.id}`);if(await Z.storage.virtualMcps.delete($.id),Z.orgFs)await S61(Z.orgFs,$.id,o0(Z)??"system");let Y=X.metadata?.githubRepo?.connectionId;if(Y)try{let J=await Z.storage.connections.findById(Y,Q.id),G=J&&(qL(J)||(await Z.storage.virtualMcps.listByConnectionId(Q.id,Y)).length>0||await Z.storage.connections.isReferencedByThread(Y));if(J&&J9(J)&&!G){let W=await new C5(Z.db,Z.vault).get(Y);if(W?.accessToken)try{await fetch("https://api.github.com/installation/token",{method:"DELETE",headers:{Authorization:`Bearer ${W.accessToken}`,Accept:"application/vnd.github+json","X-GitHub-Api-Version":"2022-11-28"},signal:AbortSignal.timeout(5000)})}catch{}await Z.storage.connections.delete(Y)}}catch(J){console.error("[VIRTUAL_MCP_DELETE] failed to tear down repo-scoped connection",{childConnectionId:Y,error:J.message})}return{item:X}}})});import{z as RY}from"zod";var n_4,AP;var m61=D(()=>{M0();n_4=RY.object({id:RY.string(),virtualMcpId:RY.string(),pluginId:RY.string(),connectionId:RY.string().nullable(),settings:RY.record(RY.string(),RY.unknown()).nullable(),createdAt:RY.string(),updatedAt:RY.string()}),AP=h({name:"VIRTUAL_MCP_PLUGIN_CONFIG_GET",description:"Get a plugin's current configuration for a specific virtual MCP.",annotations:{title:"Get Virtual MCP Plugin Config",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:RY.object({virtualMcpId:RY.string().describe("Virtual MCP ID"),pluginId:RY.string().describe("Plugin ID")}),outputSchema:RY.object({config:n_4.nullable()}),handler:async($,Z)=>{r(Z);let Q=t(Z);await Z.access.check();let{virtualMcpId:X,pluginId:Y}=$,J=await Z.storage.connections.findById(X);if(!J||J.organization_id!==Q.id)return{config:null};if(J.connection_type!=="VIRTUAL")return{config:null};let G=await Z.storage.virtualMcpPluginConfigs.get(X,Y);if(!G)return{config:null};return{config:{id:G.id,virtualMcpId:G.virtualMcpId,pluginId:G.pluginId,connectionId:G.connectionId,settings:G.settings,createdAt:G.createdAt instanceof Date?G.createdAt.toISOString():G.createdAt,updatedAt:G.updatedAt instanceof Date?G.updatedAt.toISOString():G.updatedAt}}}})});import{z as K7}from"zod";var t_4,TP;var d61=D(()=>{M0();BP();V5();t_4=K7.object({id:K7.string(),virtualMcpId:K7.string(),pluginId:K7.string(),connectionId:K7.string().nullable(),settings:K7.record(K7.string(),K7.unknown()).nullable(),createdAt:K7.string(),updatedAt:K7.string()}),TP=h({name:"VIRTUAL_MCP_PLUGIN_CONFIG_UPDATE",description:"Set or update a plugin's configuration for a specific virtual MCP.",annotations:{title:"Update Virtual MCP Plugin Config",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:K7.object({virtualMcpId:K7.string().describe("Virtual MCP ID"),pluginId:K7.string().describe("Plugin ID"),connectionId:K7.string().nullable().optional().describe("MCP connection to bind"),settings:K7.record(K7.string(),K7.unknown()).nullable().optional().describe("Plugin-specific settings")}),outputSchema:K7.object({config:t_4}),handler:async($,Z)=>{r(Z);let Q=t(Z);await Z.access.check();let{virtualMcpId:X,pluginId:Y,connectionId:J,settings:G}=$,K=o0(Z),W=await Z.storage.connections.findById(X);if(!W)throw Error(`Connection not found: ${X}`);if(W.organization_id!==Q.id)throw Error(`Connection not found: ${X}`);if(W.connection_type!=="VIRTUAL")throw Error(`Connection not found: ${X}`);let H=J?await Z.storage.connections.findById(J):null;if(J&&H&&H.organization_id!==Q.id)throw Error(`Connection not found: ${J}`);if(J&&W.organization_id&&!H&&AY()&&Bc(J,W.organization_id)){if(!K)throw Error("User ID required to create dev-assets connection");let U=Oc(W.organization_id,l5());await Z.storage.connections.create({...U,organization_id:W.organization_id,created_by:K})}else if(J&&!H)throw Error(`Connection not found: ${J}`);let F=await Z.storage.virtualMcpPluginConfigs.upsert(X,Y,{connectionId:J,settings:G});return{config:{id:F.id,virtualMcpId:F.virtualMcpId,pluginId:F.pluginId,connectionId:F.connectionId,settings:F.settings,createdAt:F.createdAt instanceof Date?F.createdAt.toISOString():F.createdAt,updatedAt:F.updatedAt instanceof Date?F.updatedAt.toISOString():F.updatedAt}}}})});function dj$($,Z){let Q=$!==null&&typeof $==="object"&&!Array.isArray($)?$:null;if(Z===void 0)return Q;return{...Q??{},...Z}}import{z as _X}from"zod";var o_4,RP;var i61=D(()=>{M0();LL();o_4=_X.object({connectionId:_X.string(),toolName:_X.string(),label:_X.string(),icon:_X.string().nullable().optional()}),RP=h({name:"VIRTUAL_MCP_PINNED_VIEWS_UPDATE",description:"Update the pinned sidebar views for a virtual MCP. Replaces all current pins.",annotations:{title:"Update Pinned Views",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:_X.object({virtualMcpId:_X.string().describe("Virtual MCP ID"),pinnedViews:_X.array(o_4).describe("Pinned views to set for the virtual MCP sidebar"),layout:_X.object({defaultMainView:_X.object({type:_X.string(),id:_X.string().optional(),toolName:_X.string().optional()}).nullable().optional(),chatDefaultOpen:_X.boolean().nullable().optional()}).optional()}),outputSchema:_X.object({item:zQ.nullable()}),handler:async($,Z)=>{r(Z);let Q=t(Z);await Z.access.check();let{virtualMcpId:X,pinnedViews:Y,layout:J}=$,G=o0(Z),K=await Z.storage.virtualMcps.findById(X);if(!K)throw Error(`Virtual MCP not found: ${X}`);if(K.organization_id!==Q.id)throw Error(`Virtual MCP not found: ${X}`);let W=K.metadata?.ui??{},H={...W,pinnedViews:Y.length>0?Y:null,layout:dj$(W.layout,J)};return{item:await Z.storage.virtualMcps.update(X,G??"system",{metadata:{...K.metadata,ui:H}})}}})});import{z as qN}from"zod";var r_4,a_4,p61;var ij$=D(()=>{M0();r_4=qN.object({ids:qN.array(qN.string()).max(1000).describe("Virtual MCP ids to look up")}),a_4=qN.object({items:qN.array(qN.object({id:qN.string(),last_used_at:qN.string().optional(),last_used_by:qN.string().optional()}))}),p61=h({name:"VIRTUAL_MCP_LAST_USED_LIST",description:"Get last-used info (timestamp + user) for one or more virtual MCPs, derived from the most recent thread per agent.",annotations:{title:"List Virtual MCP Last Used",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:r_4,outputSchema:a_4,handler:async($,Z)=>{r(Z),t(Z),await Z.access.check();let Q=await Z.storage.threads.findLastUsedByVirtualMcpIds($.ids);return{items:$.ids.map((X)=>({id:X,last_used_at:Q.get(X)?.last_used_at,last_used_by:Q.get(X)?.last_used_by}))}}})});var pj$=D(()=>{C61();v61();f61();g61();l61();m61();d61();i61();ij$()});import{z as CQ}from"zod";var n61;var nj$=D(()=>{U6();M0();n61=h({name:"MONITORING_HEATMAP",description:"Get tool-call volume broken down by agent and tool name, for spotting heavily-used tools per agent.",annotations:{title:"Get Tool-Call Heatmap",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:CQ.object({startDate:CQ.string().datetime().optional().describe("Filter by start date (ISO 8601 datetime string)"),endDate:CQ.string().datetime().optional().describe("Filter by end date (ISO 8601 datetime string)"),virtualMcpIds:CQ.array(CQ.string()).max(100).optional().describe("Filter by specific agent (Virtual MCP) IDs"),excludeConnectionIds:CQ.array(CQ.string()).max(100).optional().describe("Exclude tool calls from these connection IDs"),limit:CQ.number().int().min(1).max(1000).optional().describe("Max number of (agent, tool) cells to return")}),outputSchema:CQ.object({cells:CQ.array(CQ.object({virtualMcpId:CQ.string().nullable(),toolName:CQ.string(),calls:CQ.number(),errors:CQ.number(),outputSize:CQ.number().describe("Sum of tool-output character length \u2014 a proxy for context weight, not LLM token count")}))}),handler:async($,Z)=>{let Q=t(Z);return await Z.access.check(),await GY(),Z.storage.monitoring.queryToolCallHeatmap({organizationId:Q.id,startDate:$.startDate?new Date($.startDate):void 0,endDate:$.endDate?new Date($.endDate):void 0,filters:{virtualMcpIds:$.virtualMcpIds,excludeConnectionIds:$.excludeConnectionIds},limit:$.limit})}})});import{z as _5}from"zod";var t61;var tj$=D(()=>{U6();M0();t61=h({name:"MONITORING_LOG_GET",description:"Get a single monitoring log by ID with full input and output data.",annotations:{title:"Get Monitoring Log",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:_5.object({id:_5.string().describe("Log ID to fetch")}),outputSchema:_5.object({log:_5.object({id:_5.string().optional(),organizationId:_5.string(),connectionId:_5.string(),toolName:_5.string(),input:_5.record(_5.string(),_5.unknown()),output:_5.record(_5.string(),_5.unknown()),isError:_5.boolean(),errorMessage:_5.string().nullish(),durationMs:_5.number(),timestamp:_5.string(),userId:_5.string().nullish(),requestId:_5.string(),userAgent:_5.string().nullish(),virtualMcpId:_5.string().nullish(),properties:_5.record(_5.string(),_5.string()).nullish()}).nullable().describe("The monitoring log, or null if not found")}),handler:async($,Z)=>{await Z.access.check(),await GY();let Q=t(Z),X=await Z.storage.monitoring.getById(Q.id,$.id);if(!X)return{log:null};return{log:{...X,timestamp:X.timestamp instanceof Date?X.timestamp.toISOString():X.timestamp}}}})});import{z as A8}from"zod";var e_4,o61;var oj$=D(()=>{U6();M0();e_4=A8.object({id:A8.string().optional().describe("Unique log identifier"),organizationId:A8.string().describe("Organization ID"),connectionId:A8.string().describe("Connection ID"),toolName:A8.string().describe("Name of the tool that was called"),isError:A8.boolean().describe("Whether the call resulted in an error"),errorMessage:A8.string().nullish().describe("Error message if applicable"),durationMs:A8.number().describe("Call duration in milliseconds"),timestamp:A8.string().describe("ISO 8601 timestamp of the call"),userId:A8.string().nullish().describe("User who triggered the call"),requestId:A8.string().describe("Unique request identifier"),userAgent:A8.string().nullish().describe("Client identifier (x-studio-client header)"),virtualMcpId:A8.string().nullish().describe("Virtual MCP (Agent) ID if routed through an agent"),properties:A8.record(A8.string(),A8.string()).nullish().describe("Custom key-value metadata attached to the log")}),o61=h({name:"MONITORING_LOGS_LIST",description:"List monitoring logs for tool calls with filtering and pagination.",annotations:{title:"List Monitoring Logs",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:A8.object({connectionId:A8.string().optional().describe("Filter by connection ID"),excludeConnectionIds:A8.array(A8.string()).optional().describe("Exclude logs from these connection IDs (e.g. system connections)"),virtualMcpId:A8.string().optional().describe("Filter by Virtual MCP (Agent) ID"),toolName:A8.string().optional().describe("Filter by tool name"),isError:A8.boolean().optional().describe("Filter by error status"),startDate:A8.string().datetime().optional().describe("Filter by start date (ISO 8601 datetime string)"),endDate:A8.string().datetime().optional().describe("Filter by end date (ISO 8601 datetime string)"),limit:A8.number().default(20).describe("Maximum number of results"),offset:A8.number().default(0).describe("Offset for pagination"),properties:A8.record(A8.string(),A8.string()).optional().describe("Filter by exact property key=value matches"),propertyKeys:A8.array(A8.string()).optional().describe("Filter by logs that have these property keys"),propertyPatterns:A8.record(A8.string(),A8.string()).optional().describe("Filter by property value patterns (SQL LIKE, use % as wildcard)"),propertyInValues:A8.record(A8.string(),A8.string()).optional().describe("Filter by exact match within comma-separated values (e.g., user_tags in 'Engineering')")}),outputSchema:A8.object({logs:A8.array(e_4).describe("Array of monitoring logs"),total:A8.number().describe("Total number of logs matching filters"),offset:A8.number().describe("Current offset for pagination"),limit:A8.number().describe("Current limit for pagination")}),handler:async($,Z)=>{await Z.access.check(),await GY();let Q=t(Z),Y=$.properties||$.propertyKeys||$.propertyPatterns||$.propertyInValues?{properties:$.properties,propertyKeys:$.propertyKeys,propertyPatterns:$.propertyPatterns,propertyInValues:$.propertyInValues}:void 0,J={organizationId:Q.id,connectionId:$.connectionId,excludeConnectionIds:$.excludeConnectionIds,virtualMcpId:$.virtualMcpId,toolName:$.toolName,isError:$.isError,startDate:$.startDate?new Date($.startDate):void 0,endDate:$.endDate?new Date($.endDate):void 0,limit:$.limit,offset:$.offset,propertyFilters:Y},G=await Z.storage.monitoring.query(J);return{logs:G.logs.map(({input:K,output:W,...H})=>({...H,timestamp:H.timestamp instanceof Date?H.timestamp.toISOString():H.timestamp})),total:G.total,offset:$.offset,limit:$.limit}}})});import{z as O$}from"zod";var r61;var rj$=D(()=>{U6();M0();r61=h({name:"MONITORING_STATS",description:"Get aggregated statistics (counts, latency, error rates) for tool call monitoring.",annotations:{title:"Get Monitoring Stats",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:O$.object({startDate:O$.string().datetime().optional().describe("Filter by start date (ISO 8601 datetime string)"),endDate:O$.string().datetime().optional().describe("Filter by end date (ISO 8601 datetime string)"),interval:O$.string().regex(/^\d+[mhd]$/).optional().describe("Bucket interval for timeseries data (e.g. 1m, 5m, 2h, 1d). When provided, returns timeseries array."),connectionIds:O$.array(O$.string()).max(100).optional().describe("Filter by specific connection IDs (max 100)"),excludeConnectionIds:O$.array(O$.string()).max(100).optional().describe("Exclude specific connection IDs (max 100)"),toolNames:O$.array(O$.string()).max(100).optional().describe("Filter by specific tool names (max 100)"),status:O$.enum(["success","error"]).optional().describe("Filter metrics by execution status"),topN:O$.number().int().min(1).max(20).optional().describe("When provided with interval, also return top tools and their timeseries"),userIds:O$.array(O$.string()).max(100).optional().describe("Filter LLM usage by user IDs (only applied when llmUsage is true)"),llmUsage:O$.boolean().optional().describe("Aggregate LLM-call usage (tokens + USD cost) from raw log rows for the given connection. Returns token/cost totals and timeseries. Requires interval.")}),outputSchema:O$.object({totalCalls:O$.number().describe("Total number of tool calls"),errorRate:O$.number().optional().describe("Error rate as a decimal (0 to 1)"),avgDurationMs:O$.number().describe("Average call duration in milliseconds"),errorRatePercent:O$.string().optional().describe("Error rate as a percentage string"),totalErrors:O$.number().optional().describe("Total number of errors"),p50DurationMs:O$.number().optional().describe("50th percentile duration in milliseconds"),p95DurationMs:O$.number().optional().describe("95th percentile duration in milliseconds"),connectionBreakdown:O$.array(O$.object({connectionId:O$.string(),calls:O$.number(),errors:O$.number(),errorRate:O$.number(),avgDurationMs:O$.number()})).optional().describe("Per-connection metric breakdown"),totalInputTokens:O$.number().optional().describe("Total input tokens (LLM usage mode)"),totalOutputTokens:O$.number().optional().describe("Total output tokens (LLM usage mode)"),totalTokens:O$.number().optional().describe("Total tokens (LLM usage mode)"),totalCostUsd:O$.number().optional().describe("Total USD cost (LLM usage mode; only non-zero for providers that report cost)"),topTools:O$.array(O$.object({toolName:O$.string(),connectionId:O$.string().nullable(),calls:O$.number(),inputTokens:O$.number().optional(),outputTokens:O$.number().optional(),costUsd:O$.number().optional()})).optional().describe("Top tools ranked by calls"),topToolsTimeseries:O$.array(O$.object({timestamp:O$.string(),toolName:O$.string(),calls:O$.number(),errors:O$.number(),avg:O$.number(),p95:O$.number()})).optional().describe("Per-tool metric timeseries for the top tools"),timeseries:O$.array(O$.object({timestamp:O$.string(),calls:O$.number(),errors:O$.number(),errorRate:O$.number(),avg:O$.number(),p50:O$.number(),p95:O$.number(),inputTokens:O$.number().optional(),outputTokens:O$.number().optional(),totalTokens:O$.number().optional(),costUsd:O$.number().optional()})).optional().describe("Timeseries data points bucketed by interval")}),handler:async($,Z)=>{let Q=t(Z);if(await Z.access.check(),await GY(),$.interval&&$.llmUsage)return Z.storage.monitoring.queryLlmUsageStats({organizationId:Q.id,interval:$.interval,connectionId:$.connectionIds?.[0]??"decopilot",startDate:$.startDate?new Date($.startDate):void 0,endDate:$.endDate?new Date($.endDate):void 0,userIds:$.userIds,topN:$.topN});if($.interval){let Y=await Z.storage.monitoring.queryMetricTimeseries({organizationId:Q.id,interval:$.interval,startDate:$.startDate?new Date($.startDate):void 0,endDate:$.endDate?new Date($.endDate):void 0,filters:{connectionIds:$.connectionIds,excludeConnectionIds:$.excludeConnectionIds,toolNames:$.toolNames,status:$.status}});if(!$.topN)return Y;let J=await Z.storage.monitoring.queryMetricTopToolsTimeseries({organizationId:Q.id,interval:$.interval,startDate:$.startDate?new Date($.startDate):void 0,endDate:$.endDate?new Date($.endDate):void 0,topN:$.topN,filters:{connectionIds:$.connectionIds,excludeConnectionIds:$.excludeConnectionIds,toolNames:$.toolNames,status:$.status}});return{...Y,topTools:J.topTools,topToolsTimeseries:J.timeseries}}let X=await Z.storage.monitoring.getStats({organizationId:Q.id,startDate:$.startDate?new Date($.startDate):void 0,endDate:$.endDate?new Date($.endDate):void 0});return{...X,errorRatePercent:(X.errorRate*100).toFixed(2)}}})});import{z as vX}from"zod";var a61;var aj$=D(()=>{U6();M0();a61=h({name:"MONITORING_THREAD_USAGE",description:"Aggregate LLM token usage and USD cost per thread for the given thread IDs.",annotations:{title:"Get Thread Usage",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:vX.object({threadIds:vX.array(vX.string()).min(1).max(500).describe("Thread IDs to aggregate usage for (max 500)"),connectionId:vX.string().optional().describe("LLM connection ID (defaults to 'decopilot')"),startDate:vX.string().datetime().optional().describe("Filter by start date (ISO 8601 datetime string)"),endDate:vX.string().datetime().optional().describe("Filter by end date (ISO 8601 datetime string)")}),outputSchema:vX.object({items:vX.array(vX.object({threadId:vX.string(),calls:vX.number(),inputTokens:vX.number(),outputTokens:vX.number(),totalTokens:vX.number(),costUsd:vX.number()}))}),handler:async($,Z)=>{let Q=t(Z);return await Z.access.check(),await GY(),{items:await Z.storage.monitoring.queryThreadUsage({organizationId:Q.id,connectionId:$.connectionId??"decopilot",threadIds:$.threadIds,startDate:$.startDate?new Date($.startDate):void 0,endDate:$.endDate?new Date($.endDate):void 0})}}})});var sj$=D(()=>{nj$();tj$();oj$();rj$();aj$()});function PW0($){return typeof $==="string"&&Zv4.has($.trim().toLowerCase())}var Zv4;var s61=D(()=>{Zv4=new Set([".well-known","_admin","api","auth","choose-editor","cli","commerce-onboarding","dbos-queue-depth","health","hosted-run-pending","login","mcp","metrics","oauth","oauth-proxy","onboarding","org","report","reset-password"])});import{z as gJ}from"zod";var e61;var ej$=D(()=>{M0();s61();e61=h({name:"ORGANIZATION_CREATE",description:"Create a new organization. The caller becomes the owner automatically.",annotations:{title:"Create Organization",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!1},inputSchema:gJ.object({slug:gJ.string().min(1).max(50).regex(/^[a-z0-9-]+$/,"Slug must be lowercase alphanumeric with hyphens").refine(($)=>!PW0($),"Slug is reserved by Studio"),name:gJ.string().min(1).max(255),description:gJ.string().optional()}),outputSchema:gJ.object({id:gJ.string(),name:gJ.string(),slug:gJ.string(),logo:gJ.string().nullable().optional(),metadata:gJ.any().optional(),createdAt:gJ.string().datetime().describe("ISO 8601 timestamp"),members:gJ.array(gJ.any()).optional()}),handler:async($,Z)=>{r(Z),await Z.access.check();let Q=o0(Z);if(!Q)throw Error("User ID required to create organization");let X=await Z.boundAuth.organization.create({name:$.name,slug:$.slug,metadata:$.description?{description:$.description}:void 0,userId:Q});if(!X)throw Error("Failed to create organization");return{...X,createdAt:X.createdAt instanceof Date?X.createdAt.toISOString():X.createdAt}}})});import{z as rH}from"zod";var $51;var $E$=D(()=>{M0();$51=h({name:"ORGANIZATION_LIST",description:"List organizations the current user belongs to.",annotations:{title:"List Organizations",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},_meta:{ui:{visibility:"app"}},inputSchema:rH.object({}),outputSchema:rH.object({organizations:rH.array(rH.object({id:rH.string(),name:rH.string(),slug:rH.string(),logo:rH.string().nullable().optional(),metadata:rH.any().optional(),createdAt:rH.string().datetime().describe("ISO 8601 timestamp")}))}),handler:async($,Z)=>{if(r(Z),await Z.access.check(),!o0(Z))throw Error("User ID required to list organizations");return{organizations:(await Z.boundAuth.organization.list()).map((X)=>({...X,createdAt:X.createdAt instanceof Date?X.createdAt.toISOString():X.createdAt}))}}})});import{z as W3}from"zod";var Z51;var ZE$=D(()=>{M0();Z51=h({name:"ORGANIZATION_GET",description:"Get an organization's details, members, and settings by slug or ID.",annotations:{title:"Get Organization",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:W3.object({}),outputSchema:W3.object({id:W3.string(),name:W3.string(),slug:W3.string(),logo:W3.string().nullable().optional(),metadata:W3.any().optional(),createdAt:W3.string().datetime().describe("ISO 8601 timestamp"),members:W3.array(W3.any()).optional(),invitations:W3.array(W3.any()).optional()}),handler:async($,Z)=>{r(Z),await Z.access.check();let Q=Z.organization?.id;if(!Q)throw Error("Organization ID required (no active organization in context)");let X=await Z.boundAuth.organization.get(Q);if(!X)throw Error("No active organization found");let Y=new Date,J=X.invitations?.filter((G)=>new Date(G.expiresAt)>Y);return{...X,invitations:J,createdAt:X.createdAt instanceof Date?X.createdAt.toISOString():X.createdAt}}})});import{z as oK}from"zod";var Q51;var QE$=D(()=>{M0();Q51=h({name:"ORGANIZATION_UPDATE",description:"Update an organization's name or description.",annotations:{title:"Update Organization",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:oK.object({id:oK.string(),name:oK.string().min(1).max(255).optional(),description:oK.string().optional()}),outputSchema:oK.object({id:oK.string(),name:oK.string(),slug:oK.string(),logo:oK.string().nullable().optional(),metadata:oK.any().optional(),createdAt:oK.string().datetime().describe("ISO 8601 timestamp")}),handler:async($,Z)=>{if(r(Z),await Z.access.check(),$.id!==Z.organization?.id)throw Error("Organization ID does not match authenticated organization");let Q={};if($.name)Q.name=$.name;if($.description!==void 0){let Y=await Z.boundAuth.organization.get($.id);Q.metadata={...Y?.metadata,description:$.description}}let X=await Z.boundAuth.organization.update({organizationId:$.id,data:Q});if(!X)throw Error("Failed to update organization");return{...X,createdAt:X.createdAt instanceof Date?X.createdAt.toISOString():X.createdAt}}})});import{z as ya}from"zod";var X51;var XE$=D(()=>{M0();X51=h({name:"ORGANIZATION_DELETE",description:"Archive an organization (soft delete).",annotations:{title:"Delete Organization",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:ya.object({id:ya.string()}),outputSchema:ya.object({success:ya.boolean(),id:ya.string()}),handler:async($,Z)=>{if(r(Z),await Z.access.check(),$.id!==Z.organization?.id)throw Error("Organization ID does not match authenticated organization");let X=(await Z.boundAuth.organization.get($.id))?.metadata??{};if(X.archived===!0)return{success:!0,id:$.id};return await Z.boundAuth.organization.update({organizationId:$.id,data:{metadata:{...X,archived:!0,archivedAt:new Date().toISOString()}}}),{success:!0,id:$.id}}})});import{z as i1}from"zod";function xX($,Z){let Q=$?.[Z];return Qv4.has(Z)?Q!==!1:Q===!0}function JE$($){let Z=$?.auto_resolve_conflicts;return typeof Z==="boolean"?Z:$?.auto_merge===!0}var VN=500,ga,ha,MN,YE$,ML,ua,ca,la,IP,Qv4,AW0=262144,Xv4=50,hJ=500,Yv4=5000,VL;var JZ=D(()=>{ga=i1.object({title:i1.string().max(VN),url:i1.string().max(VN),icon:i1.string().max(VN)}),ha=i1.object({registries:i1.record(i1.string().max(VN),i1.object({enabled:i1.boolean()})).describe("Per-registry enabled/disabled state. Key is connection ID. Absent registries are treated as enabled."),blockedMcps:i1.array(i1.string().max(VN)).describe("List of MCP app_name or app_id values to hide from the store.")}),MN=i1.object({keyId:i1.string().max(VN),modelId:i1.string().max(VN),title:i1.string().max(VN).optional()}).nullable(),YE$=i1.enum(["fast","smart","thinking","image","web_search","deep_research"]),ML=i1.enum(["fast","smart","thinking"]),ua=i1.object({tiers:i1.object({fast:MN,smart:MN,thinking:MN,image:MN,web_search:MN,deep_research:MN})}),ca=i1.object({tiers:i1.object({fast:MN.optional(),smart:MN.optional(),thinking:MN.optional()})}),la=i1.object({ids:i1.array(i1.string().max(VN)).describe("Ordered list of custom virtual MCP agent ids to show on the home view.")}),IP=i1.object({demo_mode:i1.boolean().optional().describe("Curated demo org: the commerce connect modal proceeds without a configured required data source."),reports_only:i1.boolean().optional().describe("Curated commerce (reports) look: hides agent navigation, the home Customize button, and the Settings/Automations tabs. Defaulted on for orgs created by commerce onboarding."),reviewer_enabled:i1.boolean().optional().describe("Run the Reviewer on a task's pull request once it's In Review \u2014 it reviews the code with the repo's stack-appropriate skills, fixes what it finds on the PR's own branch, then exercises the change on the deploy preview and approves or hands the card to a human."),qa_agent_enabled:i1.boolean().optional().describe("Deprecated: see reviewer_enabled."),code_reviewer_enabled:i1.boolean().optional().describe("Deprecated: see reviewer_enabled."),auto_merge:i1.boolean().optional().describe("When the Reviewer approves a task's pull request, merge it automatically instead of leaving the merge to a human."),auto_resolve_conflicts:i1.boolean().optional().describe("When an approved pull request can't be merged because it conflicts with its base branch, hand it back to the Super Agent to resolve the conflict (check out the branch, merge the base, push). Unset, it follows `auto_merge`; set it explicitly to run one without the other."),cheap_reviewer_model:i1.boolean().optional().describe("Run the Reviewer on a cheaper model than the Super Agent that wrote the code. On by default \u2014 turning it off trades cost for some review depth."),coding_agent_org_mcps:i1.boolean().optional().describe("Give a coding-agent run (the claude-code harness in a sandbox) every MCP connection in the org as its own MCP server, on top of the narrow task-run surface it always gets. Off by default: each connection is one more server the agent connects to at session start, and all of their tools land in its context."),coding_agents_claude_code:i1.boolean().optional().describe("Run chats on a Code Agent (an agent imported from a GitHub repo) with the claude-code harness inside its sandbox, instead of hosted Decopilot. Off by default: it changes the runtime of every such chat, and claude-code flushes whole turns rather than streaming tokens."),auto_assign_report_tasks_to_super_agent:i1.boolean().optional().describe("When a report import creates a task board item without an assignee, delegate it to the Super Agent automatically instead of leaving it unassigned."),hosting_enabled:i1.boolean().optional().describe("Per-site Hosting tab (deployments, domains, deploy outcomes). Off by default. deco.cx staff and local dev always see it; this flag is the per-client lever to open it to one external org. `HOSTING_CONTROL_PLANE_GA` opens it (and its peers) to every org at once."),deco_analytics_enabled:i1.boolean().optional().describe("Per-site Deco Analytics tab (traffic, realtime, usage & limits). Off by default. deco.cx staff and local dev always see it; this flag is the per-client lever to open it to one external org. `HOSTING_CONTROL_PLANE_GA` opens it (and its peers) to every org at once."),e2e_enabled:i1.boolean().optional().describe("Per-site E2E tab (end-to-end test runs). Off by default. deco.cx staff and local dev always see it; this flag is the per-client lever to open it to one external org. `HOSTING_CONTROL_PLANE_GA` opens it (and its peers) to every org at once."),monitor_enabled:i1.boolean().optional().describe("Per-site Monitor tab (CDN Performance + Audience from the stats-lake warehouse). Off by default. deco.cx staff and local dev always see it; this flag is the per-client lever to open it to one external org. Its own deployment-wide switch `MONITOR_GA` opens it to every org at once (independent of the control-plane trio)."),delivery_lanes_enabled:i1.boolean().optional().describe("Board lanes for shipping: Approved, Merged and Post-deploy Validation sit between In Review and Done, and a merged pull request lands on Merged instead of Done. For teams whose release process continues after the merge. Off by default \u2014 with it off the board and the state machine behave exactly as if the lanes did not exist."),cms_auto_fresh_branch:i1.boolean().optional().describe("When a user opens the CMS on a branch whose last commit is older than the staleness window (2 days), move the session to a freshly minted branch cut from the default branch. The stale branch is left intact on GitHub. Off by default.")}),Qv4=new Set(["reviewer_enabled","cheap_reviewer_model"]);VL=i1.object({id:i1.string().describe("Brand context ID"),name:i1.string().max(hJ).describe("Company name"),domain:i1.string().max(hJ).describe("Company domain (e.g. example.com)"),overview:i1.string().max(Yv4).describe("Company overview / description"),logo:i1.string().max(hJ).nullable().optional().describe("Logo URL"),favicon:i1.string().max(hJ).nullable().optional().describe("Favicon URL"),ogImage:i1.string().max(hJ).nullable().optional().describe("OG image URL"),fonts:i1.object({heading:i1.string().max(hJ).optional().describe("Font family for headings"),body:i1.string().max(hJ).optional().describe("Font family for body text"),code:i1.string().max(hJ).optional().describe("Font family for code / monospace")}).nullable().optional().describe("Font families by semantic role"),colors:i1.object({primary:i1.string().max(hJ).optional().describe("Primary brand color (hex)"),secondary:i1.string().max(hJ).optional().describe("Secondary brand color (hex)"),accent:i1.string().max(hJ).optional().describe("Accent / highlight color (hex)"),background:i1.string().max(hJ).optional().describe("Background color (hex)"),foreground:i1.string().max(hJ).optional().describe("Foreground / text color (hex)")}).nullable().optional().describe("Semantic color palette"),images:i1.array(i1.record(i1.string(),i1.unknown())).max(Xv4).nullable().optional().refine(($)=>$===null||$===void 0||JSON.stringify($).length<=AW0,{message:`images must serialize to at most ${AW0} bytes`}).describe("Brand images"),metadata:i1.record(i1.string(),i1.unknown()).nullable().optional().refine(($)=>$===null||$===void 0||JSON.stringify($).length<=AW0,{message:`metadata must serialize to at most ${AW0} bytes`}).describe("Extra design tokens (typography, components, spacing, layout, tone, etc.)"),archivedAt:i1.string().nullable().optional().describe("Archive timestamp (null to unarchive)"),isDefault:i1.boolean().optional().describe("Whether this is the default brand for the organization")})});import{z as kL}from"zod";var Y51;var GE$=D(()=>{M0();JZ();Y51=h({name:"ORGANIZATION_SETTINGS_GET",description:"Get organization-level settings including sidebar configuration, store registry settings, simple model mode, and default home agents.",annotations:{title:"Get Organization Settings",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:kL.object({}),outputSchema:kL.object({organizationId:kL.string(),sidebar_items:kL.array(ga).nullable().optional(),enabled_plugins:kL.array(kL.string()).nullable().optional(),registry_config:ha.nullable().optional(),simple_mode:ua.nullable().optional(),default_home_agents:la.nullable().optional(),flags:IP.nullable().optional(),createdAt:kL.string().datetime().optional().describe("ISO 8601 timestamp"),updatedAt:kL.string().datetime().optional().describe("ISO 8601 timestamp")}),handler:async($,Z)=>{r(Z),await Z.access.check();let Q=Z.organization?.id;if(!Q)throw Error("Organization ID required (no active organization in context)");let X=await Z.storage.organizationSettings.get(Q);if(!X)return{organizationId:Q};return{...X,createdAt:X.createdAt instanceof Date?X.createdAt.toISOString():X.createdAt,updatedAt:X.updatedAt instanceof Date?X.updatedAt.toISOString():X.updatedAt}}})});import{z as GZ}from"zod";var Jv4=50,Gv4=500,Kv4=100,Wv4=200,KE$=200,TW0=500,J51;var WE$=D(()=>{M0();JZ();J51=h({name:"ORGANIZATION_SETTINGS_UPDATE",description:"Update organization-level settings such as sidebar configuration, store registry settings, simple model mode, and default home agents.",annotations:{title:"Update Organization Settings",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:GZ.object({organizationId:GZ.string(),sidebar_items:GZ.array(ga).max(Jv4).optional(),enabled_plugins:GZ.array(GZ.string().max(TW0)).max(Wv4).optional(),registry_config:ha.extend({registries:GZ.record(GZ.string().max(TW0),GZ.object({enabled:GZ.boolean()})).refine(($)=>Object.keys($).length<=KE$,{message:`registries must have at most ${KE$} entries`}),blockedMcps:GZ.array(GZ.string().max(TW0)).max(Gv4)}).optional(),simple_mode:ua.optional(),default_home_agents:la.extend({ids:GZ.array(GZ.string().max(TW0)).max(Kv4)}).optional(),flags:IP.strict().optional().describe("Org boolean toggles. Shallow-merged into the stored flags: keys you pass win (explicit false persists), omitted keys keep their value.")}),outputSchema:GZ.object({organizationId:GZ.string(),sidebar_items:GZ.array(ga).nullable().optional(),enabled_plugins:GZ.array(GZ.string()).nullable().optional(),registry_config:ha.nullable().optional(),simple_mode:ua.nullable().optional(),default_home_agents:la.nullable().optional(),flags:IP.nullable().optional(),createdAt:GZ.string().datetime().describe("ISO 8601 timestamp"),updatedAt:GZ.string().datetime().describe("ISO 8601 timestamp")}),handler:async($,Z)=>{if(r(Z),await Z.access.check(),t(Z).id!==$.organizationId)throw Error("Cannot update settings for a different organization");let X=await Z.storage.organizationSettings.upsert($.organizationId,{sidebar_items:$.sidebar_items,enabled_plugins:$.enabled_plugins,registry_config:$.registry_config,simple_mode:$.simple_mode,default_home_agents:$.default_home_agents,flags:$.flags});return{...X,createdAt:X.createdAt instanceof Date?X.createdAt.toISOString():X.createdAt,updatedAt:X.updatedAt instanceof Date?X.updatedAt.toISOString():X.updatedAt}}})});import{z as rK}from"zod";var HE$,G51,K51;var FE$=D(()=>{M0();JZ();HE$=VL.extend({organizationId:rK.string(),archivedAt:rK.string().nullable().optional().describe("ISO 8601 timestamp"),createdAt:rK.string().describe("ISO 8601 timestamp"),updatedAt:rK.string().describe("ISO 8601 timestamp")}),G51=h({name:"BRAND_CONTEXT_LIST",description:"List all brand contexts (company profiles) for the current organization.",annotations:{title:"List Brand Contexts",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:rK.object({includeArchived:rK.boolean().optional().describe("Include archived brands in the list")}),outputSchema:rK.object({items:rK.array(HE$)}),handler:async($,Z)=>{r(Z),await Z.access.check();let Q=Z.organization?.id;if(!Q)throw Error("Organization ID required (no active organization in context)");return{items:(await Z.storage.brandContext.list(Q,{includeArchived:$.includeArchived})).map((Y)=>({...Y,archivedAt:Y.archivedAt instanceof Date?Y.archivedAt.toISOString():Y.archivedAt,createdAt:Y.createdAt instanceof Date?Y.createdAt.toISOString():Y.createdAt,updatedAt:Y.updatedAt instanceof Date?Y.updatedAt.toISOString():Y.updatedAt}))}}}),K51=h({name:"BRAND_CONTEXT_GET",description:"Get a specific brand context by ID.",annotations:{title:"Get Brand Context",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:rK.object({id:rK.string().describe("Brand context ID")}),outputSchema:HE$.extend({organizationId:rK.string()}),handler:async($,Z)=>{r(Z),await Z.access.check();let Q=Z.organization?.id;if(!Q)throw Error("Organization ID required (no active organization in context)");let X=await Z.storage.brandContext.get($.id,Q);if(!X)throw Error("Brand context not found");return{...X,archivedAt:X.archivedAt instanceof Date?X.archivedAt.toISOString():X.archivedAt,createdAt:X.createdAt instanceof Date?X.createdAt.toISOString():X.createdAt,updatedAt:X.updatedAt instanceof Date?X.updatedAt.toISOString():X.updatedAt}}})});import{z as qP}from"zod";var UE$,W51,H51,F51;var NE$=D(()=>{M0();JZ();UE$=VL.extend({organizationId:qP.string(),createdAt:qP.string().describe("ISO 8601 timestamp"),updatedAt:qP.string().describe("ISO 8601 timestamp")}),W51=h({name:"BRAND_CONTEXT_CREATE",description:"Create a new brand context (company profile) for the current organization.",annotations:{title:"Create Brand Context",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!1},inputSchema:VL.omit({id:!0}),outputSchema:UE$,handler:async($,Z)=>{r(Z),await Z.access.check();let Q=Z.organization?.id;if(!Q)throw Error("Organization ID required (no active organization in context)");let X=await Z.storage.brandContext.create(Q,{name:$.name,domain:$.domain,overview:$.overview,logo:$.logo??null,favicon:$.favicon??null,ogImage:$.ogImage??null,fonts:$.fonts??null,colors:$.colors??null,images:$.images??null,metadata:$.metadata??null});return{...X,archivedAt:X.archivedAt instanceof Date?X.archivedAt.toISOString():X.archivedAt,createdAt:X.createdAt instanceof Date?X.createdAt.toISOString():X.createdAt,updatedAt:X.updatedAt instanceof Date?X.updatedAt.toISOString():X.updatedAt}}}),H51=h({name:"BRAND_CONTEXT_UPDATE",description:"Update an existing brand context by ID.",annotations:{title:"Update Brand Context",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:VL.partial().required({id:!0}),outputSchema:UE$,handler:async($,Z)=>{r(Z),await Z.access.check();let Q=Z.organization?.id;if(!Q)throw Error("Organization ID required (no active organization in context)");if(!await Z.storage.brandContext.get($.id,Q))throw Error("Brand context not found");let{id:Y,...J}=$;if(J.isDefault===!0)await Z.storage.brandContext.setDefault(Y,Q);let G=await Z.storage.brandContext.update(Y,Q,{name:J.name,domain:J.domain,overview:J.overview,logo:J.logo!==void 0?J.logo??null:void 0,favicon:J.favicon!==void 0?J.favicon??null:void 0,ogImage:J.ogImage!==void 0?J.ogImage??null:void 0,fonts:J.fonts!==void 0?J.fonts??null:void 0,colors:J.colors!==void 0?J.colors??null:void 0,images:J.images!==void 0?J.images??null:void 0,metadata:J.metadata!==void 0?J.metadata??null:void 0,archivedAt:J.archivedAt!==void 0?J.archivedAt??null:void 0,isDefault:J.isDefault===!1?!1:void 0});return{...G,archivedAt:G.archivedAt instanceof Date?G.archivedAt.toISOString():G.archivedAt,createdAt:G.createdAt instanceof Date?G.createdAt.toISOString():G.createdAt,updatedAt:G.updatedAt instanceof Date?G.updatedAt.toISOString():G.updatedAt}}}),F51=h({name:"BRAND_CONTEXT_DELETE",description:"Archive a brand context by ID (soft delete).",annotations:{title:"Archive Brand Context",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:qP.object({id:qP.string().describe("Brand context ID")}),outputSchema:qP.object({success:qP.boolean()}),handler:async($,Z)=>{r(Z),await Z.access.check();let Q=Z.organization?.id;if(!Q)throw Error("Organization ID required (no active organization in context)");if(!await Z.storage.brandContext.get($.id,Q))throw Error("Brand context not found");return await Z.storage.brandContext.update($.id,Q,{archivedAt:new Date().toISOString(),isDefault:!1}),{success:!0}}})});async function RW0($,Z,Q){let X=$.trim();if(!X.startsWith("http"))X=`https://${X}`;let Y=await fetch("https://api.firecrawl.dev/v1/scrape",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${Z}`},body:JSON.stringify({url:X,formats:["branding"]})});if(!Y.ok){let N=await Y.text().catch(()=>"");throw Error(`Firecrawl API error: ${Y.status} ${N.slice(0,200)}`)}let J=await Y.json();if(!J.success||!J.data?.branding)return null;let G=J.data.branding,K=J.data.metadata??{},W=Uv4(G,K);return{name:K.title?.split(/[|\u2013\u2014]|\s+-\s+/).map((N)=>N.trim()).filter(Boolean)?.slice().sort((N,B)=>N.length-B.length)[0]??K.ogSiteName??Q??$,domain:$,overview:K.description??"",logo:W.logo,favicon:W.favicon,ogImage:W.ogImage,fonts:W.fonts,colors:W.colors,images:null,metadata:Object.keys(W.metadata).length>0?W.metadata:null}}function Uv4($,Z){let Q=$.images??{},X=$.colors??{},Y={};for(let[F,U]of Object.entries(X))if(typeof U==="string"&&U&&Hv4.has(F))Y[F]=U;let J={},K=($.typography??{}).fontFamilies??{};for(let[F,U]of Object.entries(K))if(typeof U==="string"&&U){let N=Fv4[F.toLowerCase()];if(N&&!J[N])J[N]=U}let W=$.fonts;if(Array.isArray(W))for(let F of W){let U=F.family;if(typeof U==="string"&&U&&!J.body)J.body=U}let H={};for(let F of["typography","components","spacing","layout","animations","icons","tone","personality","colorScheme"])if($[F]!==void 0)H[F]=$[F];return{logo:Q.logo??null,favicon:Q.favicon??null,ogImage:Q.ogImage??Z.ogImage??null,fonts:Object.keys(J).length>0?J:null,colors:Object.keys(Y).length>0?Y:null,metadata:H}}var Hv4,Fv4;var U51=D(()=>{Hv4=new Set(["primary","secondary","accent","background","foreground"]),Fv4={heading:"heading",headings:"heading",head:"heading",title:"heading",body:"body",primary:"body",text:"body",code:"code",monospace:"code",mono:"code"}});import{z as IW0}from"zod";var Nv4,N51;var BE$=D(()=>{M0();U51();JZ();Nv4=VL.pick({id:!0,name:!0,domain:!0,overview:!0,logo:!0,favicon:!0,ogImage:!0,fonts:!0,colors:!0}).extend({success:IW0.boolean()}),N51=h({name:"BRAND_CONTEXT_EXTRACT",description:"Extract brand context (colors, fonts, logos) from a website URL using Firecrawl.",annotations:{title:"Extract Brand Context",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!0},inputSchema:IW0.object({domain:IW0.string().describe("Website domain to extract brand from"),brandId:IW0.string().optional().describe("Existing brand context ID to update (creates new if omitted)")}),outputSchema:Nv4,modelSummary:($)=>$.success?`Brand saved (id=${$.id}, name=${$.name}, domain=${$.domain}). The UI rendered the logo, colors, fonts, and overview.`:"Brand extraction failed.",handler:async($,Z)=>{r(Z),await Z.access.check();let Q=Z.organization?.id;if(!Q)throw Error("Organization ID required (no active organization in context)");let X=Z.firecrawlApiKey;if(!X)throw Error("FIRECRAWL_API_KEY is not configured. Set the environment variable to enable brand extraction.");let Y=await RW0($.domain,X,$.domain);if(!Y)throw Error("Firecrawl did not return branding data for this URL");let J={name:Y.name,domain:Y.domain,overview:Y.overview,logo:Y.logo,favicon:Y.favicon,ogImage:Y.ogImage,fonts:Y.fonts,colors:Y.colors,images:Y.images,metadata:Y.metadata},G=$.brandId?await(async()=>{if(!await Z.storage.brandContext.get($.brandId,Q))throw Error("Brand context not found");return Z.storage.brandContext.update($.brandId,Q,J)})():await Z.storage.brandContext.create(Q,J);return{id:G.id,name:G.name,domain:G.domain,overview:G.overview,logo:G.logo,favicon:G.favicon,ogImage:G.ogImage,fonts:G.fonts,colors:G.colors,success:!0}}})});function OE$($){let Z=$.metadata??{};return{id:$.id,name:$.name,domain:$.domain||void 0,colors:$.colors??void 0,fonts:$.fonts??void 0,assets:$.logo||$.favicon||$.ogImage?{logo:$.logo??void 0,favicon:$.favicon??void 0,ogImage:$.ogImage??void 0}:void 0,overview:$.overview||void 0,tagline:typeof Z.tagline==="string"?Z.tagline:void 0,tone:typeof Z.tone==="string"?Z.tone:void 0,metadata:(()=>{let Q=Object.fromEntries(Object.entries(Z).filter(([X])=>X!=="tagline"&&X!=="tone"));return Object.keys(Q).length>0?Q:void 0})()}}var B51,O51;var DE$=D(()=>{N61();M0();B51=h({name:"BRAND_GET",description:"Get a brand context by ID. Omit the ID to get the default brand for the organization.",annotations:{title:"Get Brand",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:sK0,outputSchema:Ia,handler:async($,Z)=>{r(Z),await Z.access.check();let Q=Z.organization?.id;if(!Q)throw Error("Organization ID required (no active organization in context)");let X=$.id?await Z.storage.brandContext.get($.id,Q):await Z.storage.brandContext.getDefault(Q);if(!X)throw Error($.id?"Brand not found":"No default brand configured");return OE$(X)}}),O51=h({name:"BRAND_LIST",description:"List all active brands for the current organization.",annotations:{title:"List Brands",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:eK0,outputSchema:$W0,handler:async($,Z)=>{r(Z),await Z.access.check();let Q=Z.organization?.id;if(!Q)throw Error("Organization ID required (no active organization in context)");return{items:(await Z.storage.brandContext.list(Q)).map(OE$)}}})});import{resolveTxt as Bv4}from"dns/promises";function D51($){return`${Ov4}.${$.toLowerCase()}`}function LE$(){return`deco-verify-${crypto.randomUUID().replace(/-/g,"")}`}async function wE$($,Z,Q=Bv4){if(!Z)return!1;try{return(await Q(D51($))).some((Y)=>Y.join("").trim()===Z)}catch{return!1}}var Ov4="_deco-verify";var jE$=()=>{};import{z as p5}from"zod";function SL($){let Z=$.verificationStatus==="pending"&&Boolean($.verificationToken);return{id:$.id,domain:$.domain,joinMode:$.joinMode,verificationStatus:$.verificationStatus,verificationMethod:$.verificationMethod,verifiedAt:$.verifiedAt?new Date($.verifiedAt).toISOString():null,recordName:Z?D51($.domain):null,recordValue:Z?$.verificationToken:null}}function Lv4($){let Z=$.toLowerCase().trim();if(!Dv4.test(Z))throw Error(`Invalid domain format: "${Z}". Must be a valid domain like "acme.com"`);if(aK.has(Z))throw Error(`Cannot claim generic email domain "${Z}". Only corporate domains are allowed.`);return Z}var Dv4,L51,qW0,w51,j51,E51,z51,P51;var EE$=D(()=>{uJ();jE$();M0();Dv4=/^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)+$/,L51=p5.enum(["off","auto","request"]),qW0=p5.object({id:p5.string(),domain:p5.string(),joinMode:L51,verificationStatus:p5.enum(["pending","verified"]),verificationMethod:p5.enum(["email","dns"]).nullable(),verifiedAt:p5.string().nullable(),recordName:p5.string().nullable(),recordValue:p5.string().nullable()});w51=h({name:"ORGANIZATION_DOMAIN_LIST",description:"List the email domains claimed by an organization.",annotations:{title:"List Organization Domains",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:p5.object({}),outputSchema:p5.object({domains:p5.array(qW0)}),handler:async($,Z)=>{r(Z),await Z.access.check();let Q=t(Z);return{domains:(await Z.storage.organizationDomains.listByOrganizationId(Q.id)).map(SL)}}}),j51=h({name:"ORGANIZATION_DOMAIN_ADD",description:"Claim an email domain for an organization. If the caller's verified email matches the domain it is trusted immediately; otherwise it requires DNS verification.",annotations:{title:"Add Organization Domain",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:p5.object({domain:p5.string().min(1).max(255).describe("Domain to claim, e.g. acme.com"),joinMode:L51.optional().describe("Initial join mode (only applied when the domain is trusted immediately via email match).")}),outputSchema:qW0,handler:async($,Z)=>{r(Z),await Z.access.check();let Q=t(Z),X=Lv4($.domain),J=Z.auth.user?.email?.split("@")[1]?.toLowerCase(),G=Boolean(Z.auth.user?.emailVerified)&&J===X,K=await Z.storage.organizationDomains.getByOrgAndDomain(Q.id,X);if(K){if(K.verificationStatus!=="verified"&&G){let H=await Z.storage.organizationDomains.markVerified(K.id,"email");return SL(H)}return SL(K)}let W=G?await Z.storage.organizationDomains.add(Q.id,X,{joinMode:$.joinMode??"off",verificationStatus:"verified",verificationMethod:"email"}):await Z.storage.organizationDomains.add(Q.id,X,{joinMode:"off",verificationStatus:"pending",verificationToken:LE$()});return SL(W)}}),E51=h({name:"ORGANIZATION_DOMAIN_UPDATE",description:"Set the join mode for a claimed domain. Discoverable modes (auto/request) require the domain to be verified.",annotations:{title:"Update Organization Domain",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:p5.object({id:p5.string(),joinMode:L51}),outputSchema:qW0,handler:async($,Z)=>{r(Z),await Z.access.check();let Q=t(Z),X=await Z.storage.organizationDomains.getById($.id);if(!X||X.organizationId!==Q.id)throw Error("Domain not found");if($.joinMode!=="off"&&X.verificationStatus!=="verified")throw Error("Verify the domain before enabling auto-join or requests.");let Y=await Z.storage.organizationDomains.updateJoinMode($.id,$.joinMode);return SL(Y)}}),z51=h({name:"ORGANIZATION_DOMAIN_VERIFY",description:"Check the DNS TXT record for a pending domain and mark it verified if present.",annotations:{title:"Verify Organization Domain",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!0},inputSchema:p5.object({id:p5.string()}),outputSchema:p5.object({verified:p5.boolean(),domain:qW0}),handler:async($,Z)=>{r(Z),await Z.access.check();let Q=t(Z),X=await Z.storage.organizationDomains.getById($.id);if(!X||X.organizationId!==Q.id)throw Error("Domain not found");if(X.verificationStatus==="verified")return{verified:!0,domain:SL(X)};if(!X.verificationToken)throw Error("Domain has no pending DNS verification.");if(!await wE$(X.domain,X.verificationToken))return{verified:!1,domain:SL(X)};let J=await Z.storage.organizationDomains.markVerified($.id,"dns");return{verified:!0,domain:SL(J)}}}),P51=h({name:"ORGANIZATION_DOMAIN_REMOVE",description:"Remove a claimed domain from an organization.",annotations:{title:"Remove Organization Domain",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:p5.object({id:p5.string()}),outputSchema:p5.object({success:p5.boolean()}),handler:async($,Z)=>{r(Z),await Z.access.check();let Q=t(Z),X=await Z.storage.organizationDomains.getById($.id);if(!X||X.organizationId!==Q.id)throw Error("Domain not found");return await Z.storage.organizationDomains.removeById($.id),{success:!0}}})});function CL($){return($ instanceof Error?$.message.toLowerCase():"").includes("already a member")}import{z as h9}from"zod";var wv4,A51,T51,R51;var zE$=D(()=>{M0();l4();wv4=h9.object({id:h9.string(),userId:h9.string(),status:h9.enum(["pending","approved","denied"]),createdAt:h9.string(),user:h9.object({id:h9.string(),name:h9.string(),email:h9.string(),image:h9.string().nullable()}).nullable()}),A51=h({name:"ORGANIZATION_JOIN_REQUEST_LIST",description:"List pending requests to join the organization.",annotations:{title:"List Join Requests",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:h9.object({}),outputSchema:h9.object({requests:h9.array(wv4)}),handler:async($,Z)=>{r(Z),await Z.access.check();let Q=t(Z);return{requests:(await Z.storage.organizationJoinRequests.listPendingWithUser(Q.id)).map((Y)=>({id:Y.id,userId:Y.userId,status:Y.status,createdAt:new Date(Y.createdAt).toISOString(),user:Y.user}))}}}),T51=h({name:"ORGANIZATION_JOIN_REQUEST_APPROVE",description:"Approve a pending join request, adding the user as a member.",annotations:{title:"Approve Join Request",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:h9.object({requestId:h9.string()}),outputSchema:h9.object({success:h9.boolean()}),handler:async($,Z)=>{r(Z),await Z.access.check();let Q=t(Z),X=await Z.storage.organizationJoinRequests.getById($.requestId);if(!X||X.organizationId!==Q.id)throw Error("Join request not found");if(X.status!=="pending")throw Error("Join request has already been decided");let Y=o0(Z);if(!await Z.storage.organizationJoinRequests.decide(X.id,"approved",Y??X.userId))return{success:!0};try{await Z.boundAuth.organization.addMember({organizationId:Q.id,userId:X.userId,role:["user"]})}catch(G){if(!CL(G))throw G}if(Y)_1.capture({distinctId:Y,event:"organization_join_request_approved",groups:{organization:Q.id},properties:{organization_id:Q.id,user_id:X.userId}});return{success:!0}}}),R51=h({name:"ORGANIZATION_JOIN_REQUEST_DENY",description:"Deny a pending join request.",annotations:{title:"Deny Join Request",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:h9.object({requestId:h9.string()}),outputSchema:h9.object({success:h9.boolean()}),handler:async($,Z)=>{r(Z),await Z.access.check();let Q=t(Z),X=await Z.storage.organizationJoinRequests.getById($.requestId);if(!X||X.organizationId!==Q.id)throw Error("Join request not found");if(X.status!=="pending")throw Error("Join request has already been decided");let Y=o0(Z);if(await Z.storage.organizationJoinRequests.decide(X.id,"denied",Y??X.userId)&&Y)_1.capture({distinctId:Y,event:"organization_join_request_denied",groups:{organization:Q.id},properties:{organization_id:Q.id,user_id:X.userId}});return{success:!0}}})});import{z as IY}from"zod";var I51;var PE$=D(()=>{l4();M0();zX();I51=h({name:"ORGANIZATION_MEMBER_ADD",description:"Invite a member to the organization by email with an assigned role.",annotations:{title:"Add Organization Member",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:IY.object({organizationId:IY.string().optional(),userId:IY.string(),role:IY.array(IY.string())}),outputSchema:IY.object({id:IY.string(),organizationId:IY.string(),userId:IY.string(),role:IY.union([IY.string(),IY.array(IY.string())]),createdAt:IY.string().datetime().describe("ISO 8601 timestamp")}),handler:async($,Z)=>{r(Z),await Z.access.check();let Q=$.organizationId||Z.organization?.id;if(!Q)throw Error("Organization ID required (no active organization in context)");if(Q!==Z.organization?.id)throw Error("Organization ID does not match authenticated organization");let X=await Z.db.selectFrom("member").select(["role"]).where("userId","=",o0(Z)??"").where("organizationId","=",Q).executeTakeFirst();if(!uY0(X?.role,$.role))throw Error(`Insufficient privileges to assign role "${$.role.join(",")}"`);let Y=await Z.boundAuth.organization.addMember({organizationId:Q,userId:$.userId,role:$.role});if(!Y)throw Error("Failed to add member");let J=o0(Z);if(J)_1.capture({distinctId:J,event:"organization_member_added",groups:{organization:Q},properties:{organization_id:Q,added_user_id:$.userId,role:$.role}});return{...Y,role:Y.role,createdAt:Y.createdAt instanceof Date?Y.createdAt.toISOString():Y.createdAt}}})});import{z as Ec}from"zod";var q51;var AE$=D(()=>{l4();M0();q51=h({name:"ORGANIZATION_MEMBER_REMOVE",description:"Remove a member from the organization. Revokes all their access immediately.",annotations:{title:"Remove Organization Member",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:Ec.object({organizationId:Ec.string().optional(),memberIdOrEmail:Ec.string()}),outputSchema:Ec.object({success:Ec.boolean(),memberIdOrEmail:Ec.string()}),handler:async($,Z)=>{r(Z),await Z.access.check();let Q=$.organizationId||Z.organization?.id;if(!Q)throw Error("Organization ID required (no active organization in context)");if(Q!==Z.organization?.id)throw Error("Organization ID does not match authenticated organization");let X=await Z.boundAuth.organization.removeMember({organizationId:Q,memberIdOrEmail:$.memberIdOrEmail});Z.invalidateMemberRole?.(X.member.userId,Q);let Y=o0(Z);if(Y)_1.capture({distinctId:Y,event:"organization_member_removed",groups:{organization:Q},properties:{organization_id:Q,member_id_or_email:$.memberIdOrEmail}});return{success:!0,memberIdOrEmail:$.memberIdOrEmail}}})});import{z as _Q}from"zod";var M51;var TE$=D(()=>{M0();M51=h({name:"ORGANIZATION_MEMBER_LIST",description:"List all members in the organization with their roles.",annotations:{title:"List Organization Members",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:_Q.object({limit:_Q.number().int().min(1).max(1000).optional(),offset:_Q.number().int().min(0).optional()}),outputSchema:_Q.object({members:_Q.array(_Q.object({id:_Q.string(),organizationId:_Q.string(),userId:_Q.string(),role:_Q.string(),createdAt:_Q.string().datetime().describe("ISO 8601 timestamp"),user:_Q.object({id:_Q.string(),name:_Q.string(),email:_Q.string(),image:_Q.string().optional()}).optional()}))}),handler:async($,Z)=>{r(Z),await Z.access.check();let Q=Z.organization?.id;if(!Q)throw Error("Organization ID required (no active organization in context)");return{members:((await Z.boundAuth.organization.listMembers({organizationId:Q,limit:$.limit,offset:$.offset}))?.members??[]).map((J)=>({...J,createdAt:J.createdAt instanceof Date?J.createdAt.toISOString():J.createdAt}))}}})});import{z as W7}from"zod";var V51;var RE$=D(()=>{l4();M0();zX();V51=h({name:"ORGANIZATION_MEMBER_UPDATE_ROLE",description:"Change a member's role (e.g., admin, member) within the organization.",annotations:{title:"Update Member Role",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:W7.object({organizationId:W7.string().optional(),memberId:W7.string(),role:W7.array(W7.string())}),outputSchema:W7.object({id:W7.string(),organizationId:W7.string(),userId:W7.string(),role:W7.union([W7.string(),W7.array(W7.string())]),createdAt:W7.string().datetime().describe("ISO 8601 timestamp"),user:W7.object({email:W7.string(),name:W7.string(),image:W7.string().optional()})}),handler:async($,Z)=>{r(Z),await Z.access.check();let Q=$.organizationId||Z.organization?.id;if(!Q)throw Error("Organization ID required (no active organization in context)");if(Q!==Z.organization?.id)throw Error("Organization ID does not match authenticated organization");let X=await Z.db.selectFrom("member").select(["role"]).where("userId","=",o0(Z)??"").where("organizationId","=",Q).executeTakeFirst();if(!uY0(X?.role,$.role))throw Error(`Insufficient privileges to assign role "${$.role.join(",")}"`);let Y=await Z.boundAuth.organization.updateMemberRole({organizationId:Q,memberId:$.memberId,role:$.role});if(!Y)throw Error("Failed to update member role");Z.invalidateMemberRole?.(Y.userId,Q);let J=o0(Z);if(J)_1.capture({distinctId:J,event:"organization_member_role_updated",groups:{organization:Q},properties:{organization_id:Q,member_id:$.memberId,target_user_id:Y.userId,new_role:Array.isArray($.role)?$.role.join(","):$.role}});return{...Y,createdAt:Y.createdAt instanceof Date?Y.createdAt.toISOString():Y.createdAt}}})});async function IE$(){if(ma&&Date.now()-ma.fetchedAt<600000)return ma.rate;try{let Z=await(await fetch("https://economia.awesomeapi.com.br/json/last/USD-BRL",{signal:AbortSignal.timeout(5000)})).json(),Q=parseFloat(Z.USDBRL?.bid??"");if(Number.isNaN(Q)||Q<=0)throw Error("Invalid rate");return ma={rate:Q,fetchedAt:Date.now()},Q}catch{return ma?.rate??5.5}}function qE$($,Z,Q){if(Z==="brl")return Math.round($/Q);return $}var ma=null;function k51($,Z="",Q=new URLSearchParams){for(let[X,Y]of Object.entries($)){if(Y===void 0||Y===null)continue;let J=Z?`${Z}[${X}]`:X;if(Array.isArray(Y))Y.forEach((G,K)=>{if(typeof G==="object"&&G!==null)k51(G,`${J}[${K}]`,Q);else Q.append(`${J}[${K}]`,String(G))});else if(typeof Y==="object")k51(Y,J,Q);else Q.append(J,String(Y))}return Q}async function da($,Z){let Q=k0().stripeSecretKey;if(!Q)throw new cJ(503,"billing is not configured");let X=Z?.params?k51(Z.params).toString():void 0,Y=await fetch(`${jv4}${$}`,{method:Z?.method??(X?"POST":"GET"),headers:{Authorization:`Bearer ${Q}`,...X&&{"Content-Type":"application/x-www-form-urlencoded"}},body:X,signal:AbortSignal.timeout(Ev4)}),J=await Y.json().catch(()=>({}));if(!Y.ok){let G=J.error?.message??`HTTP ${Y.status}`;throw new cJ(Y.status,G)}return J}function ME$($){return{billing_address_collection:"required",custom_fields:[{key:zv4,label:{type:"custom",custom:"CPF / CNPJ"},type:"text",optional:!1,text:{minimum_length:Pv4,maximum_length:Av4}}],...$&&{customer_update:{address:"auto",name:"auto"}}}}async function VE$($){let Z=k0().stripeOrgPriceId;if(!Z)throw new cJ(503,"billing is not configured");let Q=await da("/checkout/sessions",{params:{mode:"subscription",...ME$(null),line_items:[{price:Z,quantity:1}],success_url:$.successUrl,cancel_url:$.cancelUrl,metadata:{orgId:$.organizationId},subscription_data:{metadata:{orgId:$.organizationId}}}});if(!Q.url)throw new cJ(500,"checkout session lacks url");return{url:Q.url}}function Tv4($,Z){return Math.round($*(1+Z/100))}async function kE$($){let Z=Tv4($.amountCents,$.feePercent),Q=qE$($.amountCents,$.currency,await IE$()),X=k0().stripeTopupProductId,Y={kind:"topup",orgId:$.organizationId,creditCents:Q},J=$.currency==="brl"?`Studio AI credits (R$ ${($.amountCents/100).toFixed(2)})`:`Studio AI credits ($${($.amountCents/100).toFixed(2)})`,G=await da("/checkout/sessions",{params:{mode:"payment",...$.customerId&&{customer:$.customerId},...ME$($.customerId),line_items:[{quantity:1,price_data:{currency:$.currency,unit_amount:Z,...X?{product:X}:{product_data:{name:J}}}}],success_url:$.successUrl,cancel_url:$.cancelUrl,metadata:Y,payment_intent_data:{metadata:Y}}});if(!G.url)throw new cJ(500,"checkout session lacks url");return{url:G.url}}async function MW0($){let Z=await da("/billing_portal/sessions",{params:{customer:$.customerId,return_url:$.returnUrl}});if(!Z.url)throw new cJ(500,"portal session lacks url");return{url:Z.url}}async function VW0($){return da(`/subscriptions/${encodeURIComponent($)}`)}async function SE$($){await da(`/subscriptions/${encodeURIComponent($)}`,{method:"DELETE"})}var jv4="https://api.stripe.com/v1",cJ,Ev4=15000,zv4="taxid",Pv4=11,Av4=18;var MP=D(()=>{A$();cJ=class cJ extends Error{status;constructor($,Z){super(`Stripe API ${$}: ${Z}`);this.status=$;this.name="StripeApiError"}}});import{z as S51}from"zod";var C51;var CE$=D(()=>{MP();V5();M0();l4();C51=h({name:"ORGANIZATION_BILLING_CHECKOUT_START",description:"Start the organization's subscription: creates a Stripe Checkout session and returns its URL.",annotations:{title:"Start Billing Checkout",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!0},inputSchema:S51.object({}),outputSchema:S51.object({url:S51.string()}),handler:async($,Z)=>{r(Z),await Z.access.check();let Q=Z.organization?.id,X=Z.organization?.slug;if(!Q||!X)throw Error("Organization context required");let Y=await Z.storage.organizationBilling.getBilling(Q);if(Y?.status==="active")throw Error("This organization already has an active subscription.");if(Y?.stripeSubscriptionId)throw Error("This organization still has a subscription on file \u2014 settle or cancel it before starting a new checkout.");let J=`${M5()}${DL(X,"members")}`,{url:G}=await VE$({organizationId:Q,successUrl:`${J}?checkout=success`,cancelUrl:`${J}?checkout=canceled`});return fJ({event:"subscription_checkout_started",organizationId:Q,...Z.auth?.user?.id?{userId:Z.auth.user.id}:{}}),{url:G}}})});import{z as _51}from"zod";var v51;var _E$=D(()=>{MP();V5();M0();v51=h({name:"ORGANIZATION_BILLING_PORTAL",description:"Open the organization's Stripe billing portal (manage card, invoices, cancellation). Returns the portal URL.",annotations:{title:"Open Billing Portal",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!0},inputSchema:_51.object({}),outputSchema:_51.object({url:_51.string()}),handler:async($,Z)=>{r(Z),await Z.access.check();let Q=t(Z);if(!Q.slug)throw Error("Organization context required");let X=await Z.storage.organizationBilling.getBilling(Q.id);if(!X?.stripeCustomerId)throw Error("This organization has no billing account yet \u2014 subscribe first.");try{return await MW0({customerId:X.stripeCustomerId,returnUrl:`${M5()}${DL(Q.slug,"members")}`})}catch(Y){if(Y instanceof cJ)throw Error(Y.message);throw Y}}})});function kW0($){return x51[$%x51.length]??Rv4}function qY($){return $.createdBy==="system"}function qv4($){if($?.reviewer_enabled===void 0&&$?.qa_agent_enabled===!1&&$?.code_reviewer_enabled===!1)return!1;return xX($,"reviewer_enabled")}function kN($){return qv4($)?aH:[]}function Mv4($){return xX($,"delivery_lanes_enabled")}function eH($){return Mv4($)?"merged":"done"}function vL($,Z){if(!$)return!1;return[sH[Z],...Iv4].some((Q)=>$.startsWith(`${Q}:`))}function SN($,Z){if(Z)return new Date(Z).getTime();let Q=0;for(let X of $){if(X.action!=="status_changed")continue;if(X.data?.to!=="in_review")continue;Q=Math.max(Q,new Date(X.occurredAt).getTime())}return Q}function xL($,Z){let Q=SN($,Z.cycleStartedAt),X=new Map;for(let Y of $){if(Y.action!=="review_approved"&&Y.action!=="review_changes_requested")continue;if(new Date(Y.occurredAt).getTime()<Q)continue;let J=Y.data??{};if(J.reviewer!=="reviewer")continue;if(Y.action==="review_approved"){if(Z?.verifiedOnly&&J.verified!==!0)continue;X.set("reviewer","approved")}else X.set("reviewer","changes_requested")}return X}function _L($,Z,Q){if(Z.length===0)return!1;let X=xL($,Q);return Z.every((Y)=>X.get(Y)==="approved")}function fE$($,Z,Q){return _L($,Z,Q)&&!_L($,Z,{...Q,verifiedOnly:!0})}function bE$($){let Z=null;for(let Q of $){if(Q.action!=="review_approved"&&Q.action!=="review_changes_requested")continue;let X=new Date(Q.occurredAt).getTime();if(Z&&X<Z.at)continue;let Y=Q.data?.notes;Z={at:X,notes:Q.action==="review_changes_requested"&&typeof Y==="string"?Y:null}}return Z?.notes??null}function cE$($,Z=Date.now()){if($.state!==null&&$.state!=="open")return!1;if($.state===null)return!0;if($.checksStatus==="pending")return!0;if($.previewUrl!==null)return!1;let Q=$.updatedAt?Date.parse($.updatedAt):Number.NaN;return Number.isFinite(Q)&&Z-Q<Vv4}var s$="super-agent",x51,Rv4,ia='Your checkout is SHALLOW (`git clone --depth 1`), so it has no merge base and `git diff main...HEAD` (three dots) fails with "fatal: main...HEAD: no merge base". To see a branch diff, either use the two-dot form against the fetched remote ref (`git fetch origin <base> && git diff origin/<base> HEAD`), or deepen first with `git fetch --deepen=100`. Same for `git log main..HEAD` and anything else that needs shared history.',vE$,f51="chore",aH,sH,Iv4,pa="NO VISUAL SURFACE",sK,q$,xE$,SW0,yE$="task-board.item.updated",gE$="task-board.item.deleted",hE$="task-board.item.prs.updated",uE$=4000,Vv4=600000;var R4=D(()=>{JZ();x51=["#9ca3af","#ef4444","#f97316","#f59e0b","#22c55e","#3b82f6","#a855f7","#ec4899"],Rv4=x51[0];vE$="Read the diff with `gh pr diff <number>`. It comes from the API, so it needs no fetch, no merge base, and is unaffected by the shallow checkout. "+"Read it ONCE \u2014 `gh pr diff <number> --name-only` first if you need to size "+"it, then pull the hunks you need per FILE. Do NOT re-run the diff sliced by directory: each slice re-reads bytes you already have into every remaining turn's context, and it is the largest avoidable cost in a review.",aH=["reviewer"],sH={reviewer:"Reviewer"},Iv4=["QA Agent","Code Reviewer"];sK=["triage","todo","in_progress","in_review","approved","merged","post_deploy_validation","done","archived"],q$={intake:"triage",queue:"todo",progress:"in_progress",review:"in_review",archive:"archived"},xE$=sK.map(($,Z)=>({key:$,title:$,position:Z})),SW0=["approved","merged","post_deploy_validation"]});function b51($){return $==="trial"?"trial":"subscription"}function na($,Z,Q,X={}){fJ({event:Z,organizationId:Q.organizationId,...$.auth?.user?.id?{userId:$.auth.user.id}:{},properties:{task_id:Q.id,...X}})}function y51($){return $?.status==="active"||$?.status==="past_due"}function CW0($,Z){if(y51($))return{periodKey:$?.currentPeriodEnd?`sub:${$.currentPeriodEnd.toISOString()}`:"sub:pending",limit:$?.monthlyTaskExecutions??Z.monthlyTaskExecutions,exhaustedReason:"monthly_exhausted"};return{periodKey:"trial",limit:$?.freeTaskExecutions??Z.freeTaskExecutions,exhaustedReason:"trial_exhausted"}}function ta(){let $=k0();return{enforced:$.taskQuotaEnforced,freeTaskExecutions:$.freeTaskExecutions,monthlyTaskExecutions:$.monthlyTaskExecutions,maxRunsPerTask:$.maxRunsPerTask}}function fL(){return{...ta(),maxRunsPerTask:Number.POSITIVE_INFINITY}}async function zc($,Z,Q=ta()){if(!Q.enforced||!qY(Z))return;let X=await $.storage.organizationBilling.taskClaim(Z.id);if(X&&X.runCount>=Q.maxRunsPerTask)throw na($,"task_quota_blocked",Z,{phase:"precheck",reason:"runs_exhausted"}),new fX("runs_exhausted");if(X&&X.state!=="released")return;let Y=await $.storage.organizationBilling.getBilling(Z.organizationId),J=CW0(Y,Q);if(await $.storage.organizationBilling.countTaskClaims(Z.organizationId,J.periodKey)>=J.limit)throw na($,"task_quota_blocked",Z,{phase:"precheck",reason:J.exhaustedReason,billing_mode:b51(J.periodKey),limit:J.limit}),new fX(J.exhaustedReason)}async function lE$($,Z,Q=ta()){if(!Q.enforced||!qY(Z))return"skipped";let X=await $.storage.organizationBilling.getBilling(Z.organizationId),Y=CW0(X,Q),J=await $.storage.organizationBilling.claimTaskUnderLimit(Z.organizationId,Z.id,Y.periodKey,Y.limit,Q.maxRunsPerTask);if(J==="exhausted")throw na($,"task_quota_blocked",Z,{phase:"claim",reason:Y.exhaustedReason,billing_mode:b51(Y.periodKey),limit:Y.limit}),new fX(Y.exhaustedReason);if(J==="runs_exhausted")throw na($,"task_quota_blocked",Z,{phase:"claim",reason:"runs_exhausted"}),new fX("runs_exhausted");if(J==="claimed")na($,"task_quota_claimed",Z,{billing_mode:b51(Y.periodKey),period_key:Y.periodKey,limit:Y.limit});return J}async function mE$($,Z,Q,X){if(X==="skipped")return;await $.rollbackTaskClaim(Z,Q,{releaseSlot:X==="claimed"}).catch((Y)=>console.error("[task-quota] rollback failed (stays charged)",Y))}async function dE$($,Z){let Q=await $.storage.organizationBilling.taskClaim(Z);return!!Q&&Q.state!=="released"}async function iE$($,Z,Q){if(await $.releaseTaskClaim(Z,Q).catch((Y)=>{return console.error("[task-quota] refund failed (stays charged)",Y),!1}))fJ({event:"task_quota_refunded",organizationId:Z,properties:{task_id:Q}})}var kv4="[SUBSCRIPTION_REQUIRED]",Sv4,fX;var H3=D(()=>{R4();l4();A$();Sv4={trial_exhausted:"this organization used its free task executions \u2014 subscribe to keep running tasks",monthly_exhausted:"this organization used its monthly task executions \u2014 more become available next billing cycle",runs_exhausted:"this task reached its execution limit \u2014 create a new task to keep going"};fX=class fX extends Error{reason;constructor($){super(`${kv4} ${Sv4[$]}`);this.reason=$;this.name="TaskQuotaError"}}});import{z as CN}from"zod";var g51;var pE$=D(()=>{M0();H3();g51=h({name:"ORGANIZATION_TASK_QUOTA_GET",description:"Get the organization's auto-task quota: how many runs are used in the current period, the limit, and the subscription's billing status.",annotations:{title:"Get Task Quota",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:CN.object({}),outputSchema:CN.object({enforced:CN.boolean(),billingStatus:CN.string(),subscribed:CN.boolean(),hasBillingAccount:CN.boolean(),used:CN.number(),limit:CN.number(),currentPeriodEnd:CN.string().datetime().nullable()}),handler:async($,Z)=>{r(Z),await Z.access.check();let Q=t(Z),X=ta(),Y=await Z.storage.organizationBilling.getBilling(Q.id),J=CW0(Y,X),G=await Z.storage.organizationBilling.countTaskClaims(Q.id,J.periodKey);return{enforced:X.enforced,billingStatus:Y?.status??"none",subscribed:y51(Y),hasBillingAccount:!!Y?.stripeCustomerId,used:G,limit:J.limit,currentPeriodEnd:Y?.currentPeriodEnd?.toISOString()??null}}})});var nE$=D(()=>{ej$();$E$();ZE$();QE$();XE$();GE$();WE$();FE$();NE$();BE$();DE$();EE$();zE$();PE$();AE$();TE$();RE$();CE$();_E$();pE$()});function F3($){let Z=$?.status;return typeof Z==="number"?Z:null}function tE$($){let Z=$;if(Z?.isRateLimited!==!0)return;return typeof Z.retryAfterMs==="number"?Z.retryAfterMs:null}async function MY($,Z){let Q=await $.getBranch(Z);if(Q)return Q.sha;throw new I1({provider:$.repo.provider,status:404,message:`Branch ${Z} does not exist in ${$.repo.path}`})}var n5;var _W0=D(()=>{Q7();n5=class n5 extends Error{constructor($,Z){super($,Z);this.name="RepoWriteConflict"}}});function vW0($){if($.length===0)return null;let Z=!1;for(let Q of $){if(Q.state!=="completed"){Z=!0;continue}if(Q.conclusion&&_v4.has(Q.conclusion))return"failing"}return Z?"pending":"passing"}var _v4,oa;var xW0=D(()=>{_v4=new Set(["failure","cancelled","timed_out","action_required"]);oa=class oa extends Error{existing;constructor($,Z){super($);this.name="ChangeRequestExists",this.existing=Z}}});import{z as n6}from"zod";var vv4,ra,xv4,fv4,bv4,yv4,oE$,rE$,h51;var aE$=D(()=>{vv4=["github","gitlab"],ra=n6.enum(vv4),xv4=["github_app","oauth","token"],fv4=n6.enum(xv4),bv4=["active","revoked"],yv4=n6.enum(bv4),oE$=n6.object({provider:ra,host:n6.string().min(1).describe("Provider host, e.g. github.com"),path:n6.string().min(1).describe("Full namespace path, e.g. owner/name or group/sub/project")}),rE$=n6.object({id:n6.string(),organizationId:n6.string(),type:ra,host:n6.string(),authKind:fv4,externalAccountId:n6.string().describe("Provider-side account identity: installation id (GitHub App) or user/group id."),login:n6.string().describe("Display login of the account/namespace"),avatarUrl:n6.string().nullable(),installationId:n6.number().nullable().describe("GitHub App installation id; null for other auth kinds."),status:yv4,createdAt:n6.string(),updatedAt:n6.string()}),h51=n6.object({id:n6.string(),organizationId:n6.string(),accountId:n6.string().nullable().describe("Credential-holding account; null for anonymous public clones."),provider:ra,host:n6.string(),path:n6.string(),externalId:n6.string().nullable().describe("Provider repository/project id, when known."),defaultBranch:n6.string().nullable(),webUrl:n6.string(),visibility:n6.enum(["public","private","internal"]).nullable(),createdAt:n6.string(),updatedAt:n6.string()})});function hv4($){let Z=$.toLowerCase();if(Z==="github.com"||Z==="www.github.com")return"github";if(Z==="gitlab.com"||Z==="www.gitlab.com")return"gitlab";if(/(^|[.-])gitlab([.-]|$)/.test(Z))return"gitlab";return null}function eE$($){let Z=$.toLowerCase();return Z.startsWith("www.")?Z.slice(4):Z}function eK($,Z){let Q=$.trim();if(!Q)return null;let X,Y,J=/^(?:[\w.-]+@)?([\w.-]+(?::\d+)?):(?!\/\/)(.+)$/.exec(Q);if(J&&!/^[a-z][a-z0-9+.-]*:\/\//i.test(Q))X=J[1],Y=J[2];else if(/^[a-z][a-z0-9+.-]*:\/\//i.test(Q)){let F;try{F=new URL(Q)}catch{return null}if(!/^(https?|ssh|git)(\+ssh)?:$/.test(F.protocol))return null;X=F.host,Y=F.pathname}else if(Z?.provider)X=Z.host??sE$[Z.provider],Y=Q;else return null;X=eE$(X);let G=Z?.provider??hv4(X);if(!G)return null;let K=Y.split("/").map((F)=>F.trim()).filter(Boolean),W=K.indexOf("-");if(W>=0)K=K.slice(0,W);if(G==="github"){let F=K.findIndex((U,N)=>N>=2&&uv4.has(U));if(F>=0)K=K.slice(0,F);K=K.slice(0,2)}if(K.length<2)return null;let H=K[K.length-1];if(K[K.length-1]=H.replace(/\.git$/i,""),K.some((F)=>F.length===0||F==="."||F===".."))return null;return{provider:G,host:X,path:K.join("/")}}function $W($){return`${$.host.toLowerCase()}/${$.path.toLowerCase()}`}function u51($){let Z=$.path.split("/");return Z[Z.length-1]??$.path}function cv4($){let Z=$.path.lastIndexOf("/");return Z<0?"":$.path.slice(0,Z)}function l7($){return{owner:cv4($),name:u51($)}}function ZW($){return`https://${$.host}/${$.path}`}function c51($,Z){let Q=`${$.host}/${$.path}.git`;if(!Z)return`https://${Q}`;return`https://${gv4[$.provider]}:${encodeURIComponent(Z)}@${Q}`}function _N($,Z){let Q=eE$(Z);if($==="github")return Q==="github.com"?"https://api.github.com":`https://${Q}/api/v3`;return`https://${Q}/api/v4`}function vN($,Z){return{provider:"github",host:sE$.github,path:`${$}/${Z}`}}var sE$,gv4,uv4;var l51=D(()=>{sE$={github:"github.com",gitlab:"gitlab.com"},gv4={github:"x-access-token",gitlab:"oauth2"};uv4=new Set(["tree","blob","pull","pulls","issues","commit","commits","compare","actions","releases","settings","wiki"])});function Pc($,Z){return`${ZW($)}/${lv4[$.provider]}/${Z}`}function dv4($){let Z=$.toLowerCase();return Z==="api.github.com"?"github.com":Z}function iv4($,Z){let Q=Number($[3]);if(!Number.isSafeInteger(Q)||Q<=0)return null;let X=dv4($[1]),Y=$[2],J=Z?decodeURIComponent(Y):Y;if(/^\d+$/.test(J))return null;let G=eK(`https://${X}/${J}`);if(!G)return null;return{repo:G,number:Q,url:Pc(G,Q)}}function m51($){let Z=$.length>$z$?$.slice(0,$z$):$;for(let{re:Q,api:X}of mv4){let Y=Q.exec(Z),J=Y?iv4(Y,X===!0):null;if(J)return J}return null}var lv4,mv4,$z$=200000;var Zz$=D(()=>{l51();lv4={github:"pull",gitlab:"-/merge_requests"};mv4=[{re:/https?:\/\/([^/\s"']+)\/([^\s"']+?)\/-\/merge_requests\/(\d+)/},{re:/https?:\/\/([^/\s"']+)\/([^/\s"']+\/[^/\s"']+)\/pull\/(\d+)/},{re:/https?:\/\/([^/\s"']+)\/repos\/([^/\s"']+\/[^/\s"']+)\/pulls\/(\d+)/,api:!0},{re:/https?:\/\/([^/\s"']+)\/api\/v4\/projects\/([^/\s"']+)\/merge_requests\/(\d+)/,api:!0}]});function Xz$($){return Qz$[$]}function Yz$($,Z){let{cli:Q,numberSigil:X}=Qz$[$];return`${Q==="gh"?"PR":"MR"} ${X}${Z}`}var Qz$;var Jz$=D(()=>{Qz$={github:{cli:"gh",changeRequest:"pull request",createCommand:"gh pr create",checkoutCommand:"gh pr checkout",numberSigil:"#"},gitlab:{cli:"glab",changeRequest:"merge request",createCommand:"glab mr create",checkoutCommand:"glab mr checkout",numberSigil:"!"}}});var t5=D(()=>{aE$();l51();Zz$();Jz$()});var $F;var d51=D(()=>{$F={name:"Deco Bot",email:"114028756+decobot@users.noreply.github.com"}});function Gz$($){return $ instanceof Date?$.toISOString():String($)}function aa($){let Z=$.installation_id===null||$.installation_id===void 0?null:Number($.installation_id);return{id:$.id,organizationId:$.organization_id,type:$.type,host:$.host,authKind:$.auth_kind,externalAccountId:$.external_account_id,login:$.login,avatarUrl:$.avatar_url,installationId:Number.isFinite(Z)?Z:null,status:$.status,credentialConnectionId:$.credential_connection_id,createdAt:Gz$($.created_at),updatedAt:Gz$($.updated_at)}}class Ac{db;constructor($){this.db=$}async upsert($){let Z=new Date,Q=await this.db.insertInto("git_provider_accounts").values({organization_id:$.organizationId,type:$.type,host:$.host.toLowerCase(),auth_kind:$.authKind,external_account_id:$.externalAccountId,login:$.login,avatar_url:$.avatarUrl??null,installation_id:$.installationId??null,credential_connection_id:null,status:"active",created_by:$.createdBy??null}).onConflict((X)=>X.columns(["organization_id","host","external_account_id"]).doUpdateSet({type:$.type,auth_kind:$.authKind,login:$.login,avatar_url:$.avatarUrl??null,installation_id:$.installationId??null,credential_connection_id:null,status:"active",updated_at:Z})).returningAll().executeTakeFirstOrThrow();return aa(Q)}async get($,Z){let Q=await this.db.selectFrom("git_provider_accounts").selectAll().where("id","=",$).where("organization_id","=",Z).executeTakeFirst();return Q?aa(Q):null}async getUnscoped($){let Z=await this.db.selectFrom("git_provider_accounts").selectAll().where("id","=",$).executeTakeFirst();return Z?aa(Z):null}async listByOrg($){return(await this.db.selectFrom("git_provider_accounts").selectAll().where("organization_id","=",$).orderBy("created_at","asc").execute()).map(aa)}async findByExternalId($){let Z=await this.db.selectFrom("git_provider_accounts").selectAll().where("organization_id","=",$.organizationId).where("host","=",$.host.toLowerCase()).where("external_account_id","=",$.externalAccountId).executeTakeFirst();return Z?aa(Z):null}async setStatus($,Z,Q){await this.db.updateTable("git_provider_accounts").set({status:Q,updated_at:new Date}).where("id","=",$).where("organization_id","=",Z).execute()}async delete($,Z){return(await this.db.deleteFrom("git_provider_accounts").where("id","=",$).where("organization_id","=",Z).executeTakeFirst()).numDeletedRows>0n}}class sa{db;vault;constructor($,Z){this.db=$;this.vault=Z}async get($){let Z=await this.db.selectFrom("git_provider_account_credentials").selectAll().where("account_id","=",$).executeTakeFirst();if(!Z)return null;return pv4(this.vault,Z)}async upsert($){let Z=new Date,Q=await this.vault.encrypt($.accessToken),X=$.refreshToken?await this.vault.encrypt($.refreshToken):null,Y=$.clientSecret?await this.vault.encrypt($.clientSecret):null;await this.db.insertInto("git_provider_account_credentials").values({account_id:$.connectionId,access_token:Q,refresh_token:X,scope:$.scope,expires_at:$.expiresAt,client_id:$.clientId,client_secret:Y,token_endpoint:$.tokenEndpoint}).onConflict((J)=>J.column("account_id").doUpdateSet({access_token:Q,refresh_token:X,scope:$.scope,expires_at:$.expiresAt,client_id:$.clientId,client_secret:Y,token_endpoint:$.tokenEndpoint,updated_at:Z})).execute()}async delete($){await this.db.deleteFrom("git_provider_account_credentials").where("account_id","=",$).execute()}isExpired($,Z=0){if(!$.expiresAt)return!1;let X=($.expiresAt instanceof Date?$.expiresAt:new Date($.expiresAt)).getTime();if(Number.isNaN(X))return!0;return X-Z<Date.now()}}async function pv4($,Z){try{let Q=await $.decrypt(Z.access_token),X=Z.refresh_token?await $.decrypt(Z.refresh_token):null,Y=Z.client_secret?await $.decrypt(Z.client_secret):null;return{id:Z.account_id,connectionId:Z.account_id,accessToken:Q,refreshToken:X,scope:Z.scope,expiresAt:Z.expires_at,createdAt:Z.created_at,updatedAt:Z.updated_at,clientId:Z.client_id,clientSecret:Y,tokenEndpoint:Z.token_endpoint}}catch(Q){return console.warn("[GitProviderAccountCredential] failed to decrypt credential row",{accountId:Z.account_id,message:Q instanceof Error?Q.message:String(Q)}),null}}import{sql as nv4}from"kysely";function Kz$($){return $ instanceof Date?$.toISOString():String($)}function Tc($){return{id:$.id,organizationId:$.organization_id,accountId:$.account_id,provider:$.provider,host:$.host,path:$.path,externalId:$.external_id,defaultBranch:$.default_branch,webUrl:$.web_url,visibility:$.visibility,legacyConnectionId:$.legacy_connection_id,createdAt:Kz$($.created_at),updatedAt:Kz$($.updated_at)}}function Rc($){return{provider:$.provider,host:$.host,path:$.path}}class ea{db;constructor($){this.db=$}async upsert($){let Z=$.ref.host.toLowerCase(),Q=await this.findByRef($.organizationId,$.ref);if(Q){let Y=await this.db.updateTable("repositories").set({path:$.ref.path,provider:$.ref.provider,web_url:ZW({...$.ref,host:Z}),...$.accountId!==void 0?{account_id:$.accountId}:{},...$.externalId!==void 0?{external_id:$.externalId}:{},...$.defaultBranch!==void 0?{default_branch:$.defaultBranch}:{},...$.visibility!==void 0?{visibility:$.visibility}:{},...$.legacyConnectionId!==void 0?{legacy_connection_id:$.legacyConnectionId}:{},updated_at:new Date}).where("id","=",Q.id).where("organization_id","=",$.organizationId).returningAll().executeTakeFirstOrThrow();return Tc(Y)}let X=await this.db.insertInto("repositories").values({organization_id:$.organizationId,account_id:$.accountId??null,provider:$.ref.provider,host:Z,path:$.ref.path,external_id:$.externalId??null,default_branch:$.defaultBranch??null,web_url:ZW({...$.ref,host:Z}),visibility:$.visibility??null,legacy_connection_id:$.legacyConnectionId??null,created_by:$.createdBy??null}).returningAll().executeTakeFirstOrThrow();return Tc(X)}async get($,Z){let Q=await this.db.selectFrom("repositories").selectAll().where("id","=",$).where("organization_id","=",Z).executeTakeFirst();return Q?Tc(Q):null}async getUnscoped($){let Z=await this.db.selectFrom("repositories").selectAll().where("id","=",$).executeTakeFirst();return Z?Tc(Z):null}async findByRef($,Z){let Q=await this.db.selectFrom("repositories").selectAll().where("organization_id","=",$).where("host","=",Z.host.toLowerCase()).where(nv4`lower(path)`,"=",Z.path.toLowerCase()).executeTakeFirst();return Q?Tc(Q):null}async listByOrg($,Z){let Q=this.db.selectFrom("repositories").selectAll().where("organization_id","=",$);if(Z?.accountId)Q=Q.where("account_id","=",Z.accountId);return(await Q.orderBy("path","asc").execute()).map(Tc)}async delete($,Z){try{return(await this.db.deleteFrom("repositories").where("id","=",$).where("organization_id","=",Z).executeTakeFirst()).numDeletedRows>0n}catch(Q){if(Q instanceof Error&&"constraint"in Q&&Q.constraint==="org_repo_sync_source_present")throw Error("Remove this repository's sync configurations before unlinking it");throw Q}}}var $s=D(()=>{t5()});function Hz$($){return Bun.hash($).toString(36)}function tv4($){for(let[Z,Q]of bL)if(Q.expiresAt<=$)bL.delete(Z);while(bL.size>=512){let Z=bL.keys().next();if(Z.done)break;bL.delete(Z.value)}}function p51($,Z,Q,X=Date.now()){tv4(X),bL.set(Hz$($),{owner:Z,expiresAt:Q})}function Ic($,Z=Date.now()){let Q=Hz$($),X=bL.get(Q);if(!X)return"unknown";if(X.expiresAt<=Z)return bL.delete(Q),"unknown";return X.owner}var Wz$="app",i51="user",bL;var qc=D(()=>{bL=new Map});function yL($=process.env){let Z=$.GITHUB_APP_ID?.trim(),Q=$.GITHUB_APP_PRIVATE_KEY?.trim(),X=$.GITHUB_APP_CLIENT_ID?.trim(),Y=$.GITHUB_APP_CLIENT_SECRET?.trim(),J=$.GITHUB_APP_SLUG?.trim();if(!Z||!Q||!X||!Y||!J)return null;return{appId:Z,privateKeyPem:Q.replace(/\\n/g,`
2692
- `),clientId:X,clientSecret:Y,slug:J}}function VP($,Z){let Q=$.get(Z);if(Q===null)return null;let X=Number(Q);return Number.isFinite(X)?X:null}function ov4($){return{limit:VP($,"x-ratelimit-limit"),remaining:VP($,"x-ratelimit-remaining"),reset:VP($,"x-ratelimit-reset"),used:VP($,"x-ratelimit-used"),resource:$.get("x-ratelimit-resource")}}function gL($){if($.status===429)return!0;if($.status!==403)return!1;if($.headers.get("retry-after")!==null)return!0;return VP($.headers,"x-ratelimit-remaining")===0}function hL($,Z=Date.now()){let Q=VP($,"retry-after");if(Q!==null)return Math.max(0,Q*1000);let X=VP($,"x-ratelimit-reset");if(X!==null)return Math.max(0,X*1000-Z);return null}function uL($,Z){let Q=ov4($),X=Q.resource??"unknown",Y={installation:Z.installation,resource:X},J={...Y,lane:Z.lane,operation:Z.operation};if(Nz$??=Y$.createCounter("github_api_calls",{description:"Calls to the GitHub API, by transport and operation",unit:"{calls}"}),Nz$.add(1,J),Q.remaining!==null)Fz$??=Y$.createGauge("github_rate_limit_remaining",{description:"Requests (REST) or points (GraphQL) left in the window",unit:"{requests}"}),Fz$.record(Q.remaining,Y);if(Q.used!==null)Uz$??=Y$.createGauge("github_rate_limit_used",{description:"Requests (REST) or points (GraphQL) spent in the window",unit:"{requests}"}),Uz$.record(Q.used,Y);return Q}function cL($){Bz$??=Y$.createCounter("github_rate_limited",{description:"GitHub responses refused for rate-limit reasons",unit:"{responses}"}),Bz$.add(1,$)}var Fz$=null,Uz$=null,Nz$=null,Bz$=null;var Zs=D(()=>{U6()});function fW0($){return process.env.GITHUB_API_BASE_URL??_N("github",$)}async function lJ($,Z){let Q={Authorization:`Bearer ${Z.token}`,Accept:Z.accept??av4,"X-GitHub-Api-Version":rv4};if(Z.body!==void 0)Q["Content-Type"]="application/json";let X;try{X=await fetch($,{method:Z.method??"GET",headers:Q,body:Z.body===void 0?void 0:JSON.stringify(Z.body),signal:AbortSignal.timeout(Z.timeoutMs??n51)})}catch(J){throw new I1({provider:"github",status:0,message:`GitHub ${Z.operation} failed: ${J instanceof Error?J.message:String(J)}`,cause:J})}let Y=Ic(Z.token);if(uL(X.headers,{lane:"rest",operation:Z.operation,installation:Y}),gL(X)){await X.body?.cancel().catch(()=>{});let J=X.headers.get("retry-after")!==null?"secondary":"primary";cL({lane:"rest",operation:Z.operation,installation:Y,kind:J});let G=hL(X.headers);throw new I1({provider:"github",status:X.status,retryAfterMs:G,message:`GitHub ${J} rate limit reached${G===null?"":`; retry in ${Math.ceil(G/1000)}s`}`})}return X}function t51($){try{let Z=JSON.parse($);if(Z!==null&&typeof Z==="object"&&"message"in Z&&typeof Z.message==="string"&&Z.message.length>0)return Z.message}catch{}return $.slice(0,300)}function o51($,Z,Q){let X=t51(Z);return new I1({provider:"github",status:$,message:`GitHub ${Q} failed: ${$}${X?` ${X}`:""}`})}async function bX($,Z){let Q=await $.text().catch(()=>"");return o51($.status,Q,Z)}async function U3($,Z){let Q=await $.text();try{return JSON.parse(Q)}catch(X){throw new I1({provider:"github",status:$.status,message:`GitHub ${Z} returned invalid JSON: ${Q.slice(0,300)}`,cause:X})}}var rv4="2022-11-28",av4="application/vnd.github+json",n51=15000;var Mc=D(()=>{t5();Zs();qc();Q7()});import{createPrivateKey as Dz$,sign as sv4}from"crypto";function r51($){return Buffer.from($).toString("base64url")}function Xx4($){let Z=r51(JSON.stringify({alg:"RS256",typ:"JWT"})),Q=r51(JSON.stringify({iat:$.nowSeconds-$x4,exp:$.nowSeconds+s51,iss:$.appId})),X=`${Z}.${Q}`,Y=sv4("RSA-SHA256",Buffer.from(X),Dz$($.privateKeyPem));return`${X}.${r51(Y)}`}function Yx4($){let Z=ba.find((Y)=>(Y in $));if(!Z)return null;let{[Z]:Q,...X}=$;return X}function Jx4($,Z){let Q=(Z.repositories??[]).map((Y)=>Y.toLowerCase()).sort(),X=Object.entries(Z.permissions??{}).map(([Y,J])=>`${Y}=${J}`).sort();return`${$}|${Q.join(",")}|${X.join(",")}`}function Gx4($,Z){for(let[Q,X]of $)if(X.expiresAt.getTime()<=Z)$.delete(Q)}function Oz$($){let Z=$.account;if(typeof $.id!=="number"||!Z||typeof Z.id!=="number"||typeof Z.login!=="string")return null;return{installationId:$.id,externalAccountId:String(Z.id),login:Z.login,avatarUrl:typeof Z.avatar_url==="string"?Z.avatar_url:null,accountType:typeof Z.type==="string"?Z.type:"User"}}function Kx4($){if(!$||typeof $!=="object"||Array.isArray($))return null;let Z={};for(let[Q,X]of Object.entries($))if(typeof X==="string")Z[Q]=X;return Z}class Lz${appId;privateKeyPem;apiBaseUrl;jwt=null;cache=new Map;inFlight=new Map;constructor($,Z){this.appId=$.appId,this.privateKeyPem=$.privateKeyPem,this.apiBaseUrl=(Z?.apiBaseUrl??ev4).replace(/\/+$/,"")}appJwt(){let $=Math.floor(Date.now()/1000);if(this.jwt&&this.jwt.exp-$>Zx4)return this.jwt.value;let Z=Xx4({appId:this.appId,privateKeyPem:this.privateKeyPem,nowSeconds:$});return this.jwt={value:Z,exp:$+s51},p51(Z,Wz$,($+s51)*1000),Z}installationToken($,Z={}){let Q=Jx4($,Z),X=Z.bufferMs??Qx4;if(!Z.forceRefresh){let G=this.cache.get(Q);if(G&&G.expiresAt.getTime()-Date.now()>X)return Promise.resolve(G)}let Y=this.inFlight.get(Q);if(Y)return Y;let J=this.mint($,Z).then((G)=>{return this.cache.set(Q,G),p51(G.token,String($),G.expiresAt.getTime()),Gx4(this.cache,Date.now()),G}).finally(()=>{this.inFlight.delete(Q)});return this.inFlight.set(Q,J),J}async mint($,Z){let X=`${this.apiBaseUrl}/app/installations/${$}/access_tokens`,Y=Z.repositories&&Z.repositories.length>0?Z.repositories:void 0,J=Z.permissions?{...Z.permissions}:void 0;for(;;){let G=await lJ(X,{method:"POST",token:this.appJwt(),body:{...Y&&{repositories:Y},...J&&{permissions:J}},operation:"installation_access_token"});if(G.ok){let K=await U3(G,"installation_access_token");if(typeof K.token!=="string"||typeof K.expires_at!=="string")throw new I1({provider:"github",status:G.status,message:"GitHub installation_access_token returned no token"});return{token:K.token,expiresAt:new Date(K.expires_at),permissions:Kx4(K.permissions)??J??{}}}if(G.status===422&&J){let K=await G.text().catch(()=>""),W=Yx4(J);if(W&&u61(t51(K))){J=W;continue}throw o51(G.status,K,"installation_access_token")}throw await bX(G,"installation_access_token")}}async getInstallation($){let Q=await lJ(`${this.apiBaseUrl}/app/installations/${$}`,{token:this.appJwt(),operation:"get_installation"});if(Q.status===404)return null;if(!Q.ok)throw await bX(Q,"get_installation");let X=Oz$(await U3(Q,"get_installation"));if(!X)throw new I1({provider:"github",status:Q.status,message:"GitHub get_installation returned an installation without a user or organization account"});return X}async listUserInstallations($){let X=[];for(let Y=1;;Y++){let J=await lJ(`${this.apiBaseUrl}/user/installations?per_page=100&page=${Y}`,{token:$,operation:"list_user_installations"});if(!J.ok)throw await bX(J,"list_user_installations");let G=await U3(J,"list_user_installations"),K=Array.isArray(G.installations)?G.installations:[];for(let W of K){let H=Oz$(W);if(H)X.push(H)}if(K.length<100)return X}}}function Vc(){if(a51===void 0){let $=yL();a51=$&&Wx4($)?new Lz$($):null}return a51}function Wx4($){try{return Dz$($.privateKeyPem),!0}catch(Z){return console.error("[git-providers] GITHUB_APP_PRIVATE_KEY is not a usable private key \u2014 "+"the GitHub App stays disabled and orgs keep their existing connections. Check that newlines survived the secret store.",Z),!1}}function wz$(){let $=yL()!==null&&Vc()!==null;return{configured:$,hosts:$?[Hx4]:[]}}var ev4="https://api.github.com",$x4=60,s51=540,Zx4=60,Qx4=300000,a51,Hx4="github.com";var bW0=D(()=>{TY();qc();Q7();Mc()});function Ox4($){return $==="public"||$==="private"||$==="internal"}function Ez$($,Z){let Q="public";if($.private)Q="private";else if($.visibility&&Ox4($.visibility))Q=$.visibility;return{ref:{provider:"github",host:Z,path:$.full_name},externalId:String($.id),defaultBranch:$.default_branch??null,webUrl:$.html_url,visibility:Q,description:$.description??null,updatedAt:$.pushed_at??$.updated_at??null}}function Dx4($,Z){let Q=Z?.trim().toLowerCase();if(!Q)return!0;return $.toLowerCase().includes(Q)}function Lx4($){return{name:$.name||$.login,email:$.email||`${$.login}@users.noreply.github.com`}}function wx4($){return $.split("/").filter(Boolean).map(encodeURIComponent).join("/")}function jx4($,Z){let{owner:Q,name:X}=l7($),Y=`/repos/${encodeURIComponent(Q)}/${encodeURIComponent(X)}/tarball`;return Z?`${Y}/${encodeURIComponent(Z)}`:Y}class kc{kind="github";host;apiBaseUrl;options;constructor($){this.options=$,this.host=$.host.toLowerCase(),this.apiBaseUrl=_N("github",$.host)}async tokenForRepo($,Z={}){let Q=this.options;if("appAuth"in Q){let X=await Q.appAuth.installationToken(Q.installationId,{repositories:[u51($)],permissions:EW0,bufferMs:Z.bufferMs,forceRefresh:Z.forceRefresh});return{token:X.token,kind:"installation",expiresAt:X.expiresAt}}return this.sourceToken(Q.tokenSource,Z)}async accountToken($={}){let Z=this.options;if("appAuth"in Z){let Q=await Z.appAuth.installationToken(Z.installationId,{permissions:Fx4,bufferMs:$.bufferMs,forceRefresh:$.forceRefresh});return{token:Q.token,kind:"installation",expiresAt:Q.expiresAt}}return this.sourceToken(Z.tokenSource,$)}async sourceToken($,Z){let Q=await $.get(Z);if(!Q)throw new I1({provider:"github",status:401,message:`No usable GitHub token for ${this.host}; reconnect the account`});return Q}async getRepo($){let{owner:Q,name:X}=l7($),Y=await this.request(`/repos/${encodeURIComponent(Q)}/${encodeURIComponent(X)}`,{operation:"get_repo"});if(Y.status===404)return null;if(!Y.ok)throw await bX(Y,"get_repo");return Ez$(await U3(Y,"get_repo"),this.host)}async listRepos($={}){let Z=Math.max(1,Math.floor($.page??1)),Q=Math.min(Nx4,Math.max(1,Math.floor($.perPage??Ux4))),X=`per_page=${Q}&page=${Z}`,Y;if("appAuth"in this.options){let G=await this.request(`/installation/repositories?${X}`,{operation:"list_installation_repositories"});if(!G.ok)throw await bX(G,"list_installation_repositories");let K=await U3(G,"list_installation_repositories");Y=Array.isArray(K.repositories)?K.repositories:[]}else{let G=await this.request(`/user/repos?affiliation=owner,collaborator,organization_member&sort=pushed&${X}`,{operation:"list_user_repositories"});if(!G.ok)throw await bX(G,"list_user_repositories");let K=await U3(G,"list_user_repositories");Y=Array.isArray(K)?K:[]}return{repositories:Y.filter((J)=>Dx4(J.full_name,$.query)).map((J)=>Ez$(J,this.host)),hasMore:Y.length===Q}}async readFile($,Z,Q){let{owner:Y,name:J}=l7($),G=Q?`?ref=${encodeURIComponent(Q)}`:"",K=await this.request(`/repos/${encodeURIComponent(Y)}/${encodeURIComponent(J)}/contents/${wx4(Z)}${G}`,{operation:"read_file",accept:Bx4});if(K.status===404)return null;if(!K.ok)throw await bX(K,"read_file");return K.text()}async archiveTarball($,Z){let X=`${this.apiBaseUrl}${jx4($,Z)}`,Y=await this.tokenForRepo($),J=await lJ(X,{operation:"archive_tarball",token:Y.token,timeoutMs:jz$});if(J.status===401){await J.body?.cancel().catch(()=>{});let G=await this.tokenForRepo($,{forceRefresh:!0});J=await lJ(X,{operation:"archive_tarball",token:G.token,timeoutMs:jz$})}if(J.status===404)return null;if(!J.ok)throw await bX(J,"archive_tarball");return J.body}async identity(){if("appAuth"in this.options)return null;let $="get_user",Z=await this.request("/user",{operation:$});if(!Z.ok)throw await bX(Z,$);return Lx4(await U3(Z,$))}async request($,Z){let Q=`${this.apiBaseUrl}${$}`,X=await this.accountToken(),Y=await lJ(Q,{...Z,token:X.token});if(Y.status!==401)return Y;let J=await this.accountToken({forceRefresh:!0});return lJ(Q,{...Z,token:J.token})}}var Fx4,Ux4=30,Nx4=100,Bx4="application/vnd.github.raw+json",jz$=60000;var e51=D(()=>{t5();TY();Q7();Mc();Fx4={metadata:"read",contents:"read"}});function yW0($){return _N("gitlab",$)}function zx4($){let Z=(Q)=>{if(typeof Q==="string")return Q.length>0?[Q]:[];if(Array.isArray(Q))return Q.flatMap(Z);if(Q!==null&&typeof Q==="object")return Object.values(Q).flatMap(Z);return[]};try{let Q=JSON.parse($);if(Q!==null&&typeof Q==="object"){let X=Q,Y=[...Z(X.message),...Z(X.error),...Z(X.error_description)];if(Y.length>0)return Y.join("; ")}}catch{}return $.slice(0,300)}async function QW($){let Z=await $.text().catch(()=>""),Q=Z?zx4(Z):$.statusText;return new I1({provider:"gitlab",status:$.status,message:`GitLab API ${$.status}: ${Q}`,retryAfterMs:$.status===429?zz$($.headers):null})}async function Qs($,Z){let Q=await $.text();try{return JSON.parse(Q)}catch(X){throw new I1({provider:"gitlab",status:$.status,message:`GitLab ${Z} returned invalid JSON: ${Q.slice(0,300)}`,cause:X})}}async function lL($,Z,Q={}){let X={Authorization:`Bearer ${Z}`,Accept:Q.accept??"application/json"};if(Q.body!==void 0)X["Content-Type"]="application/json";try{return await fetch($,{method:Q.method??"GET",headers:X,body:Q.body===void 0?void 0:JSON.stringify(Q.body),signal:AbortSignal.timeout(Q.timeoutMs??Ex4)})}catch(Y){throw new I1({provider:"gitlab",status:0,message:`GitLab request failed: ${Y instanceof Error?Y.message:String(Y)}`,cause:Y})}}var Ex4=15000;var gW0=D(()=>{t5();Q7();kP()});import{z as vQ}from"zod";function SP($){return encodeURIComponent($)}function Xs($){return encodeURIComponent($.replace(/^\/+/,""))}function Rx4($,Z){let Q=`/projects/${SP($.path)}/repository/archive.tar.gz`;return Z?`${Q}?sha=${encodeURIComponent(Z)}`:Q}function zz$($,Z=Date.now()){let Q=$.get("retry-after");if(Q!==null){let Y=Number(Q);if(Number.isFinite(Y))return Math.max(0,Y*1000);let J=Date.parse(Q);if(Number.isFinite(J))return Math.max(0,J-Z)}let X=$.get("ratelimit-reset");if(X!==null){let Y=Number(X);if(Number.isFinite(Y))return Math.max(0,Y*1000-Z)}return null}function Pz$($,Z){let Q=Ix4.parse($),X={provider:"gitlab",host:Z,path:Q.path_with_namespace};return{ref:X,externalId:String(Q.id),defaultBranch:Q.default_branch??null,webUrl:Q.web_url??ZW(X),visibility:Q.visibility,description:Q.description??null,updatedAt:Q.last_activity_at??null}}async function qx4($,Z,Q={}){let X=await lL($,Z,Q);if(X.status===404)return await X.body?.cancel().catch(()=>{}),null;if(!X.ok)throw await QW(X);return X}async function Mx4($,Z){let Q=await qx4(`${_N("gitlab",$)}/user`,Z);if(!Q)throw new I1({provider:"gitlab",status:404,message:"GitLab did not recognise the authenticated user"});return Az$.parse(await Qs(Q,"get_user"))}async function hW0($,Z){let Q=await Mx4($,Z);return{externalAccountId:String(Q.id),login:Q.username,avatarUrl:Q.avatar_url??null}}class Ys{kind="gitlab";host;apiBase;tokenSource;constructor($){this.host=$.host,this.apiBase=_N("gitlab",$.host),this.tokenSource=$.tokenSource}async tokenForRepo($,Z){return this.accountToken(Z)}async accountToken($){let Z=await this.tokenSource.get($);if(!Z)throw new I1({provider:"gitlab",status:401,message:"GitLab account is not authenticated"});return Z}async getRepo($){let Z=await this.get(`/projects/${SP($.path)}`);if(!Z)return null;return Pz$(await Qs(Z,"get_repo"),this.host)}async listRepos($={}){let Z=new URLSearchParams({membership:"true",simple:"true",order_by:"id",sort:"desc",per_page:String(Math.min(Tx4,Math.max(1,$.perPage??Ax4))),page:String(Math.max(1,$.page??1))}),Q=$.query?.trim();if(Q)Z.set("search",Q);let X=await this.get(`/projects?${Z}`);if(!X)return{repositories:[],hasMore:!1};let Y=await Qs(X,"list_repos");if(!Array.isArray(Y))throw new I1({provider:"gitlab",status:502,message:"GitLab /projects returned a non-array payload"});return{repositories:Y.map((J)=>Pz$(J,this.host)),hasMore:Y.length===Number(Z.get("per_page"))}}async readFile($,Z,Q){let X=Q;if(!X){let J=await this.getRepo($);if(!J?.defaultBranch)return null;X=J.defaultBranch}let Y=await this.get(`/projects/${SP($.path)}/repository/files/${Xs(Z)}/raw?ref=${encodeURIComponent(X)}`,{accept:"text/plain, */*"});if(!Y)return null;return Y.text()}async archiveTarball($,Z){let Q=await this.authedFetch(`${this.apiBase}${Rx4($,Z)}`,{accept:"application/octet-stream, */*",timeoutMs:Px4});if(Q.status===404)return await Q.body?.cancel().catch(()=>{}),null;if(!Q.ok)throw await QW(Q);return Q.body}async identity(){let $=await this.authedFetch(`${this.apiBase}/user`);if(!$.ok)throw await QW($);let Z=Az$.parse(await Qs($,"identity"));return{name:Z.name||Z.username,email:Z.commit_email||Z.public_email||Z.email||`${Z.username}@users.noreply.${this.host}`}}async get($,Z){let Q=await this.authedFetch(`${this.apiBase}${$}`,Z);if(Q.status===404)return await Q.body?.cancel().catch(()=>{}),null;if(!Q.ok)throw await QW(Q);return Q}async authedFetch($,Z={}){let Q=await this.accountToken(),X=await lL($,Q.token,Z);if(X.status!==401)return X;await X.body?.cancel().catch(()=>{});let Y=await this.accountToken({forceRefresh:!0});return lL($,Y.token,Z)}}var Px4=60000,Ax4=30,Tx4=100,Ix4,Az$;var kP=D(()=>{t5();Q7();gW0();Ix4=vQ.object({id:vQ.number(),path_with_namespace:vQ.string().min(1),default_branch:vQ.string().nullish(),web_url:vQ.string().nullish(),visibility:vQ.enum(["public","private","internal"]),description:vQ.string().nullish(),last_activity_at:vQ.string().nullish()});Az$=vQ.object({id:vQ.number(),username:vQ.string().min(1),name:vQ.string().nullish(),avatar_url:vQ.string().nullish(),email:vQ.string().nullish(),public_email:vQ.string().nullish(),commit_email:vQ.string().nullish()})});function Tz$($,Z,Q){return{kind:Q,async get(X){let Y=X?.forceRefresh?await $.get(Z):null,J=await mJ({connectionId:Z,tokenStorage:$,bufferMs:X?.bufferMs,force:X?.forceRefresh===!0&&Y!==null&&mL(Y)});if(!J.accessToken)return null;return{token:J.accessToken,kind:Q,expiresAt:null}}}}function $91($){return $==="token"?"token":"oauth"}function Js($){if($.status!=="active")return!1;if($.type==="github"&&$.authKind==="github_app")return Vc()!==null&&$.installationId!==null;return!0}function CP($,Z){let Q=new sa($.db,$.vault);switch(Z.type){case"github":{if(Z.authKind==="github_app"){let X=Vc();if(!X||Z.installationId===null)throw new I1({provider:"github",status:503,message:"GitHub App credentials are not configured on this deployment"});return new kc({host:Z.host,installationId:Z.installationId,appAuth:X})}return new kc({host:Z.host,tokenSource:Tz$(Q,Z.id,$91(Z.authKind))})}case"gitlab":return new Ys({host:Z.host,tokenSource:Tz$(Q,Z.id,$91(Z.authKind))})}}function Vx4($){if($.authKind==="github_app")return"installation";return $91($.authKind)}function uW0($,Z,Q="installation"){return{ref:$,tokenSource:{kind:Q,get:()=>Promise.resolve({token:Z,kind:Q,expiresAt:null})}}}async function Z91($,Z){let Q=Rc(Z);if(!Z.accountId)throw new I1({provider:Z.provider,status:401,message:`${Z.path} is linked without an account; link it again to read and write it`});let X=await new Ac($.db).getUnscoped(Z.accountId);if(!X||X.organizationId!==Z.organizationId)throw new I1({provider:Z.provider,status:404,message:`The account backing ${Z.path} no longer exists. Link the repository again.`});let Y=CP($,X),J=Vx4(X);return{ref:Q,tokenSource:{kind:J,get:(G)=>Y.tokenForRepo(Q,G)}}}async function ZF($,Z,Q){let X=Rc(Z);if(!Z.accountId)return kx4(X);let Y=await new Ac($.db).getUnscoped(Z.accountId);if(!Y||Y.organizationId!==Z.organizationId)throw new I1({provider:Z.provider,status:404,message:`The account backing ${Z.path} no longer exists. Link the repository again.`});let J=CP($,Y),G=await J.tokenForRepo(X,Q),K=G.kind==="installation"?null:await J.identity().catch(()=>null);return{cloneUrl:c51(X,G.token),gitUserName:K?.name??$F.name,gitUserEmail:K?.email??$F.email}}function kx4($){return{cloneUrl:c51($),gitUserName:$F.name,gitUserEmail:$F.email}}async function Q91($,Z,Q){let X=Q.repositoryId?await $.repositories.get(Q.repositoryId,Z):Q.ref?await $.repositories.findByRef(Z,Q.ref):null,Y=X?Rc(X):Q.ref??null;if(!Y)return null;return{ref:Y,repository:X,servable:X?await xN($,X):!1}}async function xN($,Z){if(!Z.accountId)return!1;let Q=await $.gitProviderAccounts.getUnscoped(Z.accountId);return Q!==null&&Js(Q)}var cW0=D(()=>{t5();K3();d51();$s();bW0();e51();kP();Q7()});async function Sx4($,Z){let Q=$.organization?.id;if(!Q)throw Error(VZ);if(!Z.sourceConnectionId)throw Error(VZ);let X=await $.storage.connections.findById(Z.sourceConnectionId,Q);if(!X)throw Error(VZ);let{clientFromConnection:Y}=await Promise.resolve().then(() => (ja(),Mz$)),J=await Y(X,$,!0);try{let{result:G}=await uj$((H)=>J.callTool({name:"MINT_REPO_TOKEN",arguments:{installationId:Z.installationId,owner:Z.owner,repo:Z.repo,permissions:H}}),hj$(Z.permissions)),K=G.structuredContent?.token;if(G.isError||!K)throw Error(VZ);let W=G.structuredContent?.expiresAt;return{accessToken:K,expiresAt:W?new Date(W):null}}finally{await J.close().catch(()=>{})}}function Cx4($,Z){return($?.getTime()??0)>Z?$:new Date(Z+qz$)}async function _x4($,Z,Q,X){let Y=Date.now(),J=await Sx4($,Q),G=Cx4(J.expiresAt,Y);try{await X.upsert({connectionId:Z,accessToken:J.accessToken,refreshToken:null,scope:null,expiresAt:G,clientId:null,clientSecret:null,tokenEndpoint:null})}catch(K){console.warn("[GithubMint] failed to persist minted token",{connectionId:Z,message:K instanceof Error?K.message:String(K)})}return J.accessToken}async function Gs($,Z,Q){let X=J9(Z);if(!X)throw Error("Connection is not repo-scoped");if(!X.sourceConnectionId)throw Error(VZ);let Y=new C5($.db,$.vault),J=await Y.get(Z.id);if(!Q?.forceRefresh&&J&&!Y.isExpired(J,Ws))return J.accessToken;let G=X91.get(Z.id);if(G)return G;let K=_x4($,Z.id,X,Y).finally(()=>{X91.delete(Z.id)});return X91.set(Z.id,K),K}function Rz$($){return $.slug==="mcp-github"}async function Iz$($,Z,Q){if(J9(Z)?.sourceConnectionId)return Gs($,Z,Q);return(await mJ({connectionId:Z.id,connectionUrl:Z.connection_url,tokenStorage:new C5($.db,$.vault),force:Q?.forceRefresh})).accessToken}var X91;var Ks=D(()=>{K3();TY();tK();X91=new Map});function vx4(){return process.env.GITHUB_GRAPHQL_URL??"https://api.github.com/graphql"}function fx4($){return $>=500&&$<600}function bx4($){return $ instanceof r9?$.cause:$}function yx4($,Z){try{return JSON.parse($)}catch(Q){throw Error(`GitHub GraphQL ${Z} returned invalid JSON: ${$.slice(0,300)}`,{cause:Q})}}function gx4($,Z){let Q=$.errors?.[0]?.message;if(Q)throw Error(`GitHub GraphQL ${Z} failed: ${Q}`);if($.data==null)throw Error(`GitHub GraphQL ${Z} returned no data`);return $.data}async function lW0($){let Z=await $.getToken();if(!Z)throw Error($.missingTokenMessage);let Q=(K)=>fetch(vx4(),{method:"POST",headers:{Authorization:`Bearer ${K}`,Accept:"application/vnd.github+json","Content-Type":"application/json"},body:JSON.stringify({query:$.query,variables:$.variables}),signal:AbortSignal.timeout(xx4)}),X=async(K)=>{try{return await J4(async()=>{let W=await Q(K);if(fx4(W.status)){let H=W.status;throw await W.body?.cancel().catch(()=>{}),Error(`GitHub GraphQL transient error: ${H}`)}return W},{maxAttempts:3,minTimeout:300,maxTimeout:3000,jitter:1})}catch(W){throw bx4(W)}},Y=await X(Z),J=Z;if(Y.status===401){try{await Y.body?.cancel()}catch{}let K=await $.getToken(!0);if(!K)throw Error($.missingTokenMessage);if(Y=await X(K),J=K,Y.status===401)throw Error($.missingTokenMessage)}let G=Ic(J);if(uL(Y.headers,{lane:"graphql",operation:$.operation,installation:G}),gL(Y)){let K=Y.headers.get("retry-after")!==null?"secondary":"primary";cL({lane:"graphql",operation:$.operation,installation:G,kind:K});let W=hL(Y.headers);throw Error(`GitHub ${K} rate limit reached${W===null?"":`; retry in ${Math.ceil(W/1000)}s`}`)}if(!Y.ok)throw Error(`GitHub GraphQL ${$.label} failed: ${Y.status}`);return gx4(yx4(await Y.text(),$.label),$.label)}var xx4=15000;var Y91=D(()=>{C8();Zs();qc()});function cx4($){if(!$)return null;if($.state!=="open")return!1;if(typeof $.mergeable==="boolean")return!$.mergeable;let Z=$.mergeable_state;if(typeof Z!=="string"||Z===""||Z==="unknown")return null;return Z==="dirty"}function lx4($){if($==="clean")return"passing";if($==="unstable")return"failing";return null}function J91($){let Z=$.merged===!0||typeof $.merged_at==="string";return{number:$.number??0,url:$.html_url??"",title:$.title??"",body:$.body??"",state:Z?"merged":$.state==="closed"?"closed":"open",draft:$.draft===!0,mergedAt:$.merged_at??null,updatedAt:$.updated_at??null,base:$.base?.ref??"main",head:$.head?.ref??"",headSha:$.head?.sha??"",headRepoPath:$.head?.repo?.full_name??null,author:$.user?.login??"",conflicting:cx4($),checks:lx4($.mergeable_state),changedFiles:typeof $.changed_files==="number"?$.changed_files:null}}function mx4($){if($==="IN_PROGRESS")return"running";if($==="COMPLETED")return"completed";return"queued"}function dx4($){switch($){case"SUCCESS":return"success";case"FAILURE":case"STARTUP_FAILURE":return"failure";case"NEUTRAL":case"STALE":return"neutral";case"CANCELLED":return"cancelled";case"SKIPPED":return"skipped";case"TIMED_OUT":return"timed_out";case"ACTION_REQUIRED":return"action_required";default:return null}}function tx4($){let Z=$.state;return{id:null,name:$.context??"",state:Z==="PENDING"||Z==="EXPECTED"?"running":"completed",conclusion:Z==="SUCCESS"?"success":Z==="FAILURE"||Z==="ERROR"?"failure":Z==="PENDING"||Z==="EXPECTED"?null:"neutral",url:$.targetUrl??null,durationMs:null,summary:$.description??null}}function ox4($){let Z=$.commits?.nodes?.[0]?.commit?.statusCheckRollup?.contexts?.nodes??[],Q=[];for(let X of Z){if(!X)continue;if(X.__typename==="StatusContext"){Q.push(tx4(X));continue}if(X.__typename!=="CheckRun")continue;let{startedAt:Y,completedAt:J}=X;Q.push({id:X.databaseId==null?null:String(X.databaseId),name:X.name??"",state:mx4(X.status),conclusion:dx4(X.conclusion),url:X.detailsUrl??null,durationMs:Y&&J?new Date(J).getTime()-new Date(Y).getTime():null,summary:X.summary??null})}return Q}function rx4($,Z){let Q=($.reviewThreads?.nodes??[]).filter((W)=>W?.isResolved===!1).length,X=$.reviewDecision,Y=X==="REVIEW_REQUIRED"||X==="CHANGES_REQUESTED",J=ox4($),G=$.number??0,K=$.merged===!0;return{number:G,url:$.url??Pc(Z,G),title:$.title??"",body:$.body??"",state:K?"merged":$.state==="OPEN"?"open":"closed",draft:$.isDraft===!0,mergedAt:$.mergedAt??null,updatedAt:$.updatedAt??null,base:$.baseRefName??"main",head:$.headRefName??"",headSha:$.headRefOid??"",headRepoPath:$.headRepository?.nameWithOwner??null,author:$.author?.login??"",conflicting:$.state!=="OPEN"?!1:$.mergeable==="CONFLICTING"?!0:$.mergeable==="MERGEABLE"?!1:null,checks:vW0(J),changedFiles:$.changedFiles??null,checkRuns:J,comments:($.comments?.nodes??[]).flatMap((W)=>W?[{id:String(W.databaseId??0),author:W.author?.login??"",body:W.body??"",createdAt:W.createdAt??"",updatedAt:W.updatedAt??W.createdAt??"",url:W.url??""}]:[]),unresolvedConversations:Q,reviewBlocked:Y}}function ax4($){let Z=null,Q=-1/0;for(let X of $??[]){if(!X?.mergedAt)continue;let Y=Date.parse(X.mergedAt);if(Number.isNaN(Y)||Y<=Q)continue;Z=X,Q=Y}return Z}function Vz$($){return/not allowed on this repository/i.test($)}class G91{repo;tokenSource;apiBaseUrl;owner;name;constructor($){this.repo=$.repo,this.tokenSource=$.tokenSource,this.apiBaseUrl=fW0($.repo.host);let{owner:Z,name:Q}=l7($.repo);this.owner=Z,this.name=Q}async token($){return(await this.tokenSource.get($?{forceRefresh:!0}:void 0))?.token??null}async requireToken(){let $=await this.token();if($)return $;throw new I1({provider:"github",status:401,message:`No usable GitHub token for ${this.repo.path}; reconnect the account`})}get base(){return`${this.apiBaseUrl}/repos/${this.owner}/${this.name}`}async rest($,Z){let Q=await lJ(`${this.base}${$}`,{method:Z.method,body:Z.body,token:await this.requireToken(),operation:Z.operation});if(Q.status===404)return await Q.body?.cancel().catch(()=>{}),null;if(!Q.ok)throw await bX(Q,Z.operation);if(Q.status===204)return null;return U3(Q,Z.operation)}graphql($){return lW0({getToken:(Z)=>this.token(Z),missingTokenMessage:`No usable GitHub token for ${this.repo.path}; reconnect the account`,...$})}async read($){let Z=await this.rest(`/pulls/${$}`,{operation:"change_request_read"});return Z?J91(Z):null}async readForBranch($){return await this.readDetailed({branch:$})}async readDetailed($){let Z="number"in $,X=(await this.graphql({query:Z?px4:ix4,variables:Z?{owner:this.owner,repo:this.name,number:$.number}:{owner:this.owner,repo:this.name,branch:$.branch},label:`change request for ${this.repo.path}`,operation:"change_request_detail"})).repository;if(!X)throw new I1({provider:"github",status:404,message:`${this.repo.path} is not accessible with this credential`});let Y=Z?X.pullRequest:X.pullRequests?.nodes?.[0];return Y?rx4(Y,this.repo):null}async listOpen($){return(await this.rest(`/pulls?state=open&sort=updated&direction=desc&per_page=${Math.min($,100)}`,{operation:"change_request_list"})??[]).map(J91)}async lastMergedInto($){let Z=await this.graphql({query:nx4,variables:{owner:this.owner,repo:this.name,base:$},label:`last merged into ${$} on ${this.repo.path}`,operation:"change_request_last_merged"});if(!Z.repository)throw new I1({provider:"github",status:404,message:`${this.repo.path} is not accessible with this credential`});let Q=ax4(Z.repository.pullRequests?.nodes);if(!Q)return null;let X=Q.number??0;return{number:X,url:Q.url??Pc(this.repo,X),title:Q.title??"",body:Q.body??"",state:"merged",draft:!1,mergedAt:Q.mergedAt??null,updatedAt:Q.mergedAt??null,base:Q.baseRefName??$,head:Q.headRefName??"",headSha:Q.headRefOid??"",headRepoPath:null,author:Q.author?.login??"",conflicting:!1,checks:null,changedFiles:null}}async open($){let Z=await lJ(`${this.base}/pulls`,{method:"POST",token:await this.requireToken(),operation:"change_request_open",body:{title:$.title,body:$.body||void 0,head:$.head,base:$.base}});if(Z.ok)return J91(await U3(Z,"change_request_open"));let Q=await bX(Z,"change_request_open");if(/already exists|pull request already/i.test(Q.message))throw new oa(Q.message,await this.readForBranch($.head).catch(()=>null));throw Q}async describe($,Z){await this.rest(`/pulls/${$}`,{method:"PATCH",body:{body:Z},operation:"change_request_describe"})}async merge($,Z={}){let Q=hx4[Z.strategy??"any"],X="";for(let Y of Q){let J=await this.attemptMerge($,Y,Z);if(J.merged)return J;if(J.reason==="blocked"&&Vz$(J.detail)){X=J.detail;continue}return J}return{merged:!1,reason:"blocked",detail:X}}async attemptMerge($,Z,Q){let X;try{X=await lJ(`${this.base}/pulls/${$}/merge`,{method:"PUT",token:await this.requireToken(),operation:"change_request_merge",body:{merge_method:Z,...Q.commitTitle?{commit_title:Q.commitTitle}:{},...Q.commitMessage?{commit_message:Q.commitMessage}:{}}})}catch(G){return{merged:!1,...sx4(G)}}if(X.ok)return await X.body?.cancel().catch(()=>{}),{merged:!0};let Y=await bX(X,"change_request_merge");if(X.status===404)return{merged:!1,reason:"not_found",detail:Y.message};if(Vz$(Y.message))return{merged:!1,reason:"blocked",detail:Y.message};return{merged:!1,reason:await this.read($).then((G)=>G?.conflicting??null).catch(()=>null)===!0?"conflict":"blocked",detail:Y.message}}async readCheckLog($){let Z=await this.rest(`/check-runs/${encodeURIComponent($)}`,{operation:"change_request_check_log"});return Z?.output?.summary??Z?.output?.text??null}async readDeployedUrl($){let Z=await this.rest(`/deployments?sha=${encodeURIComponent($)}&per_page=${ux4}`,{operation:"change_request_deployments"});for(let Q of Z??[]){if(typeof Q.id!=="number")continue;let Y=(await this.rest(`/deployments/${Q.id}/statuses?per_page=10`,{operation:"change_request_deployment_statuses"})??[]).find((J)=>J.state==="success"&&typeof J.environment_url==="string"&&J.environment_url.length>0);if(Y?.environment_url)return Y.environment_url}return null}}function sx4($){let Z=$ instanceof Error?$.message:String($);if($ instanceof I1&&$.isRateLimited)return{reason:"rate_limited",detail:Z};return{reason:"error",detail:Z}}var hx4,ux4=3,kz$=`
2692
+ `),clientId:X,clientSecret:Y,slug:J}}function VP($,Z){let Q=$.get(Z);if(Q===null)return null;let X=Number(Q);return Number.isFinite(X)?X:null}function ov4($){return{limit:VP($,"x-ratelimit-limit"),remaining:VP($,"x-ratelimit-remaining"),reset:VP($,"x-ratelimit-reset"),used:VP($,"x-ratelimit-used"),resource:$.get("x-ratelimit-resource")}}function gL($){if($.status===429)return!0;if($.status!==403)return!1;if($.headers.get("retry-after")!==null)return!0;return VP($.headers,"x-ratelimit-remaining")===0}function hL($,Z=Date.now()){let Q=VP($,"retry-after");if(Q!==null)return Math.max(0,Q*1000);let X=VP($,"x-ratelimit-reset");if(X!==null)return Math.max(0,X*1000-Z);return null}function uL($,Z){let Q=ov4($),X=Q.resource??"unknown",Y={installation:Z.installation,resource:X},J={...Y,lane:Z.lane,operation:Z.operation};if(Nz$??=Y$.createCounter("github_api_calls",{description:"Calls to the GitHub API, by transport and operation",unit:"{calls}"}),Nz$.add(1,J),Q.remaining!==null)Fz$??=Y$.createGauge("github_rate_limit_remaining",{description:"Requests (REST) or points (GraphQL) left in the window",unit:"{requests}"}),Fz$.record(Q.remaining,Y);if(Q.used!==null)Uz$??=Y$.createGauge("github_rate_limit_used",{description:"Requests (REST) or points (GraphQL) spent in the window",unit:"{requests}"}),Uz$.record(Q.used,Y);return Q}function cL($){Bz$??=Y$.createCounter("github_rate_limited",{description:"GitHub responses refused for rate-limit reasons",unit:"{responses}"}),Bz$.add(1,$)}var Fz$=null,Uz$=null,Nz$=null,Bz$=null;var Zs=D(()=>{U6()});function fW0($){return process.env.GITHUB_API_BASE_URL??_N("github",$)}async function lJ($,Z){let Q={Authorization:`Bearer ${Z.token}`,Accept:Z.accept??av4,"X-GitHub-Api-Version":rv4};if(Z.body!==void 0)Q["Content-Type"]="application/json";let X;try{X=await fetch($,{method:Z.method??"GET",headers:Q,body:Z.body===void 0?void 0:JSON.stringify(Z.body),signal:AbortSignal.timeout(Z.timeoutMs??n51)})}catch(J){throw new I1({provider:"github",status:0,message:`GitHub ${Z.operation} failed: ${J instanceof Error?J.message:String(J)}`,cause:J})}let Y=Ic(Z.token);if(uL(X.headers,{lane:"rest",operation:Z.operation,installation:Y}),gL(X)){await X.body?.cancel().catch(()=>{});let J=X.headers.get("retry-after")!==null?"secondary":"primary";cL({lane:"rest",operation:Z.operation,installation:Y,kind:J});let G=hL(X.headers);throw new I1({provider:"github",status:X.status,retryAfterMs:G,message:`GitHub ${J} rate limit reached${G===null?"":`; retry in ${Math.ceil(G/1000)}s`}`})}return X}function t51($){try{let Z=JSON.parse($);if(Z!==null&&typeof Z==="object"&&"message"in Z&&typeof Z.message==="string"&&Z.message.length>0)return Z.message}catch{}return $.slice(0,300)}function o51($,Z,Q){let X=t51(Z);return new I1({provider:"github",status:$,message:`GitHub ${Q} failed: ${$}${X?` ${X}`:""}`})}async function bX($,Z){let Q=await $.text().catch(()=>"");return o51($.status,Q,Z)}async function U3($,Z){let Q=await $.text();try{return JSON.parse(Q)}catch(X){throw new I1({provider:"github",status:$.status,message:`GitHub ${Z} returned invalid JSON: ${Q.slice(0,300)}`,cause:X})}}var rv4="2022-11-28",av4="application/vnd.github+json",n51=15000;var Mc=D(()=>{t5();Zs();qc();Q7()});import{createPrivateKey as Dz$,sign as sv4}from"crypto";function r51($){return Buffer.from($).toString("base64url")}function Xx4($){let Z=r51(JSON.stringify({alg:"RS256",typ:"JWT"})),Q=r51(JSON.stringify({iat:$.nowSeconds-$x4,exp:$.nowSeconds+s51,iss:$.appId})),X=`${Z}.${Q}`,Y=sv4("RSA-SHA256",Buffer.from(X),Dz$($.privateKeyPem));return`${X}.${r51(Y)}`}function Yx4($){let Z=ba.find((Y)=>(Y in $));if(!Z)return null;let{[Z]:Q,...X}=$;return X}function Jx4($,Z){let Q=(Z.repositories??[]).map((Y)=>Y.toLowerCase()).sort(),X=Object.entries(Z.permissions??{}).map(([Y,J])=>`${Y}=${J}`).sort();return`${$}|${Q.join(",")}|${X.join(",")}`}function Gx4($,Z){for(let[Q,X]of $)if(X.expiresAt.getTime()<=Z)$.delete(Q)}function Oz$($){let Z=$.account;if(typeof $.id!=="number"||!Z||typeof Z.id!=="number"||typeof Z.login!=="string")return null;return{installationId:$.id,externalAccountId:String(Z.id),login:Z.login,avatarUrl:typeof Z.avatar_url==="string"?Z.avatar_url:null,accountType:typeof Z.type==="string"?Z.type:"User"}}function Kx4($){if(!$||typeof $!=="object"||Array.isArray($))return null;let Z={};for(let[Q,X]of Object.entries($))if(typeof X==="string")Z[Q]=X;return Z}class Lz${appId;privateKeyPem;apiBaseUrl;jwt=null;cache=new Map;inFlight=new Map;constructor($,Z){this.appId=$.appId,this.privateKeyPem=$.privateKeyPem,this.apiBaseUrl=(Z?.apiBaseUrl??ev4).replace(/\/+$/,"")}appJwt(){let $=Math.floor(Date.now()/1000);if(this.jwt&&this.jwt.exp-$>Zx4)return this.jwt.value;let Z=Xx4({appId:this.appId,privateKeyPem:this.privateKeyPem,nowSeconds:$});return this.jwt={value:Z,exp:$+s51},p51(Z,Wz$,($+s51)*1000),Z}installationToken($,Z={}){let Q=Jx4($,Z),X=Z.bufferMs??Qx4;if(!Z.forceRefresh){let G=this.cache.get(Q);if(G&&G.expiresAt.getTime()-Date.now()>X)return Promise.resolve(G)}let Y=this.inFlight.get(Q);if(Y)return Y;let J=this.mint($,Z).then((G)=>{return this.cache.set(Q,G),p51(G.token,String($),G.expiresAt.getTime()),Gx4(this.cache,Date.now()),G}).finally(()=>{this.inFlight.delete(Q)});return this.inFlight.set(Q,J),J}async mint($,Z){let X=`${this.apiBaseUrl}/app/installations/${$}/access_tokens`,Y=Z.repositories&&Z.repositories.length>0?Z.repositories:void 0,J=Z.permissions?{...Z.permissions}:void 0;for(;;){let G=await lJ(X,{method:"POST",token:this.appJwt(),body:{...Y&&{repositories:Y},...J&&{permissions:J}},operation:"installation_access_token"});if(G.ok){let K=await U3(G,"installation_access_token");if(typeof K.token!=="string"||typeof K.expires_at!=="string")throw new I1({provider:"github",status:G.status,message:"GitHub installation_access_token returned no token"});return{token:K.token,expiresAt:new Date(K.expires_at),permissions:Kx4(K.permissions)??J??{}}}if(G.status===422&&J){let K=await G.text().catch(()=>""),W=Yx4(J);if(W&&u61(t51(K))){J=W;continue}throw o51(G.status,K,"installation_access_token")}throw await bX(G,"installation_access_token")}}async getInstallation($){let Q=await lJ(`${this.apiBaseUrl}/app/installations/${$}`,{token:this.appJwt(),operation:"get_installation"});if(Q.status===404)return null;if(!Q.ok)throw await bX(Q,"get_installation");let X=Oz$(await U3(Q,"get_installation"));if(!X)throw new I1({provider:"github",status:Q.status,message:"GitHub get_installation returned an installation without a user or organization account"});return X}async listUserInstallations($){let X=[];for(let Y=1;;Y++){let J=await lJ(`${this.apiBaseUrl}/user/installations?per_page=100&page=${Y}`,{token:$,operation:"list_user_installations"});if(!J.ok)throw await bX(J,"list_user_installations");let G=await U3(J,"list_user_installations"),K=Array.isArray(G.installations)?G.installations:[];for(let W of K){let H=Oz$(W);if(H)X.push(H)}if(K.length<100)return X}}}function Vc(){if(a51===void 0){let $=yL();a51=$&&Wx4($)?new Lz$($):null}return a51}function Wx4($){try{return Dz$($.privateKeyPem),!0}catch(Z){return console.error("[git-providers] GITHUB_APP_PRIVATE_KEY is not a usable private key \u2014 "+"the GitHub App stays disabled and orgs keep their existing connections. Check that newlines survived the secret store.",Z),!1}}function wz$(){let $=yL()!==null&&Vc()!==null;return{configured:$,hosts:$?[Hx4]:[]}}var ev4="https://api.github.com",$x4=60,s51=540,Zx4=60,Qx4=300000,a51,Hx4="github.com";var bW0=D(()=>{TY();qc();Q7();Mc()});function Ox4($){return $==="public"||$==="private"||$==="internal"}function Ez$($,Z){let Q="public";if($.private)Q="private";else if($.visibility&&Ox4($.visibility))Q=$.visibility;return{ref:{provider:"github",host:Z,path:$.full_name},externalId:String($.id),defaultBranch:$.default_branch??null,webUrl:$.html_url,visibility:Q,description:$.description??null,updatedAt:$.pushed_at??$.updated_at??null}}function Dx4($,Z){let Q=Z?.trim().toLowerCase();if(!Q)return!0;return $.toLowerCase().includes(Q)}function Lx4($){return{name:$.name||$.login,email:$.email||`${$.login}@users.noreply.github.com`}}function wx4($){return $.split("/").filter(Boolean).map(encodeURIComponent).join("/")}function jx4($,Z){let{owner:Q,name:X}=l7($),Y=`/repos/${encodeURIComponent(Q)}/${encodeURIComponent(X)}/tarball`;return Z?`${Y}/${encodeURIComponent(Z)}`:Y}class kc{kind="github";host;apiBaseUrl;options;constructor($){this.options=$,this.host=$.host.toLowerCase(),this.apiBaseUrl=_N("github",$.host)}async tokenForRepo($,Z={}){let Q=this.options;if("appAuth"in Q){let X=await Q.appAuth.installationToken(Q.installationId,{repositories:[u51($)],permissions:EW0,bufferMs:Z.bufferMs,forceRefresh:Z.forceRefresh});return{token:X.token,kind:"installation",expiresAt:X.expiresAt}}return this.sourceToken(Q.tokenSource,Z)}async accountToken($={}){let Z=this.options;if("appAuth"in Z){let Q=await Z.appAuth.installationToken(Z.installationId,{permissions:Fx4,bufferMs:$.bufferMs,forceRefresh:$.forceRefresh});return{token:Q.token,kind:"installation",expiresAt:Q.expiresAt}}return this.sourceToken(Z.tokenSource,$)}async sourceToken($,Z){let Q=await $.get(Z);if(!Q)throw new I1({provider:"github",status:401,message:`No usable GitHub token for ${this.host}; reconnect the account`});return Q}async getRepo($){let{owner:Q,name:X}=l7($),Y=await this.request(`/repos/${encodeURIComponent(Q)}/${encodeURIComponent(X)}`,{operation:"get_repo"});if(Y.status===404)return await Y.body?.cancel().catch(()=>{}),null;if(!Y.ok)throw await bX(Y,"get_repo");return Ez$(await U3(Y,"get_repo"),this.host)}async listRepos($={}){let Z=Math.max(1,Math.floor($.page??1)),Q=Math.min(Nx4,Math.max(1,Math.floor($.perPage??Ux4))),X=`per_page=${Q}&page=${Z}`,Y;if("appAuth"in this.options){let G=await this.request(`/installation/repositories?${X}`,{operation:"list_installation_repositories"});if(!G.ok)throw await bX(G,"list_installation_repositories");let K=await U3(G,"list_installation_repositories");Y=Array.isArray(K.repositories)?K.repositories:[]}else{let G=await this.request(`/user/repos?affiliation=owner,collaborator,organization_member&sort=pushed&${X}`,{operation:"list_user_repositories"});if(!G.ok)throw await bX(G,"list_user_repositories");let K=await U3(G,"list_user_repositories");Y=Array.isArray(K)?K:[]}return{repositories:Y.filter((J)=>Dx4(J.full_name,$.query)).map((J)=>Ez$(J,this.host)),hasMore:Y.length===Q}}async readFile($,Z,Q){let{owner:Y,name:J}=l7($),G=Q?`?ref=${encodeURIComponent(Q)}`:"",K=await this.request(`/repos/${encodeURIComponent(Y)}/${encodeURIComponent(J)}/contents/${wx4(Z)}${G}`,{operation:"read_file",accept:Bx4});if(K.status===404)return await K.body?.cancel().catch(()=>{}),null;if(!K.ok)throw await bX(K,"read_file");return K.text()}async archiveTarball($,Z){let X=`${this.apiBaseUrl}${jx4($,Z)}`,Y=await this.tokenForRepo($),J=await lJ(X,{operation:"archive_tarball",token:Y.token,timeoutMs:jz$});if(J.status===401){await J.body?.cancel().catch(()=>{});let G=await this.tokenForRepo($,{forceRefresh:!0});J=await lJ(X,{operation:"archive_tarball",token:G.token,timeoutMs:jz$})}if(J.status===404)return await J.body?.cancel().catch(()=>{}),null;if(!J.ok)throw await bX(J,"archive_tarball");return J.body}async identity(){if("appAuth"in this.options)return null;let $="get_user",Z=await this.request("/user",{operation:$});if(!Z.ok)throw await bX(Z,$);return Lx4(await U3(Z,$))}async request($,Z){let Q=`${this.apiBaseUrl}${$}`,X=await this.accountToken(),Y=await lJ(Q,{...Z,token:X.token});if(Y.status!==401)return Y;await Y.body?.cancel().catch(()=>{});let J=await this.accountToken({forceRefresh:!0});return lJ(Q,{...Z,token:J.token})}}var Fx4,Ux4=30,Nx4=100,Bx4="application/vnd.github.raw+json",jz$=60000;var e51=D(()=>{t5();TY();Q7();Mc();Fx4={metadata:"read",contents:"read"}});function yW0($){return _N("gitlab",$)}function zx4($){let Z=(Q)=>{if(typeof Q==="string")return Q.length>0?[Q]:[];if(Array.isArray(Q))return Q.flatMap(Z);if(Q!==null&&typeof Q==="object")return Object.values(Q).flatMap(Z);return[]};try{let Q=JSON.parse($);if(Q!==null&&typeof Q==="object"){let X=Q,Y=[...Z(X.message),...Z(X.error),...Z(X.error_description)];if(Y.length>0)return Y.join("; ")}}catch{}return $.slice(0,300)}async function QW($){let Z=await $.text().catch(()=>""),Q=Z?zx4(Z):$.statusText;return new I1({provider:"gitlab",status:$.status,message:`GitLab API ${$.status}: ${Q}`,retryAfterMs:$.status===429?zz$($.headers):null})}async function Qs($,Z){let Q=await $.text();try{return JSON.parse(Q)}catch(X){throw new I1({provider:"gitlab",status:$.status,message:`GitLab ${Z} returned invalid JSON: ${Q.slice(0,300)}`,cause:X})}}async function lL($,Z,Q={}){let X={Authorization:`Bearer ${Z}`,Accept:Q.accept??"application/json"};if(Q.body!==void 0)X["Content-Type"]="application/json";try{return await fetch($,{method:Q.method??"GET",headers:X,body:Q.body===void 0?void 0:JSON.stringify(Q.body),signal:AbortSignal.timeout(Q.timeoutMs??Ex4)})}catch(Y){throw new I1({provider:"gitlab",status:0,message:`GitLab request failed: ${Y instanceof Error?Y.message:String(Y)}`,cause:Y})}}var Ex4=15000;var gW0=D(()=>{t5();Q7();kP()});import{z as vQ}from"zod";function SP($){return encodeURIComponent($)}function Xs($){return encodeURIComponent($.replace(/^\/+/,""))}function Rx4($,Z){let Q=`/projects/${SP($.path)}/repository/archive.tar.gz`;return Z?`${Q}?sha=${encodeURIComponent(Z)}`:Q}function zz$($,Z=Date.now()){let Q=$.get("retry-after");if(Q!==null){let Y=Number(Q);if(Number.isFinite(Y))return Math.max(0,Y*1000);let J=Date.parse(Q);if(Number.isFinite(J))return Math.max(0,J-Z)}let X=$.get("ratelimit-reset");if(X!==null){let Y=Number(X);if(Number.isFinite(Y))return Math.max(0,Y*1000-Z)}return null}function Pz$($,Z){let Q=Ix4.parse($),X={provider:"gitlab",host:Z,path:Q.path_with_namespace};return{ref:X,externalId:String(Q.id),defaultBranch:Q.default_branch??null,webUrl:Q.web_url??ZW(X),visibility:Q.visibility,description:Q.description??null,updatedAt:Q.last_activity_at??null}}async function qx4($,Z,Q={}){let X=await lL($,Z,Q);if(X.status===404)return await X.body?.cancel().catch(()=>{}),null;if(!X.ok)throw await QW(X);return X}async function Mx4($,Z){let Q=await qx4(`${_N("gitlab",$)}/user`,Z);if(!Q)throw new I1({provider:"gitlab",status:404,message:"GitLab did not recognise the authenticated user"});return Az$.parse(await Qs(Q,"get_user"))}async function hW0($,Z){let Q=await Mx4($,Z);return{externalAccountId:String(Q.id),login:Q.username,avatarUrl:Q.avatar_url??null}}class Ys{kind="gitlab";host;apiBase;tokenSource;constructor($){this.host=$.host,this.apiBase=_N("gitlab",$.host),this.tokenSource=$.tokenSource}async tokenForRepo($,Z){return this.accountToken(Z)}async accountToken($){let Z=await this.tokenSource.get($);if(!Z)throw new I1({provider:"gitlab",status:401,message:"GitLab account is not authenticated"});return Z}async getRepo($){let Z=await this.get(`/projects/${SP($.path)}`);if(!Z)return null;return Pz$(await Qs(Z,"get_repo"),this.host)}async listRepos($={}){let Z=new URLSearchParams({membership:"true",simple:"true",order_by:"id",sort:"desc",per_page:String(Math.min(Tx4,Math.max(1,$.perPage??Ax4))),page:String(Math.max(1,$.page??1))}),Q=$.query?.trim();if(Q)Z.set("search",Q);let X=await this.get(`/projects?${Z}`);if(!X)return{repositories:[],hasMore:!1};let Y=await Qs(X,"list_repos");if(!Array.isArray(Y))throw new I1({provider:"gitlab",status:502,message:"GitLab /projects returned a non-array payload"});return{repositories:Y.map((J)=>Pz$(J,this.host)),hasMore:Y.length===Number(Z.get("per_page"))}}async readFile($,Z,Q){let X=Q;if(!X){let J=await this.getRepo($);if(!J?.defaultBranch)return null;X=J.defaultBranch}let Y=await this.get(`/projects/${SP($.path)}/repository/files/${Xs(Z)}/raw?ref=${encodeURIComponent(X)}`,{accept:"text/plain, */*"});if(!Y)return null;return Y.text()}async archiveTarball($,Z){let Q=await this.authedFetch(`${this.apiBase}${Rx4($,Z)}`,{accept:"application/octet-stream, */*",timeoutMs:Px4});if(Q.status===404)return await Q.body?.cancel().catch(()=>{}),null;if(!Q.ok)throw await QW(Q);return Q.body}async identity(){let $=await this.authedFetch(`${this.apiBase}/user`);if(!$.ok)throw await QW($);let Z=Az$.parse(await Qs($,"identity"));return{name:Z.name||Z.username,email:Z.commit_email||Z.public_email||Z.email||`${Z.username}@users.noreply.${this.host}`}}async get($,Z){let Q=await this.authedFetch(`${this.apiBase}${$}`,Z);if(Q.status===404)return await Q.body?.cancel().catch(()=>{}),null;if(!Q.ok)throw await QW(Q);return Q}async authedFetch($,Z={}){let Q=await this.accountToken(),X=await lL($,Q.token,Z);if(X.status!==401)return X;await X.body?.cancel().catch(()=>{});let Y=await this.accountToken({forceRefresh:!0});return lL($,Y.token,Z)}}var Px4=60000,Ax4=30,Tx4=100,Ix4,Az$;var kP=D(()=>{t5();Q7();gW0();Ix4=vQ.object({id:vQ.number(),path_with_namespace:vQ.string().min(1),default_branch:vQ.string().nullish(),web_url:vQ.string().nullish(),visibility:vQ.enum(["public","private","internal"]),description:vQ.string().nullish(),last_activity_at:vQ.string().nullish()});Az$=vQ.object({id:vQ.number(),username:vQ.string().min(1),name:vQ.string().nullish(),avatar_url:vQ.string().nullish(),email:vQ.string().nullish(),public_email:vQ.string().nullish(),commit_email:vQ.string().nullish()})});function Tz$($,Z,Q){return{kind:Q,async get(X){let Y=X?.forceRefresh?await $.get(Z):null,J=await mJ({connectionId:Z,tokenStorage:$,bufferMs:X?.bufferMs,force:X?.forceRefresh===!0&&Y!==null&&mL(Y)});if(!J.accessToken)return null;return{token:J.accessToken,kind:Q,expiresAt:null}}}}function $91($){return $==="token"?"token":"oauth"}function Js($){if($.status!=="active")return!1;if($.type==="github"&&$.authKind==="github_app")return Vc()!==null&&$.installationId!==null;return!0}function CP($,Z){let Q=new sa($.db,$.vault);switch(Z.type){case"github":{if(Z.authKind==="github_app"){let X=Vc();if(!X||Z.installationId===null)throw new I1({provider:"github",status:503,message:"GitHub App credentials are not configured on this deployment"});return new kc({host:Z.host,installationId:Z.installationId,appAuth:X})}return new kc({host:Z.host,tokenSource:Tz$(Q,Z.id,$91(Z.authKind))})}case"gitlab":return new Ys({host:Z.host,tokenSource:Tz$(Q,Z.id,$91(Z.authKind))})}}function Vx4($){if($.authKind==="github_app")return"installation";return $91($.authKind)}function uW0($,Z,Q="installation"){return{ref:$,tokenSource:{kind:Q,get:()=>Promise.resolve({token:Z,kind:Q,expiresAt:null})}}}async function Z91($,Z){let Q=Rc(Z);if(!Z.accountId)throw new I1({provider:Z.provider,status:401,message:`${Z.path} is linked without an account; link it again to read and write it`});let X=await new Ac($.db).getUnscoped(Z.accountId);if(!X||X.organizationId!==Z.organizationId)throw new I1({provider:Z.provider,status:404,message:`The account backing ${Z.path} no longer exists. Link the repository again.`});let Y=CP($,X),J=Vx4(X);return{ref:Q,tokenSource:{kind:J,get:(G)=>Y.tokenForRepo(Q,G)}}}async function ZF($,Z,Q){let X=Rc(Z);if(!Z.accountId)return kx4(X);let Y=await new Ac($.db).getUnscoped(Z.accountId);if(!Y||Y.organizationId!==Z.organizationId)throw new I1({provider:Z.provider,status:404,message:`The account backing ${Z.path} no longer exists. Link the repository again.`});let J=CP($,Y),G=await J.tokenForRepo(X,Q),K=G.kind==="installation"?null:await J.identity().catch(()=>null);return{cloneUrl:c51(X,G.token),gitUserName:K?.name??$F.name,gitUserEmail:K?.email??$F.email}}function kx4($){return{cloneUrl:c51($),gitUserName:$F.name,gitUserEmail:$F.email}}async function Q91($,Z,Q){let X=Q.repositoryId?await $.repositories.get(Q.repositoryId,Z):Q.ref?await $.repositories.findByRef(Z,Q.ref):null,Y=X?Rc(X):Q.ref??null;if(!Y)return null;return{ref:Y,repository:X,servable:X?await xN($,X):!1}}async function xN($,Z){if(!Z.accountId)return!1;let Q=await $.gitProviderAccounts.getUnscoped(Z.accountId);return Q!==null&&Js(Q)}var cW0=D(()=>{t5();K3();d51();$s();bW0();e51();kP();Q7()});async function Sx4($,Z){let Q=$.organization?.id;if(!Q)throw Error(VZ);if(!Z.sourceConnectionId)throw Error(VZ);let X=await $.storage.connections.findById(Z.sourceConnectionId,Q);if(!X)throw Error(VZ);let{clientFromConnection:Y}=await Promise.resolve().then(() => (ja(),Mz$)),J=await Y(X,$,!0);try{let{result:G}=await uj$((H)=>J.callTool({name:"MINT_REPO_TOKEN",arguments:{installationId:Z.installationId,owner:Z.owner,repo:Z.repo,permissions:H}}),hj$(Z.permissions)),K=G.structuredContent?.token;if(G.isError||!K)throw Error(VZ);let W=G.structuredContent?.expiresAt;return{accessToken:K,expiresAt:W?new Date(W):null}}finally{await J.close().catch(()=>{})}}function Cx4($,Z){return($?.getTime()??0)>Z?$:new Date(Z+qz$)}async function _x4($,Z,Q,X){let Y=Date.now(),J=await Sx4($,Q),G=Cx4(J.expiresAt,Y);try{await X.upsert({connectionId:Z,accessToken:J.accessToken,refreshToken:null,scope:null,expiresAt:G,clientId:null,clientSecret:null,tokenEndpoint:null})}catch(K){console.warn("[GithubMint] failed to persist minted token",{connectionId:Z,message:K instanceof Error?K.message:String(K)})}return J.accessToken}async function Gs($,Z,Q){let X=J9(Z);if(!X)throw Error("Connection is not repo-scoped");if(!X.sourceConnectionId)throw Error(VZ);let Y=new C5($.db,$.vault),J=await Y.get(Z.id);if(!Q?.forceRefresh&&J&&!Y.isExpired(J,Ws))return J.accessToken;let G=X91.get(Z.id);if(G)return G;let K=_x4($,Z.id,X,Y).finally(()=>{X91.delete(Z.id)});return X91.set(Z.id,K),K}function Rz$($){return $.slug==="mcp-github"}async function Iz$($,Z,Q){if(J9(Z)?.sourceConnectionId)return Gs($,Z,Q);return(await mJ({connectionId:Z.id,connectionUrl:Z.connection_url,tokenStorage:new C5($.db,$.vault),force:Q?.forceRefresh})).accessToken}var X91;var Ks=D(()=>{K3();TY();tK();X91=new Map});function vx4(){return process.env.GITHUB_GRAPHQL_URL??"https://api.github.com/graphql"}function fx4($){return $>=500&&$<600}function bx4($){return $ instanceof r9?$.cause:$}function yx4($,Z){try{return JSON.parse($)}catch(Q){throw Error(`GitHub GraphQL ${Z} returned invalid JSON: ${$.slice(0,300)}`,{cause:Q})}}function gx4($,Z){let Q=$.errors?.[0]?.message;if(Q)throw Error(`GitHub GraphQL ${Z} failed: ${Q}`);if($.data==null)throw Error(`GitHub GraphQL ${Z} returned no data`);return $.data}async function lW0($){let Z=await $.getToken();if(!Z)throw Error($.missingTokenMessage);let Q=(K)=>fetch(vx4(),{method:"POST",headers:{Authorization:`Bearer ${K}`,Accept:"application/vnd.github+json","Content-Type":"application/json"},body:JSON.stringify({query:$.query,variables:$.variables}),signal:AbortSignal.timeout(xx4)}),X=async(K)=>{try{return await J4(async()=>{let W=await Q(K);if(fx4(W.status)){let H=W.status;throw await W.body?.cancel().catch(()=>{}),Error(`GitHub GraphQL transient error: ${H}`)}return W},{maxAttempts:3,minTimeout:300,maxTimeout:3000,jitter:1})}catch(W){throw bx4(W)}},Y=await X(Z),J=Z;if(Y.status===401){try{await Y.body?.cancel()}catch{}let K=await $.getToken(!0);if(!K)throw Error($.missingTokenMessage);if(Y=await X(K),J=K,Y.status===401)throw Error($.missingTokenMessage)}let G=Ic(J);if(uL(Y.headers,{lane:"graphql",operation:$.operation,installation:G}),gL(Y)){let K=Y.headers.get("retry-after")!==null?"secondary":"primary";cL({lane:"graphql",operation:$.operation,installation:G,kind:K});let W=hL(Y.headers);throw Error(`GitHub ${K} rate limit reached${W===null?"":`; retry in ${Math.ceil(W/1000)}s`}`)}if(!Y.ok)throw Error(`GitHub GraphQL ${$.label} failed: ${Y.status}`);return gx4(yx4(await Y.text(),$.label),$.label)}var xx4=15000;var Y91=D(()=>{C8();Zs();qc()});function cx4($){if(!$)return null;if($.state!=="open")return!1;if(typeof $.mergeable==="boolean")return!$.mergeable;let Z=$.mergeable_state;if(typeof Z!=="string"||Z===""||Z==="unknown")return null;return Z==="dirty"}function lx4($){if($==="clean")return"passing";if($==="unstable")return"failing";return null}function J91($){let Z=$.merged===!0||typeof $.merged_at==="string";return{number:$.number??0,url:$.html_url??"",title:$.title??"",body:$.body??"",state:Z?"merged":$.state==="closed"?"closed":"open",draft:$.draft===!0,mergedAt:$.merged_at??null,updatedAt:$.updated_at??null,base:$.base?.ref??"main",head:$.head?.ref??"",headSha:$.head?.sha??"",headRepoPath:$.head?.repo?.full_name??null,author:$.user?.login??"",conflicting:cx4($),checks:lx4($.mergeable_state),changedFiles:typeof $.changed_files==="number"?$.changed_files:null}}function mx4($){if($==="IN_PROGRESS")return"running";if($==="COMPLETED")return"completed";return"queued"}function dx4($){switch($){case"SUCCESS":return"success";case"FAILURE":case"STARTUP_FAILURE":return"failure";case"NEUTRAL":case"STALE":return"neutral";case"CANCELLED":return"cancelled";case"SKIPPED":return"skipped";case"TIMED_OUT":return"timed_out";case"ACTION_REQUIRED":return"action_required";default:return null}}function tx4($){let Z=$.state;return{id:null,name:$.context??"",state:Z==="PENDING"||Z==="EXPECTED"?"running":"completed",conclusion:Z==="SUCCESS"?"success":Z==="FAILURE"||Z==="ERROR"?"failure":Z==="PENDING"||Z==="EXPECTED"?null:"neutral",url:$.targetUrl??null,durationMs:null,summary:$.description??null}}function ox4($){let Z=$.commits?.nodes?.[0]?.commit?.statusCheckRollup?.contexts?.nodes??[],Q=[];for(let X of Z){if(!X)continue;if(X.__typename==="StatusContext"){Q.push(tx4(X));continue}if(X.__typename!=="CheckRun")continue;let{startedAt:Y,completedAt:J}=X;Q.push({id:X.databaseId==null?null:String(X.databaseId),name:X.name??"",state:mx4(X.status),conclusion:dx4(X.conclusion),url:X.detailsUrl??null,durationMs:Y&&J?new Date(J).getTime()-new Date(Y).getTime():null,summary:X.summary??null})}return Q}function rx4($,Z){let Q=($.reviewThreads?.nodes??[]).filter((W)=>W?.isResolved===!1).length,X=$.reviewDecision,Y=X==="REVIEW_REQUIRED"||X==="CHANGES_REQUESTED",J=ox4($),G=$.number??0,K=$.merged===!0;return{number:G,url:$.url??Pc(Z,G),title:$.title??"",body:$.body??"",state:K?"merged":$.state==="OPEN"?"open":"closed",draft:$.isDraft===!0,mergedAt:$.mergedAt??null,updatedAt:$.updatedAt??null,base:$.baseRefName??"main",head:$.headRefName??"",headSha:$.headRefOid??"",headRepoPath:$.headRepository?.nameWithOwner??null,author:$.author?.login??"",conflicting:$.state!=="OPEN"?!1:$.mergeable==="CONFLICTING"?!0:$.mergeable==="MERGEABLE"?!1:null,checks:vW0(J),changedFiles:$.changedFiles??null,checkRuns:J,comments:($.comments?.nodes??[]).flatMap((W)=>W?[{id:String(W.databaseId??0),author:W.author?.login??"",body:W.body??"",createdAt:W.createdAt??"",updatedAt:W.updatedAt??W.createdAt??"",url:W.url??""}]:[]),unresolvedConversations:Q,reviewBlocked:Y}}function ax4($){let Z=null,Q=-1/0;for(let X of $??[]){if(!X?.mergedAt)continue;let Y=Date.parse(X.mergedAt);if(Number.isNaN(Y)||Y<=Q)continue;Z=X,Q=Y}return Z}function Vz$($){return/not allowed on this repository/i.test($)}class G91{repo;tokenSource;apiBaseUrl;owner;name;constructor($){this.repo=$.repo,this.tokenSource=$.tokenSource,this.apiBaseUrl=fW0($.repo.host);let{owner:Z,name:Q}=l7($.repo);this.owner=Z,this.name=Q}async token($){return(await this.tokenSource.get($?{forceRefresh:!0}:void 0))?.token??null}async requireToken(){let $=await this.token();if($)return $;throw new I1({provider:"github",status:401,message:`No usable GitHub token for ${this.repo.path}; reconnect the account`})}get base(){return`${this.apiBaseUrl}/repos/${this.owner}/${this.name}`}async rest($,Z){let Q=await lJ(`${this.base}${$}`,{method:Z.method,body:Z.body,token:await this.requireToken(),operation:Z.operation});if(Q.status===404)return await Q.body?.cancel().catch(()=>{}),null;if(!Q.ok)throw await bX(Q,Z.operation);if(Q.status===204)return null;return U3(Q,Z.operation)}graphql($){return lW0({getToken:(Z)=>this.token(Z),missingTokenMessage:`No usable GitHub token for ${this.repo.path}; reconnect the account`,...$})}async read($){let Z=await this.rest(`/pulls/${$}`,{operation:"change_request_read"});return Z?J91(Z):null}async readForBranch($){return await this.readDetailed({branch:$})}async readDetailed($){let Z="number"in $,X=(await this.graphql({query:Z?px4:ix4,variables:Z?{owner:this.owner,repo:this.name,number:$.number}:{owner:this.owner,repo:this.name,branch:$.branch},label:`change request for ${this.repo.path}`,operation:"change_request_detail"})).repository;if(!X)throw new I1({provider:"github",status:404,message:`${this.repo.path} is not accessible with this credential`});let Y=Z?X.pullRequest:X.pullRequests?.nodes?.[0];return Y?rx4(Y,this.repo):null}async listOpen($){return(await this.rest(`/pulls?state=open&sort=updated&direction=desc&per_page=${Math.min($,100)}`,{operation:"change_request_list"})??[]).map(J91)}async lastMergedInto($){let Z=await this.graphql({query:nx4,variables:{owner:this.owner,repo:this.name,base:$},label:`last merged into ${$} on ${this.repo.path}`,operation:"change_request_last_merged"});if(!Z.repository)throw new I1({provider:"github",status:404,message:`${this.repo.path} is not accessible with this credential`});let Q=ax4(Z.repository.pullRequests?.nodes);if(!Q)return null;let X=Q.number??0;return{number:X,url:Q.url??Pc(this.repo,X),title:Q.title??"",body:Q.body??"",state:"merged",draft:!1,mergedAt:Q.mergedAt??null,updatedAt:Q.mergedAt??null,base:Q.baseRefName??$,head:Q.headRefName??"",headSha:Q.headRefOid??"",headRepoPath:null,author:Q.author?.login??"",conflicting:!1,checks:null,changedFiles:null}}async open($){let Z=await lJ(`${this.base}/pulls`,{method:"POST",token:await this.requireToken(),operation:"change_request_open",body:{title:$.title,body:$.body||void 0,head:$.head,base:$.base}});if(Z.ok)return J91(await U3(Z,"change_request_open"));let Q=await bX(Z,"change_request_open");if(/already exists|pull request already/i.test(Q.message))throw new oa(Q.message,await this.readForBranch($.head).catch(()=>null));throw Q}async describe($,Z){await this.rest(`/pulls/${$}`,{method:"PATCH",body:{body:Z},operation:"change_request_describe"})}async merge($,Z={}){let Q=hx4[Z.strategy??"any"],X="";for(let Y of Q){let J=await this.attemptMerge($,Y,Z);if(J.merged)return J;if(J.reason==="blocked"&&Vz$(J.detail)){X=J.detail;continue}return J}return{merged:!1,reason:"blocked",detail:X}}async attemptMerge($,Z,Q){let X;try{X=await lJ(`${this.base}/pulls/${$}/merge`,{method:"PUT",token:await this.requireToken(),operation:"change_request_merge",body:{merge_method:Z,...Q.commitTitle?{commit_title:Q.commitTitle}:{},...Q.commitMessage?{commit_message:Q.commitMessage}:{}}})}catch(G){return{merged:!1,...sx4(G)}}if(X.ok)return await X.body?.cancel().catch(()=>{}),{merged:!0};let Y=await bX(X,"change_request_merge");if(X.status===404)return{merged:!1,reason:"not_found",detail:Y.message};if(Vz$(Y.message))return{merged:!1,reason:"blocked",detail:Y.message};return{merged:!1,reason:await this.read($).then((G)=>G?.conflicting??null).catch(()=>null)===!0?"conflict":"blocked",detail:Y.message}}async readCheckLog($){let Z=await this.rest(`/check-runs/${encodeURIComponent($)}`,{operation:"change_request_check_log"});return Z?.output?.summary??Z?.output?.text??null}async readDeployedUrl($){let Z=await this.rest(`/deployments?sha=${encodeURIComponent($)}&per_page=${ux4}`,{operation:"change_request_deployments"});for(let Q of Z??[]){if(typeof Q.id!=="number")continue;let Y=(await this.rest(`/deployments/${Q.id}/statuses?per_page=10`,{operation:"change_request_deployment_statuses"})??[]).find((J)=>J.state==="success"&&typeof J.environment_url==="string"&&J.environment_url.length>0);if(Y?.environment_url)return Y.environment_url}return null}}function sx4($){let Z=$ instanceof Error?$.message:String($);if($ instanceof I1&&$.isRateLimited)return{reason:"rate_limited",detail:Z};return{reason:"error",detail:Z}}var hx4,ux4=3,kz$=`
2693
2693
  fragment CrDetail on PullRequest {
2694
2694
  number
2695
2695
  title
@@ -4708,7 +4708,7 @@ ${Z}`}:X)}}var kX8=D(()=>{P9()});async function Bu6($,Z,Q){if(!$)return!1;let X=
4708
4708
  AND date >= {since:Date} AND date <= {until:Date}
4709
4709
  GROUP BY ${X}
4710
4710
  ORDER BY pageviews DESC
4711
- LIMIT 50`,{slug:$,since:Z,until:Q})).map((J)=>({key:J.key,pageviews:Number(J.pageviews),visitors:Number(J.visitors)}))}async function aJ8($){let{since:Z,until:Q}=sJ8(90),X=await eJ8($,Z,Q);return[...new Set(X.map(vk0))]}async function yS0($){let Z=$.get("studioContext");if(!Yz(Z))return $.json({error:"Unauthorized"},401);let Q=t(Z),X=$.req.param("site");if(!X)return $.json({error:"site is required"},400);let Y=X.toLowerCase();if(!await Z.storage.orgSites.isOwnedBy(Y,Q.id))return $.json({error:"Site not found in organization"},404);return{slug:Y}}var Sl6,Cl6,oJ8,i3="site_id IN (SELECT id FROM default.dim_sites WHERE name = {slug:String})",hl6,ll6="https://deco.lilstts.com/plausible",ml6=12000,dl6,$G8=()=>{let $=new Y1;return $.get("/:site/cdn/data",async(Z)=>{let Q=await yS0(Z);if(Q instanceof Response)return Q;if(!Bb())return Z.json({available:!1,error:"Monitor is not configured"});let X=Z.req.query("view")??"summary";if(!Sl6.has(X))return Z.json({error:`unknown or unavailable view: ${X}`},400);let Y=Z.req.query("range")??"7d",J=QL1(Y,Z.req.query("since"),Z.req.query("until"));if(!J)return Z.json({error:`unknown range: ${Y}`},400);let{slug:G}=Q,{since:K,until:W}=J,H=rJ8(Z.req.query("filters"));try{let F;switch(X){case"summary":F=await vl6(G,K,W,H);break;case"timeline":F=await xl6(G,K,W,J.granularity,H);break;case"cache-status":F=await fl6(G,K,W,H);break;case"status-codes":F=await bl6(G,K,W,H);break;case"top-paths":F=await yl6(G,K,W,Z.req.query("groupByPath")==="1",H);break;case"top-countries":F=await gl6(G,K,W,H);break}return Z.json({available:!0,view:X,range:Y,data:F})}catch(F){return console.error(`[monitor] cdn ${X} query failed for site="${G}":`,F),Z.json({error:"Failed to query monitor warehouse"},502)}}),$.get("/:site/audience/data",async(Z)=>{let Q=await yS0(Z);if(Q instanceof Response)return Q;if(!Bb())return Z.json({available:!1,error:"Monitor is not configured"});let X=Z.req.query("view")??"summary";if(!hl6.has(X))return Z.json({error:`unknown or unavailable view: ${X}`},400);let Y=Z.req.query("range")??"7d",J=QL1(Y,Z.req.query("since"),Z.req.query("until"));if(!J)return Z.json({error:`unknown range: ${Y}`},400);let{slug:G}=Q,{since:K,until:W}=J;try{let H;switch(X){case"summary":H=await ul6(G,K,W);break;case"timeline":H=await cl6(G,K,W);break;case"top-sources":H=await XL1(G,K,W,"utm_source");break;case"top-countries":H=await XL1(G,K,W,"country");break;case"devices":H=await XL1(G,K,W,"device_type");break}return Z.json({available:!0,view:X,range:Y,data:H})}catch(H){return console.error(`[monitor] audience ${X} query failed for site="${G}":`,H),Z.json({error:"Failed to query monitor warehouse"},502)}}),$.get("/:site/hosts",async(Z)=>{let Q=await yS0(Z);if(Q instanceof Response)return Q;let{slug:X}=Q;if(!Bb())return Z.json({available:!1,hosts:[]});try{let Y=await aJ8(X);return Z.json({available:!0,hosts:Y})}catch(Y){return console.error(`[monitor] hosts failed for site="${X}":`,Y),Z.json({available:!0,hosts:[]})}}),$.get("/:site/onedollar",async(Z)=>{let Q=await yS0(Z);if(Q instanceof Response)return Q;let{slug:X}=Q,Y=k0().oneDollarStatsApiKey;if(!Y)return Z.json({available:!1,error:"OneDollarStats not configured"});let J=Z.req.query("report")??"kpis",G=dl6[J];if(!G)return Z.json({error:`unknown report: ${J}`},400);let K=Z.req.query("range")??"7d",W=QL1(K,Z.req.query("since"),Z.req.query("until"));if(!W)return Z.json({error:`unknown range: ${K}`},400);let H=await aJ8(X),F=Z.req.query("host"),U=F&&H.includes(F)?F:H[0];if(!U)return Z.json({available:!0,report:J,range:K,results:[]});let{since:N,until:B}=W,O=J==="timeseries"?W.granularity==="hourly"?"time:hour":"time:day":G.dimension,L={page:"event:page",source:"visit:referrer",referrer:"visit:referrer",country:"visit:country",browser:"visit:browser",os:"visit:os",device:"visit:device",utm_campaign:"visit:utm_campaign",utm_source:"visit:utm_source",utm_medium:"visit:utm_medium",utm_content:"visit:utm_content",utm_term:"visit:utm_term"},w={equals:"is",not_equals:"is_not",contains:"contains",not_contains:"contains_not"},j=rJ8(Z.req.query("filters")).map((z)=>{let P=L[z.field],A=w[z.op];return P&&A?[A,P,[z.value]]:null}).filter(Boolean),E=async(z)=>{let P=await fetch(ll6,{method:"POST",headers:{"Content-Type":"application/json","x-api-key":Y,Accept:"application/json"},body:JSON.stringify({site_id:U,metrics:G.metrics,date_range:z,...O?{dimensions:[O]}:{},...G.order?{order_by:[[G.order,"desc"]]}:{},...j.length?{filters:j}:{},pagination:{limit:100,offset:0}}),signal:AbortSignal.timeout(ml6)});if(!P.ok)throw Error(`OneDollarStats ${P.status}`);return(await P.json().catch(()=>null))?.results??[]};try{let z=await E([N,B]),P;if(J==="kpis"||J==="timeseries"&&Z.req.query("compare")==="1"){let I=Date.parse(`${N}T00:00:00Z`),V=86400000,q=gS0(new Date(I-86400000)),C=gS0(new Date(I-W.days*86400000));P=await E([C,q]).catch(()=>{return})}return Z.json({available:!0,report:J,range:K,host:U,metrics:G.metrics,results:z,...P?{previous:P}:{}})}catch(z){return console.error(`[monitor] onedollar ${J} failed for host="${U}":`,z),Z.json({error:"Failed to reach OneDollarStats"},502)}}),$};var ZG8=D(()=>{i$();A$();hB1();uB1();Sl6=new Set(["summary","timeline","cache-status","status-codes","top-paths","top-countries"]),Cl6={today:{days:1,granularity:"hourly"},yesterday:{days:1,granularity:"hourly",endOffsetDays:1},"7d":{days:7,granularity:"daily"},"14d":{days:14,granularity:"daily"},"30d":{days:30,granularity:"daily"},"90d":{days:90,granularity:"daily"},"180d":{days:180,granularity:"daily"},"1y":{days:365,granularity:"daily"}};oJ8=/^\d{4}-\d{2}-\d{2}$/;hl6=new Set(["summary","timeline","top-sources","top-countries","devices"]);dl6={kpis:{metrics:["visitors","visits","pageviews","bounce_rate","visit_duration"]},timeseries:{metrics:["pageviews","visits","visitors","bounce_rate","visit_duration"]},pages:{metrics:["pageviews","visitors"],dimension:"event:page",order:"pageviews"},sources:{metrics:["visitors"],dimension:"visit:referrer",order:"visitors"},countries:{metrics:["visitors"],dimension:"visit:country",order:"visitors"},browsers:{metrics:["visitors"],dimension:"visit:browser",order:"visitors"},os:{metrics:["visitors"],dimension:"visit:os",order:"visitors"},devices:{metrics:["visitors"],dimension:"visit:device",order:"visitors"},events:{metrics:["visitors","events"],dimension:"event:name",order:"events"},utm_campaign:{metrics:["visitors","events"],dimension:"visit:utm_campaign",order:"events"},utm_source:{metrics:["visitors","events"],dimension:"visit:utm_source",order:"events"},utm_medium:{metrics:["visitors","events"],dimension:"visit:utm_medium",order:"events"},utm_content:{metrics:["visitors","events"],dimension:"visit:utm_content",order:"events"},utm_term:{metrics:["visitors","events"],dimension:"visit:utm_term",order:"events"}}});import{timingSafeEqual as il6}from"crypto";function fd($){let Q=$?.match(/^Bearer\s+(.+)$/i)?.[1]?.trim();return Q?Q:null}function YL1($,Z){let Q=Buffer.from($),X=Buffer.from(Z);return Q.length===X.length&&il6(Q,X)}function bd($){let Z=process.env.VAULT_SERVICE_TOKEN;return!!Z&&YL1($,Z)}function QG8($){if(!$)return null;return $ instanceof Date?$.toISOString():$}function pl6($){if(!$)return[];if(Array.isArray($))return $.filter((Z)=>typeof Z==="string");if(typeof $!=="string")return[];try{let Z=JSON.parse($);return Array.isArray(Z)?Z.filter((Q)=>typeof Q==="string"):[]}catch{return[]}}async function XG8($,Z,Q){let X=fd($.req.header("authorization"));if(!X)return{ok:!1,response:$.json({error:"Unauthorized"},401)};let Y=$.get("studioContext"),J=Y.organization?.id;if(!J)return{ok:!1,response:$.json({error:"Organization context required"},403)};if(bd(X))return{ok:!0,ctx:Y,organizationId:J};let G=await Y.storage.connectionCredentialVault.authenticateWorkloadToken(X);if(!G||G.organizationId!==J)return{ok:!1,response:$.json({error:"Unauthorized"},401)};let K=await Y.storage.connections.findById(G.subjectConnectionId,J);if(!K||K.status!=="active")return{ok:!1,response:$.json({error:"Unauthorized"},401)};if(!await Y.storage.connectionCredentialVault.hasGrant({organizationId:J,subjectConnectionId:G.subjectConnectionId,targetConnectionId:Z,scope:Q}))return{ok:!1,response:$.json({error:"Forbidden"},403)};return{ok:!0,ctx:Y,organizationId:J}}var YG8=()=>{let $=new Y1;return $.post("/vault/connections/batch",async(Z)=>{let Q=fd(Z.req.header("authorization"));if(!Q||!bd(Q))return Z.json({error:"Unauthorized"},401);let X=Z.get("studioContext"),Y=X.organization?.id;if(!Y)return Z.json({error:"Organization context required"},403);let J=await Z.req.json().catch(()=>null),G=Array.isArray(J?.connectionIds)?[...new Set(J.connectionIds)].filter((B)=>typeof B==="string"&&B.length>0):[];if(G.length===0||G.length>20)return Z.json({error:"connectionIds must be a non-empty string array (max 20)"},400);let{items:K}=await X.storage.connections.list(Y,{includeVirtual:!0,where:{field:["id"],operator:"in",value:G},limit:G.length}),W=new Map(K.map((B)=>[B.id,B])),H=new Set((await X.db.selectFrom("downstream_tokens").select("connectionId").where("connectionId","in",G).execute()).map((B)=>B.connectionId)),F=new Map((await X.db.selectFrom("connections").select(["id","configuration_state","connection_token"]).where("id","in",G).where("organization_id","=",Y).execute()).map((B)=>[B.id,B])),U=new C5(X.db,X.vault),N={};return await Promise.all(G.map(async(B)=>{try{let O=W.get(B);if(!O||O.status!=="active"){N[B]={error:"Connection not found"};return}if(F.get(B)?.configuration_state&&!O.configuration_state){N[B]={error:"MCP configuration could not be decrypted"};return}let L={type:"mcp_configuration",state:O.configuration_state??{},scopes:O.configuration_scopes??[]},w=null;if(H.has(B)){let j=await mJ({connectionId:B,connectionUrl:O.connection_url,tokenStorage:U});if(j.state==="valid"||j.state==="refreshed"){let E=await U.get(B);w={type:"oauth_access_token",tokenType:"Bearer",accessToken:j.accessToken,expiresAt:QG8(E?.expiresAt??null),scope:E?.scope??null}}}else if(O.connection_token)w={type:"static_token",tokenType:"Bearer",accessToken:O.connection_token,expiresAt:null,scope:null};else if(F.get(B)?.connection_token){N[B]={error:"Connection token could not be decrypted"};return}N[B]={configuration:L,accessToken:w}}catch(O){N[B]={error:O instanceof Error?O.message:String(O)}}})),Z.header("Cache-Control","no-store"),Z.header("Pragma","no-cache"),Z.json(N)}),$.post("/vault/connections/:connectionId/access-token",async(Z)=>{let Q=Z.req.param("connectionId"),X=await XG8(Z,Q,DG0);if(!X.ok)return X.response;let{ctx:Y,organizationId:J}=X,G=await Y.storage.connections.findById(Q,J);if(!G||G.status!=="active")return Z.json({error:"Connection not found"},404);let K=new C5(Y.db,Y.vault),W=await mJ({connectionId:Q,connectionUrl:G.connection_url,tokenStorage:K});if(W.state==="missing"){if(G.connection_token)return Z.header("Cache-Control","no-store"),Z.header("Pragma","no-cache"),Z.json({type:"static_token",tokenType:"Bearer",accessToken:G.connection_token,expiresAt:null,scope:null});if((await Y.db.selectFrom("connections").select("connection_token").where("id","=",Q).where("organization_id","=",J).executeTakeFirst())?.connection_token)return Z.json({error:"Connection token could not be decrypted"},424);return Z.json({error:"Downstream token not found"},409)}if(W.state==="expired_without_refresh"||W.state==="refresh_failed")return Z.json({error:"Downstream token refresh failed"},424);let H=await K.get(Q);return Z.header("Cache-Control","no-store"),Z.header("Pragma","no-cache"),Z.json({type:"oauth_access_token",tokenType:"Bearer",accessToken:W.accessToken,expiresAt:QG8(H?.expiresAt??null),scope:H?.scope??null})}),$.post("/vault/connections/:connectionId/configuration",async(Z)=>{let Q=Z.req.param("connectionId"),X=await XG8(Z,Q,LG0);if(!X.ok)return X.response;let{ctx:Y,organizationId:J}=X,G=await Y.db.selectFrom("connections").select(["status","configuration_state","configuration_scopes"]).where("id","=",Q).where("organization_id","=",J).executeTakeFirst();if(!G||G.status!=="active")return Z.json({error:"Connection not found"},404);let K={};if(G.configuration_state)try{let W=await Y.vault.decrypt(G.configuration_state),H=JSON.parse(W);if(typeof H!=="object"||H===null||Array.isArray(H))throw Error("MCP configuration state is not an object");K=H}catch{return Z.json({error:"MCP configuration could not be decrypted"},424)}return Z.header("Cache-Control","no-store"),Z.header("Pragma","no-cache"),Z.json({type:"mcp_configuration",state:K,scopes:pl6(G.configuration_scopes)})}),$};var O80=D(()=>{i$();K3();wG0();tK()});import{createHmac as nl6}from"crypto";import{mkdir as tl6,writeFile as ol6}from"fs/promises";import{dirname as rl6,join as KG8}from"path";function sl6($){let Z=$.replace(/[^a-zA-Z0-9_-]/g,"_");return KG8(al6,Z)}function JG8($,Z){let Q=sl6($),X=gG(Z);return KG8(Q,X)}function GG8($,Z,Q,X,Y){let J=k0().encryptionKey||"dev-secret",G=`${$}:${Z}:${Q}:${X}`,K=nl6("sha256",J).update(G).digest("hex");return YL1(Y,K)}function JL1($){let Z=$.split(".").pop()?.toLowerCase()||"";return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",gif:"image/gif",webp:"image/webp",svg:"image/svg+xml",ico:"image/x-icon",bmp:"image/bmp",pdf:"application/pdf",json:"application/json",xml:"application/xml",txt:"text/plain",html:"text/html",htm:"text/html",css:"text/css",csv:"text/csv",md:"text/markdown",js:"application/javascript",mjs:"application/javascript",ts:"application/typescript",mp4:"video/mp4",webm:"video/webm",avi:"video/x-msvideo",mov:"video/quicktime",mp3:"audio/mpeg",wav:"audio/wav",ogg:"audio/ogg",zip:"application/zip",gz:"application/gzip",tar:"application/x-tar",woff:"font/woff",woff2:"font/woff2",ttf:"font/ttf",otf:"font/otf"}[Z]||"application/octet-stream"}var al6="./data/assets",hS0=($)=>{let Z=new Y1,Q=$.orgFromPath?"/*":"/:orgId/*";return Z.get(Q,async(X)=>{let Y=$.orgFromPath?X.get("studioContext")?.organization?.id:X.req.param("orgId");if(!Y)return X.json({error:"Missing organization context"},500);let J=$.orgFromPath?`/api/${X.req.param("org")??""}/dev-assets/`:`/api/dev-assets/${Y}/`,G=X.req.path.replace(J,"");if(!G)return X.json({error:"Missing key"},400);let K=X.req.query("expires"),W=X.req.query("signature"),H=X.req.query("method");if(!K||!W||H!=="GET")return X.json({error:"Invalid or missing signature parameters"},400);let F=parseInt(K,10);if(!Number.isFinite(F))return X.json({error:"Invalid expires parameter"},400);let U=Math.floor(Date.now()/1000);if(F<U)return X.json({error:"URL has expired"},403);if(!GG8(Y,G,F,"GET",W))return X.json({error:"Invalid signature"},403);let N=JG8(Y,G);try{let B=Bun.file(N);if(!await B.exists())return X.json({error:"File not found"},404);let L=JL1(G);return new Response(B.stream(),{headers:{"Content-Type":L,"Content-Length":B.size.toString(),"Cache-Control":"private, max-age=3600"}})}catch(B){return console.error("Error serving file:",B),X.json({error:"Failed to read file"},500)}}),Z.put(Q,async(X)=>{let Y=$.orgFromPath?X.get("studioContext")?.organization?.id:X.req.param("orgId");if(!Y)return X.json({error:"Missing organization context"},500);let J=$.orgFromPath?`/api/${X.req.param("org")??""}/dev-assets/`:`/api/dev-assets/${Y}/`,G=X.req.path.replace(J,"");if(!G)return X.json({error:"Missing key"},400);let K=X.req.query("expires"),W=X.req.query("signature"),H=X.req.query("method");if(!K||!W||H!=="PUT")return X.json({error:"Invalid or missing signature parameters"},400);let F=parseInt(K,10);if(!Number.isFinite(F))return X.json({error:"Invalid expires parameter"},400);let U=Math.floor(Date.now()/1000);if(F<U)return X.json({error:"URL has expired"},403);if(!GG8(Y,G,F,"PUT",W))return X.json({error:"Invalid signature"},403);let N=JG8(Y,G),B=rl6(N);try{await tl6(B,{recursive:!0});let O=await X.req.arrayBuffer();return await ol6(N,Buffer.from(O)),X.json({success:!0,key:G})}catch(O){return console.error("Error saving file:",O),X.json({error:"Failed to save file"},500)}}),Z};var uS0=D(()=>{i$();A$();HK();O80()});function GL1($){let Z=new URL(el6);return Z.searchParams.set("client_id",$.clientId),Z.searchParams.set("redirect_uri",$.redirectUri),Z.searchParams.set("state",$.state),Z.toString()}function $m6($,Z=200){let Q=$!==null&&typeof $==="object"?$:{};if(typeof Q.error==="string"){let X=typeof Q.error_description==="string"?` (${Q.error_description})`:"";throw new I1({provider:"github",status:400,message:`GitHub OAuth code exchange failed: ${Q.error}${X}`})}if(typeof Q.access_token!=="string"||Q.access_token.length===0)throw new I1({provider:"github",status:Z,message:"GitHub OAuth code exchange returned no access token"});return{accessToken:Q.access_token,refreshToken:typeof Q.refresh_token==="string"&&Q.refresh_token.length>0?Q.refresh_token:null,expiresIn:typeof Q.expires_in==="number"&&Number.isFinite(Q.expires_in)?Q.expires_in:null,scope:typeof Q.scope==="string"&&Q.scope.length>0?Q.scope:null,tokenEndpoint:WG8}}async function HG8($){let Z;try{Z=await fetch(WG8,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify({client_id:$.clientId,client_secret:$.clientSecret,code:$.code,redirect_uri:$.redirectUri}),signal:AbortSignal.timeout(n51)})}catch(Y){throw new I1({provider:"github",status:0,message:`GitHub OAuth code exchange failed: ${Y instanceof Error?Y.message:String(Y)}`,cause:Y})}let Q=await Z.text();if(!Z.ok)throw new I1({provider:"github",status:Z.status,message:`GitHub OAuth code exchange failed: ${Z.status} ${Q.slice(0,300)}`});let X;try{X=JSON.parse(Q)}catch(Y){throw new I1({provider:"github",status:Z.status,message:`GitHub OAuth code exchange returned invalid JSON: ${Q.slice(0,300)}`,cause:Y})}return $m6(X,Z.status)}var el6="https://github.com/login/oauth/authorize",WG8="https://github.com/login/oauth/access_token";var FG8=D(()=>{Q7();Mc()});function UG8($){let Z=new URL(`https://${$.host}/oauth/authorize`);return Z.searchParams.set("client_id",$.clientId),Z.searchParams.set("redirect_uri",$.redirectUri),Z.searchParams.set("response_type","code"),Z.searchParams.set("state",$.state),Z.searchParams.set("scope",($.scopes??Zm6).join(" ")),Z.toString()}function Qm6($){return`https://${$}/oauth/token`}async function NG8($){let Z=Qm6($.host),Q=new URLSearchParams({grant_type:"authorization_code",client_id:$.clientId,client_secret:$.clientSecret,code:$.code,redirect_uri:$.redirectUri}),X;try{X=await fetch(Z,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/x-www-form-urlencoded"},body:Q,signal:AbortSignal.timeout(Xm6)})}catch(J){throw new I1({provider:"gitlab",status:0,message:`GitLab token exchange failed: ${Ym6(J)}`,cause:J})}let Y=await X.json().catch(()=>null);if(!X.ok||!Y||typeof Y.error==="string"){let J=Y&&typeof Y.error_description==="string"?Y.error_description:Y&&typeof Y.error==="string"?Y.error:X.statusText;throw new I1({provider:"gitlab",status:X.status,message:`GitLab token exchange failed (${X.status}): ${J}`})}if(typeof Y.access_token!=="string"||!Y.access_token)throw new I1({provider:"gitlab",status:X.status,message:"GitLab token exchange returned no access_token"});return{accessToken:Y.access_token,refreshToken:typeof Y.refresh_token==="string"&&Y.refresh_token?Y.refresh_token:null,expiresIn:typeof Y.expires_in==="number"&&Number.isFinite(Y.expires_in)?Y.expires_in:null,scope:typeof Y.scope==="string"?Y.scope:null,tokenEndpoint:Z}}function Ym6($){return $ instanceof Error?$.message:String($)}var Zm6,Xm6=15000;var BG8=D(()=>{Q7();Zm6=["api","read_user"]});function cS0($){if(!$)return"/";if(!$.startsWith("/")||$.startsWith("//")||$.includes("\\"))return"/";return $}function D80($){return`${M5()}/api/_git/${$}/callback`}function p3($,Z){let Q=new URL($,M5());if(Z)Q.searchParams.set("git_error",Z);return Q.toString()}async function KL1($,Z){let Q=$.organization?.id,X=$.auth.user?.id;if(!Q||!X)throw Error("Session with an organization is required");return $.storage.gitProviderOAuthStates.create({organizationId:Q,userId:X,...Z})}async function WL1($,Z,Q){if(!Q)return{ok:!1,error:"missing_state",returnTo:"/"};let X=await $.storage.gitProviderOAuthStates.consume(Q);if(!X||X.provider!==Z)return{ok:!1,error:"invalid_state",returnTo:"/"};let Y=cS0(X.returnTo);if($.auth.user?.id!==X.userId)return{ok:!1,error:"session_mismatch",returnTo:Y};return{ok:!0,state:X,returnTo:Y}}var OG8=()=>{let $=new Y1;return $.get("/git-providers/github/connect",async(Z)=>{let Q=Z.get("studioContext");if(!Q.auth.user)return Z.json({error:"Unauthorized"},401);let X=yL();if(!X)return Z.json({error:"GitHub App is not configured"},503);let Y=await KL1(Q,{provider:"github",host:"github.com",returnTo:cS0(Z.req.query("returnTo"))});return Z.redirect(GL1({clientId:X.clientId,redirectUri:D80("github"),state:Y}))}),$.get("/git-providers/github/install",async(Z)=>{let Q=Z.get("studioContext");if(!Q.auth.user)return Z.json({error:"Unauthorized"},401);let X=yL();if(!X)return Z.json({error:"GitHub App is not configured"},503);let Y=await KL1(Q,{provider:"github",host:"github.com",returnTo:cS0(Z.req.query("returnTo"))}),J=new URL(`https://github.com/apps/${encodeURIComponent(X.slug)}/installations/new`);return J.searchParams.set("state",Y),Z.redirect(J.toString())}),$.get("/git-providers/gitlab/connect",async(Z)=>{let Q=Z.get("studioContext");if(!Q.auth.user)return Z.json({error:"Unauthorized"},401);let X=iW0(),Y=(Z.req.query("host")??X?.host??"gitlab.com").trim().toLowerCase();if(!X||X.host!==Y)return Z.json({error:`No GitLab OAuth application is configured for ${Y}. Connect with an access token instead.`},503);let J=await KL1(Q,{provider:"gitlab",host:Y,returnTo:cS0(Z.req.query("returnTo"))});return Z.redirect(UG8({host:Y,clientId:X.clientId,redirectUri:D80("gitlab"),state:J}))}),$},L80;var HL1=D(()=>{i$();GB();V5();bW0();FG8();kP();BG8();L80=new Y1;L80.get("/github/callback",async($)=>{let Z=await mQ.create($.req.raw),Q=await WL1(Z,"github",$.req.query("state"));if(!Q.ok)return $.redirect(p3(Q.returnTo,Q.error));let{returnTo:X,state:Y}=Q,J=yL(),G=Vc(),K=$.req.query("code");if(!J||!G)return $.redirect(p3(X,"not_configured"));if(!K)return $.redirect(p3(X,$.req.query("error")??"denied"));try{let W=await HG8({clientId:J.clientId,clientSecret:J.clientSecret,code:K,redirectUri:D80("github")}),H=await G.listUserInstallations(W.accessToken);for(let F of H)await Z.storage.gitProviderAccounts.upsert({organizationId:Y.organizationId,type:"github",host:"github.com",authKind:"github_app",externalAccountId:String(F.installationId),login:F.login,avatarUrl:F.avatarUrl,installationId:F.installationId,createdBy:Y.userId});return $.redirect(p3(X,H.length===0?"no_installations":void 0))}catch(W){return console.error("[git-providers] github callback failed",{message:W instanceof Error?W.message:String(W)}),$.redirect(p3(X,"exchange_failed"))}});L80.get("/github/setup",async($)=>{let Z=await mQ.create($.req.raw),Q=await WL1(Z,"github",$.req.query("state"));if(!Q.ok)return $.redirect(p3(Q.returnTo,Q.error));let{returnTo:X,state:Y}=Q,J=yL();if(!J)return $.redirect(p3(X,"not_configured"));let G=await Z.storage.gitProviderOAuthStates.create(Y);return $.redirect(GL1({clientId:J.clientId,redirectUri:D80("github"),state:G}))});L80.get("/gitlab/callback",async($)=>{let Z=await mQ.create($.req.raw),Q=await WL1(Z,"gitlab",$.req.query("state"));if(!Q.ok)return $.redirect(p3(Q.returnTo,Q.error));let{returnTo:X,state:Y}=Q,{host:J}=Y,G=iW0(),K=$.req.query("code");if(!G||G.host!==J)return $.redirect(p3(X,"not_configured"));if(!K)return $.redirect(p3(X,$.req.query("error")??"denied"));try{let W=await NG8({host:J,clientId:G.clientId,clientSecret:G.clientSecret,code:K,redirectUri:D80("gitlab")}),H=await hW0(J,W.accessToken),F=await Z.storage.gitProviderAccounts.upsert({organizationId:Y.organizationId,type:"gitlab",host:J,authKind:"oauth",externalAccountId:H.externalAccountId,login:H.login,avatarUrl:H.avatarUrl,createdBy:Y.userId});return await Z.storage.gitProviderAccountCredentials.upsert({connectionId:F.id,accessToken:W.accessToken,refreshToken:W.refreshToken,scope:W.scope,expiresAt:W.expiresIn!==null?new Date(Date.now()+W.expiresIn*1000):null,clientId:G.clientId,clientSecret:G.clientSecret,tokenEndpoint:W.tokenEndpoint}),$.redirect(p3(X))}catch(W){return console.error("[git-providers] gitlab callback failed",{host:J,message:W instanceof Error?W.message:String(W)}),$.redirect(p3(X,"exchange_failed"))}})});var j80=v((Fm6)=>{Fm6.HttpAuthLocation=void 0;(function($){$.HEADER="header",$.QUERY="query"})(Fm6.HttpAuthLocation||(Fm6.HttpAuthLocation={}));Fm6.HttpApiKeyAuthLocation=void 0;(function($){$.HEADER="header",$.QUERY="query"})(Fm6.HttpApiKeyAuthLocation||(Fm6.HttpApiKeyAuthLocation={}));Fm6.EndpointURLScheme=void 0;(function($){$.HTTP="http",$.HTTPS="https"})(Fm6.EndpointURLScheme||(Fm6.EndpointURLScheme={}));Fm6.AlgorithmId=void 0;(function($){$.MD5="md5",$.CRC32="crc32",$.CRC32C="crc32c",$.SHA1="sha1",$.SHA256="sha256"})(Fm6.AlgorithmId||(Fm6.AlgorithmId={}));var Jm6=($)=>{let Z=[];if($.sha256!==void 0)Z.push({algorithmId:()=>Fm6.AlgorithmId.SHA256,checksumConstructor:()=>$.sha256});if($.md5!=null)Z.push({algorithmId:()=>Fm6.AlgorithmId.MD5,checksumConstructor:()=>$.md5});return{addChecksumAlgorithm(Q){Z.push(Q)},checksumAlgorithms(){return Z}}},Gm6=($)=>{let Z={};return $.checksumAlgorithms().forEach((Q)=>{Z[Q.algorithmId()]=Q.checksumConstructor()}),Z},Km6=($)=>{return Jm6($)},Wm6=($)=>{return Gm6($)};Fm6.FieldPosition=void 0;(function($){$[$.HEADER=0]="HEADER",$[$.TRAILER=1]="TRAILER"})(Fm6.FieldPosition||(Fm6.FieldPosition={}));var Hm6="__smithy_context";Fm6.IniSectionType=void 0;(function($){$.PROFILE="profile",$.SSO_SESSION="sso-session",$.SERVICES="services"})(Fm6.IniSectionType||(Fm6.IniSectionType={}));Fm6.RequestHandlerProtocol=void 0;(function($){$.HTTP_0_9="http/0.9",$.HTTP_1_0="http/1.0",$.TDS_8_0="tds/8.0"})(Fm6.RequestHandlerProtocol||(Fm6.RequestHandlerProtocol={}));Fm6.SMITHY_CONTEXT_KEY=Hm6;Fm6.getDefaultClientConfiguration=Km6;Fm6.resolveDefaultRuntimeConfig=Wm6});var _L1=v((md6)=>{var EL1=K0("crypto"),LL1=K0("fs"),Om6=R80(),Dm6=I80(),JU=K0("stream"),PG8=($)=>typeof ArrayBuffer==="function"&&$ instanceof ArrayBuffer||Object.prototype.toString.call($)==="[object ArrayBuffer]",hd=($,Z=0,Q=$.byteLength-Z)=>{if(!PG8($))throw TypeError(`The "input" argument must be ArrayBuffer. Received type ${typeof $} (${$})`);return Buffer.from($,Z,Q)},iS0=($,Z)=>{if(typeof $!=="string")throw TypeError(`The "input" argument must be of type string. Received type ${typeof $} (${$})`);return Z?Buffer.from($,Z):Buffer.from($)},Lm6=/^[A-Za-z0-9+/]*={0,2}$/,AG8=($)=>{if($.length*3%4!==0)throw TypeError("Incorrect padding on base64 string.");if(!Lm6.exec($))throw TypeError("Invalid base64 string.");let Z=iS0($,"base64");return new Uint8Array(Z.buffer,Z.byteOffset,Z.byteLength)},pS0=($)=>{let Z=iS0($,"utf8");return new Uint8Array(Z.buffer,Z.byteOffset,Z.byteLength/Uint8Array.BYTES_PER_ELEMENT)},RL1=($)=>{let Z;if(typeof $==="string")Z=pS0($);else Z=$;if(typeof Z!=="object"||typeof Z.byteOffset!=="number"||typeof Z.byteLength!=="number")throw Error("@smithy/util-base64: toBase64 encoder function only accepts string | Uint8Array.");return hd(Z.buffer,Z.byteOffset,Z.byteLength).toString("base64")};function wm6($,Z,Q,X){return class Y extends Uint8Array{static fromString(J,G="utf-8"){if(typeof J==="string"){if(G==="base64")return Y.mutate(X(J));return Y.mutate(Z(J))}throw Error(`Unsupported conversion from ${typeof J} to Uint8ArrayBlobAdapter.`)}static mutate(J){return Object.setPrototypeOf(J,Y.prototype),J}transformToString(J="utf-8"){if(J==="base64")return Q(this);return $(this)}}}var TG8=($)=>{if(typeof $==="string")return $;if(typeof $!=="object"||typeof $.byteOffset!=="number"||typeof $.byteLength!=="number")throw Error("@smithy/util-utf8: toUtf8 encoder function only accepts string | Uint8Array.");return hd($.buffer,$.byteOffset,$.byteLength).toString("utf8")},QX=Array.from({length:256},($,Z)=>Z.toString(16).padStart(2,"0"));function jm6($){if(typeof crypto<"u"&&typeof crypto.randomUUID==="function")return()=>crypto.randomUUID();return()=>{let Z=new Uint8Array(16);return $(Z),Z[6]=Z[6]&15|64,Z[8]=Z[8]&63|128,QX[Z[0]]+QX[Z[1]]+QX[Z[2]]+QX[Z[3]]+"-"+QX[Z[4]]+QX[Z[5]]+"-"+QX[Z[6]]+QX[Z[7]]+"-"+QX[Z[8]]+QX[Z[9]]+"-"+QX[Z[10]]+QX[Z[11]]+QX[Z[12]]+QX[Z[13]]+QX[Z[14]]+QX[Z[15]]}}var Em6=($,Z,Q=(X)=>X)=>$,zm6=($)=>{switch($){case"true":return!0;case"false":return!1;default:throw Error(`Unable to parse boolean value "${$}"`)}},Pm6=($)=>{if($===null||$===void 0)return;if(typeof $==="number"){if($===0||$===1)T80.warn(mS0(`Expected boolean, got ${typeof $}: ${$}`));if($===0)return!1;if($===1)return!0}if(typeof $==="string"){let Z=$.toLowerCase();if(Z==="false"||Z==="true")T80.warn(mS0(`Expected boolean, got ${typeof $}: ${$}`));if(Z==="false")return!1;if(Z==="true")return!0}if(typeof $==="boolean")return $;throw TypeError(`Expected boolean, got ${typeof $}: ${$}`)},P80=($)=>{if($===null||$===void 0)return;if(typeof $==="string"){let Z=parseFloat($);if(!Number.isNaN(Z)){if(String(Z)!==String($))T80.warn(mS0(`Expected number but observed string: ${$}`));return Z}}if(typeof $==="number")return $;throw TypeError(`Expected number, got ${typeof $}: ${$}`)},Am6=Math.ceil(340282346638528860000000000000000000000),lS0=($)=>{let Z=P80($);if(Z!==void 0&&!Number.isNaN(Z)&&Z!==1/0&&Z!==-1/0){if(Math.abs(Z)>Am6)throw TypeError(`Expected 32-bit float, got ${$}`)}return Z},A80=($)=>{if($===null||$===void 0)return;if(Number.isInteger($)&&!Number.isNaN($))return $;throw TypeError(`Expected integer, got ${typeof $}: ${$}`)},Tm6=A80,zL1=($)=>IL1($,32),PL1=($)=>IL1($,16),AL1=($)=>IL1($,8),IL1=($,Z)=>{let Q=A80($);if(Q!==void 0&&Rm6(Q,Z)!==Q)throw TypeError(`Expected ${Z}-bit integer, got ${$}`);return Q},Rm6=($,Z)=>{switch(Z){case 32:return Int32Array.of($)[0];case 16:return Int16Array.of($)[0];case 8:return Int8Array.of($)[0]}},Im6=($,Z)=>{if($===null||$===void 0){if(Z)throw TypeError(`Expected a non-null value for ${Z}`);throw TypeError("Expected a non-null value")}return $},RG8=($)=>{if($===null||$===void 0)return;if(typeof $==="object"&&!Array.isArray($))return $;let Z=Array.isArray($)?"array":typeof $;throw TypeError(`Expected object, got ${Z}: ${$}`)},qm6=($)=>{if($===null||$===void 0)return;if(typeof $==="string")return $;if(["boolean","number","bigint"].includes(typeof $))return T80.warn(mS0(`Expected string, got ${typeof $}: ${$}`)),String($);throw TypeError(`Expected string, got ${typeof $}: ${$}`)},Mm6=($)=>{if($===null||$===void 0)return;let Z=RG8($),Q=[];for(let X in Z)if(Z[X]!=null)Q.push(X);if(Q.length===0)throw TypeError("Unions must have exactly one non-null member. None were found.");if(Q.length>1)throw TypeError(`Unions must have exactly one non-null member. Keys ${Q} were not null.`);return Z},qL1=($)=>{if(typeof $=="string")return P80(ld($));return P80($)},Vm6=qL1,IG8=($)=>{if(typeof $=="string")return lS0(ld($));return lS0($)},km6=/(-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?)|(-?Infinity)|(NaN)/g,ld=($)=>{let Z=$.match(km6);if(Z===null||Z[0].length!==$.length)throw TypeError("Expected real number, got implicit NaN");return parseFloat($)},ML1=($)=>{if(typeof $=="string")return qG8($);return P80($)},Sm6=ML1,Cm6=ML1,_m6=($)=>{if(typeof $=="string")return qG8($);return lS0($)},qG8=($)=>{switch($){case"NaN":return NaN;case"Infinity":return 1/0;case"-Infinity":return-1/0;default:throw Error(`Unable to parse float value: ${$}`)}},MG8=($)=>{if(typeof $==="string")return A80(ld($));return A80($)},vm6=MG8,xm6=($)=>{if(typeof $==="string")return zL1(ld($));return zL1($)},ud=($)=>{if(typeof $==="string")return PL1(ld($));return PL1($)},VG8=($)=>{if(typeof $==="string")return AL1(ld($));return AL1($)},mS0=($)=>{return String(TypeError($).stack||$).split(`
4711
+ LIMIT 50`,{slug:$,since:Z,until:Q})).map((J)=>({key:J.key,pageviews:Number(J.pageviews),visitors:Number(J.visitors)}))}async function aJ8($){let{since:Z,until:Q}=sJ8(90),X=await eJ8($,Z,Q);return[...new Set(X.map(vk0))]}async function yS0($){let Z=$.get("studioContext");if(!Yz(Z))return $.json({error:"Unauthorized"},401);let Q=t(Z),X=$.req.param("site");if(!X)return $.json({error:"site is required"},400);let Y=X.toLowerCase();if(!await Z.storage.orgSites.isOwnedBy(Y,Q.id))return $.json({error:"Site not found in organization"},404);return{slug:Y}}var Sl6,Cl6,oJ8,i3="site_id IN (SELECT id FROM default.dim_sites WHERE name = {slug:String})",hl6,ll6="https://deco.lilstts.com/plausible",ml6=12000,dl6,$G8=()=>{let $=new Y1;return $.get("/:site/cdn/data",async(Z)=>{let Q=await yS0(Z);if(Q instanceof Response)return Q;if(!Bb())return Z.json({available:!1,error:"Monitor is not configured"});let X=Z.req.query("view")??"summary";if(!Sl6.has(X))return Z.json({error:`unknown or unavailable view: ${X}`},400);let Y=Z.req.query("range")??"7d",J=QL1(Y,Z.req.query("since"),Z.req.query("until"));if(!J)return Z.json({error:`unknown range: ${Y}`},400);let{slug:G}=Q,{since:K,until:W}=J,H=rJ8(Z.req.query("filters"));try{let F;switch(X){case"summary":F=await vl6(G,K,W,H);break;case"timeline":F=await xl6(G,K,W,J.granularity,H);break;case"cache-status":F=await fl6(G,K,W,H);break;case"status-codes":F=await bl6(G,K,W,H);break;case"top-paths":F=await yl6(G,K,W,Z.req.query("groupByPath")==="1",H);break;case"top-countries":F=await gl6(G,K,W,H);break}return Z.json({available:!0,view:X,range:Y,data:F})}catch(F){return console.error(`[monitor] cdn ${X} query failed for site="${G}":`,F),Z.json({error:"Failed to query monitor warehouse"},502)}}),$.get("/:site/audience/data",async(Z)=>{let Q=await yS0(Z);if(Q instanceof Response)return Q;if(!Bb())return Z.json({available:!1,error:"Monitor is not configured"});let X=Z.req.query("view")??"summary";if(!hl6.has(X))return Z.json({error:`unknown or unavailable view: ${X}`},400);let Y=Z.req.query("range")??"7d",J=QL1(Y,Z.req.query("since"),Z.req.query("until"));if(!J)return Z.json({error:`unknown range: ${Y}`},400);let{slug:G}=Q,{since:K,until:W}=J;try{let H;switch(X){case"summary":H=await ul6(G,K,W);break;case"timeline":H=await cl6(G,K,W);break;case"top-sources":H=await XL1(G,K,W,"utm_source");break;case"top-countries":H=await XL1(G,K,W,"country");break;case"devices":H=await XL1(G,K,W,"device_type");break}return Z.json({available:!0,view:X,range:Y,data:H})}catch(H){return console.error(`[monitor] audience ${X} query failed for site="${G}":`,H),Z.json({error:"Failed to query monitor warehouse"},502)}}),$.get("/:site/hosts",async(Z)=>{let Q=await yS0(Z);if(Q instanceof Response)return Q;let{slug:X}=Q;if(!Bb())return Z.json({available:!1,hosts:[]});try{let Y=await aJ8(X);return Z.json({available:!0,hosts:Y})}catch(Y){return console.error(`[monitor] hosts failed for site="${X}":`,Y),Z.json({available:!0,hosts:[]})}}),$.get("/:site/onedollar",async(Z)=>{let Q=await yS0(Z);if(Q instanceof Response)return Q;let{slug:X}=Q,Y=k0().oneDollarStatsApiKey;if(!Y)return Z.json({available:!1,error:"OneDollarStats not configured"});let J=Z.req.query("report")??"kpis",G=dl6[J];if(!G)return Z.json({error:`unknown report: ${J}`},400);let K=Z.req.query("range")??"7d",W=QL1(K,Z.req.query("since"),Z.req.query("until"));if(!W)return Z.json({error:`unknown range: ${K}`},400);let H=await aJ8(X),F=Z.req.query("host"),U=F&&H.includes(F)?F:H[0];if(!U)return Z.json({available:!0,report:J,range:K,results:[]});let{since:N,until:B}=W,O=J==="timeseries"?W.granularity==="hourly"?"time:hour":"time:day":G.dimension,L={page:"event:page",source:"visit:referrer",referrer:"visit:referrer",country:"visit:country",browser:"visit:browser",os:"visit:os",device:"visit:device",utm_campaign:"visit:utm_campaign",utm_source:"visit:utm_source",utm_medium:"visit:utm_medium",utm_content:"visit:utm_content",utm_term:"visit:utm_term"},w={equals:"is",not_equals:"is_not",contains:"contains",not_contains:"contains_not"},j=rJ8(Z.req.query("filters")).map((z)=>{let P=L[z.field],A=w[z.op];return P&&A?[A,P,[z.value]]:null}).filter(Boolean),E=async(z)=>{let P=await fetch(ll6,{method:"POST",headers:{"Content-Type":"application/json","x-api-key":Y,Accept:"application/json"},body:JSON.stringify({site_id:U,metrics:G.metrics,date_range:z,...O?{dimensions:[O]}:{},...G.order?{order_by:[[G.order,"desc"]]}:{},...j.length?{filters:j}:{},pagination:{limit:100,offset:0}}),signal:AbortSignal.timeout(ml6)});if(!P.ok)throw Error(`OneDollarStats ${P.status}`);return(await P.json().catch(()=>null))?.results??[]};try{let z=await E([N,B]),P;if(J==="kpis"||J==="timeseries"&&Z.req.query("compare")==="1"){let I=Date.parse(`${N}T00:00:00Z`),V=86400000,q=gS0(new Date(I-86400000)),C=gS0(new Date(I-W.days*86400000));P=await E([C,q]).catch(()=>{return})}return Z.json({available:!0,report:J,range:K,host:U,metrics:G.metrics,results:z,...P?{previous:P}:{}})}catch(z){return console.error(`[monitor] onedollar ${J} failed for host="${U}":`,z),Z.json({error:"Failed to reach OneDollarStats"},502)}}),$};var ZG8=D(()=>{i$();A$();hB1();uB1();Sl6=new Set(["summary","timeline","cache-status","status-codes","top-paths","top-countries"]),Cl6={today:{days:1,granularity:"hourly"},yesterday:{days:1,granularity:"hourly",endOffsetDays:1},"7d":{days:7,granularity:"daily"},"14d":{days:14,granularity:"daily"},"30d":{days:30,granularity:"daily"},"90d":{days:90,granularity:"daily"},"180d":{days:180,granularity:"daily"},"1y":{days:365,granularity:"daily"}};oJ8=/^\d{4}-\d{2}-\d{2}$/;hl6=new Set(["summary","timeline","top-sources","top-countries","devices"]);dl6={kpis:{metrics:["visitors","visits","pageviews","bounce_rate","visit_duration"]},timeseries:{metrics:["pageviews","visits","visitors","bounce_rate","visit_duration"]},pages:{metrics:["pageviews","visitors"],dimension:"event:page",order:"pageviews"},sources:{metrics:["visitors"],dimension:"visit:referrer",order:"visitors"},countries:{metrics:["visitors"],dimension:"visit:country",order:"visitors"},browsers:{metrics:["visitors"],dimension:"visit:browser",order:"visitors"},os:{metrics:["visitors"],dimension:"visit:os",order:"visitors"},devices:{metrics:["visitors"],dimension:"visit:device",order:"visitors"},events:{metrics:["visitors","events"],dimension:"event:name",order:"events"},utm_campaign:{metrics:["visitors","events"],dimension:"visit:utm_campaign",order:"events"},utm_source:{metrics:["visitors","events"],dimension:"visit:utm_source",order:"events"},utm_medium:{metrics:["visitors","events"],dimension:"visit:utm_medium",order:"events"},utm_content:{metrics:["visitors","events"],dimension:"visit:utm_content",order:"events"},utm_term:{metrics:["visitors","events"],dimension:"visit:utm_term",order:"events"}}});import{timingSafeEqual as il6}from"crypto";function fd($){let Q=$?.match(/^Bearer\s+(.+)$/i)?.[1]?.trim();return Q?Q:null}function YL1($,Z){let Q=Buffer.from($),X=Buffer.from(Z);return Q.length===X.length&&il6(Q,X)}function bd($){let Z=process.env.VAULT_SERVICE_TOKEN;return!!Z&&YL1($,Z)}function QG8($){if(!$)return null;return $ instanceof Date?$.toISOString():$}function pl6($){if(!$)return[];if(Array.isArray($))return $.filter((Z)=>typeof Z==="string");if(typeof $!=="string")return[];try{let Z=JSON.parse($);return Array.isArray(Z)?Z.filter((Q)=>typeof Q==="string"):[]}catch{return[]}}async function XG8($,Z,Q){let X=fd($.req.header("authorization"));if(!X)return{ok:!1,response:$.json({error:"Unauthorized"},401)};let Y=$.get("studioContext"),J=Y.organization?.id;if(!J)return{ok:!1,response:$.json({error:"Organization context required"},403)};if(bd(X))return{ok:!0,ctx:Y,organizationId:J};let G=await Y.storage.connectionCredentialVault.authenticateWorkloadToken(X);if(!G||G.organizationId!==J)return{ok:!1,response:$.json({error:"Unauthorized"},401)};let K=await Y.storage.connections.findById(G.subjectConnectionId,J);if(!K||K.status!=="active")return{ok:!1,response:$.json({error:"Unauthorized"},401)};if(!await Y.storage.connectionCredentialVault.hasGrant({organizationId:J,subjectConnectionId:G.subjectConnectionId,targetConnectionId:Z,scope:Q}))return{ok:!1,response:$.json({error:"Forbidden"},403)};return{ok:!0,ctx:Y,organizationId:J}}var YG8=()=>{let $=new Y1;return $.post("/vault/connections/batch",async(Z)=>{let Q=fd(Z.req.header("authorization"));if(!Q||!bd(Q))return Z.json({error:"Unauthorized"},401);let X=Z.get("studioContext"),Y=X.organization?.id;if(!Y)return Z.json({error:"Organization context required"},403);let J=await Z.req.json().catch(()=>null),G=Array.isArray(J?.connectionIds)?[...new Set(J.connectionIds)].filter((B)=>typeof B==="string"&&B.length>0):[];if(G.length===0||G.length>20)return Z.json({error:"connectionIds must be a non-empty string array (max 20)"},400);let{items:K}=await X.storage.connections.list(Y,{includeVirtual:!0,where:{field:["id"],operator:"in",value:G},limit:G.length}),W=new Map(K.map((B)=>[B.id,B])),H=new Set((await X.db.selectFrom("downstream_tokens").select("connectionId").where("connectionId","in",G).execute()).map((B)=>B.connectionId)),F=new Map((await X.db.selectFrom("connections").select(["id","configuration_state","connection_token"]).where("id","in",G).where("organization_id","=",Y).execute()).map((B)=>[B.id,B])),U=new C5(X.db,X.vault),N={};return await Promise.all(G.map(async(B)=>{try{let O=W.get(B);if(!O||O.status!=="active"){N[B]={error:"Connection not found"};return}if(F.get(B)?.configuration_state&&!O.configuration_state){N[B]={error:"MCP configuration could not be decrypted"};return}let L={type:"mcp_configuration",state:O.configuration_state??{},scopes:O.configuration_scopes??[]},w=null;if(H.has(B)){let j=await mJ({connectionId:B,connectionUrl:O.connection_url,tokenStorage:U});if(j.state==="valid"||j.state==="refreshed"){let E=await U.get(B);w={type:"oauth_access_token",tokenType:"Bearer",accessToken:j.accessToken,expiresAt:QG8(E?.expiresAt??null),scope:E?.scope??null}}}else if(O.connection_token)w={type:"static_token",tokenType:"Bearer",accessToken:O.connection_token,expiresAt:null,scope:null};else if(F.get(B)?.connection_token){N[B]={error:"Connection token could not be decrypted"};return}N[B]={configuration:L,accessToken:w}}catch(O){N[B]={error:O instanceof Error?O.message:String(O)}}})),Z.header("Cache-Control","no-store"),Z.header("Pragma","no-cache"),Z.json(N)}),$.post("/vault/connections/:connectionId/access-token",async(Z)=>{let Q=Z.req.param("connectionId"),X=await XG8(Z,Q,DG0);if(!X.ok)return X.response;let{ctx:Y,organizationId:J}=X,G=await Y.storage.connections.findById(Q,J);if(!G||G.status!=="active")return Z.json({error:"Connection not found"},404);let K=new C5(Y.db,Y.vault),W=await mJ({connectionId:Q,connectionUrl:G.connection_url,tokenStorage:K});if(W.state==="missing"){if(G.connection_token)return Z.header("Cache-Control","no-store"),Z.header("Pragma","no-cache"),Z.json({type:"static_token",tokenType:"Bearer",accessToken:G.connection_token,expiresAt:null,scope:null});if((await Y.db.selectFrom("connections").select("connection_token").where("id","=",Q).where("organization_id","=",J).executeTakeFirst())?.connection_token)return Z.json({error:"Connection token could not be decrypted"},424);return Z.json({error:"Downstream token not found"},409)}if(W.state==="expired_without_refresh"||W.state==="refresh_failed")return Z.json({error:"Downstream token refresh failed"},424);let H=await K.get(Q);return Z.header("Cache-Control","no-store"),Z.header("Pragma","no-cache"),Z.json({type:"oauth_access_token",tokenType:"Bearer",accessToken:W.accessToken,expiresAt:QG8(H?.expiresAt??null),scope:H?.scope??null})}),$.post("/vault/connections/:connectionId/configuration",async(Z)=>{let Q=Z.req.param("connectionId"),X=await XG8(Z,Q,LG0);if(!X.ok)return X.response;let{ctx:Y,organizationId:J}=X,G=await Y.db.selectFrom("connections").select(["status","configuration_state","configuration_scopes"]).where("id","=",Q).where("organization_id","=",J).executeTakeFirst();if(!G||G.status!=="active")return Z.json({error:"Connection not found"},404);let K={};if(G.configuration_state)try{let W=await Y.vault.decrypt(G.configuration_state),H=JSON.parse(W);if(typeof H!=="object"||H===null||Array.isArray(H))throw Error("MCP configuration state is not an object");K=H}catch{return Z.json({error:"MCP configuration could not be decrypted"},424)}return Z.header("Cache-Control","no-store"),Z.header("Pragma","no-cache"),Z.json({type:"mcp_configuration",state:K,scopes:pl6(G.configuration_scopes)})}),$};var O80=D(()=>{i$();K3();wG0();tK()});import{createHmac as nl6}from"crypto";import{mkdir as tl6,writeFile as ol6}from"fs/promises";import{dirname as rl6,join as KG8}from"path";function sl6($){let Z=$.replace(/[^a-zA-Z0-9_-]/g,"_");return KG8(al6,Z)}function JG8($,Z){let Q=sl6($),X=gG(Z);return KG8(Q,X)}function GG8($,Z,Q,X,Y){let J=k0().encryptionKey||"dev-secret",G=`${$}:${Z}:${Q}:${X}`,K=nl6("sha256",J).update(G).digest("hex");return YL1(Y,K)}function JL1($){let Z=$.split(".").pop()?.toLowerCase()||"";return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",gif:"image/gif",webp:"image/webp",svg:"image/svg+xml",ico:"image/x-icon",bmp:"image/bmp",pdf:"application/pdf",json:"application/json",xml:"application/xml",txt:"text/plain",html:"text/html",htm:"text/html",css:"text/css",csv:"text/csv",md:"text/markdown",js:"application/javascript",mjs:"application/javascript",ts:"application/typescript",mp4:"video/mp4",webm:"video/webm",avi:"video/x-msvideo",mov:"video/quicktime",mp3:"audio/mpeg",wav:"audio/wav",ogg:"audio/ogg",zip:"application/zip",gz:"application/gzip",tar:"application/x-tar",woff:"font/woff",woff2:"font/woff2",ttf:"font/ttf",otf:"font/otf"}[Z]||"application/octet-stream"}var al6="./data/assets",hS0=($)=>{let Z=new Y1,Q=$.orgFromPath?"/*":"/:orgId/*";return Z.get(Q,async(X)=>{let Y=$.orgFromPath?X.get("studioContext")?.organization?.id:X.req.param("orgId");if(!Y)return X.json({error:"Missing organization context"},500);let J=$.orgFromPath?`/api/${X.req.param("org")??""}/dev-assets/`:`/api/dev-assets/${Y}/`,G=X.req.path.replace(J,"");if(!G)return X.json({error:"Missing key"},400);let K=X.req.query("expires"),W=X.req.query("signature"),H=X.req.query("method");if(!K||!W||H!=="GET")return X.json({error:"Invalid or missing signature parameters"},400);let F=parseInt(K,10);if(!Number.isFinite(F))return X.json({error:"Invalid expires parameter"},400);let U=Math.floor(Date.now()/1000);if(F<U)return X.json({error:"URL has expired"},403);if(!GG8(Y,G,F,"GET",W))return X.json({error:"Invalid signature"},403);let N=JG8(Y,G);try{let B=Bun.file(N);if(!await B.exists())return X.json({error:"File not found"},404);let L=JL1(G);return new Response(B.stream(),{headers:{"Content-Type":L,"Content-Length":B.size.toString(),"Cache-Control":"private, max-age=3600"}})}catch(B){return console.error("Error serving file:",B),X.json({error:"Failed to read file"},500)}}),Z.put(Q,async(X)=>{let Y=$.orgFromPath?X.get("studioContext")?.organization?.id:X.req.param("orgId");if(!Y)return X.json({error:"Missing organization context"},500);let J=$.orgFromPath?`/api/${X.req.param("org")??""}/dev-assets/`:`/api/dev-assets/${Y}/`,G=X.req.path.replace(J,"");if(!G)return X.json({error:"Missing key"},400);let K=X.req.query("expires"),W=X.req.query("signature"),H=X.req.query("method");if(!K||!W||H!=="PUT")return X.json({error:"Invalid or missing signature parameters"},400);let F=parseInt(K,10);if(!Number.isFinite(F))return X.json({error:"Invalid expires parameter"},400);let U=Math.floor(Date.now()/1000);if(F<U)return X.json({error:"URL has expired"},403);if(!GG8(Y,G,F,"PUT",W))return X.json({error:"Invalid signature"},403);let N=JG8(Y,G),B=rl6(N);try{await tl6(B,{recursive:!0});let O=await X.req.arrayBuffer();return await ol6(N,Buffer.from(O)),X.json({success:!0,key:G})}catch(O){return console.error("Error saving file:",O),X.json({error:"Failed to save file"},500)}}),Z};var uS0=D(()=>{i$();A$();HK();O80()});function GL1($){let Z=new URL(el6);if(Z.searchParams.set("client_id",$.clientId),Z.searchParams.set("redirect_uri",$.redirectUri),Z.searchParams.set("state",$.state),$.selectAccount)Z.searchParams.set("prompt","select_account");return Z.toString()}function $m6($,Z=200){let Q=$!==null&&typeof $==="object"?$:{};if(typeof Q.error==="string"){let X=typeof Q.error_description==="string"?` (${Q.error_description})`:"";throw new I1({provider:"github",status:400,message:`GitHub OAuth code exchange failed: ${Q.error}${X}`})}if(typeof Q.access_token!=="string"||Q.access_token.length===0)throw new I1({provider:"github",status:Z,message:"GitHub OAuth code exchange returned no access token"});return{accessToken:Q.access_token,refreshToken:typeof Q.refresh_token==="string"&&Q.refresh_token.length>0?Q.refresh_token:null,expiresIn:typeof Q.expires_in==="number"&&Number.isFinite(Q.expires_in)?Q.expires_in:null,scope:typeof Q.scope==="string"&&Q.scope.length>0?Q.scope:null,tokenEndpoint:WG8}}async function HG8($){let Z;try{Z=await fetch(WG8,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify({client_id:$.clientId,client_secret:$.clientSecret,code:$.code,redirect_uri:$.redirectUri}),signal:AbortSignal.timeout(n51)})}catch(Y){throw new I1({provider:"github",status:0,message:`GitHub OAuth code exchange failed: ${Y instanceof Error?Y.message:String(Y)}`,cause:Y})}let Q=await Z.text();if(!Z.ok)throw new I1({provider:"github",status:Z.status,message:`GitHub OAuth code exchange failed: ${Z.status} ${Q.slice(0,300)}`});let X;try{X=JSON.parse(Q)}catch(Y){throw new I1({provider:"github",status:Z.status,message:`GitHub OAuth code exchange returned invalid JSON: ${Q.slice(0,300)}`,cause:Y})}return $m6(X,Z.status)}var el6="https://github.com/login/oauth/authorize",WG8="https://github.com/login/oauth/access_token";var FG8=D(()=>{Q7();Mc()});function UG8($){let Z=new URL(`https://${$.host}/oauth/authorize`);return Z.searchParams.set("client_id",$.clientId),Z.searchParams.set("redirect_uri",$.redirectUri),Z.searchParams.set("response_type","code"),Z.searchParams.set("state",$.state),Z.searchParams.set("scope",($.scopes??Zm6).join(" ")),Z.toString()}function Qm6($){return`https://${$}/oauth/token`}async function NG8($){let Z=Qm6($.host),Q=new URLSearchParams({grant_type:"authorization_code",client_id:$.clientId,client_secret:$.clientSecret,code:$.code,redirect_uri:$.redirectUri}),X;try{X=await fetch(Z,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/x-www-form-urlencoded"},body:Q,signal:AbortSignal.timeout(Xm6)})}catch(J){throw new I1({provider:"gitlab",status:0,message:`GitLab token exchange failed: ${Ym6(J)}`,cause:J})}let Y=await X.json().catch(()=>null);if(!X.ok||!Y||typeof Y.error==="string"){let J=Y&&typeof Y.error_description==="string"?Y.error_description:Y&&typeof Y.error==="string"?Y.error:X.statusText;throw new I1({provider:"gitlab",status:X.status,message:`GitLab token exchange failed (${X.status}): ${J}`})}if(typeof Y.access_token!=="string"||!Y.access_token)throw new I1({provider:"gitlab",status:X.status,message:"GitLab token exchange returned no access_token"});return{accessToken:Y.access_token,refreshToken:typeof Y.refresh_token==="string"&&Y.refresh_token?Y.refresh_token:null,expiresIn:typeof Y.expires_in==="number"&&Number.isFinite(Y.expires_in)?Y.expires_in:null,scope:typeof Y.scope==="string"?Y.scope:null,tokenEndpoint:Z}}function Ym6($){return $ instanceof Error?$.message:String($)}var Zm6,Xm6=15000;var BG8=D(()=>{Q7();Zm6=["api","read_user"]});function cS0($){if(!$)return"/";if(!$.startsWith("/")||$.startsWith("//")||$.includes("\\"))return"/";return $}function D80($){return`${M5()}/api/_git/${$}/callback`}function p3($,Z){let Q=new URL($,M5());if(Z)Q.searchParams.set("git_error",Z);return Q.toString()}async function KL1($,Z){let Q=$.organization?.id,X=$.auth.user?.id;if(!Q||!X)throw Error("Session with an organization is required");return $.storage.gitProviderOAuthStates.create({organizationId:Q,userId:X,...Z})}async function WL1($,Z,Q){if(!Q)return{ok:!1,error:"missing_state",returnTo:"/"};let X=await $.storage.gitProviderOAuthStates.consume(Q);if(!X||X.provider!==Z)return{ok:!1,error:"invalid_state",returnTo:"/"};let Y=cS0(X.returnTo);if($.auth.user?.id!==X.userId)return{ok:!1,error:"session_mismatch",returnTo:Y};return{ok:!0,state:X,returnTo:Y}}var OG8=()=>{let $=new Y1;return $.get("/git-providers/github/connect",async(Z)=>{let Q=Z.get("studioContext");if(!Q.auth.user)return Z.json({error:"Unauthorized"},401);let X=yL();if(!X)return Z.json({error:"GitHub App is not configured"},503);let Y=await KL1(Q,{provider:"github",host:"github.com",returnTo:cS0(Z.req.query("returnTo"))});return Z.redirect(GL1({clientId:X.clientId,redirectUri:D80("github"),state:Y,selectAccount:!0}))}),$.get("/git-providers/github/install",async(Z)=>{let Q=Z.get("studioContext");if(!Q.auth.user)return Z.json({error:"Unauthorized"},401);let X=yL();if(!X)return Z.json({error:"GitHub App is not configured"},503);let Y=await KL1(Q,{provider:"github",host:"github.com",returnTo:cS0(Z.req.query("returnTo"))}),J=new URL(`https://github.com/apps/${encodeURIComponent(X.slug)}/installations/new`);return J.searchParams.set("state",Y),Z.redirect(J.toString())}),$.get("/git-providers/gitlab/connect",async(Z)=>{let Q=Z.get("studioContext");if(!Q.auth.user)return Z.json({error:"Unauthorized"},401);let X=iW0(),Y=(Z.req.query("host")??X?.host??"gitlab.com").trim().toLowerCase();if(!X||X.host!==Y)return Z.json({error:`No GitLab OAuth application is configured for ${Y}. Connect with an access token instead.`},503);let J=await KL1(Q,{provider:"gitlab",host:Y,returnTo:cS0(Z.req.query("returnTo"))});return Z.redirect(UG8({host:Y,clientId:X.clientId,redirectUri:D80("gitlab"),state:J}))}),$},L80;var HL1=D(()=>{i$();GB();V5();bW0();FG8();kP();BG8();L80=new Y1;L80.get("/github/callback",async($)=>{let Z=await mQ.create($.req.raw),Q=await WL1(Z,"github",$.req.query("state"));if(!Q.ok)return $.redirect(p3(Q.returnTo,Q.error));let{returnTo:X,state:Y}=Q,J=yL(),G=Vc(),K=$.req.query("code");if(!J||!G)return $.redirect(p3(X,"not_configured"));if(!K)return $.redirect(p3(X,$.req.query("error")??"denied"));try{let W=await HG8({clientId:J.clientId,clientSecret:J.clientSecret,code:K,redirectUri:D80("github")}),H=await G.listUserInstallations(W.accessToken);for(let F of H)await Z.storage.gitProviderAccounts.upsert({organizationId:Y.organizationId,type:"github",host:"github.com",authKind:"github_app",externalAccountId:String(F.installationId),login:F.login,avatarUrl:F.avatarUrl,installationId:F.installationId,createdBy:Y.userId});return $.redirect(p3(X,H.length===0?"no_installations":void 0))}catch(W){return console.error("[git-providers] github callback failed",{message:W instanceof Error?W.message:String(W)}),$.redirect(p3(X,"exchange_failed"))}});L80.get("/github/setup",async($)=>{let Z=await mQ.create($.req.raw),Q=await WL1(Z,"github",$.req.query("state"));if(!Q.ok)return $.redirect(p3(Q.returnTo,Q.error));let{returnTo:X,state:Y}=Q,J=yL();if(!J)return $.redirect(p3(X,"not_configured"));let G=await Z.storage.gitProviderOAuthStates.create(Y);return $.redirect(GL1({clientId:J.clientId,redirectUri:D80("github"),state:G}))});L80.get("/gitlab/callback",async($)=>{let Z=await mQ.create($.req.raw),Q=await WL1(Z,"gitlab",$.req.query("state"));if(!Q.ok)return $.redirect(p3(Q.returnTo,Q.error));let{returnTo:X,state:Y}=Q,{host:J}=Y,G=iW0(),K=$.req.query("code");if(!G||G.host!==J)return $.redirect(p3(X,"not_configured"));if(!K)return $.redirect(p3(X,$.req.query("error")??"denied"));try{let W=await NG8({host:J,clientId:G.clientId,clientSecret:G.clientSecret,code:K,redirectUri:D80("gitlab")}),H=await hW0(J,W.accessToken),F=await Z.storage.gitProviderAccounts.upsert({organizationId:Y.organizationId,type:"gitlab",host:J,authKind:"oauth",externalAccountId:H.externalAccountId,login:H.login,avatarUrl:H.avatarUrl,createdBy:Y.userId});return await Z.storage.gitProviderAccountCredentials.upsert({connectionId:F.id,accessToken:W.accessToken,refreshToken:W.refreshToken,scope:W.scope,expiresAt:W.expiresIn!==null?new Date(Date.now()+W.expiresIn*1000):null,clientId:G.clientId,clientSecret:G.clientSecret,tokenEndpoint:W.tokenEndpoint}),$.redirect(p3(X))}catch(W){return console.error("[git-providers] gitlab callback failed",{host:J,message:W instanceof Error?W.message:String(W)}),$.redirect(p3(X,"exchange_failed"))}})});var j80=v((Fm6)=>{Fm6.HttpAuthLocation=void 0;(function($){$.HEADER="header",$.QUERY="query"})(Fm6.HttpAuthLocation||(Fm6.HttpAuthLocation={}));Fm6.HttpApiKeyAuthLocation=void 0;(function($){$.HEADER="header",$.QUERY="query"})(Fm6.HttpApiKeyAuthLocation||(Fm6.HttpApiKeyAuthLocation={}));Fm6.EndpointURLScheme=void 0;(function($){$.HTTP="http",$.HTTPS="https"})(Fm6.EndpointURLScheme||(Fm6.EndpointURLScheme={}));Fm6.AlgorithmId=void 0;(function($){$.MD5="md5",$.CRC32="crc32",$.CRC32C="crc32c",$.SHA1="sha1",$.SHA256="sha256"})(Fm6.AlgorithmId||(Fm6.AlgorithmId={}));var Jm6=($)=>{let Z=[];if($.sha256!==void 0)Z.push({algorithmId:()=>Fm6.AlgorithmId.SHA256,checksumConstructor:()=>$.sha256});if($.md5!=null)Z.push({algorithmId:()=>Fm6.AlgorithmId.MD5,checksumConstructor:()=>$.md5});return{addChecksumAlgorithm(Q){Z.push(Q)},checksumAlgorithms(){return Z}}},Gm6=($)=>{let Z={};return $.checksumAlgorithms().forEach((Q)=>{Z[Q.algorithmId()]=Q.checksumConstructor()}),Z},Km6=($)=>{return Jm6($)},Wm6=($)=>{return Gm6($)};Fm6.FieldPosition=void 0;(function($){$[$.HEADER=0]="HEADER",$[$.TRAILER=1]="TRAILER"})(Fm6.FieldPosition||(Fm6.FieldPosition={}));var Hm6="__smithy_context";Fm6.IniSectionType=void 0;(function($){$.PROFILE="profile",$.SSO_SESSION="sso-session",$.SERVICES="services"})(Fm6.IniSectionType||(Fm6.IniSectionType={}));Fm6.RequestHandlerProtocol=void 0;(function($){$.HTTP_0_9="http/0.9",$.HTTP_1_0="http/1.0",$.TDS_8_0="tds/8.0"})(Fm6.RequestHandlerProtocol||(Fm6.RequestHandlerProtocol={}));Fm6.SMITHY_CONTEXT_KEY=Hm6;Fm6.getDefaultClientConfiguration=Km6;Fm6.resolveDefaultRuntimeConfig=Wm6});var _L1=v((md6)=>{var EL1=K0("crypto"),LL1=K0("fs"),Om6=R80(),Dm6=I80(),JU=K0("stream"),PG8=($)=>typeof ArrayBuffer==="function"&&$ instanceof ArrayBuffer||Object.prototype.toString.call($)==="[object ArrayBuffer]",hd=($,Z=0,Q=$.byteLength-Z)=>{if(!PG8($))throw TypeError(`The "input" argument must be ArrayBuffer. Received type ${typeof $} (${$})`);return Buffer.from($,Z,Q)},iS0=($,Z)=>{if(typeof $!=="string")throw TypeError(`The "input" argument must be of type string. Received type ${typeof $} (${$})`);return Z?Buffer.from($,Z):Buffer.from($)},Lm6=/^[A-Za-z0-9+/]*={0,2}$/,AG8=($)=>{if($.length*3%4!==0)throw TypeError("Incorrect padding on base64 string.");if(!Lm6.exec($))throw TypeError("Invalid base64 string.");let Z=iS0($,"base64");return new Uint8Array(Z.buffer,Z.byteOffset,Z.byteLength)},pS0=($)=>{let Z=iS0($,"utf8");return new Uint8Array(Z.buffer,Z.byteOffset,Z.byteLength/Uint8Array.BYTES_PER_ELEMENT)},RL1=($)=>{let Z;if(typeof $==="string")Z=pS0($);else Z=$;if(typeof Z!=="object"||typeof Z.byteOffset!=="number"||typeof Z.byteLength!=="number")throw Error("@smithy/util-base64: toBase64 encoder function only accepts string | Uint8Array.");return hd(Z.buffer,Z.byteOffset,Z.byteLength).toString("base64")};function wm6($,Z,Q,X){return class Y extends Uint8Array{static fromString(J,G="utf-8"){if(typeof J==="string"){if(G==="base64")return Y.mutate(X(J));return Y.mutate(Z(J))}throw Error(`Unsupported conversion from ${typeof J} to Uint8ArrayBlobAdapter.`)}static mutate(J){return Object.setPrototypeOf(J,Y.prototype),J}transformToString(J="utf-8"){if(J==="base64")return Q(this);return $(this)}}}var TG8=($)=>{if(typeof $==="string")return $;if(typeof $!=="object"||typeof $.byteOffset!=="number"||typeof $.byteLength!=="number")throw Error("@smithy/util-utf8: toUtf8 encoder function only accepts string | Uint8Array.");return hd($.buffer,$.byteOffset,$.byteLength).toString("utf8")},QX=Array.from({length:256},($,Z)=>Z.toString(16).padStart(2,"0"));function jm6($){if(typeof crypto<"u"&&typeof crypto.randomUUID==="function")return()=>crypto.randomUUID();return()=>{let Z=new Uint8Array(16);return $(Z),Z[6]=Z[6]&15|64,Z[8]=Z[8]&63|128,QX[Z[0]]+QX[Z[1]]+QX[Z[2]]+QX[Z[3]]+"-"+QX[Z[4]]+QX[Z[5]]+"-"+QX[Z[6]]+QX[Z[7]]+"-"+QX[Z[8]]+QX[Z[9]]+"-"+QX[Z[10]]+QX[Z[11]]+QX[Z[12]]+QX[Z[13]]+QX[Z[14]]+QX[Z[15]]}}var Em6=($,Z,Q=(X)=>X)=>$,zm6=($)=>{switch($){case"true":return!0;case"false":return!1;default:throw Error(`Unable to parse boolean value "${$}"`)}},Pm6=($)=>{if($===null||$===void 0)return;if(typeof $==="number"){if($===0||$===1)T80.warn(mS0(`Expected boolean, got ${typeof $}: ${$}`));if($===0)return!1;if($===1)return!0}if(typeof $==="string"){let Z=$.toLowerCase();if(Z==="false"||Z==="true")T80.warn(mS0(`Expected boolean, got ${typeof $}: ${$}`));if(Z==="false")return!1;if(Z==="true")return!0}if(typeof $==="boolean")return $;throw TypeError(`Expected boolean, got ${typeof $}: ${$}`)},P80=($)=>{if($===null||$===void 0)return;if(typeof $==="string"){let Z=parseFloat($);if(!Number.isNaN(Z)){if(String(Z)!==String($))T80.warn(mS0(`Expected number but observed string: ${$}`));return Z}}if(typeof $==="number")return $;throw TypeError(`Expected number, got ${typeof $}: ${$}`)},Am6=Math.ceil(340282346638528860000000000000000000000),lS0=($)=>{let Z=P80($);if(Z!==void 0&&!Number.isNaN(Z)&&Z!==1/0&&Z!==-1/0){if(Math.abs(Z)>Am6)throw TypeError(`Expected 32-bit float, got ${$}`)}return Z},A80=($)=>{if($===null||$===void 0)return;if(Number.isInteger($)&&!Number.isNaN($))return $;throw TypeError(`Expected integer, got ${typeof $}: ${$}`)},Tm6=A80,zL1=($)=>IL1($,32),PL1=($)=>IL1($,16),AL1=($)=>IL1($,8),IL1=($,Z)=>{let Q=A80($);if(Q!==void 0&&Rm6(Q,Z)!==Q)throw TypeError(`Expected ${Z}-bit integer, got ${$}`);return Q},Rm6=($,Z)=>{switch(Z){case 32:return Int32Array.of($)[0];case 16:return Int16Array.of($)[0];case 8:return Int8Array.of($)[0]}},Im6=($,Z)=>{if($===null||$===void 0){if(Z)throw TypeError(`Expected a non-null value for ${Z}`);throw TypeError("Expected a non-null value")}return $},RG8=($)=>{if($===null||$===void 0)return;if(typeof $==="object"&&!Array.isArray($))return $;let Z=Array.isArray($)?"array":typeof $;throw TypeError(`Expected object, got ${Z}: ${$}`)},qm6=($)=>{if($===null||$===void 0)return;if(typeof $==="string")return $;if(["boolean","number","bigint"].includes(typeof $))return T80.warn(mS0(`Expected string, got ${typeof $}: ${$}`)),String($);throw TypeError(`Expected string, got ${typeof $}: ${$}`)},Mm6=($)=>{if($===null||$===void 0)return;let Z=RG8($),Q=[];for(let X in Z)if(Z[X]!=null)Q.push(X);if(Q.length===0)throw TypeError("Unions must have exactly one non-null member. None were found.");if(Q.length>1)throw TypeError(`Unions must have exactly one non-null member. Keys ${Q} were not null.`);return Z},qL1=($)=>{if(typeof $=="string")return P80(ld($));return P80($)},Vm6=qL1,IG8=($)=>{if(typeof $=="string")return lS0(ld($));return lS0($)},km6=/(-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?)|(-?Infinity)|(NaN)/g,ld=($)=>{let Z=$.match(km6);if(Z===null||Z[0].length!==$.length)throw TypeError("Expected real number, got implicit NaN");return parseFloat($)},ML1=($)=>{if(typeof $=="string")return qG8($);return P80($)},Sm6=ML1,Cm6=ML1,_m6=($)=>{if(typeof $=="string")return qG8($);return lS0($)},qG8=($)=>{switch($){case"NaN":return NaN;case"Infinity":return 1/0;case"-Infinity":return-1/0;default:throw Error(`Unable to parse float value: ${$}`)}},MG8=($)=>{if(typeof $==="string")return A80(ld($));return A80($)},vm6=MG8,xm6=($)=>{if(typeof $==="string")return zL1(ld($));return zL1($)},ud=($)=>{if(typeof $==="string")return PL1(ld($));return PL1($)},VG8=($)=>{if(typeof $==="string")return AL1(ld($));return AL1($)},mS0=($)=>{return String(TypeError($).stack||$).split(`
4712
4712
  `).slice(0,5).filter((Z)=>!Z.includes("stackTraceWarning")).join(`
4713
4713
  `)},T80={warn:console.warn},fm6=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],VL1=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function bm6($){let Z=$.getUTCFullYear(),Q=$.getUTCMonth(),X=$.getUTCDay(),Y=$.getUTCDate(),J=$.getUTCHours(),G=$.getUTCMinutes(),K=$.getUTCSeconds(),W=Y<10?`0${Y}`:`${Y}`,H=J<10?`0${J}`:`${J}`,F=G<10?`0${G}`:`${G}`,U=K<10?`0${K}`:`${K}`;return`${fm6[X]}, ${W} ${VL1[Q]} ${Z} ${H}:${F}:${U} GMT`}var ym6=new RegExp(/^(\d{4})-(\d{2})-(\d{2})[tT](\d{2}):(\d{2}):(\d{2})(?:\.(\d+))?[zZ]$/),gm6=($)=>{if($===null||$===void 0)return;if(typeof $!=="string")throw TypeError("RFC-3339 date-times must be expressed as strings");let Z=ym6.exec($);if(!Z)throw TypeError("Invalid RFC-3339 date-time value");let[Q,X,Y,J,G,K,W,H]=Z,F=ud(cd(X)),U=GU(Y,"month",1,12),N=GU(J,"day",1,31);return E80(F,U,N,{hours:G,minutes:K,seconds:W,fractionalMilliseconds:H})},hm6=new RegExp(/^(\d{4})-(\d{2})-(\d{2})[tT](\d{2}):(\d{2}):(\d{2})(?:\.(\d+))?(([-+]\d{2}\:\d{2})|[zZ])$/),um6=($)=>{if($===null||$===void 0)return;if(typeof $!=="string")throw TypeError("RFC-3339 date-times must be expressed as strings");let Z=hm6.exec($);if(!Z)throw TypeError("Invalid RFC-3339 date-time value");let[Q,X,Y,J,G,K,W,H,F]=Z,U=ud(cd(X)),N=GU(Y,"month",1,12),B=GU(J,"day",1,31),O=E80(U,N,B,{hours:G,minutes:K,seconds:W,fractionalMilliseconds:H});if(F.toUpperCase()!="Z")O.setTime(O.getTime()-em6(F));return O},cm6=new RegExp(/^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d{2}) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d{1,2}):(\d{2}):(\d{2})(?:\.(\d+))? GMT$/),lm6=new RegExp(/^(?:Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d{2})-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d{2}) (\d{1,2}):(\d{2}):(\d{2})(?:\.(\d+))? GMT$/),mm6=new RegExp(/^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( [1-9]|\d{2}) (\d{1,2}):(\d{2}):(\d{2})(?:\.(\d+))? (\d{4})$/),dm6=($)=>{if($===null||$===void 0)return;if(typeof $!=="string")throw TypeError("RFC-7231 date-times must be expressed as strings");let Z=cm6.exec($);if(Z){let[Q,X,Y,J,G,K,W,H]=Z;return E80(ud(cd(J)),wL1(Y),GU(X,"day",1,31),{hours:G,minutes:K,seconds:W,fractionalMilliseconds:H})}if(Z=lm6.exec($),Z){let[Q,X,Y,J,G,K,W,H]=Z;return tm6(E80(pm6(J),wL1(Y),GU(X,"day",1,31),{hours:G,minutes:K,seconds:W,fractionalMilliseconds:H}))}if(Z=mm6.exec($),Z){let[Q,X,Y,J,G,K,W,H]=Z;return E80(ud(cd(H)),wL1(X),GU(Y.trimLeft(),"day",1,31),{hours:J,minutes:G,seconds:K,fractionalMilliseconds:W})}throw TypeError("Invalid RFC-7231 date-time value")},im6=($)=>{if($===null||$===void 0)return;let Z;if(typeof $==="number")Z=$;else if(typeof $==="string")Z=qL1($);else if(typeof $==="object"&&$.tag===1)Z=$.value;else throw TypeError("Epoch timestamps must be expressed as floating point numbers or their string representation");if(Number.isNaN(Z)||Z===1/0||Z===-1/0)throw TypeError("Epoch timestamps must be valid, non-Infinite, non-NaN numerics");return new Date(Math.round(Z*1000))},E80=($,Z,Q,X)=>{let Y=Z-1;return rm6($,Y,Q),new Date(Date.UTC($,Y,Q,GU(X.hours,"hour",0,23),GU(X.minutes,"minute",0,59),GU(X.seconds,"seconds",0,60),sm6(X.fractionalMilliseconds)))},pm6=($)=>{let Z=new Date().getUTCFullYear(),Q=Math.floor(Z/100)*100+ud(cd($));if(Q<Z)return Q+100;return Q},nm6=1576800000000,tm6=($)=>{if($.getTime()-new Date().getTime()>nm6)return new Date(Date.UTC($.getUTCFullYear()-100,$.getUTCMonth(),$.getUTCDate(),$.getUTCHours(),$.getUTCMinutes(),$.getUTCSeconds(),$.getUTCMilliseconds()));return $},wL1=($)=>{let Z=VL1.indexOf($);if(Z<0)throw TypeError(`Invalid month: ${$}`);return Z+1},om6=[31,28,31,30,31,30,31,31,30,31,30,31],rm6=($,Z,Q)=>{let X=om6[Z];if(Z===1&&am6($))X=29;if(Q>X)throw TypeError(`Invalid day for ${VL1[Z]} in ${$}: ${Q}`)},am6=($)=>{return $%4===0&&($%100!==0||$%400===0)},GU=($,Z,Q,X)=>{let Y=VG8(cd($));if(Y<Q||Y>X)throw TypeError(`${Z} must be between ${Q} and ${X}, inclusive`);return Y},sm6=($)=>{if($===null||$===void 0)return 0;return IG8("0."+$)*1000},em6=($)=>{let Z=$[0],Q=1;if(Z=="+")Q=1;else if(Z=="-")Q=-1;else throw TypeError(`Offset direction, ${Z}, must be "+" or "-"`);let X=Number($.substring(1,3)),Y=Number($.substring(4,6));return Q*(X*60+Y)*60*1000},cd=($)=>{let Z=0;while(Z<$.length-1&&$.charAt(Z)==="0")Z++;if(Z===0)return $;return $.slice(Z)},Rb=function(Z){return Object.assign(new String(Z),{deserializeJSON(){return JSON.parse(String(Z))},toString(){return String(Z)},toJSON(){return String(Z)}})};Rb.from=($)=>{if($&&typeof $==="object"&&($ instanceof Rb||("deserializeJSON"in $)))return $;else if(typeof $==="string"||Object.getPrototypeOf($)===String.prototype)return Rb(String($));return Rb(JSON.stringify($))};Rb.fromObject=Rb.from;function $d6($){if($.includes(",")||$.includes('"'))$=`"${$.replace(/"/g,"\\\"")}"`;return $}var kL1="(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun)(?:[ne|u?r]?s?day)?",SL1="(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)",CL1="(\\d?\\d):(\\d{2}):(\\d{2})(?:\\.(\\d+))?",kG8="(\\d?\\d)",SG8="(\\d{4})",Zd6=new RegExp(/^(\d{4})-(\d\d)-(\d\d)[tT](\d\d):(\d\d):(\d\d)(\.(\d+))?(([-+]\d\d:\d\d)|[zZ])$/),Qd6=new RegExp(`^${kL1}, ${kG8} ${SL1} ${SG8} ${CL1} GMT$`),Xd6=new RegExp(`^${kL1}, ${kG8}-${SL1}-(\\d\\d) ${CL1} GMT$`),Yd6=new RegExp(`^${kL1} ${SL1} ( [1-9]|\\d\\d) ${CL1} ${SG8}$`),Jd6=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Gd6=($)=>{if($==null)return;let Z=NaN;if(typeof $==="number")Z=$;else if(typeof $==="string"){if(!/^-?\d*\.?\d+$/.test($))throw TypeError("parseEpochTimestamp - numeric string invalid.");Z=Number.parseFloat($)}else if(typeof $==="object"&&$.tag===1)Z=$.value;if(isNaN(Z)||Math.abs(Z)===1/0)throw TypeError("Epoch timestamps must be valid finite numbers.");return new Date(Math.round(Z*1000))},Kd6=($)=>{if($==null)return;if(typeof $!=="string")throw TypeError("RFC3339 timestamps must be strings");let Z=Zd6.exec($);if(!Z)throw TypeError(`Invalid RFC3339 timestamp format ${$}`);let[,Q,X,Y,J,G,K,,W,H]=Z;bB(X,1,12),bB(Y,1,31),bB(J,0,23),bB(G,0,59),bB(K,0,60);let F=new Date(Date.UTC(Number(Q),Number(X)-1,Number(Y),Number(J),Number(G),Number(K),Number(W)?Math.round(parseFloat(`0.${W}`)*1000):0));if(F.setUTCFullYear(Number(Q)),H.toUpperCase()!="Z"){let[,U,N,B]=/([+-])(\d\d):(\d\d)/.exec(H)||[void 0,"+",0,0],O=U==="-"?1:-1;F.setTime(F.getTime()+O*(Number(N)*60*60*1000+Number(B)*60*1000))}return F},Wd6=($)=>{if($==null)return;if(typeof $!=="string")throw TypeError("RFC7231 timestamps must be strings.");let Z,Q,X,Y,J,G,K,W;if(W=Qd6.exec($))[,Z,Q,X,Y,J,G,K]=W;else if(W=Xd6.exec($))[,Z,Q,X,Y,J,G,K]=W,X=(Number(X)+1900).toString();else if(W=Yd6.exec($))[,Q,Z,Y,J,G,K,X]=W;if(X&&G){let H=Date.UTC(Number(X),Jd6.indexOf(Q),Number(Z),Number(Y),Number(J),Number(G),K?Math.round(parseFloat(`0.${K}`)*1000):0);bB(Z,1,31),bB(Y,0,23),bB(J,0,59),bB(G,0,60);let F=new Date(H);return F.setUTCFullYear(Number(X)),F}throw TypeError(`Invalid RFC7231 date-time value ${$}.`)};function bB($,Z,Q){let X=Number($);if(X<Z||X>Q)throw Error(`Value ${X} out of range [${Z}, ${Q}]`)}function Hd6($,Z,Q){if(Q<=0||!Number.isInteger(Q))throw Error("Invalid number of delimiters ("+Q+") for splitEvery.");let X=$.split(Z);if(Q===1)return X;let Y=[],J="";for(let G=0;G<X.length;G++){if(J==="")J=X[G];else J+=Z+X[G];if((G+1)%Q===0)Y.push(J),J=""}if(J!=="")Y.push(J);return Y}var Fd6=($)=>{let Z=$.length,Q=[],X=!1,Y=void 0,J=0;for(let G=0;G<Z;++G){let K=$[G];switch(K){case'"':if(Y!=="\\")X=!X;break;case",":if(!X)Q.push($.slice(J,G)),J=G+1;break}Y=K}return Q.push($.slice(J)),Q.map((G)=>{G=G.trim();let K=G.length;if(K<2)return G;if(G[0]==='"'&&G[K-1]==='"')G=G.slice(1,K-1);return G.replace(/\\"/g,'"')})},DG8=/^-?\d*(\.\d+)?$/;class nS0{string;type;constructor($,Z){if(this.string=$,this.type=Z,!DG8.test($))throw Error('@smithy/core/serde - NumericValue must only contain [0-9], at most one decimal point ".", and an optional negation prefix "-".')}toString(){return this.string}static[Symbol.hasInstance]($){if(!$||typeof $!=="object")return!1;let Z=$;return nS0.prototype.isPrototypeOf($)||Z.type==="bigDecimal"&&DG8.test(Z.string)}}function Ud6($){return new nS0(String($),"bigDecimal")}var CG8={},TL1={};for(let $=0;$<256;$++){let Z=$.toString(16).toLowerCase();if(Z.length===1)Z=`0${Z}`;CG8[$]=Z,TL1[Z]=$}function Nd6($){if($.length%2!==0)throw Error("Hex encoded strings must have an even number length");let Z=new Uint8Array($.length/2);for(let Q=0;Q<$.length;Q+=2){let X=$.slice(Q,Q+2).toLowerCase();if(X in TL1)Z[Q/2]=TL1[X];else throw Error(`Cannot decode unrecognized sequence ${X} as hexadecimal`)}return Z}function _G8($){let Z="";for(let Q=0;Q<$.byteLength;Q++)Z+=CG8[$[Q]];return Z}var Bd6=($)=>{if(!$)return 0;if(typeof $==="string")return Buffer.byteLength($);else if(typeof $.byteLength==="number")return $.byteLength;else if(typeof $.size==="number")return $.size;else if(typeof $.start==="number"&&typeof $.end==="number")return $.end+1-$.start;else if($ instanceof LL1.ReadStream){if($.path!=null)return LL1.lstatSync($.path).size;else if(typeof $.fd==="number")return LL1.fstatSync($.fd).size}throw Error(`Body Length computation failed for ${$}`)},vG8=($)=>{if(typeof $==="string")return pS0($);if(ArrayBuffer.isView($))return new Uint8Array($.buffer,$.byteOffset,$.byteLength/Uint8Array.BYTES_PER_ELEMENT);return new Uint8Array($)},xG8=($,Z)=>(Q,X)=>async(Y)=>{let{response:J}=await Q(Y);try{let G=await Z(J,$);return{response:J,output:G}}catch(G){if(Object.defineProperty(G,"$response",{value:J,enumerable:!1,writable:!1,configurable:!1}),!("$metadata"in G)){try{G.message+=`
4714
4714
  Deserialization error: to see the raw response, inspect the hidden field {error}.$response on this object.`}catch(W){if(!X.logger||X.logger?.constructor?.name==="NoOpLogger")console.warn("Deserialization error: to see the raw response, inspect the hidden field {error}.$response on this object.");else X.logger?.warn?.("Deserialization error: to see the raw response, inspect the hidden field {error}.$response on this object.")}if(typeof G.$responseBodyText<"u"){if(G.$response)G.$response.body=G.$responseBodyText}try{if(Om6.HttpResponse.isInstance(J)){let{headers:W={}}=J,H=Object.entries(W);G.$metadata={httpStatusCode:J.statusCode,requestId:jL1(/^x-[\w-]+-request-?id$/,H),extendedRequestId:jL1(/^x-[\w-]+-id-2$/,H),cfId:jL1(/^x-[\w-]+-cf-id$/,H)}}}catch(W){}}throw G}},jL1=($,Z)=>{return(Z.find(([Q])=>{return Q.match($)})||[void 0,void 0])[1]},fG8=($,Z)=>(Q,X)=>async(Y)=>{let J=$,G=X.endpointV2?async()=>Dm6.toEndpointV1(X.endpointV2):J.endpoint;if(!G)throw Error("No valid endpoint provider available.");let K=await Z(Y.input,{...$,endpoint:G});return Q({...Y,request:K})},bG8={name:"deserializerMiddleware",step:"deserialize",tags:["DESERIALIZER"],override:!0},yG8={name:"serializerMiddleware",step:"serialize",tags:["SERIALIZER"],override:!0};function Od6($,Z,Q){return{applyToStack:(X)=>{X.add(xG8($,Q),bG8),X.add(fG8($,Z),yG8)}}}class gG8{algorithmIdentifier;secret;hash;constructor($,Z){this.algorithmIdentifier=$,this.secret=Z,this.reset()}update($,Z){this.hash.update(vG8(LG8($,Z)))}digest(){return Promise.resolve(this.hash.digest())}reset(){this.hash=this.secret?EL1.createHmac(this.algorithmIdentifier,LG8(this.secret)):EL1.createHash(this.algorithmIdentifier)}}function LG8($,Z){if(Buffer.isBuffer($))return $;if(typeof $==="string")return iS0($,Z);if(ArrayBuffer.isView($))return hd($.buffer,$.byteOffset,$.byteLength);return hd($)}var hG8=class extends JU.Duplex{expectedChecksum;checksumSourceLocation;checksum;source;base64Encoder;pendingCallback=null;constructor({expectedChecksum:Z,checksum:Q,source:X,checksumSourceLocation:Y,base64Encoder:J}){super();if(typeof X.pipe==="function")this.source=X;else throw Error(`@smithy/util-stream: unsupported source type ${X?.constructor?.name??X} in ChecksumStream.`);this.base64Encoder=J??RL1,this.expectedChecksum=Z,this.checksum=Q,this.checksumSourceLocation=Y,this.source.pipe(this)}_read(Z){if(this.pendingCallback){let Q=this.pendingCallback;this.pendingCallback=null,Q()}}_write(Z,Q,X){try{if(this.checksum.update(Z),!this.push(Z)){this.pendingCallback=X;return}}catch(Y){return X(Y)}return X()}async _final(Z){try{let Q=await this.checksum.digest(),X=this.base64Encoder(Q);if(this.expectedChecksum!==X)return Z(Error(`Checksum mismatch: expected "${this.expectedChecksum}" but received "${X}" in response header "${this.checksumSourceLocation}".`))}catch(Q){return Z(Q)}return this.push(null),Z()}},yB=($)=>typeof ReadableStream==="function"&&($?.constructor?.name===ReadableStream.name||$ instanceof ReadableStream),uG8=($)=>{return typeof Blob==="function"&&($?.constructor?.name===Blob.name||$ instanceof Blob)},Dd6=($)=>new TextEncoder().encode($),cG8="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",wG8=Object.entries(cG8).reduce(($,[Z,Q])=>{return $[Q]=Number(Z),$},{}),Ld6=cG8.split(""),yd=6,z80=8,wd6=63;function lG8($){let Z;if(typeof $==="string")Z=Dd6($);else Z=$;let Q=typeof Z==="object"&&typeof Z.length==="number",X=typeof Z==="object"&&typeof Z.byteOffset==="number"&&typeof Z.byteLength==="number";if(!Q&&!X)throw Error("@smithy/util-base64: toBase64 encoder function only accepts string | Uint8Array.");let Y="";for(let J=0;J<Z.length;J+=3){let G=0,K=0;for(let H=J,F=Math.min(J+3,Z.length);H<F;H++)G|=Z[H]<<(F-H-1)*z80,K+=z80;let W=Math.ceil(K/yd);G<<=W*yd-K;for(let H=1;H<=W;H++){let F=(W-H)*yd;Y+=Ld6[(G&wd6<<F)>>F]}Y+="==".slice(0,4-W)}return Y}var jd6=typeof ReadableStream==="function"?ReadableStream:function(){};class mG8 extends jd6{}var Ed6=({expectedChecksum:$,checksum:Z,source:Q,checksumSourceLocation:X,base64Encoder:Y})=>{if(!yB(Q))throw Error(`@smithy/util-stream: unsupported source type ${Q?.constructor?.name??Q} in ChecksumStream.`);let J=Y??lG8;if(typeof TransformStream!=="function")throw Error("@smithy/util-stream: unable to instantiate ChecksumStream because API unavailable: ReadableStream/TransformStream.");let G=new TransformStream({start(){},async transform(W,H){Z.update(W),H.enqueue(W)},async flush(W){let H=await Z.digest(),F=J(H);if($!==F){let U=Error(`Checksum mismatch: expected "${$}" but received "${F}" in response header "${X}".`);W.error(U)}else W.terminate()}});Q.pipeThrough(G);let K=G.readable;return Object.setPrototypeOf(K,mG8.prototype),K};function zd6($){if(typeof ReadableStream==="function"&&yB($.source))return Ed6($);return new hG8($)}class dS0{allocByteArray;byteLength=0;byteArrays=[];constructor($){this.allocByteArray=$}push($){this.byteArrays.push($),this.byteLength+=$.byteLength}flush(){if(this.byteArrays.length===1){let Q=this.byteArrays[0];return this.reset(),Q}let $=this.allocByteArray(this.byteLength),Z=0;for(let Q=0;Q<this.byteArrays.length;++Q){let X=this.byteArrays[Q];$.set(X,Z),Z+=X.byteLength}return this.reset(),$}reset(){this.byteArrays=[],this.byteLength=0}}function Pd6($,Z,Q){let X=$.getReader(),Y=!1,J=0,G=["",new dS0((H)=>new Uint8Array(H))],K=-1,W=async(H)=>{let{value:F,done:U}=await X.read(),N=F;if(U){if(K!==-1){let B=gd(G,K);if(Ej(B)>0)H.enqueue(B)}H.close()}else{let B=iG8(N,!1);if(K!==B){if(K>=0)H.enqueue(gd(G,K));K=B}if(K===-1){H.enqueue(N);return}let O=Ej(N);J+=O;let L=Ej(G[K]);if(O>=Z&&L===0)H.enqueue(N);else{let w=dG8(G,K,N);if(!Y&&J>Z*2)Y=!0,Q?.warn(`@smithy/util-stream - stream chunk size ${O} is below threshold of ${Z}, automatically buffering.`);if(w>=Z)H.enqueue(gd(G,K));else await W(H)}}};return new ReadableStream({pull:W})}function dG8($,Z,Q){switch(Z){case 0:return $[0]+=Q,Ej($[0]);case 1:case 2:return $[Z].push(Q),Ej($[Z])}}function gd($,Z){switch(Z){case 0:let Q=$[0];return $[0]="",Q;case 1:case 2:return $[Z].flush()}throw Error(`@smithy/util-stream - invalid index ${Z} given to flush()`)}function Ej($){return $?.byteLength??$?.length??0}function iG8($,Z=!0){if(Z&&typeof Buffer<"u"&&$ instanceof Buffer)return 2;if($ instanceof Uint8Array)return 1;if(typeof $==="string")return 0;return-1}function Ad6($,Z,Q){if(yB($))return Pd6($,Z,Q);let X=new JU.Readable({read(){}}),Y=!1,J=0,G=["",new dS0((W)=>new Uint8Array(W)),new dS0((W)=>Buffer.from(new Uint8Array(W)))],K=-1;return $.on("data",(W)=>{let H=iG8(W,!0);if(K!==H){if(K>=0)X.push(gd(G,K));K=H}if(K===-1){X.push(W);return}let F=Ej(W);J+=F;let U=Ej(G[K]);if(F>=Z&&U===0)X.push(W);else{let N=dG8(G,K,W);if(!Y&&J>Z*2)Y=!0,Q?.warn(`@smithy/util-stream - stream chunk size ${F} is below threshold of ${Z}, automatically buffering.`);if(N>=Z)X.push(gd(G,K))}}),$.on("end",()=>{if(K!==-1){let W=gd(G,K);if(Ej(W)>0)X.push(W)}X.push(null)}),X}var Td6=($,Z)=>{let{base64Encoder:Q,bodyLengthChecker:X,checksumAlgorithmFn:Y,checksumLocationName:J,streamHasher:G}=Z,K=Q!==void 0&&X!==void 0&&Y!==void 0&&J!==void 0&&G!==void 0,W=K?G(Y,$):void 0,H=$.getReader();return new ReadableStream({async pull(F){let{value:U,done:N}=await H.read();if(N){if(F.enqueue(`0\r