decocms 4.463.4 → 4.464.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (361) hide show
  1. package/dist/client/assets/{AlertCircle-C4DXnwFn.js → AlertCircle-DQV9Mc17.js} +1 -1
  2. package/dist/client/assets/{AreaChart-C4aYAk3M.js → AreaChart-CzwL_0OC.js} +1 -1
  3. package/dist/client/assets/{ArrowLeft-CrkIBy0V.js → ArrowLeft-BIML-f0i.js} +1 -1
  4. package/dist/client/assets/{ArrowUp-BnfRDCtj.js → ArrowUp-CmgvSWvg.js} +1 -1
  5. package/dist/client/assets/{Building02-BPYbBF2i.js → Building02-DGed7X87.js} +1 -1
  6. package/dist/client/assets/{CartesianChart-CRugr-3S.js → CartesianChart-D2XReMlE.js} +1 -1
  7. package/dist/client/assets/{Check-C9M_J-LM.js → Check-DmssFQIB.js} +1 -1
  8. package/dist/client/assets/{CheckCircle-DQXE_7xq.js → CheckCircle-CGt4I_97.js} +1 -1
  9. package/dist/client/assets/{ChevronUp-CBkP5lJ3.js → ChevronUp-CVGAY_3s.js} +1 -1
  10. package/dist/client/assets/{Copy01-CKIM4Pkm.js → Copy01-Bv3jpVlA.js} +1 -1
  11. package/dist/client/assets/{CreditCard01-mihIPdMc.js → CreditCard01-CsLyF3kp.js} +1 -1
  12. package/dist/client/assets/{DotsVertical-MDoiMcyS.js → DotsVertical-CiM8md1y.js} +1 -1
  13. package/dist/client/assets/{ErrorBarContext-YQZ6sHbN.js → ErrorBarContext-C-Br6GDZ.js} +1 -1
  14. package/dist/client/assets/{Globe04-BVo4VIK3.js → Globe04-5mRZfz3d.js} +1 -1
  15. package/dist/client/assets/{Image01-DAxDkgZe.js → Image01-DxzRuuii.js} +1 -1
  16. package/dist/client/assets/{Key01-BecEypam.js → Key01-4ZMPLPba.js} +1 -1
  17. package/dist/client/assets/{Line-CnwZfFbk.js → Line-CDL5qmk5.js} +1 -1
  18. package/dist/client/assets/{Link01-BaYhDh62.js → Link01-M6drdXoX.js} +1 -1
  19. package/dist/client/assets/{LinkBroken01-L4YdRGCB.js → LinkBroken01-W0guIiTp.js} +1 -1
  20. package/dist/client/assets/{LinkExternal01-DxB383PE.js → LinkExternal01-ClcRo1x1.js} +1 -1
  21. package/dist/client/assets/{Monitor01-BZ4Tb3b1.js → Monitor01-Dk1HgiBj.js} +1 -1
  22. package/dist/client/assets/{Plus-Cs-2g2Qd.js → Plus-Bq5ZeuHM.js} +1 -1
  23. package/dist/client/assets/{SearchMd-5FUtMWhs.js → SearchMd-tAwrJP3u.js} +1 -1
  24. package/dist/client/assets/{Sector-BQIwpgQ2.js → Sector-JvAmi2ld.js} +1 -1
  25. package/dist/client/assets/{ShoppingBag01-BTLZ3hJs.js → ShoppingBag01-CQ0azIkw.js} +1 -1
  26. package/dist/client/assets/{Sun-DcYaxvKG.js → Sun-k0O1HcgT.js} +1 -1
  27. package/dist/client/assets/{Tool01-CNesLJor.js → Tool01-rcwjZJWt.js} +1 -1
  28. package/dist/client/assets/{Trash01-DE391E6L.js → Trash01-yUMH9377.js} +1 -1
  29. package/dist/client/assets/{Upload01-Bpw1Ptny.js → Upload01-BPuydd_6.js} +1 -1
  30. package/dist/client/assets/{User01-CALUsh4b.js → User01-9b4OuT4C.js} +1 -1
  31. package/dist/client/assets/{UserSquare-4sy2jBCi.js → UserSquare-weua4atg.js} +1 -1
  32. package/dist/client/assets/{Users01-0TYS4mlz.js → Users01-CldLEl2f.js} +1 -1
  33. package/dist/client/assets/{X-vN3laxlE.js → X-CSlg1sd1.js} +1 -1
  34. package/dist/client/assets/{XAxis-Cg3y9K45.js → XAxis-B6QoWNgI.js} +1 -1
  35. package/dist/client/assets/{XClose-B2A5kkkA.js → XClose-C0S6AMzF.js} +1 -1
  36. package/dist/client/assets/{ZoomOut-BDXMBoQj.js → ZoomOut-B5ON1ruo.js} +1 -1
  37. package/dist/client/assets/{access-gate-DaCns1ta.js → access-gate-wsITlSLv.js} +1 -1
  38. package/dist/client/assets/{add-connection-dialog-C_DxcbJU.js → add-connection-dialog-DmB5Tp1t.js} +1 -1
  39. package/dist/client/assets/{agent-analytics-BA0230tU.js → agent-analytics-COWh3k0y.js} +1 -1
  40. package/dist/client/assets/agent-app-BMiZhYH8.js +1 -0
  41. package/dist/client/assets/{agent-assets-BmNu-rqc.js → agent-assets-vxaygUwM.js} +1 -1
  42. package/dist/client/assets/{agent-automation-Dp9VCXvd.js → agent-automation-Bql0c9tj.js} +1 -1
  43. package/dist/client/assets/{agent-automations-pzZlCv0K.js → agent-automations-_X1sp0GW.js} +1 -1
  44. package/dist/client/assets/{agent-connect-sources-CWxuT9Ym.js → agent-connect-sources-CPv0fITp.js} +1 -1
  45. package/dist/client/assets/agent-deck-FGeLoxV6.js +1 -0
  46. package/dist/client/assets/{agent-e2e-DUEsXfL0.js → agent-e2e-CMHIR015.js} +1 -1
  47. package/dist/client/assets/{agent-experiments-e-uhjS-2.js → agent-experiments-CHj6csUz.js} +1 -1
  48. package/dist/client/assets/{agent-file-BLu5RCXn.js → agent-file-CxDhiG4P.js} +1 -1
  49. package/dist/client/assets/{agent-hosting-BEb4O812.js → agent-hosting-gFRKRolp.js} +1 -1
  50. package/dist/client/assets/{agent-icon-M8hOOBGO.js → agent-icon-D8yc3w6R.js} +1 -1
  51. package/dist/client/assets/agent-library-LrrHuS7D.js +1 -0
  52. package/dist/client/assets/agent-library-file-BLw9efSo.js +1 -0
  53. package/dist/client/assets/{agent-monitor-DhEGMHVd.js → agent-monitor-BjVDNyvC.js} +1 -1
  54. package/dist/client/assets/{agent-overview-BZMTPL9y.js → agent-overview-J7pfgPo-.js} +1 -1
  55. package/dist/client/assets/agent-settings-CDE-pry8.js +1 -0
  56. package/dist/client/assets/{agent-site-editor-wXWXEvau.js → agent-site-editor-BbsHETjh.js} +1 -1
  57. package/dist/client/assets/agent-site-editor-code-BcJo1Q0k.js +2 -0
  58. package/dist/client/assets/{agent-site-editor-content-nNrgHJFZ.js → agent-site-editor-content-D4Uvng3A.js} +3 -3
  59. package/dist/client/assets/{agent-site-editor-preview-DRNs2tRR.js → agent-site-editor-preview-DlXIF9M4.js} +3 -3
  60. package/dist/client/assets/agent-view-R-jvAhEj.js +1 -0
  61. package/dist/client/assets/{agent-view-guard-CuJWB1rc.js → agent-view-guard-TDUYhJq5.js} +1 -1
  62. package/dist/client/assets/{agents-list-B8PgWXTV.js → agents-list-C5OkLPTK.js} +1 -1
  63. package/dist/client/assets/ai-providers-Bacz0fJf.js +6 -0
  64. package/dist/client/assets/{alert-CNfOXZXm.js → alert-J_b2yVvo.js} +1 -1
  65. package/dist/client/assets/{alert-dialog-CD7bONGt.js → alert-dialog-CKYS0LsF.js} +1 -1
  66. package/dist/client/assets/{analytics-sections-B3KvVOzm.js → analytics-sections-ZsK7uq3f.js} +1 -1
  67. package/dist/client/assets/api-keys-BgBgaYGy.js +1 -0
  68. package/dist/client/assets/{api-keys-CvrvRwIy.js → api-keys-C431U9eo.js} +1 -1
  69. package/dist/client/assets/app-editor-DcmuCwYc.js +1 -0
  70. package/dist/client/assets/{asset-utils-BhBXVEWW.js → asset-utils-D5QKKx4Y.js} +1 -1
  71. package/dist/client/assets/{auth-BSrtHG_U.js → auth-X1Z9onOC.js} +1 -1
  72. package/dist/client/assets/{auth-catchall-B-AsjQQJ.js → auth-catchall-CR9-8FfT.js} +1 -1
  73. package/dist/client/assets/{auth-entry-DAP_uAT-.js → auth-entry-L4bAWuSf.js} +1 -1
  74. package/dist/client/assets/{auth-split-layout-Dd9Sk0t6.js → auth-split-layout-_jdkkrAk.js} +1 -1
  75. package/dist/client/assets/{authenticate-and-persist-oauth-2jMjQnil.js → authenticate-and-persist-oauth-BcuXsDL9.js} +1 -1
  76. package/dist/client/assets/{automation-list-row-CMM007f8.js → automation-list-row-MuL7roXA.js} +1 -1
  77. package/dist/client/assets/{automation-runs-Daf8st2N.js → automation-runs-DwoUyiIm.js} +1 -1
  78. package/dist/client/assets/{automations-Bog_z4EB.js → automations-BbgH8-CD.js} +1 -1
  79. package/dist/client/assets/{autosend-XlMc1k2t.js → autosend-DkkevtpV.js} +1 -1
  80. package/dist/client/assets/{avatar-CnRwulV6.js → avatar-C9IBeU_l.js} +1 -1
  81. package/dist/client/assets/{badge-BdUUSOSl.js → badge-DnZUOPBJ.js} +1 -1
  82. package/dist/client/assets/{block-document-pc2wT72O.js → block-document-DF5TRNns.js} +1 -1
  83. package/dist/client/assets/{blocks-preview-workspace-context-BaEmHZHR.js → blocks-preview-workspace-context-CJJUwJec.js} +1 -1
  84. package/dist/client/assets/{blog-schema-CL1GKnSp.js → blog-schema-DWZAnIQ1.js} +1 -1
  85. package/dist/client/assets/{buckets-KxS-7OtP.js → buckets-Dl9hB7GO.js} +1 -1
  86. package/dist/client/assets/{build-improve-prompt-doc-C2Fp9U8b.js → build-improve-prompt-doc-B9VDt7kz.js} +1 -1
  87. package/dist/client/assets/{calendar-Cijmm0eN.js → calendar-EePJktQb.js} +1 -1
  88. package/dist/client/assets/{capability-load-error-BZwFnQBq.js → capability-load-error-BXtQ4mcH.js} +1 -1
  89. package/dist/client/assets/{category-editor-DtPlLIY_.js → category-editor-B2ITIbFS.js} +1 -1
  90. package/dist/client/assets/{chart-DJqB9fzG.js → chart-C517W9OG.js} +1 -1
  91. package/dist/client/assets/{chat-context-CmUEyw_S.js → chat-context-BBq6hHFG.js} +1 -1
  92. package/dist/client/assets/{chat-draft-cWvyWURL.js → chat-draft-CKTALvc8.js} +1 -1
  93. package/dist/client/assets/{checkbox-DNDTd2PL.js → checkbox-BVp3RnTH.js} +1 -1
  94. package/dist/client/assets/{choose-editor-CKpM7oiY.js → choose-editor-D6RbpQUd.js} +1 -1
  95. package/dist/client/assets/{claim-phase-copy-B2P2zW65.js → claim-phase-copy-kAK6lKjq.js} +1 -1
  96. package/dist/client/assets/{cli-auth-success-DpJGsn94.js → cli-auth-success-B6fw81Mk.js} +1 -1
  97. package/dist/client/assets/{client-icons-CFe1J8S6.js → client-icons-CZZeWA6p.js} +1 -1
  98. package/dist/client/assets/{collapsible-CVmupvCA.js → collapsible-A7bkzZzr.js} +1 -1
  99. package/dist/client/assets/{collection-detail-BlZcNZ2C.js → collection-detail-qwuQrEV2.js} +1 -1
  100. package/dist/client/assets/{collection-display-button-CxzEp_83.js → collection-display-button-CSj3XI8l.js} +1 -1
  101. package/dist/client/assets/{collection-search-CwnvK4XY.js → collection-search-B9IMZJsF.js} +1 -1
  102. package/dist/client/assets/{collection-table-wrapper-CqZNwayf.js → collection-table-wrapper-pNeiHPqf.js} +1 -1
  103. package/dist/client/assets/{collection-tabs-BFd1UDzi.js → collection-tabs-BzgezmYW.js} +1 -1
  104. package/dist/client/assets/{column-rules-DeO1GQGi.js → column-rules-C9tvlrM1.js} +1 -1
  105. package/dist/client/assets/{combobox-D8LAHHQn.js → combobox-DegZE00E.js} +1 -1
  106. package/dist/client/assets/{command-Db_xDGOA.js → command-DePL1KHf.js} +1 -1
  107. package/dist/client/assets/{companion-mcps-section-Brye3YBv.js → companion-mcps-section-CN_sCpjp.js} +1 -1
  108. package/dist/client/assets/{config-BeqEvn5c.js → config-7uBrtNMv.js} +1 -1
  109. package/dist/client/assets/{connect-layout-BCuoMMK8.js → connect-layout-Cwjckis6.js} +1 -1
  110. package/dist/client/assets/{connect-BbNbISa1.js → connect-p0fOlsLZ.js} +1 -1
  111. package/dist/client/assets/{connection-DN7wKcUN.js → connection-DCVuC0Zx.js} +1 -1
  112. package/dist/client/assets/{connection-card-Dh0pA57A.js → connection-card-Btw9Ejzr.js} +1 -1
  113. package/dist/client/assets/{connection-detail-B8mScgEz.js → connection-detail-CF8jfL8Y.js} +1 -1
  114. package/dist/client/assets/{connection-form-helpers-DsyFIBZi.js → connection-form-helpers-BQlKyorY.js} +1 -1
  115. package/dist/client/assets/{connections-COZbDLgw.js → connections-CJy_kWpN.js} +1 -1
  116. package/dist/client/assets/{context-BtBMcyCO.js → context-ChwglEu1.js} +1 -1
  117. package/dist/client/assets/{context-menu-BDYBxqWz.js → context-menu-FQl0AMt3.js} +1 -1
  118. package/dist/client/assets/{core.esm-BqvPRiP4.js → core.esm-mpmypmP_.js} +1 -1
  119. package/dist/client/assets/{create-organization-dialog-FTVVO_At.js → create-organization-dialog-gzutvP47.js} +1 -1
  120. package/dist/client/assets/{daily-pulse-DTuozo6P.js → daily-pulse-BDgY94Bx.js} +1 -1
  121. package/dist/client/assets/{decopilot-k0GhcGeT.js → decopilot-B7t1igaZ.js} +1 -1
  122. package/dist/client/assets/{device-hint-CUmrR_6F.js → device-hint-BSbproDJ.js} +1 -1
  123. package/dist/client/assets/{dialog-CO7_Aog-.js → dialog-l0pufTcv.js} +1 -1
  124. package/dist/client/assets/{discover-SPORwYNc.js → discover-D1melSDb.js} +1 -1
  125. package/dist/client/assets/{domain-settings-BMzJMRXq.js → domain-settings-BZjTA4JT.js} +1 -1
  126. package/dist/client/assets/{download-app-dialog-DnwHS1PT.js → download-app-dialog-aNLwMPvt.js} +1 -1
  127. package/dist/client/assets/{drawer-oFC8StUp.js → drawer-O3qcVpDl.js} +1 -1
  128. package/dist/client/assets/{editor-BzFGeG3l.js → editor-BIWtbhSE.js} +1 -1
  129. package/dist/client/assets/{empty-state-D1CWJ8ql.js → empty-state-5G-3M3tz.js} +1 -1
  130. package/dist/client/assets/{empty-state-NGQMUmeG.js → empty-state-CnyX2qZd.js} +1 -1
  131. package/dist/client/assets/{extract-connection-data-BgBd9DCF.js → extract-connection-data-Ou6b9boP.js} +1 -1
  132. package/dist/client/assets/{feature-gate-BRLcRTY8.js → feature-gate-0YtGKR_-.js} +1 -1
  133. package/dist/client/assets/{feature-paywall-DN29gnnp.js → feature-paywall-D8WPGLf9.js} +1 -1
  134. package/dist/client/assets/{file-explorer-BS5C5Qma.js → file-explorer-g9d9yH9T.js} +1 -1
  135. package/dist/client/assets/{file-preview-BaVjTppN.js → file-preview-DMt8pvXn.js} +1 -1
  136. package/dist/client/assets/{file-share-button-CHqbxQ2g.js → file-share-button-BVh37pd9.js} +1 -1
  137. package/dist/client/assets/{file-type-icon-Dpv7TxDs.js → file-type-icon-hpzbwXLS.js} +1 -1
  138. package/dist/client/assets/flat-project-C5XVxOtg.js +1 -0
  139. package/dist/client/assets/{folder-icon-CeSOff0I.js → folder-icon-BDmQmtS4.js} +1 -1
  140. package/dist/client/assets/{form-DhLA4e9V.js → form-DWldHPd_.js} +1 -1
  141. package/dist/client/assets/{gateway-client-CfQ0xy5j.js → gateway-client-F47a4lAO.js} +1 -1
  142. package/dist/client/assets/{general-BIPOgqg4.js → general-D7v_Aq_7.js} +1 -1
  143. package/dist/client/assets/{home-H1MypeCx.js → home-BG1eZNoA.js} +1 -1
  144. package/dist/client/assets/{icon-button-DRmJWdFS.js → icon-button-DznlvwEZ.js} +1 -1
  145. package/dist/client/assets/{index-BkOteY4c.js → index-BKCduH1k.js} +1 -1
  146. package/dist/client/assets/{index-Cew4MYfd.js → index-BfpLxh6F.js} +1 -1
  147. package/dist/client/assets/{index-BAhcg2K-.js → index-C6yXfhc9.js} +4 -4
  148. package/dist/client/assets/{index-C4WmY2mf.js → index-C7rfJP0V.js} +1 -1
  149. package/dist/client/assets/{index-B81tZ0cc.js → index-CG2TCOgB.js} +1 -1
  150. package/dist/client/assets/{index-2NyPySDN.js → index-CbdGjCTT.js} +1 -1
  151. package/dist/client/assets/{index-4T-3pOoC.js → index-ConwWJ1X.js} +1 -1
  152. package/dist/client/assets/{index-MungJLiq.js → index-Cz35IBPv.js} +1 -1
  153. package/dist/client/assets/{index-DlA1sXNf.js → index-D8A1zhxX.js} +1 -1
  154. package/dist/client/assets/{index-DDjki-DS.js → index-DLbiJWsU.js} +1 -1
  155. package/dist/client/assets/{index-CDvvQ8mj.js → index-DPiOtvZ-.js} +3 -3
  156. package/dist/client/assets/{index-Cp_9VTvZ.js → index-DR_zH_im.js} +1 -1
  157. package/dist/client/assets/{index-CAuUMShE.js → index-Dncdnplw.js} +1 -1
  158. package/dist/client/assets/{index-BV9sT4Zt.js → index-Dv_pP_8t.js} +1 -1
  159. package/dist/client/assets/{index-By0hja7x.js → index-VNSzHC97.js} +1 -1
  160. package/dist/client/assets/{index-redirect-DCZ7y0Zv.js → index-redirect-D9moqplU.js} +1 -1
  161. package/dist/client/assets/{infiniteQueryObserver-Criet79k.js → infiniteQueryObserver-Bs8aLdDs.js} +1 -1
  162. package/dist/client/assets/{infra-billing-1jBUonK5.js → infra-billing-jIDwnAPk.js} +1 -1
  163. package/dist/client/assets/{input-CtT1bndp.js → input-6-0u-Xnr.js} +3 -3
  164. package/dist/client/assets/{input-BVnBMwgz.js → input-Dgrf_P4M.js} +1 -1
  165. package/dist/client/assets/{input--oqEkg4e.js → input-N6YgtZtv.js} +1 -1
  166. package/dist/client/assets/{integration-icon-C3Eb4y6v.js → integration-icon-BUQcDswF.js} +1 -1
  167. package/dist/client/assets/{label-DTHRCZU2.js → label-Ccn3ZfwY.js} +1 -1
  168. package/dist/client/assets/{layout-CIhgL_6i.js → layout-CA0vSGPy.js} +1 -1
  169. package/dist/client/assets/{legacy-agents-deep-BVExVzvA.js → legacy-agents-deep-CMLX5lnO.js} +1 -1
  170. package/dist/client/assets/{legacy-main-redirect-BOLfolkB.js → legacy-main-redirect-CD-VnYY1.js} +1 -1
  171. package/dist/client/assets/library-B0RdJJFZ.js +1 -0
  172. package/dist/client/assets/{library-tab-BDQZAjZl.js → library-tab-DBOv_vFI.js} +1 -1
  173. package/dist/client/assets/{login-D0gfA0n6.js → login--Au7Agvr.js} +1 -1
  174. package/dist/client/assets/{markdown-BImqcCfy.js → markdown-BX8FMyIV.js} +1 -1
  175. package/dist/client/assets/{mcp-app-renderer-Udj2fjiO.js → mcp-app-renderer-NdZTHRTE.js} +1 -1
  176. package/dist/client/assets/{mcp-oauth-BLd7mHPD.js → mcp-oauth-DmWr-lw_.js} +1 -1
  177. package/dist/client/assets/{members-FJEMo5iQ.js → members-BYrrt_AB.js} +1 -1
  178. package/dist/client/assets/{memory-BXgoZJ8S.js → memory-AEBksrRq.js} +1 -1
  179. package/dist/client/assets/{mini-report-page-BmXU622N.js → mini-report-page-B4q5NRJH.js} +1 -1
  180. package/dist/client/assets/{mock-board-BVYoej1h.js → mock-board-DLS6WsKv.js} +1 -1
  181. package/dist/client/assets/{monaco-editor-CmLSIzfu.js → monaco-editor-CL7Ar-yE.js} +1 -1
  182. package/dist/client/assets/{monitoring-stats-row-CPIx5sjP.js → monitoring-stats-row-CGiwUMyi.js} +1 -1
  183. package/dist/client/assets/{multi-select-Tv0Y-nlA.js → multi-select-EdnQj9js.js} +1 -1
  184. package/dist/client/assets/{mustache-CE0WA6lU.js → mustache-BK4wbMc2.js} +1 -1
  185. package/dist/client/assets/{new-project-dialog-Crf97C1d.js → new-project-dialog-Bk9ESA8g.js} +1 -1
  186. package/dist/client/assets/{oauth-callback-DGLdc_Gt.js → oauth-callback-DIwVH3Uw.js} +1 -1
  187. package/dist/client/assets/{oauth-callback-ai-provider-BFSS179L.js → oauth-callback-ai-provider-CAoyiStn.js} +1 -1
  188. package/dist/client/assets/{onboarding-CQ8EldV7.js → onboarding-CQYgAqHT.js} +1 -1
  189. package/dist/client/assets/{openai-conversation-C_enqR7A.js → openai-conversation-iF2kou5K.js} +1 -1
  190. package/dist/client/assets/{optimistic-project-sidebar-views-Cyqpnahl.js → optimistic-project-sidebar-views-C_sD1ykF.js} +1 -1
  191. package/dist/client/assets/{org-file-open-context-Dv3GKmEo.js → org-file-open-context-DcBRlv30.js} +1 -1
  192. package/dist/client/assets/{organization-choice-Dx6vK-tB.js → organization-choice-veZx-Rz4.js} +1 -1
  193. package/dist/client/assets/{orgs-BRfbfZqD.js → orgs-CIc9k45k.js} +1 -1
  194. package/dist/client/assets/{page-seo-form-CrMMgt7T.js → page-seo-form-CcIjbE82.js} +1 -1
  195. package/dist/client/assets/{pair-CROt8_FJ.js → pair-BBstx80k.js} +1 -1
  196. package/dist/client/assets/plan-ladder-DrvNerIK.js +1 -0
  197. package/dist/client/assets/{popover-DMbWhm29.js → popover-C8xX_Eza.js} +1 -1
  198. package/dist/client/assets/{post-calendar-C0eje06n.js → post-calendar-CRkqaAN3.js} +1 -1
  199. package/dist/client/assets/{post-editor-CKtjxE4V.js → post-editor-CLQnWrDH.js} +1 -1
  200. package/dist/client/assets/{preview-content-BZXctQxE.js → preview-content-CPvumstz.js} +1 -1
  201. package/dist/client/assets/{preview-dialog-BWOLrKwV.js → preview-dialog-B9j7S7qG.js} +1 -1
  202. package/dist/client/assets/{preview-panel-BnAE8y85.js → preview-panel-BaneJ62d.js} +1 -1
  203. package/dist/client/assets/{profile-DyQH_aNd.js → profile-DIopFBCc.js} +1 -1
  204. package/dist/client/assets/{project-app-view-CTiwNh-z.js → project-app-view-BriIYKSD.js} +1 -1
  205. package/dist/client/assets/{project-feed-Bvaou8kc.js → project-feed-D9n28Qy2.js} +1 -1
  206. package/dist/client/assets/{project-icon-YWrhQ2Db.js → project-icon-CrF2bM0B.js} +1 -1
  207. package/dist/client/assets/project-reports-CoPS9tDg.js +1 -0
  208. package/dist/client/assets/project-tasks-Ciblt931.js +1 -0
  209. package/dist/client/assets/{projects-Cz_obcPK.js → projects-CEsPC-Y6.js} +1 -1
  210. package/dist/client/assets/{projects-empty-state-BscoRvNd.js → projects-empty-state-CHmHBILJ.js} +1 -1
  211. package/dist/client/assets/{prompts-DxBOW8-N.js → prompts-Nu6vt7bw.js} +1 -1
  212. package/dist/client/assets/record-editor-CE5H19k2.js +1 -0
  213. package/dist/client/assets/{redirect-editor-8k6qDFXn.js → redirect-editor-BQvtVD4Q.js} +1 -1
  214. package/dist/client/assets/reports-BBzfttIZ.js +1 -0
  215. package/dist/client/assets/{reports-DL-r5LZy.js → reports-BVes2qUT.js} +1 -1
  216. package/dist/client/assets/{reports-onboarding-BkzJEYoO.js → reports-onboarding-CAdtQjSU.js} +1 -1
  217. package/dist/client/assets/{reports-tab-xSDSQUq-.js → reports-tab-CdXXfCkk.js} +2 -2
  218. package/dist/client/assets/{repositories-9gi_nAff.js → repositories-CeCe9l9R.js} +1 -1
  219. package/dist/client/assets/{repository-binding-Dvarn2QQ.js → repository-binding-DgXYHOdO.js} +1 -1
  220. package/dist/client/assets/{repository-import-picker-D6An77pP.js → repository-import-picker-BTlCavvI.js} +1 -1
  221. package/dist/client/assets/{repository-picker-CGsou9yY.js → repository-picker-DMsQBK4M.js} +1 -1
  222. package/dist/client/assets/{require-capability-T4uMBp9X.js → require-capability-UaYV_k-8.js} +1 -1
  223. package/dist/client/assets/{required-auth-layout-OTwiT8Ou.js → required-auth-layout-DG_ssul7.js} +1 -1
  224. package/dist/client/assets/{reset-password-D57jaJI7.js → reset-password-DGch1XH7.js} +1 -1
  225. package/dist/client/assets/{resizable-CoiWgWDL.js → resizable-B6j59zX8.js} +1 -1
  226. package/dist/client/assets/{resolve-tab-icon-iAO74BlB.js → resolve-tab-icon-_x8T2L6O.js} +1 -1
  227. package/dist/client/assets/{review-settings-D8o1AgpU.js → review-settings-CZ-nYFGq.js} +1 -1
  228. package/dist/client/assets/{rich-text-link-control-CnMnIlFy.js → rich-text-link-control-DV-QGhD4.js} +1 -1
  229. package/dist/client/assets/{roles-Cnz75rmE.js → roles-DcdB1xj5.js} +1 -1
  230. package/dist/client/assets/route-BaBwF0jd.js +1 -0
  231. package/dist/client/assets/{route-81TBsXsV.js → route-C5HVG4KP.js} +1 -1
  232. package/dist/client/assets/{route-B0j3BuC3.js → route-aAVGiY4i.js} +1 -1
  233. package/dist/client/assets/{runnable-block-editor-DWI9hEay.js → runnable-block-editor-BHrs2bmd.js} +1 -1
  234. package/dist/client/assets/{sandbox-lifecycle-context-Ce_ER-vx.js → sandbox-lifecycle-context-B6h2V6qW.js} +1 -1
  235. package/dist/client/assets/{schema-BWozGVyy.js → schema-Dj8UASRG.js} +1 -1
  236. package/dist/client/assets/{scroll-area-CDjQxGxU.js → scroll-area-BOatS-pA.js} +1 -1
  237. package/dist/client/assets/{search-input-BP1ITVRE.js → search-input-DZS7SKx0.js} +1 -1
  238. package/dist/client/assets/{search-toggle-DREXsbsC.js → search-toggle-B4xKT69H.js} +1 -1
  239. package/dist/client/assets/{secret-picker-BygbS_Im.js → secret-picker-BLO3RbxE.js} +1 -1
  240. package/dist/client/assets/{secrets-CwmFXXVK.js → secrets-qfecTQ8U.js} +1 -1
  241. package/dist/client/assets/{sections-editor-B_-ExFTX.js → sections-editor-CI_9FmcP.js} +1 -1
  242. package/dist/client/assets/{select-DugEew9E.js → select-Bo2QWO2w.js} +1 -1
  243. package/dist/client/assets/{select-model-DWNaSKrk.js → select-model-BdLOITCD.js} +1 -1
  244. package/dist/client/assets/{seo-editor-DRWu0V_n.js → seo-editor-B4lNoeES.js} +1 -1
  245. package/dist/client/assets/{separator-CGBOq1fk.js → separator-FTvTuPez.js} +1 -1
  246. package/dist/client/assets/{settings-tab-S6-bKh7j.js → settings-tab-BHXpuYUk.js} +1 -1
  247. package/dist/client/assets/{sheet-CKDS5Xoz.js → sheet-DY1Ixr3e.js} +1 -1
  248. package/dist/client/assets/{shell-layout-B590ACBF.js → shell-layout-C91CLPqD.js} +1 -1
  249. package/dist/client/assets/{skills-BTYH3GVR.js → skills-1nbzg48p.js} +1 -1
  250. package/dist/client/assets/{sso-C71_cFUO.js → sso-D3CHVXy1.js} +1 -1
  251. package/dist/client/assets/{suggestion-DHWFYHdN.js → suggestion-CCY_KFRa.js} +1 -1
  252. package/dist/client/assets/{switch-B2MgHt30.js → switch-BcWYdoK-.js} +1 -1
  253. package/dist/client/assets/{synced-repos-QhdC2fuS.js → synced-repos-B686sh1O.js} +1 -1
  254. package/dist/client/assets/{tab-icon-glyph-DCDLOv32.js → tab-icon-glyph-Bg6ILWDR.js} +1 -1
  255. package/dist/client/assets/{table-CUmKlTWK.js → table-3Ha7m5P3.js} +1 -1
  256. package/dist/client/assets/{tabs-B-P9k5cW.js → tabs-1jbcwYzu.js} +1 -1
  257. package/dist/client/assets/{task-board-ZQVJfgC6.js → task-board-zQvtvYuz.js} +1 -1
  258. package/dist/client/assets/{task-route-Dc2j9FAj.js → task-route-BRHRnN0K.js} +1 -1
  259. package/dist/client/assets/{task-status-Dh8XOg4W.js → task-status-kHPK4kaa.js} +1 -1
  260. package/dist/client/assets/{taskboard-analytics-DYtAUD1o.js → taskboard-analytics-B9W5oi66.js} +1 -1
  261. package/dist/client/assets/tasks-Bb13pLGm.js +1 -0
  262. package/dist/client/assets/{tasks-Dl1wpwQV.js → tasks-Dk0o5vCp.js} +1 -1
  263. package/dist/client/assets/{textarea-_bF5dcXL.js → textarea-BIXsIYxt.js} +1 -1
  264. package/dist/client/assets/{thread-analytics-pZgA9PKq.js → thread-analytics-C_2RxStk.js} +1 -1
  265. package/dist/client/assets/{thread-button-JC2S1tup.js → thread-button-6bHksN1n.js} +1 -1
  266. package/dist/client/assets/{thread-intent-DVUhGxKs.js → thread-intent-u_umdxEV.js} +1 -1
  267. package/dist/client/assets/{thread-route-CYefGjgy.js → thread-route-CcA9rsjD.js} +1 -1
  268. package/dist/client/assets/{thread-route-CChJ4SIt.js → thread-route-Yov0DB_e.js} +1 -1
  269. package/dist/client/assets/{thread-sheet-body--ZBnIe-c.js → thread-sheet-body-R93Orwrl.js} +1 -1
  270. package/dist/client/assets/{toggle-group-DbwDHQsp.js → toggle-group-Cn1yrmXY.js} +1 -1
  271. package/dist/client/assets/{toolbar-icon-button-_Xpiy5Mx.js → toolbar-icon-button-BqvnfOpl.js} +1 -1
  272. package/dist/client/assets/{tooltip-BtKdL9Sw.js → tooltip-C1UnC7LD.js} +1 -1
  273. package/dist/client/assets/{track-BOyqFhQG.js → track-CeJEG8Ne.js} +1 -1
  274. package/dist/client/assets/{types-D7c7j-nZ.js → types-BizZdPTP.js} +1 -1
  275. package/dist/client/assets/{usage-stats-BFH_VT4g.js → usage-stats-hxbQ0K96.js} +1 -1
  276. package/dist/client/assets/{use-ai-providers-Bwpw-Apu.js → use-ai-providers-C6FUgl61.js} +1 -1
  277. package/dist/client/assets/{use-automations-DGPX0cJ9.js → use-automations-BpxeL2MI.js} +1 -1
  278. package/dist/client/assets/{use-autosave-CI3fM1LK.js → use-autosave-D--FTllc.js} +1 -1
  279. package/dist/client/assets/{use-chat-layout-state-JT4q9rDL.js → use-chat-layout-state-CWQdZ4Jo.js} +1 -1
  280. package/dist/client/assets/{use-chat-navigation-eIpLZmGO.js → use-chat-navigation-BYGGlCTj.js} +1 -1
  281. package/dist/client/assets/{use-clock-tick-BjEdUP2i.js → use-clock-tick-DFlnhXpf.js} +1 -1
  282. package/dist/client/assets/{use-connect-companion-CVPZznHr.js → use-connect-companion-bsu4z5QT.js} +1 -1
  283. package/dist/client/assets/{use-connection-brKVr3Fw.js → use-connection-BF23bC-4.js} +1 -1
  284. package/dist/client/assets/{use-copy-UYJLbF9Z.js → use-copy-CRNOjveD.js} +1 -1
  285. package/dist/client/assets/{use-create-virtual-mcp-Djh9llK5.js → use-create-virtual-mcp-Xevf0e71.js} +1 -1
  286. package/dist/client/assets/{use-date-fns-locale-DcFiK_Yg.js → use-date-fns-locale-BkK3C06N.js} +1 -1
  287. package/dist/client/assets/{use-debounced-autosave-uyQKmOKd.js → use-debounced-autosave-CBc2-HbA.js} +1 -1
  288. package/dist/client/assets/{use-debounced-value-C6y6B5qv.js → use-debounced-value-BSX5d21S.js} +1 -1
  289. package/dist/client/assets/{use-deco-credits-jXdH-7Tu.js → use-deco-credits-D07bG0At.js} +1 -1
  290. package/dist/client/assets/{use-decopilot-events-B_T_2QPQ.js → use-decopilot-events-3jnJN_zB.js} +1 -1
  291. package/dist/client/assets/{use-delete-connection-C2qwDp_a.js → use-delete-connection-DsQLhNm_.js} +1 -1
  292. package/dist/client/assets/{use-deployment-admin-Bxh-MFV9.js → use-deployment-admin-CCHBn7EG.js} +1 -1
  293. package/dist/client/assets/{use-ensure-project-folder-C8H_bP_w.js → use-ensure-project-folder-C07lXmh3.js} +1 -1
  294. package/dist/client/assets/{use-fast-preview-draft-url-D4xlhBPD.js → use-fast-preview-draft-url-Dm9fycKD.js} +1 -1
  295. package/dist/client/assets/{use-file-configs-DbwKKD7f.js → use-file-configs-DfsKofS5.js} +1 -1
  296. package/dist/client/assets/{use-infinite-scroll-BJGILMKO.js → use-infinite-scroll-B5kOmcNg.js} +1 -1
  297. package/dist/client/assets/{use-join-requests-DzIL0Icd.js → use-join-requests-64HL1KDb.js} +1 -1
  298. package/dist/client/assets/{use-main-panel-tabs-B6SU0VvF.js → use-main-panel-tabs-Bb-TGY0e.js} +1 -1
  299. package/dist/client/assets/{use-mcp-auth-status-hcIHFlxg.js → use-mcp-auth-status-Cdslu5lD.js} +1 -1
  300. package/dist/client/assets/{use-mcp-client-C80Rcg0W.js → use-mcp-client-BWdbS58t.js} +1 -1
  301. package/dist/client/assets/{use-mcp-prompts-C68kWfXm.js → use-mcp-prompts-BkoAHxEV.js} +1 -1
  302. package/dist/client/assets/{use-mcp-tools-Ctdc1xYy.js → use-mcp-tools-BPGCmIU7.js} +1 -1
  303. package/dist/client/assets/{use-members-BiHGI8XY.js → use-members-DhmaxjpN.js} +1 -1
  304. package/dist/client/assets/{use-mobile-BDecCscv.js → use-mobile-BptJ2ig7.js} +1 -1
  305. package/dist/client/assets/{use-navigate-to-agent-CUKUrqz8.js → use-navigate-to-agent-CWXwxagr.js} +1 -1
  306. package/dist/client/assets/use-new-blocks-editor-DD4ZkAQi.js +1 -0
  307. package/dist/client/assets/{use-open-billing-url-PixTYx32.js → use-open-billing-url-BI5VQ742.js} +1 -1
  308. package/dist/client/assets/{use-org-auth-client-B5FQgswR.js → use-org-auth-client-nzWS7Iq-.js} +1 -1
  309. package/dist/client/assets/{use-org-fs-CYmNAvQQ.js → use-org-fs-B22En0tH.js} +1 -1
  310. package/dist/client/assets/{use-org-repo-syncs-D09FLJNZ.js → use-org-repo-syncs-BwY7caQP.js} +1 -1
  311. package/dist/client/assets/{use-org-sso-DRLA8Vbf.js → use-org-sso-76vbZ6oa.js} +1 -1
  312. package/dist/client/assets/{use-organization-roles-CVGE992M.js → use-organization-roles-dWcQZzgf.js} +1 -1
  313. package/dist/client/assets/{use-organization-settings-D4Byt2gj.js → use-organization-settings-CAFBLWVk.js} +1 -1
  314. package/dist/client/assets/{use-panel-navigate-N_ZLezId.js → use-panel-navigate-BM9PNlaW.js} +1 -1
  315. package/dist/client/assets/{use-project-scope-G-Gyk-m5.js → use-project-scope-CwEflcY9.js} +1 -1
  316. package/dist/client/assets/{use-releases-BBFqP8G2.js → use-releases-Q6IYliCz.js} +1 -1
  317. package/dist/client/assets/{use-reports-diagnostic-D7aNY7lB.js → use-reports-diagnostic-BuSjsvMT.js} +1 -1
  318. package/dist/client/assets/{use-secrets-DelhSTS_.js → use-secrets-C-0e_lfK.js} +1 -1
  319. package/dist/client/assets/{use-section-preview-base-CLJqRVwo.js → use-section-preview-base-C_voPGNI.js} +1 -1
  320. package/dist/client/assets/{use-session-runtime-C6eyRsK9.js → use-session-runtime-D2A369zj.js} +1 -1
  321. package/dist/client/assets/{use-tags-CPeu6da4.js → use-tags-hn2eWZHG.js} +1 -1
  322. package/dist/client/assets/{use-task-board-analytics-gE47QEsU.js → use-task-board-analytics-DomsBO9-.js} +1 -1
  323. package/dist/client/assets/{use-task-board-events-Cx17PZDn.js → use-task-board-events-C3xun5V7.js} +1 -1
  324. package/dist/client/assets/{use-task-metadata-C3lM4vdZ.js → use-task-metadata-BDjXNlZ6.js} +1 -1
  325. package/dist/client/assets/{use-thread-analytics-BxMnaIYh.js → use-thread-analytics-Cx9KlOv7.js} +1 -1
  326. package/dist/client/assets/{use-thread-outputs-Bma_v6QO.js → use-thread-outputs-BYXmN7CM.js} +1 -1
  327. package/dist/client/assets/useInfiniteQuery-BIeREFXd.js +1 -0
  328. package/dist/client/assets/{useQueries-BlR_NaTj.js → useQueries-B13pACFJ.js} +1 -1
  329. package/dist/client/assets/useSuspenseInfiniteQuery-BWkrsDSs.js +1 -0
  330. package/dist/client/assets/{users-84mMEShN.js → users-CWOZu_g0.js} +1 -1
  331. package/dist/client/assets/{utils-YaXW9l1Q.js → utils-BNDdsgmu.js} +1 -1
  332. package/dist/client/assets/{variant-calendar-DYMSFNzX.js → variant-calendar-C9yanec4.js} +1 -1
  333. package/dist/client/assets/{variant-matcher-override-CfjwCSF5.js → variant-matcher-override-zadyshex.js} +1 -1
  334. package/dist/client/assets/{view-mode-toggle-D0hM0HXO.js → view-mode-toggle-DWieeNQo.js} +1 -1
  335. package/dist/client/assets/{virtual-mcp-CcroxAhs.js → virtual-mcp-BRj1Z0ns.js} +1 -1
  336. package/dist/client/index.html +1 -1
  337. package/dist/server/cli.js +2 -2
  338. package/dist/server/server.js +2 -2
  339. package/package.json +1 -1
  340. package/dist/client/assets/agent-app-BQQbKwQ3.js +0 -1
  341. package/dist/client/assets/agent-deck-kfV_Sekm.js +0 -1
  342. package/dist/client/assets/agent-library-file-PymEv3wg.js +0 -1
  343. package/dist/client/assets/agent-library-q7_BMuya.js +0 -1
  344. package/dist/client/assets/agent-settings-CIgSNyzG.js +0 -1
  345. package/dist/client/assets/agent-site-editor-code-Bi-NRJwq.js +0 -2
  346. package/dist/client/assets/agent-view-BfryexEv.js +0 -1
  347. package/dist/client/assets/ai-providers-CooNHK9c.js +0 -6
  348. package/dist/client/assets/api-keys-U338CYMg.js +0 -1
  349. package/dist/client/assets/app-editor-DG2e4wZO.js +0 -1
  350. package/dist/client/assets/flat-project-BJ7gmR72.js +0 -1
  351. package/dist/client/assets/library-CzbB-zjT.js +0 -1
  352. package/dist/client/assets/plan-ladder-DX67mjcp.js +0 -1
  353. package/dist/client/assets/project-reports-B8p6v-Rj.js +0 -1
  354. package/dist/client/assets/project-tasks-BUAL7eqS.js +0 -1
  355. package/dist/client/assets/record-editor-Bzuq8LjV.js +0 -1
  356. package/dist/client/assets/reports-DVBfYzhG.js +0 -1
  357. package/dist/client/assets/route-VTD663Jc.js +0 -1
  358. package/dist/client/assets/tasks-CEmX1CUM.js +0 -1
  359. package/dist/client/assets/use-new-blocks-editor-Zj6wjfnw.js +0 -1
  360. package/dist/client/assets/useInfiniteQuery-DXwFDh0j.js +0 -1
  361. package/dist/client/assets/useSuspenseInfiniteQuery-C-TN9JId.js +0 -1
@@ -2240,7 +2240,7 @@ Usage: deco services <up|down|status>`),process.exit(1)}}var FQ$=L(()=>{Dl()});f
2240
2240
  `.execute($)}}async function SE4($){if(!await Z61($,"kysely_migration"))return{};let{rows:Z}=await MA`
2241
2241
  SELECT name FROM kysely_migration
2242
2242
  `.execute($),Q=Z.map((X)=>X.name).filter((X)=>!Object.hasOwn(UH0,X));if(Q.length>0)console.warn(`Database has migrations this build does not know, assuming a newer release applied them: ${Q.join(", ")}`);return Object.fromEntries(Q.map((X)=>[X,{up:async()=>{}}]))}async function BW$($){await kE4($),await CE4($);let Z=new NW$({db:$,provider:{getMigrations:async()=>({...await SE4($),...UH0})}}),{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 _E4($){let{keepOpen:Z=!1,database:Q,skipBetterAuth:X=!1}=$??{},Y="skipped";if(!X&&!Q)Y=await te0();let J=Q??Y8(),G=async()=>{if(!Z&&!Q)await tj(J).catch((W)=>{console.warn("Warning: Error closing database:",W)})};try{let W=await BW$(J.db);return await G(),{betterAuth:Y,kysely:W}}catch(W){throw await G(),W}}async function vE4(){let $=Y8(),Z=new NW$({db:$.db,provider:{getMigrations:()=>Promise.resolve(UH0)}}),{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 DW$=L(()=>{UW$();oe0();cQ()});async function NH0($){let Z={...process.env},Q=sX0($,Z);console.log(Nx1(Q.settings.encryptionKey));let X=Q.settings.betterAuthSecret||(Q.settings.localMode?eX$(Q.settings.dataDir):""),{ensureServices:Y}=await Promise.resolve().then(() => (FK0(),HK0)),{outputs:J,services:G}=await Y({home:Q.settings.dataDir,externalDatabaseUrl:Q.externalDatabaseUrl,externalNatsUrl:Q.externalNatsUrl});if(!Q.skipMigrations){let{migrateBetterAuth:K}=await Promise.resolve().then(() => (oe0(),ZY$));await K(J.databaseUrl);let{createDatabase:H}=await Promise.resolve().then(() => (cQ(),WX$)),{migrateToLatest:F}=await Promise.resolve().then(() => (DW$(),LW$)),U=H(J.databaseUrl);await F({keepOpen:!0,database:U,skipBetterAuth:!0})}let W={...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 UQ$(W),{settings:W,services:G.map((K)=>({name:K.name==="PostgreSQL"?"Postgres":K.name,port:K.port})),managedServiceNames:G.filter((K)=>K.owner==="managed").map((K)=>K.name)}}var Q61=L(()=>{Dl();$Y$();o1()});var EW$={};J0(EW$,{updateService:()=>IA,subscribeCliState:()=>J61,setTuiConsoleIntercepted:()=>BH0,setServerUrl:()=>Ne,setMigrationsDone:()=>Ue,setDevMode:()=>fE4,resetCliStateForTests:()=>xE4,isTuiConsoleIntercepted:()=>LH0,getCliState:()=>Y61,addLogEntry:()=>$w});function OW$(){return[{name:"Postgres",status:"pending",port:0},{name:"NATS",status:"pending",port:0}]}function jW$(){return{services:OW$(),migrationsStatus:"pending",serverUrl:null,logs:[]}}function xE4(){tJ=jW$()}function Fe(){for(let $ of X61)$()}function Y61(){return tJ}function J61($){return X61.add($),()=>X61.delete($)}function IA($){tJ={...tJ,services:tJ.services.map((Z)=>Z.name===$.name?$:Z)},Fe()}function Ue(){tJ={...tJ,migrationsStatus:"done"},Fe()}function Ne($){tJ={...tJ,serverUrl:$},Fe()}function $w($){let Z=[...tJ.logs,$];tJ={...tJ,logs:Z.length>500?Z.slice(-500):Z},Fe()}function fE4(){tJ={...tJ,services:[...OW$(),{name:"API",status:"pending",port:0},{name:"Vite",status:"pending",port:0}]},Fe()}function BH0($){wW$=$}function LH0(){return wW$}var tJ,X61,wW$=!1;var VA=L(()=>{tJ=jW$();X61=new Set});import{createServer as zW$}from"net";function bE4($){return new Promise((Z)=>{let Q=zW$();Q.once("error",()=>Z(!1)),Q.listen($,"0.0.0.0",()=>{Q.close(()=>Z(!0))})})}async function Be($){if(await bE4($))return $;let Z=await new Promise((Q,X)=>{let Y=zW$();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 G61=()=>{};var K61={};J0(K61,{startDevServer:()=>gE4,pipeToLogStore:()=>W61});import{join as yE4}from"path";function W61($){let Z=$.getReader(),Q=new TextDecoder,X="";function Y(){let J=X.split(`
2243
- `);X=J.pop()??"";for(let G of J){let W=Bun.stripANSI(G).replace(/^\[\d+\]\s*/,"").trim();if(!W)continue;$w({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:W})}}(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)$w({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:J})}})()}async function gE4($){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 Be(Number(Y)+1):await Be(Number($.port)),{settings:W,services:K,managedServiceNames:H}=await NH0({port:String(G),home:$.home,baseUrl:$.baseUrl,localMode:$.localMode,skipMigrations:$.skipMigrations,noTui:$.noTui,vitePort:$.vitePort});for(let O of K)IA({name:O.name,status:"ready",port:O.port});Ue();let F=yE4(import.meta.dir,"..","..","..","..",".."),U=Q===!0,N=Bun.spawn(["bun","run","dev:servers"],{cwd:F,env:{...process.env,PORT:String(W.port),VITE_PORT:String(Y),DATABASE_URL:W.databaseUrl,NATS_URL:W.natsUrls.join(","),NODE_ENV:W.nodeEnv,BASE_URL:J,DECOCMS_LOCAL_MODE:String(W.localMode),DECOCMS_HOME:W.dataDir,DATA_DIR:W.dataDir,DECO_CLI:"1",...W.betterAuthSecret?{BETTER_AUTH_SECRET:W.betterAuthSecret}:{},...W.s3Endpoint?{S3_ENDPOINT:W.s3Endpoint,S3_BUCKET:W.s3Bucket??"",S3_ACCESS_KEY_ID:W.s3AccessKeyId??"",S3_SECRET_ACCESS_KEY:W.s3SecretAccessKey??"",S3_FORCE_PATH_STYLE:String(W.s3ForcePathStyle)}:{},...W.natsCredsPath?{NATS_CREDS:W.natsCredsPath}:{}},stdio:["inherit",U?"inherit":"pipe",U?"inherit":"pipe"]});if(!U)W61(N.stdout),W61(N.stderr);Ne(J),IA({name:"Vite",status:"ready",port:Number(Y)}),IA({name:"API",status:"ready",port:Number(W.port)});let D=async(O)=>{if(N.kill(O),await N.exited,H.length>0){let{stopServices:j}=await Promise.resolve().then(() => (FK0(),HK0));await j(W.dataDir)}};return process.on("SIGINT",()=>D("SIGINT")),process.on("SIGTERM",()=>D("SIGTERM")),{port:Number(Y),process:N}}var H61=L(()=>{Q61();VA();G61()});var dm;var DH0=L(()=>{dm={name:"decocms",version:"4.463.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":"^4.0.58","@ai-sdk/google":"^4.0.76","@ai-sdk/openai":"^4.0.71","@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":"^3.1.0","@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":"^4.0.17","@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:"^7.0.107","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 uE4,Text as PW$}from"ink";import{jsx as lE4,jsxs as AW$}from"react/jsx-runtime";function TW$({version:$}){return AW$(uE4,{flexDirection:"column",marginTop:1,children:[xK0.map((Z,Q)=>lE4(PW$,{color:fK0[Q],children:Z},Q)),AW$(PW$,{dimColor:!0,children:[" v",$]})]})}var RW$=L(()=>{ns()});import{Box as kA,Text as Zw}from"ink";import{Spinner as mE4}from"@inkjs/ui";import{jsx as U3,jsxs as im}from"react/jsx-runtime";function qW$({status:$}){if($==="pending")return U3(mE4,{label:""});return U3(Zw,{color:"green",children:"\u2713"})}function cE4($){return`${$.name}: ${$.port||"...."}`}function MW$({services:$,migrationsStatus:Z,home:Q,serverUrl:X}){return im(kA,{flexDirection:"column",paddingBottom:1,children:[U3(TW$,{version:dm.version}),U3(kA,{marginBottom:1,children:U3(Zw,{dimColor:!0,children:"\u2500".repeat(80)})}),U3(kA,{children:im(Zw,{dimColor:!0,children:["Home: ",Q]})}),im(kA,{gap:2,children:[$.map((Y)=>im(kA,{gap:1,children:[U3(Zw,{children:cE4(Y)}),U3(qW$,{status:Y.status})]},Y.name)),im(kA,{gap:1,children:[U3(Zw,{children:"Migrations"}),U3(qW$,{status:Z})]})]}),U3(kA,{children:X?im(Zw,{children:["Open in browser: ",U3(Zw,{color:"cyan",children:X})]}):U3(Zw,{dimColor:!0,children:"Starting..."})})]})}var IW$=L(()=>{DH0();RW$()});import{Box as dE4,Text as Le}from"ink";import{jsx as F61,jsxs as U61}from"react/jsx-runtime";function iE4($){if($>=500)return"red";if($>=400)return"yellow";if($>=300)return"cyan";return"green"}function VW$({logs:$}){return F61(dE4,{flexDirection:"column",children:$.map((Z,Q)=>{if(Z.rawLine)return F61(Le,{dimColor:!0,children:Z.rawLine},Q);let X=Z.duration<1000?`${Z.duration}ms`:`${(Z.duration/1000).toFixed(1)}s`;return U61(Le,{children:[U61(Le,{dimColor:!0,children:[Z.method.padEnd(6)," ",Z.path.padEnd(30)," "]}),F61(Le,{color:iE4(Z.status),children:Z.status}),U61(Le,{dimColor:!0,children:[" ",X.padStart(8)]})]},Q)})})}var kW$=()=>{};var N61={};J0(N61,{App:()=>tE4});import{Box as pE4}from"ink";import{useSyncExternalStore as nE4}from"react";import{jsx as CW$,jsxs as oE4}from"react/jsx-runtime";function tE4({home:$}){let Z=nE4(J61,Y61);return oE4(pE4,{flexDirection:"column",children:[CW$(MW$,{services:Z.services,migrationsStatus:Z.migrationsStatus,home:$,serverUrl:Z.serverUrl}),CW$(VW$,{logs:Z.logs})]})}var B61=L(()=>{IW$();kW$();VA()});var cW="thread-gate",_L="decopilot-hosted-harness",vL="decopilot-hosted-harness-sandboxed",dW="automations",Qw="background-tools",CA="task-board-github-reads";var SW$="13";function _W$($){return{name:"decocms",systemDatabaseUrl:$.systemDatabaseUrl,systemDatabaseSchemaName:"dbos",systemDatabasePoolSize:$.poolSize,runAdminServer:!1,executorID:$.executorID,applicationVersion:SW$,...$.listenQueues!==void 0?{listenQueues:$.listenQueues}:{}}}var vW$=()=>{};import aE4 from"pg";async function fW$($,Z){let{databaseUrl:Q,lockTimeoutMs:X=rE4}=$,Y=$.log??((K)=>console.log(K)),J=new aE4.Client({connectionString:Q});await J.connect();let G=Date.now(),W=!1;try{while(!W){if(W=(await J.query("SELECT pg_try_advisory_lock($1) AS locked",[xW$.toString()])).rows[0]?.locked===!0,W)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 Z$(sE4)}let K=Date.now()-G;if(K>1000)Y(`[dbos] waited ${K}ms for the migration lock; another process migrated first`);return await Z()}finally{if(W)try{await J.query("SELECT pg_advisory_unlock($1)",[xW$.toString()])}catch{}await J.end().catch(()=>{})}}var xW$=8314027461559302n,rE4=600000,sE4=500;var bW$=L(()=>{t$()});function eE4(){let $=(process.env.BUN_OPTIONS??"").split(/\s+/).filter(Boolean);return[...process.argv.slice(1),...$]}function L61($,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 yW$(){let $=eE4();if($.includes("--cpu-prof")){console.log(JSON.stringify({msg:"cpu-profiling-active",dir:L61($,"--cpu-prof-dir")??process.cwd(),name:L61($,"--cpu-prof-name"),markdown:$.includes("--cpu-prof-md"),intervalUs:Number(L61($,"--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 gW$(){if(process.env.HEAP_WATCH!=="1")return()=>{};let $=Number(process.env.HEAP_WATCH_INTERVAL_MS??60000),Z=async()=>{let Q=zA();if(!Q)return;let X={};try{let{heapStats:Y}=await import("bun:jsc"),J=Y(),G=Object.entries(J.objectTypeCounts).sort((W,K)=>K[1]-W[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(()=>{}),OH0=setInterval(()=>void Z().catch(()=>{}),$),OH0.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(OH0)clearInterval(OH0)}}var OH0;var hW$=()=>{};import*as $z4 from"bun:jsc";function uW$(){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{Zz4()}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 W=[];try{W=Qz4()?.traces??[]}catch{}if(G>$&&W.length>0){let K=new Map;for(let F of W){let U=F.frames.find((D)=>D.sourceURL&&!/Unknown Executable/.test(D.category??""))??F.frames[0];if(!U)continue;let N=(U.sourceURL??"?").replace(/^.*\/node_modules\//,"node_modules/"),B=`${U.name??"?"} @ ${N}:${U.line??"?"}`;K.set(B,(K.get(B)??0)+1)}let H=[...K.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:W.length,top:H}))}Q=setTimeout(Y,Z),Q.unref?.()};return Q=setTimeout(Y,Z),Q.unref?.(),()=>{if(Q)clearTimeout(Q)}}var Zz4,Qz4;var lW$=L(()=>{({startSamplingProfiler:Zz4,samplingProfilerStackTraces:Qz4}=$z4)});function mW$(){yW$();let $=[gW$(),sQ$(),uW$()];return()=>{for(let Z of $)Z()}}var cW$=L(()=>{ue0();hW$();lW$()});var SA=f((dW$)=>{Object.defineProperty(dW$,"__esModule",{value:!0});dW$.RepublishHeaders=dW$.DirectMsgHeaders=dW$.JsHeaders=dW$.AdvisoryKind=void 0;dW$.isOrderedPushConsumerOptions=Xz4;dW$.isPullConsumer=Yz4;dW$.isPushConsumer=Jz4;dW$.isBoundPushConsumerOptions=Gz4;function Xz4($){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 Yz4($){return $.isPullConsumer()}function Jz4($){return $.isPushConsumer()}function Gz4($){if($&&typeof $==="object")return"deliver_subject"in $||"deliver_group"in $||"idle_heartbeat"in $;return!1}dW$.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"};dW$.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"};dW$.DirectMsgHeaders={Stream:"Nats-Stream",Sequence:"Nats-Sequence",TimeStamp:"Nats-Time-Stamp",Subject:"Nats-Subject",LastSequence:"Nats-Last-Sequence",NumPending:"Nats-Num-Pending"};dW$.RepublishHeaders={Stream:"Nats-Stream",Subject:"Nats-Subject",Sequence:"Nats-Sequence",LastSequence:"Nats-Last-Sequence",Size:"Nats-Msg-Size"}});var N3=f((pW$)=>{Object.defineProperty(pW$,"__esModule",{value:!0});pW$.TD=pW$.TE=pW$.Empty=void 0;pW$.encode=Dz4;pW$.decode=Oz4;pW$.Empty=new Uint8Array(0);pW$.TE=new TextEncoder;pW$.TD=new TextDecoder;function Lz4(...$){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 Dz4(...$){let Z=[];for(let Q=0;Q<$.length;Q++)Z.push(pW$.TE.encode($[Q]));if(Z.length===0)return pW$.Empty;if(Z.length===1)return Z[0];return Lz4(...Z)}function Oz4($){if(!$||$.length===0)return"";return pW$.TD.decode($)}});var B3=f((oW$)=>{Object.defineProperty(oW$,"__esModule",{value:!0});oW$.errors=oW$.PermissionViolationError=oW$.NoRespondersError=oW$.TimeoutError=oW$.RequestError=oW$.ProtocolError=oW$.ConnectionError=oW$.DrainingConnectionError=oW$.ClosedConnectionError=oW$.AuthorizationError=oW$.UserAuthenticationExpiredError=oW$.InvalidOperationError=oW$.InvalidArgumentError=oW$.InvalidSubjectError=void 0;class O61 extends Error{constructor($,Z){super(`illegal subject: '${$}'`,Z);this.name="InvalidSubjectError"}}oW$.InvalidSubjectError=O61;class jH0 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 jH0(`${$} ${Z}`,Q)}}oW$.InvalidArgumentError=jH0;class j61 extends Error{constructor($,Z){super($,Z);this.name="InvalidOperationError"}}oW$.InvalidOperationError=j61;class wH0 extends Error{constructor($,Z){super($,Z);this.name="UserAuthenticationExpiredError"}static parse($){if($.toLowerCase().indexOf("user authentication expired")!==-1)return new wH0($);return null}}oW$.UserAuthenticationExpiredError=wH0;class EH0 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 EH0($);return null}}oW$.AuthorizationError=EH0;class w61 extends Error{constructor(){super("closed connection");this.name="ClosedConnectionError"}}oW$.ClosedConnectionError=w61;class E61 extends Error{constructor(){super("connection draining");this.name="DrainingConnectionError"}}oW$.DrainingConnectionError=E61;class z61 extends Error{constructor($,Z){super($,Z);this.name="ConnectionError"}}oW$.ConnectionError=z61;class P61 extends Error{constructor($,Z){super($,Z);this.name="ProtocolError"}}oW$.ProtocolError=P61;class A61 extends Error{constructor($="",Z){super($,Z);this.name="RequestError"}isNoResponders(){return this.cause instanceof zH0}}oW$.RequestError=A61;class T61 extends Error{constructor($){super("timeout",$);this.name="TimeoutError"}}oW$.TimeoutError=T61;class zH0 extends Error{subject;constructor($,Z){super(`no responders: '${$}'`,Z);this.subject=$,this.name="NoResponders"}}oW$.NoRespondersError=zH0;class PH0 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 PH0($,Q,X,Y)}}oW$.PermissionViolationError=PH0;oW$.errors={AuthorizationError:EH0,ClosedConnectionError:w61,ConnectionError:z61,DrainingConnectionError:E61,InvalidArgumentError:jH0,InvalidOperationError:j61,InvalidSubjectError:O61,NoRespondersError:zH0,PermissionViolationError:PH0,ProtocolError:P61,RequestError:A61,TimeoutError:T61,UserAuthenticationExpiredError:wH0}});var CH=f(($K$)=>{Object.defineProperty($K$,"__esModule",{value:!0});$K$.SimpleMutex=$K$.Perf=void 0;$K$.extend=vz4;$K$.render=xz4;$K$.timeout=fz4;$K$.delay=bz4;$K$.deadline=yz4;$K$.deferred=q61;$K$.debugDeferred=gz4;$K$.shuffle=hz4;$K$.collect=uz4;$K$.jitter=eW$;$K$.backoff=lz4;$K$.nanos=mz4;$K$.millis=cz4;$K$.randomToken=pz4;var _z4=N3(),R61=B3();function vz4($,...Z){for(let Q=0;Q<Z.length;Q++){let X=Z[Q];Object.keys(X).forEach(function(Y){$[Y]=X[Y]})}return $}function xz4($){return _z4.TD.decode($).replace(/\n/g,"\u240A").replace(/\r/g,"\u240D")}function fz4($,Z=!0){let Q=Z?new R61.TimeoutError:null,X,Y,J=new Promise((G,W)=>{X={cancel:()=>{if(Y)clearTimeout(Y)}},Y=setTimeout(()=>{if(Q===null)W(new R61.TimeoutError);else W(Q)},$)});return Object.assign(J,X)}function bz4($=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 yz4($,Z=1000){let Q=q61(),X=setTimeout(()=>{Q.reject(new R61.TimeoutError)},Z);try{return await Promise.race([$,Q])}finally{clearTimeout(X)}}function q61(){let $={},Z=new Promise((Q,X)=>{$={resolve:Q,reject:X}});return Object.assign(Z,$)}function gz4(){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 hz4($){for(let Z=$.length-1;Z>0;Z--){let Q=Math.floor(Math.random()*(Z+1));[$[Z],$[Q]]=[$[Q],$[Z]]}return $}async function uz4($){let Z=[];for await(let Q of $)Z.push(Q);return Z}class rW${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})}),$}}$K$.Perf=rW$;class sW${max;current;waiting;constructor($=1){this.max=$,this.current=0,this.waiting=[]}lock(){if(this.current++,this.current<=this.max)return Promise.resolve();let $=q61();return this.waiting.push($),$}unlock(){this.current--,this.waiting.pop()?.resolve()}}$K$.SimpleMutex=sW$;function eW$($){if($===0)return 0;return Math.floor($/2+Math.random()*$)}function lz4($=[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 eW$(Q>Z?$[Z]:$[Q])}}}function mz4($){return $*1e6}function cz4($){return Math.floor($/1e6)}var dz4="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",xL=new Uint8Array(62);for(let $=0;$<62;$++)xL[$]=dz4.charCodeAt($);var iz4=218340105584896;function pz4(){let $=Math.floor(Math.random()*iz4),Z=$%62,Q=xL[Z];$=($-Z)/62,Z=$%62;let X=xL[Z];$=($-Z)/62,Z=$%62;let Y=xL[Z];$=($-Z)/62,Z=$%62;let J=xL[Z];$=($-Z)/62,Z=$%62;let G=xL[Z];$=($-Z)/62,Z=$%62;let W=xL[Z];$=($-Z)/62,Z=$%62;let K=xL[Z];$=($-Z)/62;let H=xL[$];return String.fromCharCode(Q,X,Y,J,G,W,K,H)}});var KK$=f((GK$)=>{Object.defineProperty(GK$,"__esModule",{value:!0});GK$.nuid=GK$.NuidImpl=void 0;var KP4="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",Xw=62,TH0=12,YK$=10,QK$=33,HP4=333,XK$=TH0+YK$,I61=new Uint8Array(Xw);for(let $=0;$<Xw;$++)I61[$]=KP4.charCodeAt($);var AH0=4294967296,JK$=BigInt(Xw)**BigInt(YK$),De=Number(JK$/(1n<<32n)),M61=Number(JK$%(1n<<32n));function FP4($){for(let Z=0;Z<$.length;Z++)$[Z]=Math.floor(Math.random()*256)}function UP4($){if(globalThis?.crypto?.getRandomValues)globalThis.crypto.getRandomValues($);else FP4($)}class V61{buf;cbuf;seqHi;seqLo;inc;inited;constructor(){this.buf=new Uint8Array(XK$),this.cbuf=new Uint8Array(TH0),this.inited=!1}init(){this.inited=!0,this.setPre(),this.initSeqAndInc(),this.fillSeq()}initSeqAndInc(){let $=0;do this.seqHi=Math.floor(Math.random()*(De+1)),this.seqLo=Math.floor(Math.random()*AH0);while($++<8&&this.seqHi===De&&this.seqLo>=M61);if(this.seqHi===De&&this.seqLo>=M61)this.seqLo=0;this.inc=Math.random()*(HP4-QK$)+QK$|0}setPre(){UP4(this.cbuf);for(let $=0;$<TH0;$++)this.buf[$]=I61[this.cbuf[$]%Xw]}fillSeq(){let $=this.seqHi,Z=this.seqLo;for(let Q=XK$-1;Q>=TH0;Q--){let X=Math.floor($/Xw),J=($-X*Xw)*AH0+Z,G=Math.floor(J/Xw),W=J-G*Xw;this.buf[Q]=I61[W],$=X,Z=G}}next(){if(!this.inited)this.init();if(this.seqLo+=this.inc,this.seqLo>=AH0)this.seqLo-=AH0,this.seqHi+=1;if(this.seqHi>De||this.seqHi===De&&this.seqLo>=M61)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()}}GK$.NuidImpl=V61;GK$.nuid=new V61});var NK$=f((FK$)=>{Object.defineProperty(FK$,"__esModule",{value:!0});FK$.nuid=FK$.Nuid=void 0;var HK$=KK$();FK$.Nuid=HK$.NuidImpl;FK$.nuid=HK$.nuid});var qH0=f((RH0)=>{Object.defineProperty(RH0,"__esModule",{value:!0});RH0.nuid=RH0.Nuid=void 0;var BK$=NK$();Object.defineProperty(RH0,"Nuid",{enumerable:!0,get:function(){return BK$.Nuid}});Object.defineProperty(RH0,"nuid",{enumerable:!0,get:function(){return BK$.nuid}})});var Yw=f((LK$)=>{Object.defineProperty(LK$,"__esModule",{value:!0});LK$.DEFAULT_HOST=LK$.DEFAULT_PORT=LK$.Match=void 0;LK$.syncIterator=jP4;LK$.createInbox=wP4;var DP4=qH0(),OP4=B3();LK$.Match={Exact:"exact",CanonicalMIME:"canonical",IgnoreCase:"insensitive"};function jP4($){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 wP4($=""){if($=$||"_INBOX",typeof $!=="string")throw TypeError("prefix must be a string");return $.split(".").forEach((Z)=>{if(Z==="*"||Z===">")throw OP4.InvalidArgumentError.format("prefix",`cannot have wildcards ('${$}')`)}),`${$}.${DP4.nuid.next()}`}LK$.DEFAULT_PORT=4222;LK$.DEFAULT_HOST="127.0.0.1"});var Oe=f((wK$)=>{Object.defineProperty(wK$,"__esModule",{value:!0});wK$.DataBuffer=void 0;var OK$=N3();class jK${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 OK$.TE.encode($)}static toAscii($){return OK$.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}}wK$.DataBuffer=jK$});var _A=f((PK$)=>{Object.defineProperty(PK$,"__esModule",{value:!0});PK$.LF=PK$.CR=PK$.CRLF=PK$.CR_LF_LEN=PK$.CR_LF=void 0;PK$.setTransportFactory=MP4;PK$.defaultPort=IP4;PK$.getUrlParseFn=VP4;PK$.newTransport=kP4;PK$.getResolveFn=CP4;PK$.protoLen=zK$;PK$.extractProtocolMessage=SP4;var TP4=N3(),RP4=Yw(),qP4=Oe(),L3;function MP4($){L3=$}function IP4(){return L3!==void 0&&L3.defaultPort!==void 0?L3.defaultPort:RP4.DEFAULT_PORT}function VP4(){return L3!==void 0&&L3.urlParseFn?L3.urlParseFn:void 0}function kP4(){if(!L3||typeof L3.factory!=="function")throw Error("transport fn is not set");return L3.factory()}function CP4(){return L3!==void 0&&L3.dnsResolveFn?L3.dnsResolveFn:void 0}PK$.CR_LF=`\r
2243
+ `);X=J.pop()??"";for(let G of J){let W=Bun.stripANSI(G).replace(/^\[\d+\]\s*/,"").trim();if(!W)continue;$w({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:W})}}(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)$w({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:J})}})()}async function gE4($){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 Be(Number(Y)+1):await Be(Number($.port)),{settings:W,services:K,managedServiceNames:H}=await NH0({port:String(G),home:$.home,baseUrl:$.baseUrl,localMode:$.localMode,skipMigrations:$.skipMigrations,noTui:$.noTui,vitePort:$.vitePort});for(let O of K)IA({name:O.name,status:"ready",port:O.port});Ue();let F=yE4(import.meta.dir,"..","..","..","..",".."),U=Q===!0,N=Bun.spawn(["bun","run","dev:servers"],{cwd:F,env:{...process.env,PORT:String(W.port),VITE_PORT:String(Y),DATABASE_URL:W.databaseUrl,NATS_URL:W.natsUrls.join(","),NODE_ENV:W.nodeEnv,BASE_URL:J,DECOCMS_LOCAL_MODE:String(W.localMode),DECOCMS_HOME:W.dataDir,DATA_DIR:W.dataDir,DECO_CLI:"1",...W.betterAuthSecret?{BETTER_AUTH_SECRET:W.betterAuthSecret}:{},...W.s3Endpoint?{S3_ENDPOINT:W.s3Endpoint,S3_BUCKET:W.s3Bucket??"",S3_ACCESS_KEY_ID:W.s3AccessKeyId??"",S3_SECRET_ACCESS_KEY:W.s3SecretAccessKey??"",S3_FORCE_PATH_STYLE:String(W.s3ForcePathStyle)}:{},...W.natsCredsPath?{NATS_CREDS:W.natsCredsPath}:{}},stdio:["inherit",U?"inherit":"pipe",U?"inherit":"pipe"]});if(!U)W61(N.stdout),W61(N.stderr);Ne(J),IA({name:"Vite",status:"ready",port:Number(Y)}),IA({name:"API",status:"ready",port:Number(W.port)});let D=async(O)=>{if(N.kill(O),await N.exited,H.length>0){let{stopServices:j}=await Promise.resolve().then(() => (FK0(),HK0));await j(W.dataDir)}};return process.on("SIGINT",()=>D("SIGINT")),process.on("SIGTERM",()=>D("SIGTERM")),{port:Number(Y),process:N}}var H61=L(()=>{Q61();VA();G61()});var dm;var DH0=L(()=>{dm={name:"decocms",version:"4.464.0",description:"Deco CMS \u2014 Self-hostable MCP Gateway for managing AI connections and tools",author:"Deco team",repository:{type:"git",url:"git+https://github.com/decocms/studio.git",directory:"apps/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":"^4.0.58","@ai-sdk/google":"^4.0.76","@ai-sdk/openai":"^4.0.71","@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":"^3.1.0","@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":"^4.0.17","@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:"^7.0.107","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 uE4,Text as PW$}from"ink";import{jsx as lE4,jsxs as AW$}from"react/jsx-runtime";function TW$({version:$}){return AW$(uE4,{flexDirection:"column",marginTop:1,children:[xK0.map((Z,Q)=>lE4(PW$,{color:fK0[Q],children:Z},Q)),AW$(PW$,{dimColor:!0,children:[" v",$]})]})}var RW$=L(()=>{ns()});import{Box as kA,Text as Zw}from"ink";import{Spinner as mE4}from"@inkjs/ui";import{jsx as U3,jsxs as im}from"react/jsx-runtime";function qW$({status:$}){if($==="pending")return U3(mE4,{label:""});return U3(Zw,{color:"green",children:"\u2713"})}function cE4($){return`${$.name}: ${$.port||"...."}`}function MW$({services:$,migrationsStatus:Z,home:Q,serverUrl:X}){return im(kA,{flexDirection:"column",paddingBottom:1,children:[U3(TW$,{version:dm.version}),U3(kA,{marginBottom:1,children:U3(Zw,{dimColor:!0,children:"\u2500".repeat(80)})}),U3(kA,{children:im(Zw,{dimColor:!0,children:["Home: ",Q]})}),im(kA,{gap:2,children:[$.map((Y)=>im(kA,{gap:1,children:[U3(Zw,{children:cE4(Y)}),U3(qW$,{status:Y.status})]},Y.name)),im(kA,{gap:1,children:[U3(Zw,{children:"Migrations"}),U3(qW$,{status:Z})]})]}),U3(kA,{children:X?im(Zw,{children:["Open in browser: ",U3(Zw,{color:"cyan",children:X})]}):U3(Zw,{dimColor:!0,children:"Starting..."})})]})}var IW$=L(()=>{DH0();RW$()});import{Box as dE4,Text as Le}from"ink";import{jsx as F61,jsxs as U61}from"react/jsx-runtime";function iE4($){if($>=500)return"red";if($>=400)return"yellow";if($>=300)return"cyan";return"green"}function VW$({logs:$}){return F61(dE4,{flexDirection:"column",children:$.map((Z,Q)=>{if(Z.rawLine)return F61(Le,{dimColor:!0,children:Z.rawLine},Q);let X=Z.duration<1000?`${Z.duration}ms`:`${(Z.duration/1000).toFixed(1)}s`;return U61(Le,{children:[U61(Le,{dimColor:!0,children:[Z.method.padEnd(6)," ",Z.path.padEnd(30)," "]}),F61(Le,{color:iE4(Z.status),children:Z.status}),U61(Le,{dimColor:!0,children:[" ",X.padStart(8)]})]},Q)})})}var kW$=()=>{};var N61={};J0(N61,{App:()=>tE4});import{Box as pE4}from"ink";import{useSyncExternalStore as nE4}from"react";import{jsx as CW$,jsxs as oE4}from"react/jsx-runtime";function tE4({home:$}){let Z=nE4(J61,Y61);return oE4(pE4,{flexDirection:"column",children:[CW$(MW$,{services:Z.services,migrationsStatus:Z.migrationsStatus,home:$,serverUrl:Z.serverUrl}),CW$(VW$,{logs:Z.logs})]})}var B61=L(()=>{IW$();kW$();VA()});var cW="thread-gate",_L="decopilot-hosted-harness",vL="decopilot-hosted-harness-sandboxed",dW="automations",Qw="background-tools",CA="task-board-github-reads";var SW$="13";function _W$($){return{name:"decocms",systemDatabaseUrl:$.systemDatabaseUrl,systemDatabaseSchemaName:"dbos",systemDatabasePoolSize:$.poolSize,runAdminServer:!1,executorID:$.executorID,applicationVersion:SW$,...$.listenQueues!==void 0?{listenQueues:$.listenQueues}:{}}}var vW$=()=>{};import aE4 from"pg";async function fW$($,Z){let{databaseUrl:Q,lockTimeoutMs:X=rE4}=$,Y=$.log??((K)=>console.log(K)),J=new aE4.Client({connectionString:Q});await J.connect();let G=Date.now(),W=!1;try{while(!W){if(W=(await J.query("SELECT pg_try_advisory_lock($1) AS locked",[xW$.toString()])).rows[0]?.locked===!0,W)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 Z$(sE4)}let K=Date.now()-G;if(K>1000)Y(`[dbos] waited ${K}ms for the migration lock; another process migrated first`);return await Z()}finally{if(W)try{await J.query("SELECT pg_advisory_unlock($1)",[xW$.toString()])}catch{}await J.end().catch(()=>{})}}var xW$=8314027461559302n,rE4=600000,sE4=500;var bW$=L(()=>{t$()});function eE4(){let $=(process.env.BUN_OPTIONS??"").split(/\s+/).filter(Boolean);return[...process.argv.slice(1),...$]}function L61($,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 yW$(){let $=eE4();if($.includes("--cpu-prof")){console.log(JSON.stringify({msg:"cpu-profiling-active",dir:L61($,"--cpu-prof-dir")??process.cwd(),name:L61($,"--cpu-prof-name"),markdown:$.includes("--cpu-prof-md"),intervalUs:Number(L61($,"--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 gW$(){if(process.env.HEAP_WATCH!=="1")return()=>{};let $=Number(process.env.HEAP_WATCH_INTERVAL_MS??60000),Z=async()=>{let Q=zA();if(!Q)return;let X={};try{let{heapStats:Y}=await import("bun:jsc"),J=Y(),G=Object.entries(J.objectTypeCounts).sort((W,K)=>K[1]-W[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(()=>{}),OH0=setInterval(()=>void Z().catch(()=>{}),$),OH0.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(OH0)clearInterval(OH0)}}var OH0;var hW$=()=>{};import*as $z4 from"bun:jsc";function uW$(){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{Zz4()}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 W=[];try{W=Qz4()?.traces??[]}catch{}if(G>$&&W.length>0){let K=new Map;for(let F of W){let U=F.frames.find((D)=>D.sourceURL&&!/Unknown Executable/.test(D.category??""))??F.frames[0];if(!U)continue;let N=(U.sourceURL??"?").replace(/^.*\/node_modules\//,"node_modules/"),B=`${U.name??"?"} @ ${N}:${U.line??"?"}`;K.set(B,(K.get(B)??0)+1)}let H=[...K.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:W.length,top:H}))}Q=setTimeout(Y,Z),Q.unref?.()};return Q=setTimeout(Y,Z),Q.unref?.(),()=>{if(Q)clearTimeout(Q)}}var Zz4,Qz4;var lW$=L(()=>{({startSamplingProfiler:Zz4,samplingProfilerStackTraces:Qz4}=$z4)});function mW$(){yW$();let $=[gW$(),sQ$(),uW$()];return()=>{for(let Z of $)Z()}}var cW$=L(()=>{ue0();hW$();lW$()});var SA=f((dW$)=>{Object.defineProperty(dW$,"__esModule",{value:!0});dW$.RepublishHeaders=dW$.DirectMsgHeaders=dW$.JsHeaders=dW$.AdvisoryKind=void 0;dW$.isOrderedPushConsumerOptions=Xz4;dW$.isPullConsumer=Yz4;dW$.isPushConsumer=Jz4;dW$.isBoundPushConsumerOptions=Gz4;function Xz4($){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 Yz4($){return $.isPullConsumer()}function Jz4($){return $.isPushConsumer()}function Gz4($){if($&&typeof $==="object")return"deliver_subject"in $||"deliver_group"in $||"idle_heartbeat"in $;return!1}dW$.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"};dW$.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"};dW$.DirectMsgHeaders={Stream:"Nats-Stream",Sequence:"Nats-Sequence",TimeStamp:"Nats-Time-Stamp",Subject:"Nats-Subject",LastSequence:"Nats-Last-Sequence",NumPending:"Nats-Num-Pending"};dW$.RepublishHeaders={Stream:"Nats-Stream",Subject:"Nats-Subject",Sequence:"Nats-Sequence",LastSequence:"Nats-Last-Sequence",Size:"Nats-Msg-Size"}});var N3=f((pW$)=>{Object.defineProperty(pW$,"__esModule",{value:!0});pW$.TD=pW$.TE=pW$.Empty=void 0;pW$.encode=Dz4;pW$.decode=Oz4;pW$.Empty=new Uint8Array(0);pW$.TE=new TextEncoder;pW$.TD=new TextDecoder;function Lz4(...$){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 Dz4(...$){let Z=[];for(let Q=0;Q<$.length;Q++)Z.push(pW$.TE.encode($[Q]));if(Z.length===0)return pW$.Empty;if(Z.length===1)return Z[0];return Lz4(...Z)}function Oz4($){if(!$||$.length===0)return"";return pW$.TD.decode($)}});var B3=f((oW$)=>{Object.defineProperty(oW$,"__esModule",{value:!0});oW$.errors=oW$.PermissionViolationError=oW$.NoRespondersError=oW$.TimeoutError=oW$.RequestError=oW$.ProtocolError=oW$.ConnectionError=oW$.DrainingConnectionError=oW$.ClosedConnectionError=oW$.AuthorizationError=oW$.UserAuthenticationExpiredError=oW$.InvalidOperationError=oW$.InvalidArgumentError=oW$.InvalidSubjectError=void 0;class O61 extends Error{constructor($,Z){super(`illegal subject: '${$}'`,Z);this.name="InvalidSubjectError"}}oW$.InvalidSubjectError=O61;class jH0 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 jH0(`${$} ${Z}`,Q)}}oW$.InvalidArgumentError=jH0;class j61 extends Error{constructor($,Z){super($,Z);this.name="InvalidOperationError"}}oW$.InvalidOperationError=j61;class wH0 extends Error{constructor($,Z){super($,Z);this.name="UserAuthenticationExpiredError"}static parse($){if($.toLowerCase().indexOf("user authentication expired")!==-1)return new wH0($);return null}}oW$.UserAuthenticationExpiredError=wH0;class EH0 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 EH0($);return null}}oW$.AuthorizationError=EH0;class w61 extends Error{constructor(){super("closed connection");this.name="ClosedConnectionError"}}oW$.ClosedConnectionError=w61;class E61 extends Error{constructor(){super("connection draining");this.name="DrainingConnectionError"}}oW$.DrainingConnectionError=E61;class z61 extends Error{constructor($,Z){super($,Z);this.name="ConnectionError"}}oW$.ConnectionError=z61;class P61 extends Error{constructor($,Z){super($,Z);this.name="ProtocolError"}}oW$.ProtocolError=P61;class A61 extends Error{constructor($="",Z){super($,Z);this.name="RequestError"}isNoResponders(){return this.cause instanceof zH0}}oW$.RequestError=A61;class T61 extends Error{constructor($){super("timeout",$);this.name="TimeoutError"}}oW$.TimeoutError=T61;class zH0 extends Error{subject;constructor($,Z){super(`no responders: '${$}'`,Z);this.subject=$,this.name="NoResponders"}}oW$.NoRespondersError=zH0;class PH0 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 PH0($,Q,X,Y)}}oW$.PermissionViolationError=PH0;oW$.errors={AuthorizationError:EH0,ClosedConnectionError:w61,ConnectionError:z61,DrainingConnectionError:E61,InvalidArgumentError:jH0,InvalidOperationError:j61,InvalidSubjectError:O61,NoRespondersError:zH0,PermissionViolationError:PH0,ProtocolError:P61,RequestError:A61,TimeoutError:T61,UserAuthenticationExpiredError:wH0}});var CH=f(($K$)=>{Object.defineProperty($K$,"__esModule",{value:!0});$K$.SimpleMutex=$K$.Perf=void 0;$K$.extend=vz4;$K$.render=xz4;$K$.timeout=fz4;$K$.delay=bz4;$K$.deadline=yz4;$K$.deferred=q61;$K$.debugDeferred=gz4;$K$.shuffle=hz4;$K$.collect=uz4;$K$.jitter=eW$;$K$.backoff=lz4;$K$.nanos=mz4;$K$.millis=cz4;$K$.randomToken=pz4;var _z4=N3(),R61=B3();function vz4($,...Z){for(let Q=0;Q<Z.length;Q++){let X=Z[Q];Object.keys(X).forEach(function(Y){$[Y]=X[Y]})}return $}function xz4($){return _z4.TD.decode($).replace(/\n/g,"\u240A").replace(/\r/g,"\u240D")}function fz4($,Z=!0){let Q=Z?new R61.TimeoutError:null,X,Y,J=new Promise((G,W)=>{X={cancel:()=>{if(Y)clearTimeout(Y)}},Y=setTimeout(()=>{if(Q===null)W(new R61.TimeoutError);else W(Q)},$)});return Object.assign(J,X)}function bz4($=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 yz4($,Z=1000){let Q=q61(),X=setTimeout(()=>{Q.reject(new R61.TimeoutError)},Z);try{return await Promise.race([$,Q])}finally{clearTimeout(X)}}function q61(){let $={},Z=new Promise((Q,X)=>{$={resolve:Q,reject:X}});return Object.assign(Z,$)}function gz4(){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 hz4($){for(let Z=$.length-1;Z>0;Z--){let Q=Math.floor(Math.random()*(Z+1));[$[Z],$[Q]]=[$[Q],$[Z]]}return $}async function uz4($){let Z=[];for await(let Q of $)Z.push(Q);return Z}class rW${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})}),$}}$K$.Perf=rW$;class sW${max;current;waiting;constructor($=1){this.max=$,this.current=0,this.waiting=[]}lock(){if(this.current++,this.current<=this.max)return Promise.resolve();let $=q61();return this.waiting.push($),$}unlock(){this.current--,this.waiting.pop()?.resolve()}}$K$.SimpleMutex=sW$;function eW$($){if($===0)return 0;return Math.floor($/2+Math.random()*$)}function lz4($=[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 eW$(Q>Z?$[Z]:$[Q])}}}function mz4($){return $*1e6}function cz4($){return Math.floor($/1e6)}var dz4="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",xL=new Uint8Array(62);for(let $=0;$<62;$++)xL[$]=dz4.charCodeAt($);var iz4=218340105584896;function pz4(){let $=Math.floor(Math.random()*iz4),Z=$%62,Q=xL[Z];$=($-Z)/62,Z=$%62;let X=xL[Z];$=($-Z)/62,Z=$%62;let Y=xL[Z];$=($-Z)/62,Z=$%62;let J=xL[Z];$=($-Z)/62,Z=$%62;let G=xL[Z];$=($-Z)/62,Z=$%62;let W=xL[Z];$=($-Z)/62,Z=$%62;let K=xL[Z];$=($-Z)/62;let H=xL[$];return String.fromCharCode(Q,X,Y,J,G,W,K,H)}});var KK$=f((GK$)=>{Object.defineProperty(GK$,"__esModule",{value:!0});GK$.nuid=GK$.NuidImpl=void 0;var KP4="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",Xw=62,TH0=12,YK$=10,QK$=33,HP4=333,XK$=TH0+YK$,I61=new Uint8Array(Xw);for(let $=0;$<Xw;$++)I61[$]=KP4.charCodeAt($);var AH0=4294967296,JK$=BigInt(Xw)**BigInt(YK$),De=Number(JK$/(1n<<32n)),M61=Number(JK$%(1n<<32n));function FP4($){for(let Z=0;Z<$.length;Z++)$[Z]=Math.floor(Math.random()*256)}function UP4($){if(globalThis?.crypto?.getRandomValues)globalThis.crypto.getRandomValues($);else FP4($)}class V61{buf;cbuf;seqHi;seqLo;inc;inited;constructor(){this.buf=new Uint8Array(XK$),this.cbuf=new Uint8Array(TH0),this.inited=!1}init(){this.inited=!0,this.setPre(),this.initSeqAndInc(),this.fillSeq()}initSeqAndInc(){let $=0;do this.seqHi=Math.floor(Math.random()*(De+1)),this.seqLo=Math.floor(Math.random()*AH0);while($++<8&&this.seqHi===De&&this.seqLo>=M61);if(this.seqHi===De&&this.seqLo>=M61)this.seqLo=0;this.inc=Math.random()*(HP4-QK$)+QK$|0}setPre(){UP4(this.cbuf);for(let $=0;$<TH0;$++)this.buf[$]=I61[this.cbuf[$]%Xw]}fillSeq(){let $=this.seqHi,Z=this.seqLo;for(let Q=XK$-1;Q>=TH0;Q--){let X=Math.floor($/Xw),J=($-X*Xw)*AH0+Z,G=Math.floor(J/Xw),W=J-G*Xw;this.buf[Q]=I61[W],$=X,Z=G}}next(){if(!this.inited)this.init();if(this.seqLo+=this.inc,this.seqLo>=AH0)this.seqLo-=AH0,this.seqHi+=1;if(this.seqHi>De||this.seqHi===De&&this.seqLo>=M61)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()}}GK$.NuidImpl=V61;GK$.nuid=new V61});var NK$=f((FK$)=>{Object.defineProperty(FK$,"__esModule",{value:!0});FK$.nuid=FK$.Nuid=void 0;var HK$=KK$();FK$.Nuid=HK$.NuidImpl;FK$.nuid=HK$.nuid});var qH0=f((RH0)=>{Object.defineProperty(RH0,"__esModule",{value:!0});RH0.nuid=RH0.Nuid=void 0;var BK$=NK$();Object.defineProperty(RH0,"Nuid",{enumerable:!0,get:function(){return BK$.Nuid}});Object.defineProperty(RH0,"nuid",{enumerable:!0,get:function(){return BK$.nuid}})});var Yw=f((LK$)=>{Object.defineProperty(LK$,"__esModule",{value:!0});LK$.DEFAULT_HOST=LK$.DEFAULT_PORT=LK$.Match=void 0;LK$.syncIterator=jP4;LK$.createInbox=wP4;var DP4=qH0(),OP4=B3();LK$.Match={Exact:"exact",CanonicalMIME:"canonical",IgnoreCase:"insensitive"};function jP4($){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 wP4($=""){if($=$||"_INBOX",typeof $!=="string")throw TypeError("prefix must be a string");return $.split(".").forEach((Z)=>{if(Z==="*"||Z===">")throw OP4.InvalidArgumentError.format("prefix",`cannot have wildcards ('${$}')`)}),`${$}.${DP4.nuid.next()}`}LK$.DEFAULT_PORT=4222;LK$.DEFAULT_HOST="127.0.0.1"});var Oe=f((wK$)=>{Object.defineProperty(wK$,"__esModule",{value:!0});wK$.DataBuffer=void 0;var OK$=N3();class jK${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 OK$.TE.encode($)}static toAscii($){return OK$.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}}wK$.DataBuffer=jK$});var _A=f((PK$)=>{Object.defineProperty(PK$,"__esModule",{value:!0});PK$.LF=PK$.CR=PK$.CRLF=PK$.CR_LF_LEN=PK$.CR_LF=void 0;PK$.setTransportFactory=MP4;PK$.defaultPort=IP4;PK$.getUrlParseFn=VP4;PK$.newTransport=kP4;PK$.getResolveFn=CP4;PK$.protoLen=zK$;PK$.extractProtocolMessage=SP4;var TP4=N3(),RP4=Yw(),qP4=Oe(),L3;function MP4($){L3=$}function IP4(){return L3!==void 0&&L3.defaultPort!==void 0?L3.defaultPort:RP4.DEFAULT_PORT}function VP4(){return L3!==void 0&&L3.urlParseFn?L3.urlParseFn:void 0}function kP4(){if(!L3||typeof L3.factory!=="function")throw Error("transport fn is not set");return L3.factory()}function CP4(){return L3!==void 0&&L3.dnsResolveFn?L3.dnsResolveFn:void 0}PK$.CR_LF=`\r
2244
2244
  `;PK$.CR_LF_LEN=PK$.CR_LF.length;PK$.CRLF=qP4.DataBuffer.fromAscii(PK$.CR_LF);PK$.CR=new Uint8Array(PK$.CRLF)[0];PK$.LF=new Uint8Array(PK$.CRLF)[1];function zK$($){for(let Z=0;Z<$.length;Z++){let Q=Z+1;if($.byteLength>Q&&$[Z]===PK$.CR&&$[Q]===PK$.LF)return Q+1}return 0}function SP4($){let Z=zK$($);if(Z>0){let X=new Uint8Array($).slice(0,Z);return TP4.TD.decode(X)}return""}});var v61=f((kK$)=>{Object.defineProperty(kK$,"__esModule",{value:!0});kK$.ipV4=MK$;kK$.isIP=mP4;kK$.parseIP=IK$;var je=4,vA=16,MH0=48,qK$=57,TK$=65,uP4=70,RK$=97,lP4=102,_61=16777215;function MK$($,Z,Q,X){let Y=new Uint8Array(vA);return[0,0,0,0,0,0,0,0,0,0,255,255].forEach((G,W)=>{Y[W]=G}),Y[12]=$,Y[13]=Z,Y[14]=Q,Y[15]=X,Y}function mP4($){return IK$($)!==void 0}function IK$($){for(let Z=0;Z<$.length;Z++)switch($[Z]){case".":return VK$($);case":":return cP4($)}return}function VK$($){let Z=new Uint8Array(je);for(let Q=0;Q<je;Q++){if($.length===0)return;if(Q>0){if($[0]!==".")return;$=$.substring(1)}let{n:X,c:Y,ok:J}=dP4($);if(!J||X>255)return;$=$.substring(Y),Z[Q]=X}return MK$(Z[0],Z[1],Z[2],Z[3])}function cP4($){let Z=new Uint8Array(vA),Q=-1;if($.length>=2&&$[0]===":"&&$[1]===":"){if(Q=0,$=$.substring(2),$.length===0)return Z}let X=0;while(X<vA){let{n:Y,c:J,ok:G}=iP4($);if(!G||Y>65535)return;if(J<$.length&&$[J]==="."){if(Q<0&&X!=vA-je)return;if(X+je>vA)return;let W=VK$($);if(W===void 0)return;Z[X]=W[12],Z[X+1]=W[13],Z[X+2]=W[14],Z[X+3]=W[15],$="",X+=je;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<vA){if(Q<0)return;let Y=vA-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 dP4($){let Z=0,Q=0;for(Z=0;Z<$.length&&MH0<=$.charCodeAt(Z)&&$.charCodeAt(Z)<=qK$;Z++)if(Q=Q*10+($.charCodeAt(Z)-MH0),Q>=_61)return{n:_61,c:Z,ok:!1};if(Z===0)return{n:0,c:0,ok:!1};return{n:Q,c:Z,ok:!0}}function iP4($){let Z=0,Q=0;for(Q=0;Q<$.length;Q++){if(MH0<=$.charCodeAt(Q)&&$.charCodeAt(Q)<=qK$)Z*=16,Z+=$.charCodeAt(Q)-MH0;else if(RK$<=$.charCodeAt(Q)&&$.charCodeAt(Q)<=lP4)Z*=16,Z+=$.charCodeAt(Q)-RK$+10;else if(TK$<=$.charCodeAt(Q)&&$.charCodeAt(Q)<=uP4)Z*=16,Z+=$.charCodeAt(Q)-TK$+10;else break;if(Z>=_61)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 h61=f((SK$)=>{Object.defineProperty(SK$,"__esModule",{value:!0});SK$.Servers=SK$.ServerImpl=void 0;SK$.isIPV4OrHostname=CK$;SK$.hostPort=g61;var x61=_A(),f61=CH(),b61=v61(),oP4=Yw(),aP4=B3();function CK$($){if($.indexOf("[")!==-1||$.indexOf("::")!==-1)return!1;if($.indexOf(".")!==-1)return!0;if($.split(":").length<=2)return!0;return!1}function y61($){return!CK$($)}function rP4($){let Q=$.toUpperCase().indexOf("::FFFF:");if(Q!==-1&&$.indexOf(".")!==-1){let X=$.substring(Q+7);return X=X.replace("[",""),X.replace("]","")}return $}function g61($){if($=$.trim(),$.match(/^(.*:\/\/)(.*)/m))$=$.replace(/^(.*:\/\/)(.*)/gm,"$2");if($=rP4($),y61($)&&$.indexOf("[")===-1)$=`[${$}]`;let Z=y61($)?$.match(/(]:)(\d+)/):$.match(/(:)(\d+)/),Q=Z&&Z.length===3&&Z[1]&&Z[2]?parseInt(Z[2]):oP4.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 pm{src;listen;hostname;port;didConnect;reconnects;lastConnect;gossiped;tlsName;resolves;constructor($,Z=!1){this.src=$,this.tlsName="";let Q=g61($);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,b61.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}://${y61(X)?"["+X+"]":X}`);J.port=`${this.port}`;let G=new pm(J.host,!1);G.tlsName=this.hostname,Z.push(G)}}if($.randomize)(0,f61.shuffle)(Z);return this.resolves=Z,Z}}SK$.ServerImpl=pm;class IH0{firstSelect;servers;currentServer;tlsName;randomize;constructor($={}){this.firstSelect=!0,this.servers=[],this.tlsName="",this.randomize=$.randomize||!1}setServers($){if(!Array.isArray($)||$.length===0)throw aP4.InvalidArgumentError.format("servers","cannot be empty");let Z=(0,x61.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}=g61(Y),G=Q.get(J);if(G)G.gossiped=!1,X.push(G);else X.push(new pm(Y))}if(this.randomize)(0,f61.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,b61.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,x61.getUrlParseFn)();$=Q?Q($):$;let X=new pm($,Z);if((0,b61.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 IH0.freezeAll(this.servers)}snapshotForHandler(){let $=this.currentServer;if(!$)return this.snapshot();let Z=this.servers.indexOf($);if(Z<=0)return this.snapshot();return IH0.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,x61.getUrlParseFn)(),J=new Map;if($.connect_urls&&$.connect_urls.length>0)$.connect_urls.forEach((W)=>{W=Y?Y(W,Z):W;let K=new pm(W,!0);J.set(W,K)});let G=[];if(this.servers.forEach((W,K)=>{let H=W.listen;if(W.gossiped&&this.currentServer.listen!==H&&J.get(H)===void 0)G.push(K);J.delete(H)}),G.reverse(),G.forEach((W)=>{let K=this.servers.splice(W,1);X=X.concat(K[0].listen)}),J.forEach((W,K)=>{this.servers.push(W),Q.push(K)}),this.randomize&&Q.length>0){let W=this.currentServer,K=this.servers.filter((H)=>H!==W);(0,f61.shuffle)(K),this.servers=W?[W,...K]:K}return{added:Q,deleted:X}}}SK$.Servers=IH0});var VH0=f((fK$)=>{Object.defineProperty(fK$,"__esModule",{value:!0});fK$.QueuedIteratorImpl=void 0;var u61=CH(),vK$=B3();class xK${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,u61.deferred)(),this.yields=[],this.iterClosed=(0,u61.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 vK$.InvalidOperationError("iterator cannot be used when a callback is registered");if(this.yielding)throw new vK$.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,u61.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}}fK$.QueuedIteratorImpl=xK$});var l61=f((hK$)=>{Object.defineProperty(hK$,"__esModule",{value:!0});hK$.MuxSubscription=void 0;var Z24=Yw(),yK$=B3();class gK${baseInbox;reqs;constructor(){this.reqs=new Map}size(){return this.reqs.size}init($){return this.baseInbox=`${(0,Z24.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 yK$.NoRespondersError(X.requestSubject):null;X.resolver($,Z)}}}}close(){let $=new yK$.RequestError("connection closed");this.reqs.forEach((Z)=>{Z.resolver($,{})})}}hK$.MuxSubscription=gK$});var m61=f((mK$)=>{Object.defineProperty(mK$,"__esModule",{value:!0});mK$.Heartbeat=void 0;var Q24=CH();class lK${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,Q24.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})}}mK$.Heartbeat=lK$});var i61=f((nK$)=>{Object.defineProperty(nK$,"__esModule",{value:!0});nK$.DenoBuffer=nK$.MAX_SIZE=nK$.AssertionError=void 0;nK$.assert=iK$;nK$.concat=pK$;nK$.append=Y24;nK$.readAll=J24;nK$.writeAll=G24;var X24=N3();class c61 extends Error{constructor($){super($);this.name="AssertionError"}}nK$.AssertionError=c61;function iK$($,Z="Assertion failed."){if(!$)throw new c61(Z)}var dK$=32768;nK$.MAX_SIZE=4294967294;function kH0($,Z,Q=0){let X=Z.byteLength-Q;if($.byteLength>X)$=$.subarray(0,X);return Z.set($,Q),$.byteLength}function pK$($,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 Y24($,Z){return pK$($,Uint8Array.of(Z))}class d61{_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($){iK$($<=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=kH0(this._buf.subarray(this._off),$);return this._off+=Z,Z}writeByte($){return this.write(Uint8Array.of($))}writeString($){return this.write(X24.TE.encode($))}write($){let Z=this._grow($.byteLength);return kH0($,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)kH0(this._buf.subarray(this._off),this._buf);else if(X+$>nK$.MAX_SIZE)throw Error("The buffer cannot be grown beyond the maximum size.");else{let Y=new Uint8Array(Math.min(2*X+$,nK$.MAX_SIZE));kH0(this._buf.subarray(this._off),Y),this._buf=Y}return this._off=0,this._reslice(Math.min(Z+$,nK$.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(dK$);while(!0){let X=this.capacity-this.length<dK$,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}}}nK$.DenoBuffer=d61;function J24($){let Z=new d61;return Z.readFrom($),Z.bytes()}function G24($,Z){let Q=0;while(Q<Z.length)Q+=$.write(Z.subarray(Q))}});var t61=f((sK$)=>{Object.defineProperty(sK$,"__esModule",{value:!0});sK$.cc=sK$.State=sK$.Parser=sK$.Kind=void 0;sK$.describe=B24;var p61=i61(),n61=N3();sK$.Kind={OK:0,ERR:1,MSG:2,INFO:3,PING:4,PONG:5};function B24($){let Z,Q="";switch($.kind){case sK$.Kind.MSG:Z="MSG";break;case sK$.Kind.OK:Z="OK";break;case sK$.Kind.ERR:Z="ERR",Q=n61.TD.decode($.data);break;case sK$.Kind.PING:Z="PING";break;case sK$.Kind.PONG:Z="PONG";break;case sK$.Kind.INFO:Z="INFO",Q=n61.TD.decode($.data)}return`${Z}: ${Q}`}function oK$(){let $={};return $.sid=-1,$.hdr=-1,$.size=-1,$}var aK$=48,L24=57,nm=67108864;class rK${dispatcher;state;as;drop;hdr;ma;argBuf;msgBuf;constructor($){this.dispatcher=$,this.state=sK$.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 sK$.State.OP_START:switch(Q){case sK$.cc.M:case sK$.cc.m:this.state=sK$.State.OP_M,this.hdr=-1,this.ma=oK$();break;case sK$.cc.H:case sK$.cc.h:this.state=sK$.State.OP_H,this.hdr=0,this.ma=oK$();break;case sK$.cc.P:case sK$.cc.p:this.state=sK$.State.OP_P;break;case sK$.cc.PLUS:this.state=sK$.State.OP_PLUS;break;case sK$.cc.MINUS:this.state=sK$.State.OP_MINUS;break;case sK$.cc.I:case sK$.cc.i:this.state=sK$.State.OP_I;break;default:throw this.fail($.subarray(Z))}break;case sK$.State.OP_H:switch(Q){case sK$.cc.M:case sK$.cc.m:this.state=sK$.State.OP_M;break;default:throw this.fail($.subarray(Z))}break;case sK$.State.OP_M:switch(Q){case sK$.cc.S:case sK$.cc.s:this.state=sK$.State.OP_MS;break;default:throw this.fail($.subarray(Z))}break;case sK$.State.OP_MS:switch(Q){case sK$.cc.G:case sK$.cc.g:this.state=sK$.State.OP_MSG;break;default:throw this.fail($.subarray(Z))}break;case sK$.State.OP_MSG:switch(Q){case sK$.cc.SPACE:case sK$.cc.TAB:this.state=sK$.State.OP_MSG_SPC;break;default:throw this.fail($.subarray(Z))}break;case sK$.State.OP_MSG_SPC:switch(Q){case sK$.cc.SPACE:case sK$.cc.TAB:continue;default:this.state=sK$.State.MSG_ARG,this.as=Z}break;case sK$.State.MSG_ARG:switch(Q){case sK$.cc.CR:this.drop=1;break;case sK$.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=sK$.State.MSG_PAYLOAD,Z=this.as+this.ma.size-1;break}default:if(this.argBuf)this.argBuf.writeByte(Q)}break;case sK$.State.MSG_PAYLOAD:if(this.msgBuf)if(this.msgBuf.length>=this.ma.size){let X=this.msgBuf.bytes({copy:!1});this.dispatcher.push({kind:sK$.Kind.MSG,msg:this.ma,data:X}),this.argBuf=void 0,this.msgBuf=void 0,this.state=sK$.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:sK$.Kind.MSG,msg:this.ma,data:$.subarray(this.as,Z)}),this.argBuf=void 0,this.msgBuf=void 0,this.state=sK$.State.MSG_END;break;case sK$.State.MSG_END:switch(Q){case sK$.cc.NL:this.drop=0,this.as=Z+1,this.state=sK$.State.OP_START;break;default:continue}break;case sK$.State.OP_PLUS:switch(Q){case sK$.cc.O:case sK$.cc.o:this.state=sK$.State.OP_PLUS_O;break;default:throw this.fail($.subarray(Z))}break;case sK$.State.OP_PLUS_O:switch(Q){case sK$.cc.K:case sK$.cc.k:this.state=sK$.State.OP_PLUS_OK;break;default:throw this.fail($.subarray(Z))}break;case sK$.State.OP_PLUS_OK:switch(Q){case sK$.cc.NL:this.dispatcher.push({kind:sK$.Kind.OK}),this.drop=0,this.state=sK$.State.OP_START;break}break;case sK$.State.OP_MINUS:switch(Q){case sK$.cc.E:case sK$.cc.e:this.state=sK$.State.OP_MINUS_E;break;default:throw this.fail($.subarray(Z))}break;case sK$.State.OP_MINUS_E:switch(Q){case sK$.cc.R:case sK$.cc.r:this.state=sK$.State.OP_MINUS_ER;break;default:throw this.fail($.subarray(Z))}break;case sK$.State.OP_MINUS_ER:switch(Q){case sK$.cc.R:case sK$.cc.r:this.state=sK$.State.OP_MINUS_ERR;break;default:throw this.fail($.subarray(Z))}break;case sK$.State.OP_MINUS_ERR:switch(Q){case sK$.cc.SPACE:case sK$.cc.TAB:this.state=sK$.State.OP_MINUS_ERR_SPC;break;default:throw this.fail($.subarray(Z))}break;case sK$.State.OP_MINUS_ERR_SPC:switch(Q){case sK$.cc.SPACE:case sK$.cc.TAB:continue;default:this.state=sK$.State.MINUS_ERR_ARG,this.as=Z}break;case sK$.State.MINUS_ERR_ARG:switch(Q){case sK$.cc.CR:this.drop=1;break;case sK$.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:sK$.Kind.ERR,data:X}),this.drop=0,this.as=Z+1,this.state=sK$.State.OP_START;break}default:if(this.argBuf)this.argBuf.write(Uint8Array.of(Q))}break;case sK$.State.OP_P:switch(Q){case sK$.cc.I:case sK$.cc.i:this.state=sK$.State.OP_PI;break;case sK$.cc.O:case sK$.cc.o:this.state=sK$.State.OP_PO;break;default:throw this.fail($.subarray(Z))}break;case sK$.State.OP_PO:switch(Q){case sK$.cc.N:case sK$.cc.n:this.state=sK$.State.OP_PON;break;default:throw this.fail($.subarray(Z))}break;case sK$.State.OP_PON:switch(Q){case sK$.cc.G:case sK$.cc.g:this.state=sK$.State.OP_PONG;break;default:throw this.fail($.subarray(Z))}break;case sK$.State.OP_PONG:switch(Q){case sK$.cc.NL:this.dispatcher.push({kind:sK$.Kind.PONG}),this.drop=0,this.state=sK$.State.OP_START;break}break;case sK$.State.OP_PI:switch(Q){case sK$.cc.N:case sK$.cc.n:this.state=sK$.State.OP_PIN;break;default:throw this.fail($.subarray(Z))}break;case sK$.State.OP_PIN:switch(Q){case sK$.cc.G:case sK$.cc.g:this.state=sK$.State.OP_PING;break;default:throw this.fail($.subarray(Z))}break;case sK$.State.OP_PING:switch(Q){case sK$.cc.NL:this.dispatcher.push({kind:sK$.Kind.PING}),this.drop=0,this.state=sK$.State.OP_START;break}break;case sK$.State.OP_I:switch(Q){case sK$.cc.N:case sK$.cc.n:this.state=sK$.State.OP_IN;break;default:throw this.fail($.subarray(Z))}break;case sK$.State.OP_IN:switch(Q){case sK$.cc.F:case sK$.cc.f:this.state=sK$.State.OP_INF;break;default:throw this.fail($.subarray(Z))}break;case sK$.State.OP_INF:switch(Q){case sK$.cc.O:case sK$.cc.o:this.state=sK$.State.OP_INFO;break;default:throw this.fail($.subarray(Z))}break;case sK$.State.OP_INFO:switch(Q){case sK$.cc.SPACE:case sK$.cc.TAB:this.state=sK$.State.OP_INFO_SPC;break;default:throw this.fail($.subarray(Z))}break;case sK$.State.OP_INFO_SPC:switch(Q){case sK$.cc.SPACE:case sK$.cc.TAB:continue;default:this.state=sK$.State.INFO_ARG,this.as=Z}break;case sK$.State.INFO_ARG:switch(Q){case sK$.cc.CR:this.drop=1;break;case sK$.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:sK$.Kind.INFO,data:X}),this.drop=0,this.as=Z+1,this.state=sK$.State.OP_START;break}default:if(this.argBuf)this.argBuf.writeByte(Q)}break;default:throw this.fail($.subarray(Z))}}if((this.state===sK$.State.MSG_ARG||this.state===sK$.State.MINUS_ERR_ARG||this.state===sK$.State.INFO_ARG)&&!this.argBuf)this.argBuf=new p61.DenoBuffer($.subarray(this.as,Z-this.drop));if(this.state===sK$.State.MSG_PAYLOAD&&!this.msgBuf){if(!this.argBuf)this.cloneMsgArg();this.msgBuf=new p61.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 p61.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 sK$.cc.SPACE:case sK$.cc.TAB:case sK$.cc.CR:case sK$.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],nm);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],nm);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}: ${n61.TD.decode($)}`)}processHeaderMsgArgs($){let Z=[],Q=-1;for(let X=0;X<$.length;X++)switch($[X]){case sK$.cc.SPACE:case sK$.cc.TAB:case sK$.cc.CR:case sK$.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],nm),this.ma.size=this.protoParseInt(Z[3],nm);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],nm),this.ma.size=this.protoParseInt(Z[4],nm);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]<aK$||$[X]>L24)return-1;Q=Q*10+($[X]-aK$)}return Z!==void 0&&Q>Z?-1:Q}}sK$.Parser=rK$;sK$.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};sK$.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 _H0=f(($H$)=>{Object.defineProperty($H$,"__esModule",{value:!0});$H$.MsgHdrsImpl=void 0;$H$.canonicalMIMEHeaderKey=a61;$H$.headers=j24;var eK$=N3(),SH=Yw(),SH0=B3();function a61($){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 SH0.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 j24($=0,Z=""){if($===0&&Z!=="")throw SH0.InvalidArgumentError.format("code","is required");else if($>0&&Z==="")throw SH0.InvalidArgumentError.format("description","is required");return new tm($,Z)}var o61="NATS/1.0";class tm{_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 tm,X=eK$.TD.decode($).split(`\r
2245
2245
  `),Y=X[0];if(Y!==o61){let J=Y.replace(o61,"").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 W=J.slice(0,G),K=J.slice(G+1).trim();Z.append(W,K)}}});return Z}toString(){if(this.headers.size===0&&this._code===0)return"";let $=o61;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
2246
2246
  ${Z}: ${Q[X]}`;return`${$}\r
@@ -4444,7 +4444,7 @@ data:
4444
4444
  </head>`+$.slice(F)}return`<head>
4445
4445
  `+X+`
4446
4446
  </head>
4447
- `+$}function Kf0($){if(!$||$.length===0)return[];return $.filter((Z)=>bl6.test(Z))}function yl6($){return[...$,...$.map((Z)=>Z.replace(/^http/,"ws"))]}function gl6($){if($.csp)return $.csp;let Z=$.resourceCsp;if(!Z)return lG8;let Q=Kf0(Z.resourceDomains),X=Kf0(Z.connectDomains),Y=Kf0(Z.frameDomains),J=Kf0(Z.baseUriDomains),G=Q.length>0,W=X.length>0,K=Y.length>0,H=J.length>0;if(!G&&!W&&!K&&!H)return lG8;let F=Q.join(" ");return["default-src 'none'",G?`script-src 'unsafe-inline' 'unsafe-eval' 'wasm-unsafe-eval' ${F}`:"script-src 'unsafe-inline' 'unsafe-eval' 'wasm-unsafe-eval'",G?`style-src 'unsafe-inline' ${F}`:"style-src 'unsafe-inline'",G?`img-src * data: blob: ${F}`:"img-src * data: blob:",G?`media-src * data: blob: ${F}`:"media-src * data: blob:",G?`font-src data: ${F}`:"font-src data:",W?`connect-src ${yl6(X).join(" ")}`:"connect-src 'none'",K?`frame-src ${Y.join(" ")}`:"frame-src 'none'","worker-src blob:","form-action 'none'",H?`base-uri ${J.join(" ")}`:"base-uri 'none'"].join("; ")}var lG8,bl6;var cG8=L(()=>{lG8=["default-src 'none'","script-src 'unsafe-inline' 'unsafe-eval' 'wasm-unsafe-eval'","style-src 'unsafe-inline'","img-src * data: blob:","media-src * data: blob:","font-src data:","connect-src 'none'","frame-src 'none'","worker-src blob:","form-action 'none'","base-uri 'none'"].join("; ");bl6=/^https?:\/\/(\*\.)?[a-zA-Z0-9._-]+(:\d+)?\/?$/});function hl6($){let Z=$.lastFailureAt-$.firstFailureAt;return $.count>=AB$&&Z>=TB$}class IP1{options;kv=null;codec=Zz();constructor($){this.options=$}async init(){let $=this.options.getJetStream();if(!$)return;this.kv=await new iG8.Kvm($).create(ul6,{storage:dG8.StorageType.Memory,ttl:pG8.nanos(RB$)})}async recordFailure($){if(!this.kv)return MP1;let Z=Date.now();for(let Q=0;Q<ll6;Q++)try{let X=await this.kv.get($);if(!(X&&X.operation!=="DEL"&&X.operation!=="PURGE"&&X.value?.length)){let W={count:1,firstFailureAt:Z,lastFailureAt:Z};return await this.kv.create($,this.codec.encode(W)),{count:W.count,shouldDisable:!1}}let J=this.codec.decode(X.value),G={count:J.count+1,firstFailureAt:J.firstFailureAt,lastFailureAt:Z};return await this.kv.update($,this.codec.encode(G),X.revision),{count:G.count,shouldDisable:hl6(G)}}catch{}return MP1}async recordSuccess($){if(!this.kv)return;try{await this.kv.delete($)}catch{}}teardown(){this.kv=null}}class TZ0{async recordFailure(){return MP1}async recordSuccess(){}teardown(){}}function VP1($){nG8=$??new TZ0}function kP1(){return nG8}var dG8,iG8,pG8,MP1,ul6="DECOCMS_CONN_CIRCUIT",ll6=5,nG8;var CP1=L(()=>{dG8=_(yH(),1),iG8=_(vR(),1),pG8=_(hA(),1),MP1={count:0,shouldDisable:!1};nG8=new TZ0});function tG8($){if(!$)return{decision:"skip"};if($.startsWith("notifications/"))return{decision:"skip"};if(cl6.has($))return{decision:"skip"};let Z=ml6[$];if(Z)return{decision:"skip-if-list-cached",listType:Z};return{decision:"probe"}}async function oG8($){if($.method!=="POST")return;let Z=$.headers.get("content-length");if(Z&&Number(Z)>dl6)return;try{let Q=await $.clone().json(),Y=(Array.isArray(Q)?Q[0]:Q)?.method;return typeof Y==="string"?Y:void 0}catch{return}}var ml6,cl6,dl6=64000;var aG8=L(()=>{ml6={"tools/list":"tools","resources/list":"resources","prompts/list":"prompts"},cl6=new Set(["ping"])});import{SpanStatusCode as Hf0}from"@opentelemetry/api";async function Ff0($,Z){let Q=$.get("studioContext");try{let X=Q.organization?.id??null,Y=Z?Z:X?oA(X):null;if(!Y)return $.json({error:"Agent ID or organization ID is required"},400);if(Z&&!X)return $.json({error:"Organization context is required"},400);let J=await Q.tracer.startActiveSpan("studio.virtual_mcp.lookup",{attributes:{"virtual_mcp.id":Y}},async(N)=>{try{let B=await Q.storage.virtualMcps.findById(Y,X??void 0);return N.setStatus({code:Hf0.OK}),B}catch(B){throw N.setStatus({code:Hf0.ERROR,message:B.message}),N.recordException(B),B}finally{N.end()}});if(!J)return $.json({error:"Agent not found"},404);if(X&&J.organization_id!==X)return $.json({error:"Agent not found"},404);if(J.status!=="active")return $.json({error:`Agent is inactive: ${J.id??"Decopilot"}`},503);if(Q.organization?.id&&J.organization_id!==Q.organization.id)return $.json({error:"Forbidden: Agent does not belong to your organization"},403);Q.connectionId=J.id??void 0;let G=u0(Q),W=null;if(J.id&&G&&Z9(J.metadata)[G])W=await Mh(Q,J.id,G,$.req.query("branch")??void 0).catch(()=>null);let K=await Q.tracer.startActiveSpan("studio.virtual_mcp.create_client",{attributes:{"virtual_mcp.id":J.id??"decopilot"}},async(N)=>{try{let B=await WO(J,Q,!1,{includeSkillsCatalog:!0,additionalConnections:W?[W]:[],listTimeoutMs:mF0});return N.setStatus({code:Hf0.OK}),B}catch(B){throw N.setStatus({code:Hf0.ERROR,message:B.message}),N.recordException(B),B}finally{N.end()}}),H={name:J.id??"Decopilot",version:"1.0.0",title:J.title??void 0,description:J.description??void 0,icons:J.icon?[{src:J.icon}]:void 0},F=xT(K,H,{capabilities:{tools:{},resources:{},prompts:{}},instructions:K.getInstructions(),toolCallTimeoutMs:Ec}),U=new KW({enableJsonResponse:$.req.header("Accept")?.includes("application/json")??!1});return await F.connect(U),await pK(F,U,$.req.raw,`virtual-mcp:${J.id??"decopilot"}`,{onClose:()=>K.close()})}catch(X){let Y=X;return console.error("[virtual-mcp] Error handling virtual MCP request:",Y),$.json({error:"Internal server error",message:Y.message},500)}}var Uf0=()=>{let $=new X1;return $.all("/gateway/:virtualMcpId?",async(Z)=>{let Q=Z.req.param("virtualMcpId")||Z.req.header("x-virtual-mcp-id");return Ff0(Z,Q)}),$.all("/virtual-mcp/:virtualMcpId?",async(Z)=>{let Q=Z.req.param("virtualMcpId")||Z.req.header("x-virtual-mcp-id");return Ff0(Z,Q)}),$};var Nf0=L(()=>{JG();s8();St();F8();xn();wx0();qJ();_t()});import{SpanStatusCode as Bf0}from"@opentelemetry/api";var rG8=($,Z)=>{if($ instanceof dd)return Z.header("Retry-After",String(Math.ceil($.cooldownRemainingMs/1000))),Z.json({error:$.message},503);if($.message.includes("not found"))return Z.json({error:$.message},404);if($.message.includes("does not belong to the active organization"))return Z.json({error:"Connection not found"},404);if($.message.includes("inactive"))return Z.json({error:$.message},503);return Z.json({error:"Internal server error",message:$.message},500)},Lf0=()=>{let $=new X1;return $.all("/",async(Z)=>{return Ff0(Z,void 0)}),$.get("/:connectionId/ui-resource",async(Z)=>{let Q=Z.get("studioContext"),X=Z.req.param("connectionId"),Y=Z.req.query("uri");if(!Y)return Z.json({error:"uri query param is required"},400);if(!Q.organization?.id)return Z.json({error:"Organization context is required"},403);let J=t91(X),G;if(J){let B=u0(Q);if(!B)return Z.json({error:"Authentication required"},401);if(G=await Mh(Q,J,B,Z.req.query("branch")??void 0),!G)return Z.json({error:"Dev server not running"},503)}else if(G=await Q.storage.connections.findById(X,Q.organization.id),!G||G.organization_id!==Q.organization.id)return Z.json({error:"Connection not found"},404);let W=Qz(G,Q,!1,n9()??void 0),K,H;try{let D=(await W.readResource({uri:Y})).contents?.[0];K=D?.text,H=D?._meta?.ui?.csp}catch(B){return Z.json({error:B.message},502)}finally{await W.close().catch(()=>{})}if(typeof K!=="string")return Z.json({error:"Resource has no text content"},404);let F=mG8(K,{resourceCsp:H}),U=`"${Bun.hash(F).toString(36)}"`,N="private, no-cache";if(Z.req.header("if-none-match")===U)return new Response(null,{status:304,headers:{ETag:U,"Cache-Control":N}});return new Response(F,{headers:{"Content-Type":"text/html; charset=utf-8",ETag:U,"Cache-Control":N}})}),$.all("/:connectionId",async(Z)=>{let Q=Z.req.param("connectionId"),X=Z.get("studioContext");if(Q.endsWith("_self")){let G=Q.slice(0,-5);if(!X.organization||X.organization.id!==G)return Z.json({error:"Connection not found"},404);let W=vt(),K=new KW({enableJsonResponse:Z.req.raw.headers.get("Accept")?.includes("application/json")??!1});return await W.connect(K),PO.run(X,()=>pK(W,K,Z.req.raw,`mcp:self:${Q}`))}let Y=t91(Q);if(Y){if(!X.organization?.id)return Z.json({error:"Organization context is required"},403);let G=u0(X);if(!G)return Z.json({error:"Authentication required"},401);let W=await Mh(X,Y,G,Z.req.query("branch")??void 0);if(!W)return Z.json({error:"Dev server not running"},503);let K=qO0(W,X,!1),H=new KW({enableJsonResponse:Z.req.raw.headers.get("Accept")?.includes("application/json")??!1});return await K.connect(H),pK(K,H,Z.req.raw,`mcp:dev:${Q}`)}let J=null;try{try{if(!X.organization?.id)return Z.json({error:"Organization context is required"},403);if(J=await X.tracer.startActiveSpan("studio.connection.lookup",{attributes:{"connection.id":Q}},async(O)=>{iK(Z,"mcp.find_connection");try{let j=await X.storage.connections.findById(Q,X.organization.id);return O.setStatus({code:Bf0.OK}),j}catch(j){throw O.setStatus({code:Bf0.ERROR,message:j.message}),O.recordException(j),j}finally{HW(Z,"mcp.find_connection"),O.end()}}),!J)throw Error("Connection not found");let G=J;if(G.organization_id!==X.organization.id)throw Error("Connection does not belong to the active organization");let W=!1;if(G.status!=="active"){let O=Date.now()-new Date(G.updated_at).getTime();if(G.status==="error"&&!!G.connection_url&&O>=e91)W=!0;else{if(G.status==="error"&&G.connection_url){let w=e91-O;Z.header("Retry-After",String(Math.ceil(w/1000)))}throw Error(`Connection inactive: ${G.status}`)}}let K=await oG8(Z.req.raw),{decision:H,listType:F}=tG8(K),U=H==="probe";if(H==="skip-if-list-cached"&&F){let O=n9();U=O?await O.get(F,Q)===null:!0}if(W)U=!0;if(G.connection_url&&U)YB0(Q),await X.tracer.startActiveSpan("studio.connection.handshake",{attributes:{"connection.id":Q,"connection.url":G.connection_url}},async(O)=>{iK(Z,"mcp.client_handshake");try{if(await NJ(G,X,!1),JB0(Q),kP1().recordSuccess(Q),W)await X.storage.connections.update(Q,{status:"active"}),console.info("[proxy] auto-recovered connection after successful re-probe",{connectionId:Q,org:X.organization?.slug});O.setStatus({code:Bf0.OK})}catch(j){throw O.setStatus({code:Bf0.ERROR,message:j.message}),O.recordException(j),j}finally{HW(Z,"mcp.client_handshake"),O.end()}});iK(Z,"mcp.create_server");let N=qO0(G,X,!1);HW(Z,"mcp.create_server");let B=new KW({enableJsonResponse:Z.req.raw.headers.get("Accept")?.includes("application/json")??!1});iK(Z,"mcp.server_connect"),await N.connect(B),HW(Z,"mcp.server_connect"),iK(Z,"mcp.handle_request");let D=await pK(N,B,Z.req.raw,`mcp:${Q}`);return HW(Z,"mcp.handle_request"),D}catch(G){if(G instanceof dd)throw G;if(J??=await X.storage.connections.findById(Q,X.organization?.id),J?.connection_url){let W=await SP1({error:G,reqUrl:new URL(Z.req.raw.url),connectionId:Q,connectionUrl:J.connection_url,headers:{},orgSlug:X.organization?.slug});if(W)return W;GB0(Q);let{shouldDisable:K}=await kP1().recordFailure(Q);if(K&&J.status==="active")await X.storage.connections.update(Q,{status:"error"}),console.warn("[proxy] auto-disabled connection after sustained failures",{connectionId:Q,org:X.organization?.slug,error:G.message})}throw G}}catch(G){return rG8(G,Z)}}),$.all("/:connectionId/call-tool/:toolName",async(Z)=>{let Q=Z.req.param("connectionId"),X=Z.req.param("toolName"),Y=Z.get("studioContext");if(!Y.organization?.id)return Z.json({error:"Organization context is required"},403);let J=null;try{if(J=await Y.storage.connections.findById(Q,Y.organization.id),!J)return Z.json({error:"Connection not found"},404);if(J.organization_id!==Y.organization.id)throw Error("Connection does not belong to the active organization");if(J.status!=="active")throw Error(`Connection inactive: ${J.status}`);let G;try{G=await Z.req.json()}catch{return Z.json({error:"Request body must be valid JSON"},400)}let K=await(await NJ(J,Y,!1)).callTool({name:X,arguments:G});if(K.isError)return new Response(JSON.stringify(K.content),{headers:{"Content-Type":"application/json"},status:500});return new Response(JSON.stringify(K.structuredContent??K.content),{headers:{"Content-Type":"application/json"}})}catch(G){if(J??=await Y.storage.connections.findById(Q,Y.organization.id),J?.connection_url){let W=await SP1({error:G,reqUrl:new URL(Z.req.raw.url),connectionId:Q,connectionUrl:J.connection_url,headers:{},orgSlug:Y.organization?.slug});if(W)return W}return rG8(G,Z)}}),$};var Df0=L(()=>{xR();St();F8();qP1();CD();_t();RZ0();BJ();I40();cG8();KY1();CP1();aG8();Nf0();wx0();s8();vP1()});async function MP($,Z,Q,X){if(Z.type!=="event"||!Z.connection_id)return{success:!0};let Y=await $.storage.connections.findById(Z.connection_id);if(!Y)return{success:!0};let J=$.organization?.id,G=$.organization?.slug;try{let W=await NJ(Y,$,!0),K=DH1.forClient(_P1(W)),H,F,U;if(Q&&X&&J){let w=await X.generateTokenPair();F=w.plaintext,U=w.hash,H=G?`${$.baseUrl}/api/${G}/trigger-callback`:`${$.baseUrl}/api/trigger-callback`}let N=5000,B=!1,D=new Promise((w,E)=>setTimeout(()=>{B=!0,E(Error("TRIGGER_CONFIGURE timeout"))},N)),O;try{O=await Promise.race([K.TRIGGER_CONFIGURE({type:Z.event_type,params:JSON.parse(Z.params??"{}"),enabled:Q,callbackUrl:H,callbackToken:F}),D])}catch(w){if(B&&Q&&X&&J&&U)await X.persistTokenHash(J,Z.connection_id,U);return console.error(`[configureTriggerOnMcp] TRIGGER_CONFIGURE threw on connection=${Z.connection_id} type=${Z.event_type}:`,w),{success:!1,error:String(w)}}let j=O;if(!j||j.success!==!0)return console.error(`[configureTriggerOnMcp] TRIGGER_CONFIGURE did not return success=true on connection=${Z.connection_id} type=${Z.event_type}. Raw payload:`,JSON.stringify(O)),{success:!1,error:`TRIGGER_CONFIGURE did not return success=true (got ${JSON.stringify(O)})`};try{if(Q&&X&&J&&U)await X.persistTokenHash(J,Z.connection_id,U);if(!Q&&X&&J)await X.deleteByConnection(Z.connection_id,J)}catch(w){console.error("[configureTriggerOnMcp] Token persistence failed after successful TRIGGER_CONFIGURE:",w)}return{success:!0}}catch(W){return{success:!1,error:String(W)}}}var qZ0=L(()=>{xR();Df0();OH1()});import{z as X9}from"zod";var xP1;var sG8=L(()=>{bh();_0();$7();qZ0();xP1=c({name:"AUTOMATION_UPDATE",description:"Update an automation's config. Toggling active state reconfigures event triggers on MCPs.",annotations:{title:"Update Automation",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:X9.object({id:X9.string(),name:X9.string().min(1).max(255).optional(),active:X9.boolean().optional(),messages:X9.union([X9.string(),X9.array(X9.looseObject({id:X9.string().optional(),role:X9.enum(["user","assistant","system"]),parts:X9.array(X9.record(X9.string(),X9.unknown())),metadata:X9.unknown().optional()}))]).optional(),models:X9.object({tier:Hz,modelId:X9.string().optional(),credentialId:X9.string().optional()}).loose().optional(),tools:X9.array(X9.string()).nullable().optional(),maxAgentSteps:X9.number().int().min(1).max(100).nullable().optional(),temperature:X9.number().optional()}),outputSchema:X9.object({id:X9.string(),name:X9.string(),active:X9.boolean(),updated_at:X9.string()}),handler:async($,Z)=>{t(Z);let Q=G0(Z);await Z.access.check();let X=await Z.storage.automations.findById($.id,Q.id);if(!X)throw Error("Automation not found");let Y={};if($.name!==void 0)Y.name=$.name;if($.active!==void 0)Y.active=$.active;if($.messages!==void 0){let G=Qf0($.messages);Y.messages=JSON.stringify(G)}if($.models!==void 0)Y.models=JSON.stringify($.models);if($.tools!==void 0)Y.tools=$.tools===null?null:JSON.stringify($.tools);if($.temperature!==void 0)Y.temperature=$.temperature;if($.maxAgentSteps!==void 0)Y.max_agent_steps=$.maxAgentSteps;let J=await Z.storage.automations.update($.id,Q.id,Y);if($.active!==void 0&&$.active!==X.active){let G=await Z.storage.automations.listTriggers(J.id),W=G.filter((K)=>K.type==="event");await Promise.allSettled(W.map(async(K)=>{let H=await MP(Z,K,$.active);if(!H.success)console.warn(`Failed to configure trigger ${K.id}: ${H.error}`)})),await vG8(G,$.active)}return{id:J.id,name:J.name,active:J.active,updated_at:J.updated_at}}})});import{z as Of0}from"zod";var fP1;var eG8=L(()=>{bh();J6();_0();qZ0();fP1=c({name:"AUTOMATION_DELETE",description:"Permanently delete an automation. Disables all event triggers on connected MCPs first.",annotations:{title:"Delete Automation",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!1},inputSchema:Of0.object({id:Of0.string()}),outputSchema:Of0.object({success:Of0.boolean()}),handler:async($,Z)=>{t(Z);let Q=G0(Z);if(await Z.access.check(),!await Z.storage.automations.findById($.id,Q.id))throw Error("Automation not found");let Y=await Z.storage.automations.listTriggers($.id),J=Y.filter((K)=>K.type==="event");await Promise.allSettled(J.map(async(K)=>{let H=await MP(Z,K,!1);if(!H.success)console.warn(`Failed to disable trigger ${K.id}: ${H.error}`)}));let{success:G}=await Z.storage.automations.delete($.id,Q.id);await xG8(Y);let W=u0(Z);if(W)h1.capture({distinctId:W,event:"automation_deleted",groups:{organization:Q.id},properties:{organization_id:Q.id,automation_id:$.id,trigger_count:Y.length}});return{success:G}}})});function xt($){return`webhook_${$}`}function jf0($,Z,Q){if(!Z)throw Error("Cannot build webhook URL: organization slug missing from request context");return`${$}/api/${Z}/webhooks/${Q}`}import{z as wX}from"zod";var $38=300000,il6=10,bP1;var Z38=L(()=>{LP1();bh();BP1();_0();qZ0();bP1=c({name:"AUTOMATION_TRIGGER_ADD",description:"Add a cron, event, or webhook trigger to an automation. For webhook triggers the response includes a one-time URL + secret token.",annotations:{title:"Add Trigger",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!1},inputSchema:wX.object({automation_id:wX.string(),type:wX.enum(["cron","event","webhook"]),cron_expression:wX.string().optional(),connection_id:wX.string().optional(),event_type:wX.string().optional(),params:wX.record(wX.string(),wX.string()).optional()}),outputSchema:wX.object({id:wX.string(),automation_id:wX.string(),type:wX.enum(["cron","event","webhook"]),created_at:wX.string(),webhook:wX.object({url:wX.string(),token:wX.string()}).nullable().optional()}),handler:async($,Z)=>{t(Z);let Q=G0(Z);await Z.access.check();let X=await Z.storage.automations.findById($.automation_id,Q.id);if(!X)throw Error("Automation not found");if($.type==="cron"){if(!$.cron_expression)throw Error("cron_expression is required for cron triggers");let K=new Yf0($.cron_expression,{timezone:"UTC"}).nextRuns(il6);if(K.length===0)throw Error("Cron expression has no future runs");let H=1/0;for(let F=1;F<K.length;F++){let U=K[F].getTime()-K[F-1].getTime();if(U<H)H=U}if(K.length>=2&&Number.isFinite(H)&&H<$38){let F=$38/1000;throw Error(`Cron fires too frequently \u2014 minimum interval is ${F}s between runs (observed ${H/1000}s)`)}}if($.type==="event"){if(!$.connection_id)throw Error("connection_id is required for event triggers");if(!$.event_type)throw Error("event_type is required for event triggers");if(!await Z.storage.connections.findById($.connection_id,Q.id))throw Error("Connection not found");let K={id:"",automation_id:$.automation_id,type:"event",cron_expression:null,connection_id:$.connection_id,event_type:$.event_type,params:$.params?JSON.stringify($.params):null,last_run_at:null,next_run_at:null,api_key_id:null,created_at:""},H=await MP(Z,K,!0,Z.storage.triggerCallbackTokens);if(!H.success)throw Error(`Failed to configure trigger on connection: ${H.error}`)}let Y=$.type==="cron"&&$.cron_expression?Jf0($.cron_expression,new Date):null,J=await Z.storage.automations.addTrigger({automation_id:$.automation_id,type:$.type,cron_expression:$.type==="cron"?$.cron_expression:null,connection_id:$.type==="event"?$.connection_id:null,event_type:$.type==="event"?$.event_type:null,params:$.params?JSON.stringify($.params):null,next_run_at:Y?.toISOString()??null}),G=null;if($.type==="webhook")try{let W=await Z.boundAuth.apiKey.create({name:`webhook:${X.name}:${J.id.slice(0,8)}`,permissions:{[xt(J.id)]:["FIRE"]},metadata:{kind:"webhook_trigger",automation_id:X.id,trigger_id:J.id}});await Z.storage.automations.setTriggerApiKeyId(J.id,W.id),G={url:jf0(Z.baseUrl,Q.slug,J.id),token:W.key}}catch(W){await Z.storage.automations.removeTrigger(J.id,J.automation_id);let K=W instanceof Error?W.message:String(W);throw Error(`Failed to mint webhook token: ${K}`)}return await Wf0(J,X),{id:J.id,automation_id:J.automation_id,type:J.type,created_at:J.created_at,webhook:G}}})});import{z as wf0}from"zod";var yP1;var Q38=L(()=>{bh();_0();qZ0();yP1=c({name:"AUTOMATION_TRIGGER_REMOVE",description:"Remove a trigger from an automation. Disables associated event listeners on MCPs.",annotations:{title:"Remove Trigger",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!1},inputSchema:wf0.object({trigger_id:wf0.string()}),outputSchema:wf0.object({success:wf0.boolean()}),handler:async($,Z)=>{t(Z);let Q=G0(Z);await Z.access.check();let X=await Z.storage.automations.findTriggerById($.trigger_id);if(!X)throw Error("Trigger not found");if(!await Z.storage.automations.findById(X.automation_id,Q.id))throw Error("Automation not found");if(X.type==="event"){let G=await MP(Z,X,!1,Z.storage.triggerCallbackTokens);if(!G.success)console.warn(`Failed to disable trigger ${X.id}: ${G.error}`)}let{success:J}=await Z.storage.automations.removeTrigger(X.id,X.automation_id);if(X.type==="cron")await AP1(X.id);if(X.type==="webhook"&&X.api_key_id)try{await Z.boundAuth.apiKey.delete(X.api_key_id)}catch(G){console.warn(`[trigger-remove] failed to delete api key ${X.api_key_id} for trigger ${X.id}:`,G instanceof Error?G.message:G)}return{success:J}}})});import{z as ft}from"zod";var gP1;var X38=L(()=>{_0();gP1=c({name:"AUTOMATION_TRIGGER_ROTATE_TOKEN",description:"Rotate the secret token for a webhook automation trigger. Returns a new token; the old token is revoked.",annotations:{title:"Rotate Webhook Token",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!1},inputSchema:ft.object({trigger_id:ft.string()}),outputSchema:ft.object({trigger_id:ft.string(),url:ft.string(),token:ft.string()}),handler:async($,Z)=>{t(Z);let Q=G0(Z);await Z.access.check();let X=await Z.storage.automations.findTriggerById($.trigger_id);if(!X)throw Error("Trigger not found");if(X.type!=="webhook")throw Error("Trigger is not a webhook trigger");let Y=await Z.storage.automations.findById(X.automation_id,Q.id);if(!Y)throw Error("Automation not found");let J=X.api_key_id,G=await Z.boundAuth.apiKey.create({name:`webhook:${Y.name}:${X.id.slice(0,8)}`,permissions:{[xt(X.id)]:["FIRE"]},metadata:{kind:"webhook_trigger",automation_id:Y.id,trigger_id:X.id}});if(await Z.storage.automations.setTriggerApiKeyId(X.id,G.id),J)try{await Z.boundAuth.apiKey.delete(J)}catch(W){console.warn(`[trigger-rotate] failed to delete old key ${J} for trigger ${X.id}:`,W instanceof Error?W.message:W)}return{trigger_id:X.id,url:jf0(Z.baseUrl,Q.slug,X.id),token:G.key}}})});import{z as bt}from"zod";var hP1;var Y38=L(()=>{J6();_0();hP1=c({name:"AUTOMATION_RUN",description:"Manually trigger an automation run. Bypasses configured triggers.",annotations:{title:"Run Automation",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!1},inputSchema:bt.object({id:bt.string()}),outputSchema:bt.object({threadId:bt.string().optional(),error:bt.string().optional(),skipped:bt.string().optional()}),handler:async($,Z)=>{t(Z);let Q=G0(Z);if(await Z.access.check(),!Z.automationRunner)throw Error("Automation runner not available");let X=u0(Z);if(!X)throw Error("User ID not available");let Y=await Z.automationRunner($.id,Q.id,X);if(h1.capture({distinctId:X,event:"automation_run",groups:{organization:Q.id},properties:{organization_id:Q.id,automation_id:$.id,thread_id:"taskId"in Y?Y.taskId:void 0,status:"skipped"in Y?"skipped":("error"in Y)?"error":"started",skip_reason:"skipped"in Y?Y.skipped:void 0,error_message:"error"in Y?Y.error:void 0}}),"skipped"in Y)return{skipped:Y.skipped};if("error"in Y)return{threadId:Y.taskId,error:Y.error};return{threadId:Y.taskId}}})});import{z as SQ}from"zod";var pl6=500,uP1;var J38=L(()=>{y6();_0();uP1=c({name:"AUTOMATION_RUN_STATS",description:"Aggregate run counts (by status) and LLM token/cost totals for a single automation.",annotations:{title:"Automation Run Stats",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:SQ.object({automation_id:SQ.string(),startDate:SQ.string().datetime().optional().describe("Filter runs at or after this ISO timestamp"),endDate:SQ.string().datetime().optional().describe("Filter runs at or before this ISO timestamp")}),outputSchema:SQ.object({runs:SQ.object({total:SQ.number(),completed:SQ.number(),failed:SQ.number(),inProgress:SQ.number()}),usage:SQ.object({calls:SQ.number(),inputTokens:SQ.number(),outputTokens:SQ.number(),totalTokens:SQ.number(),costUsd:SQ.number(),sampledRuns:SQ.number(),truncated:SQ.boolean()})}),handler:async($,Z)=>{t(Z);let Q=G0(Z);if(await Z.access.check(),await nJ(),!await Z.storage.automations.findById($.automation_id,Q.id))throw Error("Automation not found");let Y=await Z.storage.automations.getRunStats($.automation_id,Q.id,{startDate:$.startDate,endDate:$.endDate}),J=await Z.storage.automations.listRunThreadIds($.automation_id,Q.id,{startDate:$.startDate,endDate:$.endDate,limit:pl6}),G={calls:0,inputTokens:0,outputTokens:0,totalTokens:0,costUsd:0,sampledRuns:J.length,truncated:Y.total>J.length};if(J.length>0){let W=await Z.storage.monitoring.queryThreadUsage({organizationId:Q.id,connectionId:"decopilot",threadIds:J,startDate:$.startDate?new Date($.startDate):void 0,endDate:$.endDate?new Date($.endDate):void 0});for(let K of W)G.calls+=K.calls,G.inputTokens+=K.inputTokens,G.outputTokens+=K.outputTokens,G.totalTokens+=K.totalTokens,G.costUsd+=K.costUsd}return{runs:Y,usage:G}}})});var G38=L(()=>{zG8();PG8();AG8();sG8();eG8();Z38();Q38();X38();Y38();J38()});import{z as IP}from"zod";var tl6,ol6,lP1;var W38=L(()=>{_0();tl6=IP.object({id:IP.string().min(1)}),ol6=IP.object({user:IP.object({id:IP.string(),name:IP.string(),email:IP.string(),image:IP.string().nullable()}).nullable()}),lP1=c({name:"USER_GET",description:"Get a user's profile by ID. Only returns users who share an organization with the caller.",annotations:{title:"Get User",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:tl6,outputSchema:ol6,handler:async($,Z)=>{await Z.access.check(),t(Z);let Q=u0(Z);if(!Q)throw Error("Authentication required");let X=await Z.storage.users.findById($.id,Q);if(!X)return{user:null};return{user:{id:X.id,name:X.name,email:X.email,image:X.image??null}}}})});import{z as al6}from"zod";var rl6,mP1;var K38=L(()=>{_0();$7();rl6={tiers:{}},mP1=c({name:"USER_MODEL_PREFERENCES_GET",description:"Get the calling user's personal chat tier \u2192 model overrides for the current organization. Absent tiers fall back to the org default.",annotations:{title:"Get User Model Preferences",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:al6.object({}),outputSchema:s40,handler:async($,Z)=>{t(Z),await Z.access.check();let Q=G0(Z),X=Z.auth?.user?.id;if(!X)throw Error("No authenticated user in context");return await Z.storage.userModelPreferences.get(X,Q.id)??rl6}})});function sl6($,Z,Q){let X={};for(let Y of Hz.options){let J=$[Y];if(!J||JW(Q,J.keyId,J.modelId)){X[Y]=J;continue}let G=Z?.[Y];if(!(G?.keyId===J.keyId&&G?.modelId===J.modelId))throw Error("Model not allowed for your role");X[Y]=null}return X}var cP1;var H38=L(()=>{_0();$7();Ih();cP1=c({name:"USER_MODEL_PREFERENCES_UPDATE",description:"Set the calling user's personal chat tier \u2192 model overrides for the current organization. Only affects this user's chats; the org default and every non-chat path (automations, background tools) are unchanged. Omit a tier (or set it null) to fall back to the org default. Models the caller's role is not allowed to use are rejected.",annotations:{title:"Update User Model Preferences",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:s40,outputSchema:s40,handler:async($,Z)=>{t(Z),await Z.access.check();let Q=G0(Z),X=Z.auth?.user?.id;if(!X)throw Error("No authenticated user in context");let[Y,J]=await Promise.all([GW(Z.db,Q.id,Q.role??Z.auth.user?.role),Z.storage.userModelPreferences.get(X,Q.id)]);return await Z.storage.userModelPreferences.upsert(X,Q.id,{tiers:sl6($.tiers,J?.tiers,Y)})}})});var F38=L(()=>{W38();K38();H38()});import{z as $m6}from"zod";var dP1;var U38=L(()=>{Rd();_0();dP1=c({name:"SIDEBAR_GET",description:"Get the project sidebar for the calling member: the organization's folders (the same for everyone), the member's own pinned, hidden and dismissed projects and hidden folders, and when they joined the organization.",annotations:{title:"Get Project Sidebar",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:$m6.object({}),outputSchema:dw$,handler:async($,Z)=>{t(Z),await Z.access.check();let Q=G0(Z),X=Z.auth?.user?.id;if(!X)throw Error("No authenticated user in context");let Y=Z.storage.projectSidebar,[J,G,W]=await Promise.all([Y.getFolders(Q.id),Y.getPreferences(X,Q.id),Y.joinedAt(X,Q.id)]);return{folders:J,preferences:G,joinedAt:W}}})});function N38($){m6.emit($,{id:crypto.randomUUID(),type:nw$,source:"project-sidebar",subject:$,data:{},time:new Date().toISOString()})}var B38=L(()=>{Rd();BP()});import{z as L38}from"zod";var iP1;var D38=L(()=>{Rd();_0();B38();iP1=c({name:"PROJECT_FOLDERS_SET",description:"Replace the organization's project folders: names, order, and which projects each holds. Org-wide, every member sees the change. A project listed in two folders stays in the first. Deleting a folder never deletes its projects.",annotations:{title:"Set Project Folders",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:L38.object({folders:Ad}),outputSchema:L38.object({folders:Ad}),handler:async($,Z)=>{t(Z),await Z.access.check();let Q=G0(Z),X=await Z.storage.projectSidebar.setFolders(Q.id,$.folders);return N38(Q.id),{folders:X}}})});var pP1;var O38=L(()=>{Rd();_0();pP1=c({name:"SIDEBAR_PREFERENCES_SET",description:"Replace the calling member's own sidebar preferences: pinned, hidden and dismissed projects, and hidden folders. Affects only this member.",annotations:{title:"Set Sidebar Preferences",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:Td,outputSchema:Td,handler:async($,Z)=>{t(Z),await Z.access.check();let Q=G0(Z),X=Z.auth?.user?.id;if(!X)throw Error("No authenticated user in context");return Z.storage.projectSidebar.setPreferences(X,Q.id,$)}})});var j38=L(()=>{U38();D38();O38()});import FW from"zod";var nP1;var w38=L(()=>{_0();wK();nP1=c({name:"AI_PROVIDERS_LIST",description:"List all supported AI providers and their connection methods (API key, OAuth).",annotations:{readOnlyHint:!0,idempotentHint:!0},inputSchema:FW.object({}),outputSchema:FW.object({providers:FW.array(FW.object({id:FW.string(),name:FW.string(),description:FW.string(),logo:FW.string().optional(),supportedMethods:FW.array(FW.enum(["api-key","oauth-pkce"])),supportsTopUp:FW.boolean().optional(),supportsCredits:FW.boolean().optional(),supportsProvision:FW.boolean().optional()}))}),handler:async($,Z)=>{return t(Z),G0(Z),await Z.access.check(),{providers:Object.values(V9()).filter((X)=>!!X).map((X)=>({...X.info,supportedMethods:X.supportedMethods,supportsTopUp:!!X.getTopUpUrl,supportsCredits:!!X.getCreditsBalance,supportsProvision:!!X.provisionKey}))}}})});import r7 from"zod";var tP1;var E38=L(()=>{_0();Ih();tP1=c({name:"AI_PROVIDERS_LIST_MODELS",description:"List models available from an AI provider. Requires a valid stored API key.",annotations:{readOnlyHint:!0,idempotentHint:!0},inputSchema:r7.object({keyId:r7.string().describe("The provider key ID to use")}),outputSchema:r7.object({models:r7.array(r7.object({providerId:r7.string(),modelId:r7.string(),title:r7.string(),description:r7.string().nullish(),logo:r7.string().nullish(),capabilities:r7.array(r7.string()),limits:r7.object({contextWindow:r7.coerce.number(),maxOutputTokens:r7.coerce.number().nullable()}).nullish(),costs:r7.object({input:r7.coerce.number(),output:r7.coerce.number()}).nullish(),asyncResearch:r7.boolean().optional()}))}),handler:async($,Z)=>{t(Z);let Q=G0(Z);await Z.access.check();let[X,Y]=await Promise.all([Z.aiProviders.listModels($.keyId,Q.id),GW(Z.db,Q.id,Q.role??Z.auth.user?.role)]);return{models:X.filter((G)=>JW(Y,$.keyId,G.modelId))}}})});import AO from"zod";var oP1;var z38=L(()=>{_0();wK();oP1=c({name:"AI_PROVIDERS_ACTIVE",description:"List AI providers that have at least one API key configured and ready to use.",inputSchema:AO.object({}),outputSchema:AO.object({providers:AO.array(AO.object({id:AO.string(),name:AO.string(),description:AO.string(),logo:AO.string().optional(),keyCount:AO.number()}))}),handler:async($,Z)=>{t(Z);let Q=G0(Z);await Z.access.check();let X=await Z.storage.aiProviderKeys.list({organizationId:Q.id}),Y=new Map;for(let G of X)Y.set(G.providerId,(Y.get(G.providerId)??0)+1);return{providers:[...Y.entries()].flatMap(([G,W])=>{let H=V9()[G];if(!H)return console.warn(`AI provider "${G}" has stored keys but is not in the registry; skipping.`),[];return[{...H.info,keyCount:W}]})}}})});var iF=L(()=>{s8()});import pF from"zod";var yh,aP1;var MZ0=L(()=>{J6();_0();iF();yh=pF.object({id:pF.string(),providerId:pF.string(),label:pF.string(),presetId:pF.string().nullable(),createdAt:pF.string()}),aP1=c({name:"AI_PROVIDER_KEY_CREATE",description:"Store an API key for an AI provider. The key is encrypted at rest in the vault.",inputSchema:pF.object({providerId:pF.enum(iZ),label:pF.string().min(1).max(100),apiKey:pF.string().min(1),presetId:pF.string().min(1).max(64).optional()}),outputSchema:yh,handler:async($,Z)=>{t(Z);let Q=G0(Z);await Z.access.check();let X=await Z.storage.aiProviderKeys.create({providerId:$.providerId,label:$.label,apiKey:$.apiKey,organizationId:Q.id,createdBy:Z.auth.user.id,presetId:$.presetId??null});return h1.capture({distinctId:Z.auth.user.id,event:"ai_provider_key_created",groups:{organization:Q.id},properties:{organization_id:Q.id,provider_id:X.providerId,preset_id:X.presetId,key_id:X.id,label:X.label}}),{id:X.id,providerId:X.providerId,label:X.label,presetId:X.presetId,createdAt:X.createdAt}}})});import Ef0 from"zod";var yt=($,Z)=>$&&$.keyId===Z?null:$,Qm6=($,Z)=>{let Q={tiers:{fast:yt($.tiers.fast,Z),smart:yt($.tiers.smart,Z),thinking:yt($.tiers.thinking,Z),image:yt($.tiers.image,Z),web_search:yt($.tiers.web_search,Z),deep_research:yt($.tiers.deep_research,Z)}},X=Q.tiers.fast!==$.tiers.fast||Q.tiers.smart!==$.tiers.smart||Q.tiers.thinking!==$.tiers.thinking||Q.tiers.image!==$.tiers.image||Q.tiers.web_search!==$.tiers.web_search||Q.tiers.deep_research!==$.tiers.deep_research;return{config:Q,changed:X}},rP1;var P38=L(()=>{J6();_0();rP1=c({name:"AI_PROVIDER_KEY_DELETE",description:"Delete a stored AI provider API key. Cannot be undone.",inputSchema:Ef0.object({keyId:Ef0.string().describe("The provider key ID to delete")}),outputSchema:Ef0.object({success:Ef0.boolean()}),handler:async($,Z)=>{t(Z);let Q=G0(Z);await Z.access.check();let X=await Z.storage.organizationSettings.get(Q.id);if(X?.simple_mode){let{config:Y,changed:J}=Qm6(X.simple_mode,$.keyId);if(J)await Z.storage.organizationSettings.upsert(Q.id,{simple_mode:Y})}return await Z.storage.aiProviderKeys.delete($.keyId,Q.id),h1.capture({distinctId:Z.auth.user.id,event:"ai_provider_key_deleted",groups:{organization:Q.id},properties:{organization_id:Q.id,key_id:$.keyId}}),{success:!0}}})});import zf0 from"zod";var sP1;var A38=L(()=>{_0();MZ0();sP1=c({name:"AI_PROVIDER_KEY_UPDATE",description:"Update the label and/or API key of a stored AI provider key. Pass apiKey to rotate the stored credential.",inputSchema:zf0.object({keyId:zf0.string(),label:zf0.string().min(1).max(100).optional(),apiKey:zf0.string().min(1).optional()}),outputSchema:yh,handler:async($,Z)=>{t(Z);let Q=G0(Z);await Z.access.check();let X=await Z.storage.aiProviderKeys.updateKey($.keyId,Q.id,{label:$.label,apiKey:$.apiKey});return{id:X.id,providerId:X.providerId,label:X.label,presetId:X.presetId,createdAt:X.createdAt}}})});import gt from"zod";var eP1;var T38=L(()=>{_0();eP1=c({name:"AI_PROVIDER_KEY_PREVIEW",description:"Get the label and a masked preview of a stored AI provider API key. The API key is partially obscured (only the last 4 characters are visible). For openai-compatible keys the baseUrl is also returned.",inputSchema:gt.object({keyId:gt.string()}),outputSchema:gt.object({label:gt.string(),maskedKey:gt.string(),baseUrl:gt.string().optional()}),handler:async($,Z)=>{t(Z);let Q=G0(Z);return await Z.access.check(),Z.storage.aiProviderKeys.getPreview($.keyId,Q.id)}})});import nF from"zod";var $21;var R38=L(()=>{_0();iF();Ih();$21=c({name:"AI_PROVIDER_KEY_LIST",description:"List stored AI provider API keys. Returns metadata only \u2014 secrets are never exposed.",annotations:{readOnlyHint:!0,idempotentHint:!0},inputSchema:nF.object({providerId:nF.enum(xF0).optional()}),outputSchema:nF.object({keys:nF.array(nF.object({id:nF.string(),providerId:nF.string(),label:nF.string(),presetId:nF.string().nullable(),createdBy:nF.string(),createdAt:nF.string()}))}),handler:async($,Z)=>{t(Z);let Q=G0(Z);await Z.access.check();let[X,Y]=await Promise.all([Z.storage.aiProviderKeys.list({organizationId:Q.id,providerId:$.providerId}),GW(Z.db,Q.id,Q.role??Z.auth.user?.role)]);return{keys:X.filter((W)=>UY8(Y,W.id)).map(({organizationId:W,...K})=>K)}}})});import{createHash as Xm6,randomBytes as Ym6}from"crypto";function q38(){return Ym6(32).toString("base64url")}function M38($){return Xm6("sha256").update($).digest("base64url")}var I38=()=>{};import ht from"zod";function V38($){return $==="localhost"||$.endsWith(".localhost")||$==="127.0.0.1"||$==="[::1]"||$==="::1"}function Jm6($){let Z=z0(),Q=Z.baseUrl??`http://localhost:${Z.port}`,X=new URL($),Y=new URL(Q);if(X.origin===Y.origin)return!0;return X.protocol===Y.protocol&&V38(X.hostname)&&V38(Y.hostname)}var Z21;var k38=L(()=>{_0();iF();wK();I38();o1();Z21=c({name:"AI_PROVIDER_OAUTH_URL",description:"Get the OAuth PKCE authorization URL for a provider. Returns URL and state token.",inputSchema:ht.object({providerId:ht.enum(iZ),callbackUrl:ht.string().url().refine(($)=>{return Jm6($)},{message:"callbackUrl must be on the same origin as BASE_URL"})}),outputSchema:ht.object({url:ht.string(),stateToken:ht.string().describe("Opaque token \u2014 pass to AI_PROVIDER_OAUTH_EXCHANGE")}),handler:async($,Z)=>{t(Z);let Q=G0(Z);await Z.access.check();let X=V9()[$.providerId];if(!X)throw Error(`Unknown provider: ${$.providerId}`);if(!X.supportedMethods.includes("oauth-pkce")||!X.getOAuthUrl)throw Error(`Provider ${$.providerId} does not support OAuth PKCE`);let Y=q38(),J=M38(Y),G=await Z.storage.oauthPkceStates.create(Y,Q.id,Z.auth.user.id),W=new URL($.callbackUrl);W.searchParams.set("state",G);let K={callbackUrl:W.toString(),codeChallenge:J,codeChallengeMethod:"S256",organizationId:Q.id};return{url:X.getOAuthUrl(K),stateToken:G}}})});import IZ0 from"zod";var Q21;var C38=L(()=>{_0();iF();wK();MZ0();Q21=c({name:"AI_PROVIDER_OAUTH_EXCHANGE",description:"Exchange an OAuth authorization code for an API key. Completes the OAuth flow started by AI_PROVIDER_OAUTH_URL.",inputSchema:IZ0.object({providerId:IZ0.enum(iZ),code:IZ0.string(),stateToken:IZ0.string().describe("The stateToken returned by AI_PROVIDER_OAUTH_URL"),label:IZ0.string().min(1).max(100)}),outputSchema:yh,handler:async($,Z)=>{t(Z);let Q=G0(Z);await Z.access.check();let X=V9()[$.providerId];if(!X)throw Error(`Unknown provider: ${$.providerId}`);if(!X.supportedMethods.includes("oauth-pkce")||!X.exchangeOAuthCode)throw Error(`Provider ${$.providerId} does not support OAuth PKCE`);let Y=u0(Z);if(!Y)throw Error("Unable to determine user ID");let J=await Z.storage.oauthPkceStates.consume($.stateToken,Q.id,Y),{apiKey:G}=await X.exchangeOAuthCode({code:$.code,codeVerifier:J,codeChallengeMethod:"S256"}),W=await Z.storage.aiProviderKeys.upsert({providerId:$.providerId,label:$.label,apiKey:G,organizationId:Q.id,createdBy:Y});return{id:W.id,providerId:W.providerId,label:W.label,presetId:W.presetId,createdAt:W.createdAt}}})});import S38 from"zod";var X21;var _38=L(()=>{_0();iF();wK();uH();MZ0();X21=c({name:"AI_PROVIDER_PROVISION_KEY",description:"Auto-provision an API key for a provider that supports server-to-server key creation (e.g. Deco AI Gateway).",inputSchema:S38.object({providerId:S38.enum(iZ)}),outputSchema:yh,handler:async($,Z)=>{t(Z);let Q=G0(Z);await Z.access.check();let X=u0(Z);if(!X)throw Error("Unable to determine user ID");let Y=V9()[$.providerId];if(!Y)throw Error(`Unknown provider: ${$.providerId}`);if(!Y.provisionKey)throw Error(`Provider ${$.providerId} does not support key provisioning`);let J=await UQ(X),G=await Y.provisionKey(J,Q.id),W=await Z.storage.aiProviderKeys.upsert({providerId:$.providerId,label:"Auto-provisioned",apiKey:G,organizationId:Q.id,createdBy:X});return{id:W.id,providerId:W.providerId,label:W.label,presetId:W.presetId,createdAt:W.createdAt}}})});function VZ0(){let $=z0();return $.aiGatewayEnabled&&!!$.aiGatewayAdminToken}async function v38($,Z,Q){let X=z0(),Y=await fetch(`${X.aiGatewayUrl}${$}`,{method:"POST",headers:{Authorization:`Bearer ${X.aiGatewayAdminToken}`,"Content-Type":"application/json"},body:JSON.stringify(Z),signal:AbortSignal.timeout(15000)}),J=await Y.text().catch(()=>"");if(!Y.ok){let G=Y.status>=400&&Y.status<500&&Y.status!==408&&Y.status!==429,W=`${Q} failed (${Y.status}): ${J}`;throw G?new ut(Y.status,W):Error(W)}}async function lt($){let Z=z0();if(!Z.aiGatewayEnabled)return;if(!Z.aiGatewayAdminToken)throw Error("DECO_AI_GATEWAY_ADMIN_TOKEN is not set \u2014 cannot place the gateway plan");await v38("/api/admin/plans",{orgId:$.organizationId,planId:$.planId,note:$.note},"gateway plan change")}async function x38($){if(!VZ0())throw Error("gateway admin not configured \u2014 cannot credit top-up");await v38("/api/admin/credits",{orgId:$.organizationId,amountCents:$.amountCents,description:"Studio credit top-up (Stripe)",referenceId:$.referenceId},"gateway top-up credit")}var ut;var kZ0=L(()=>{o1();ut=class ut extends Error{status;constructor($,Z){super(Z);this.status=$;this.name="GatewayAdminPermanentError"}}});import mt from"zod";var Gm6=1e6,Y21;var f38=L(()=>{kZ0();yD();T9();o1();_0();iF();wK();uH();Y21=c({name:"AI_PROVIDER_TOPUP_URL",description:"Get a checkout URL to top up credits for a provider that supports it (e.g. Deco AI Gateway)",requiresFeature:"credits",inputSchema:mt.object({providerId:mt.enum(iZ),amountCents:mt.number().int().positive().max(Gm6).describe("Amount in cents (e.g. 1000 = $10.00), max $10,000.00"),currency:mt.enum(["usd","brl"]).default("usd")}),outputSchema:mt.object({url:mt.string().describe("Checkout URL \u2014 open in browser to complete payment")}),handler:async($,Z)=>{t(Z);let Q=G0(Z);await Z.access.check();let X=u0(Z);if(!X)throw Error("Unable to determine user ID");let Y=z0();if($.providerId==="deco"&&Y.stripeSecretKey&&VZ0()&&Q.slug){let K=await Z.storage.organizationBilling.getBilling(Q.id),H=`${a5()}${Xz(Q.slug)}`,{url:F}=await vl$({organizationId:Q.id,amountCents:$.amountCents,currency:$.currency,feePercent:Y.topupFeePercent,customerId:K?.stripeCustomerId??null,successUrl:`${H}?topup=success`,cancelUrl:`${H}?topup=canceled`});return{url:F}}let J=V9()[$.providerId];if(!J)throw Error(`Unknown provider: ${$.providerId}`);if(!J.getTopUpUrl)throw Error(`Provider ${$.providerId} does not support credit top-ups`);let G=await UQ(X,Z.auth.user?.email);return{url:await J.getTopUpUrl(G,Q.id,$.amountCents,$.currency)}}})});import Pf0 from"zod";function Wm6($){return Number.isFinite($)}var J21;var b38=L(()=>{_0();iF();wK();uH();J21=c({name:"AI_PROVIDER_CREDITS",description:"Get the current credit balance for a provider (providers that support it, e.g. Deco AI Gateway)",inputSchema:Pf0.object({providerId:Pf0.enum(iZ)}),outputSchema:Pf0.object({balanceCents:Pf0.number().describe("Remaining balance in cents (e.g. 1000 = $10.00)")}),handler:async($,Z)=>{t(Z);let Q=G0(Z);await Z.access.check();let X=u0(Z);if(!X)throw Error("Unable to determine user ID");let Y=V9()[$.providerId];if(!Y)throw Error(`Unknown provider: ${$.providerId}`);if(!Y.getCreditsBalance)throw Error(`Provider ${$.providerId} does not expose a credits balance`);let J=await UQ(X),G=await Y.getCreditsBalance(J,Q.id);if(!Wm6(G.balanceCents))throw console.error(`AI provider "${$.providerId}" returned a non-finite credits balance for org ${Q.id}: ${G.balanceCents}`),Error(`Provider ${$.providerId} returned an invalid credits balance`);return G}})});function y38($){return{plan:$.plan,features:$.features,usage:$.usage,credits:$.credits,tasks:$.tasks,periodStart:$.periodStart,periodEnd:$.periodEnd}}import yZ from"zod";var G21;var g38=L(()=>{_0();iF();wK();uH();G21=c({name:"AI_PLAN_ENTITLEMENTS",description:"Get the organization's plan, its feature flags and the AI usage bar (a percentage, never a dollar amount)",inputSchema:yZ.object({providerId:yZ.enum(iZ)}),outputSchema:yZ.object({plan:yZ.object({id:yZ.string(),name:yZ.string()}),features:yZ.record(yZ.string(),yZ.boolean()),usage:yZ.object({percent:yZ.number(),state:yZ.enum(["ok","warn","exhausted"]),usedMicros:yZ.number().nullable(),limitMicros:yZ.number().nullable()}).nullable(),credits:yZ.object({remainingUsd:yZ.number()}).nullable(),tasks:yZ.object({allowed:yZ.boolean(),remaining:yZ.number().nullable(),denyReason:yZ.string().nullable()}),periodStart:yZ.string().nullable(),periodEnd:yZ.string().nullable()}),handler:async($,Z)=>{t(Z);let Q=G0(Z);await Z.access.check();let X=u0(Z);if(!X)throw Error("Unable to determine user ID");let Y=V9()[$.providerId];if(!Y)throw Error(`Unknown provider: ${$.providerId}`);if(!Y.getEntitlements)throw Error(`Provider ${$.providerId} does not expose plans`);let J=await UQ(X);return y38(await Y.getEntitlements(J,Q.id))}})});function K21($){if(l38=$,W21)return;let Z=$();if(!Z)return;W21=Z.subscribe(h38);let Q=new TextDecoder;(async()=>{for await(let X of W21)try{let Y=JSON.parse(Q.decode(X.data));if(typeof Y.organizationId!=="string")continue;if(Y.originId===u38)continue;gK1(Y.organizationId)}catch{}})()}function gh($){gK1($);try{let Z=l38?.()??null;if(!Z)return;let Q={originId:u38,organizationId:$};Z.publish(h38,Km6.encode(JSON.stringify(Q)))}catch(Z){console.warn("[plans] cross-pod cache invalidation failed to publish",{organizationId:$,error:Z instanceof Error?Z.message:String(Z)})}}var h38="studio.plans.invalidate",u38,l38=null,W21=null,Km6;var CZ0=L(()=>{EF();u38=crypto.randomUUID(),Km6=new TextEncoder});import e9 from"zod";function Fm6($){if(!$.plansEnabled)return"Plans are not enabled on this deployment.";if(!$.entitlements)return"Could not read this organization's plan.";if($.entitlements.features.invoice_upgrade!==!0)return"This organization cannot add a plan to its invoice.";if($.entitlements.usageState!=="exhausted")return"Invoice upgrades open once this organization's AI usage limit is reached.";if($.subscriptionBound)return"This organization has an active subscription \u2014 change plans through billing.";if($.entitlements.planId===$.targetPlanId)return"This organization is already on that plan.";return null}var Hm6,H21,F21,U21;var m38=L(()=>{_0();iF();wK();uH();CZ0();kZ0();o1();J6();Hm6=e9.object({id:e9.string(),name:e9.string(),features:e9.record(e9.string(),e9.boolean())}),H21=c({name:"AI_PLAN_LIST",description:"List the plans an organization can move to",inputSchema:e9.object({providerId:e9.enum(iZ)}),outputSchema:e9.object({plans:e9.array(Hm6)}),handler:async($,Z)=>{t(Z);let Q=G0(Z);await Z.access.check();let X=u0(Z);if(!X)throw Error("Unable to determine user ID");let Y=V9()[$.providerId];if(!Y?.listPlans)throw Error(`Provider ${$.providerId} does not expose plans`);let J=await UQ(X);return{plans:await Y.listPlans(J,Q.id)}}}),F21=c({name:"AI_PLAN_SET",description:"Drop the organization back to the free tier. Paid plans are granted by subscribing (ORGANIZATION_BILLING_CHECKOUT_START), never here.",inputSchema:e9.object({providerId:e9.enum(iZ),planId:e9.literal("free")}),outputSchema:e9.object({plan:e9.object({id:e9.string(),name:e9.string()}),features:e9.record(e9.string(),e9.boolean())}),handler:async($,Z)=>{t(Z);let Q=G0(Z);await Z.access.check();let X=u0(Z);if(!X)throw Error("Unable to determine user ID");if((await Z.storage.organizationBilling.getBilling(Q.id))?.stripeSubscriptionId)throw Error("This organization has an active subscription \u2014 cancel it in billing first; the plan drops to free when it ends.");let J=V9()[$.providerId];if(!J?.setPlan)throw Error(`Provider ${$.providerId} does not expose plans`);let G=await UQ(X),W=await J.setPlan(G,Q.id,$.planId);return gh(Q.id),{plan:W.plan,features:W.features}}});U21=c({name:"AI_PLAN_INVOICE_UPGRADE",description:"Move the organization to a paid plan now, billed on its next deco invoice. Only for organizations deco enabled for invoice billing.",inputSchema:e9.object({planId:e9.enum(["starter","business"])}),outputSchema:e9.object({planId:e9.string()}),handler:async($,Z)=>{t(Z);let Q=G0(Z);await Z.access.check();let X=u0(Z);if(!X)throw Error("Unable to determine user ID");let Y=z0().plansEnabled&&VZ0(),J=await Z.storage.organizationBilling.getBilling(Q.id),G=V9().deco,W=null;if(Y&&G?.getEntitlements){let F=await G.getEntitlements(await UQ(X),Q.id);if(F.features&&typeof F.features==="object")W={planId:F.plan.id,features:F.features,usageState:F.usage?.state??null}}let K=Fm6({plansEnabled:Y,entitlements:W,subscriptionBound:!!J?.stripeSubscriptionId,targetPlanId:$.planId});if(K||!W)throw Error(K??"Could not read this organization's plan.");let H=Z.auth.user?.email??X;return await lt({organizationId:Q.id,planId:$.planId,note:`invoice upgrade by ${H} at ${new Date().toISOString()} \u2014 bill on next invoice`}),gh(Q.id),DQ({event:"plan_invoice_upgrade",organizationId:Q.id,userId:X,properties:{plan_id:$.planId,previous_plan_id:W.planId,org_slug:Q.slug,org_name:Q.name}}),{planId:$.planId}}})});var c38=L(()=>{w38();E38();z38();MZ0();P38();A38();T38();R38();k38();C38();_38();f38();b38();g38();m38()});import VP from"zod";function Bm6($){let Z=$.trim();if(Z.startsWith(Nm6))throw Error("That looks like a Console API key, which bills per-token API usage instead of your subscription. Run `claude setup-token` and paste the token it prints.");if(/\s/.test(Z))throw Error("The token must not contain spaces or line breaks");if(Z.length===0)throw Error("The token must not be empty");return Z}var N21,Nm6="sk-ant-api",d38,i38,p38;var n38=L(()=>{_0();N21=VP.object({connected:VP.boolean(),linkedAt:VP.string().nullable(),expiresAt:VP.string().nullable().describe("Known expiry, or null when the token carries none we can read")});d38=c({name:"CLAUDE_SUBSCRIPTION_CONNECT",description:"Link the caller's Claude subscription with a token from `claude setup-token`, so their claude-code runs bill against their own Pro/Max plan. Stored encrypted, for the caller only.",inputSchema:VP.object({token:VP.string().min(1).describe("The token printed by `claude setup-token` (sk-ant-oat\u2026)")}),outputSchema:N21,handler:async($,Z)=>{t(Z),G0(Z),await Z.access.check();let Q=u0(Z);if(!Q)throw Error("Unable to determine user ID");let X=Bm6($.token);return{connected:!0,...await Z.storage.claudeSubscriptions.upsert({userId:Q,accessToken:X})}}}),i38=c({name:"CLAUDE_SUBSCRIPTION_STATUS",description:"Whether the caller has a linked Claude subscription token, and since when.",inputSchema:VP.object({}),outputSchema:N21,handler:async($,Z)=>{t(Z),G0(Z),await Z.access.check();let Q=u0(Z);if(!Q)throw Error("Unable to determine user ID");let X=await Z.storage.claudeSubscriptions.find(Q);if(!X)return{connected:!1,linkedAt:null,expiresAt:null};return{connected:!(X.expiresAt!==null&&new Date(X.expiresAt)<=new Date),...X}}}),p38=c({name:"CLAUDE_SUBSCRIPTION_DISCONNECT",description:"Unlink the caller's Claude subscription and delete the stored token.",inputSchema:VP.object({}),outputSchema:N21,handler:async($,Z)=>{t(Z),G0(Z),await Z.access.check();let Q=u0(Z);if(!Q)throw Error("Unable to determine user ID");return await Z.storage.claudeSubscriptions.delete(Q),{connected:!1,linkedAt:null,expiresAt:null}}})});import RB from"zod";var Af0;var B21=L(()=>{Af0=RB.object({id:RB.string(),scope:RB.enum(["user","organization"]),userId:RB.string().nullable(),name:RB.string(),description:RB.string().nullable(),createdBy:RB.string(),createdAt:RB.string(),updatedBy:RB.string(),updatedAt:RB.string()})});import SZ0 from"zod";var Dm6=65536,L21;var t38=L(()=>{_0();B21();L21=c({name:"SECRET_CREATE",description:"Create a secret. The value is encrypted at rest in the credential vault and never returned by any tool. Scope 'user' is private to the caller within this organization; scope 'organization' is visible to all org members.",inputSchema:SZ0.object({scope:SZ0.enum(["user","organization"]),name:SZ0.string().min(1).max(128).regex(/^[A-Za-z0-9_.-]+$/,{message:"Name may only contain letters, digits, underscore, dot, and hyphen."}),value:SZ0.string().min(1).max(Dm6),description:SZ0.string().max(500).optional()}),outputSchema:Af0,handler:async($,Z)=>{t(Z);let Q=G0(Z);await Z.access.check();let X=Z.auth.user.id,Y=$.scope==="user"?{kind:"user",userId:X}:{kind:"organization"};return await Z.storage.secrets.create({organizationId:Q.id,scope:Y,name:$.name,value:$.value,description:$.description??null,createdBy:X})}})});import Tf0 from"zod";var D21;var o38=L(()=>{_0();B21();D21=c({name:"SECRET_LIST",description:"List secrets visible to the caller: all organization-scoped secrets, plus user-scoped secrets owned by the caller. Values are never returned.",annotations:{readOnlyHint:!0,idempotentHint:!0},inputSchema:Tf0.object({scope:Tf0.enum(["user","organization"]).optional()}),outputSchema:Tf0.object({secrets:Tf0.array(Af0)}),handler:async($,Z)=>{t(Z);let Q=G0(Z);await Z.access.check();let X=Z.auth.user.id,Y=$.scope==="user"?{kind:"user",userId:X}:$.scope==="organization"?{kind:"organization"}:void 0;return{secrets:await Z.storage.secrets.list({organizationId:Q.id,callerUserId:X,scope:Y})}}})});var a38=L(()=>{t38();o38()});var hh=f((Am6)=>{var O21;(function($){$.HEADER="header",$.QUERY="query"})(O21||(O21={}));var j21;(function($){$.HEADER="header",$.QUERY="query"})(j21||(j21={}));var w21;(function($){$.HTTP="http",$.HTTPS="https"})(w21||(w21={}));var _Z0;(function($){$.MD5="md5",$.CRC32="crc32",$.CRC32C="crc32c",$.SHA1="sha1",$.SHA256="sha256"})(_Z0||(_Z0={}));var jm6=($)=>{let Z=[];if($.sha256!==void 0)Z.push({algorithmId:()=>_Z0.SHA256,checksumConstructor:()=>$.sha256});if($.md5!=null)Z.push({algorithmId:()=>_Z0.MD5,checksumConstructor:()=>$.md5});return{addChecksumAlgorithm(Q){Z.push(Q)},checksumAlgorithms(){return Z}}},wm6=($)=>{let Z={};return $.checksumAlgorithms().forEach((Q)=>{Z[Q.algorithmId()]=Q.checksumConstructor()}),Z},Em6=($)=>{return jm6($)},zm6=($)=>{return wm6($)},E21;(function($){$[$.HEADER=0]="HEADER",$[$.TRAILER=1]="TRAILER"})(E21||(E21={}));var Pm6="__smithy_context",z21;(function($){$.PROFILE="profile",$.SSO_SESSION="sso-session",$.SERVICES="services"})(z21||(z21={}));var P21;(function($){$.HTTP_0_9="http/0.9",$.HTTP_1_0="http/1.0",$.TDS_8_0="tds/8.0"})(P21||(P21={}));Am6.AlgorithmId=_Z0;Am6.EndpointURLScheme=w21;Am6.FieldPosition=E21;Am6.HttpApiKeyAuthLocation=j21;Am6.HttpAuthLocation=O21;Am6.IniSectionType=z21;Am6.RequestHandlerProtocol=P21;Am6.SMITHY_CONTEXT_KEY=Pm6;Am6.getDefaultClientConfiguration=Em6;Am6.resolveDefaultRuntimeConfig=zm6});var qB=f((hm6)=>{var{SMITHY_CONTEXT_KEY:r38}=hh(),vm6=($)=>$[r38]||($[r38]={});class Rf0{method;protocol;hostname;port;path;query;headers;username;password;fragment;body;constructor($){this.method=$.method||"GET",this.hostname=$.hostname||"localhost",this.port=$.port,this.query=$.query||{},this.headers=$.headers||{},this.body=$.body,this.protocol=$.protocol?$.protocol.slice(-1)!==":"?`${$.protocol}:`:$.protocol:"https:",this.path=$.path?$.path.charAt(0)!=="/"?`/${$.path}`:$.path:"/",this.username=$.username,this.password=$.password,this.fragment=$.fragment}static clone($){let Z=new Rf0({...$,headers:{...$.headers}});if(Z.query)Z.query=xm6(Z.query);return Z}static isInstance($){if(!$)return!1;let Z=$;return"method"in Z&&"protocol"in Z&&"hostname"in Z&&"path"in Z&&typeof Z.query==="object"&&typeof Z.headers==="object"}clone(){return Rf0.clone(this)}}function xm6($){return Object.keys($).reduce((Z,Q)=>{let X=$[Q];return{...Z,[Q]:Array.isArray(X)?[...X]:X}},{})}class s38{statusCode;reason;headers;body;constructor($){this.statusCode=$.statusCode,this.reason=$.reason,this.headers=$.headers||{},this.body=$.body}static isInstance($){if(!$)return!1;let Z=$;return typeof Z.statusCode==="number"&&typeof Z.headers==="object"}}var fm6=new RegExp("^(?!.*-$)(?!-)[a-zA-Z0-9-]{1,63}$"),e38=($,Z=!1)=>{if(!Z)return fm6.test($);let Q=$.split(".");for(let X of Q)if(!e38(X))return!1;return!0};function bm6($){return/^[a-z0-9][a-z0-9\.\-]*[a-z0-9]$/.test($)}var ym6=($)=>{if(typeof $==="function")return $;let Z=Promise.resolve($);return()=>Z};function $W8($){let Z={};if($=$.replace(/^\?/,""),$)for(let Q of $.split("&")){let[X,Y=null]=Q.split("=");if(X=decodeURIComponent(X),Y)Y=decodeURIComponent(Y);if(!(X in Z))Z[X]=Y;else if(Array.isArray(Z[X]))Z[X].push(Y);else Z[X]=[Z[X],Y]}return Z}var qf0=($)=>{if(typeof $==="string")return qf0(new URL($));let{hostname:Z,pathname:Q,port:X,protocol:Y,search:J}=$,G;if(J)G=$W8(J);return{hostname:Z,port:X?parseInt(X):void 0,protocol:Y,path:Q,query:G}},gm6=($)=>{if(typeof $==="object"){if("url"in $){let Z=qf0($.url);if($.headers){Z.headers={};for(let Q in $.headers)Z.headers[Q.toLowerCase()]=$.headers[Q].join(", ")}return Z}return $}return qf0($)};hm6.HttpRequest=Rf0;hm6.HttpResponse=s38;hm6.getSmithyContext=vm6;hm6.isValidHostLabel=e38;hm6.isValidHostname=bm6;hm6.normalizeProvider=ym6;hm6.parseQueryString=$W8;hm6.parseUrl=qf0;hm6.toEndpointV1=gm6});var tF=f((Kc6)=>{var{getSmithyContext:ZW8,HttpResponse:om6,toEndpointV1:am6}=qB(),Mf0=($)=>{if(typeof $==="function")return $();return $},R21=($,Z,Q,X,Y)=>({name:Z,namespace:$,traits:Q,input:X,output:Y}),rm6=($)=>(Z,Q)=>async(X)=>{let{response:Y}=await Z(X),{operationSchema:J}=ZW8(Q),[,G,W,K,H,F]=J??[];try{let U=await $.protocol.deserializeResponse(R21(G,W,K,H,F),{...$,...Q},Y);return{response:Y,output:U}}catch(U){if(Object.defineProperty(U,"$response",{value:Y,enumerable:!1,writable:!1,configurable:!1}),!("$metadata"in U)){try{U.message+=`
4447
+ `+$}function Kf0($){if(!$||$.length===0)return[];return $.filter((Z)=>bl6.test(Z))}function yl6($){return[...$,...$.map((Z)=>Z.replace(/^http/,"ws"))]}function gl6($){if($.csp)return $.csp;let Z=$.resourceCsp;if(!Z)return lG8;let Q=Kf0(Z.resourceDomains),X=Kf0(Z.connectDomains),Y=Kf0(Z.frameDomains),J=Kf0(Z.baseUriDomains),G=Q.length>0,W=X.length>0,K=Y.length>0,H=J.length>0;if(!G&&!W&&!K&&!H)return lG8;let F=Q.join(" ");return["default-src 'none'",G?`script-src 'unsafe-inline' 'unsafe-eval' 'wasm-unsafe-eval' ${F}`:"script-src 'unsafe-inline' 'unsafe-eval' 'wasm-unsafe-eval'",G?`style-src 'unsafe-inline' ${F}`:"style-src 'unsafe-inline'",G?`img-src * data: blob: ${F}`:"img-src * data: blob:",G?`media-src * data: blob: ${F}`:"media-src * data: blob:",G?`font-src data: ${F}`:"font-src data:",W?`connect-src ${yl6(X).join(" ")}`:"connect-src 'none'",K?`frame-src ${Y.join(" ")}`:"frame-src 'none'","worker-src blob:","form-action 'none'",H?`base-uri ${J.join(" ")}`:"base-uri 'none'"].join("; ")}var lG8,bl6;var cG8=L(()=>{lG8=["default-src 'none'","script-src 'unsafe-inline' 'unsafe-eval' 'wasm-unsafe-eval'","style-src 'unsafe-inline'","img-src * data: blob:","media-src * data: blob:","font-src data:","connect-src 'none'","frame-src 'none'","worker-src blob:","form-action 'none'","base-uri 'none'"].join("; ");bl6=/^https?:\/\/(\*\.)?[a-zA-Z0-9._-]+(:\d+)?\/?$/});function hl6($){let Z=$.lastFailureAt-$.firstFailureAt;return $.count>=AB$&&Z>=TB$}class IP1{options;kv=null;codec=Zz();constructor($){this.options=$}async init(){let $=this.options.getJetStream();if(!$)return;this.kv=await new iG8.Kvm($).create(ul6,{storage:dG8.StorageType.Memory,ttl:pG8.nanos(RB$)})}async recordFailure($){if(!this.kv)return MP1;let Z=Date.now();for(let Q=0;Q<ll6;Q++)try{let X=await this.kv.get($);if(!(X&&X.operation!=="DEL"&&X.operation!=="PURGE"&&X.value?.length)){let W={count:1,firstFailureAt:Z,lastFailureAt:Z};return await this.kv.create($,this.codec.encode(W)),{count:W.count,shouldDisable:!1}}let J=this.codec.decode(X.value),G={count:J.count+1,firstFailureAt:J.firstFailureAt,lastFailureAt:Z};return await this.kv.update($,this.codec.encode(G),X.revision),{count:G.count,shouldDisable:hl6(G)}}catch{}return MP1}async recordSuccess($){if(!this.kv)return;try{await this.kv.delete($)}catch{}}teardown(){this.kv=null}}class TZ0{async recordFailure(){return MP1}async recordSuccess(){}teardown(){}}function VP1($){nG8=$??new TZ0}function kP1(){return nG8}var dG8,iG8,pG8,MP1,ul6="DECOCMS_CONN_CIRCUIT",ll6=5,nG8;var CP1=L(()=>{dG8=_(yH(),1),iG8=_(vR(),1),pG8=_(hA(),1),MP1={count:0,shouldDisable:!1};nG8=new TZ0});function tG8($){if(!$)return{decision:"skip"};if($.startsWith("notifications/"))return{decision:"skip"};if(cl6.has($))return{decision:"skip"};let Z=ml6[$];if(Z)return{decision:"skip-if-list-cached",listType:Z};return{decision:"probe"}}async function oG8($){if($.method!=="POST")return;let Z=$.headers.get("content-length");if(Z&&Number(Z)>dl6)return;try{let Q=await $.clone().json(),Y=(Array.isArray(Q)?Q[0]:Q)?.method;return typeof Y==="string"?Y:void 0}catch{return}}var ml6,cl6,dl6=64000;var aG8=L(()=>{ml6={"tools/list":"tools","resources/list":"resources","prompts/list":"prompts"},cl6=new Set(["ping"])});import{SpanStatusCode as Hf0}from"@opentelemetry/api";async function Ff0($,Z){let Q=$.get("studioContext");try{let X=Q.organization?.id??null,Y=Z?Z:X?oA(X):null;if(!Y)return $.json({error:"Agent ID or organization ID is required"},400);if(Z&&!X)return $.json({error:"Organization context is required"},400);let J=await Q.tracer.startActiveSpan("studio.virtual_mcp.lookup",{attributes:{"virtual_mcp.id":Y}},async(N)=>{try{let B=await Q.storage.virtualMcps.findById(Y,X??void 0);return N.setStatus({code:Hf0.OK}),B}catch(B){throw N.setStatus({code:Hf0.ERROR,message:B.message}),N.recordException(B),B}finally{N.end()}});if(!J)return $.json({error:"Agent not found"},404);if(X&&J.organization_id!==X)return $.json({error:"Agent not found"},404);if(J.status!=="active")return $.json({error:`Agent is inactive: ${J.id??"Decopilot"}`},503);if(Q.organization?.id&&J.organization_id!==Q.organization.id)return $.json({error:"Forbidden: Agent does not belong to your organization"},403);Q.connectionId=J.id??void 0;let G=u0(Q),W=null;if(J.id&&G&&Z9(J.metadata)[G])W=await Mh(Q,J.id,G,$.req.query("branch")??void 0).catch(()=>null);let K=await Q.tracer.startActiveSpan("studio.virtual_mcp.create_client",{attributes:{"virtual_mcp.id":J.id??"decopilot"}},async(N)=>{try{let B=await WO(J,Q,!1,{includeSkillsCatalog:!0,additionalConnections:W?[W]:[],listTimeoutMs:mF0});return N.setStatus({code:Hf0.OK}),B}catch(B){throw N.setStatus({code:Hf0.ERROR,message:B.message}),N.recordException(B),B}finally{N.end()}}),H={name:J.id??"Decopilot",version:"1.0.0",title:J.title??void 0,description:J.description??void 0,icons:J.icon?[{src:J.icon}]:void 0},F=xT(K,H,{capabilities:{tools:{},resources:{},prompts:{}},instructions:K.getInstructions(),toolCallTimeoutMs:Ec}),U=new KW({enableJsonResponse:$.req.header("Accept")?.includes("application/json")??!1});return await F.connect(U),await pK(F,U,$.req.raw,`virtual-mcp:${J.id??"decopilot"}`,{onClose:()=>K.close()})}catch(X){let Y=X;return console.error("[virtual-mcp] Error handling virtual MCP request:",Y),$.json({error:"Internal server error",message:Y.message},500)}}var Uf0=()=>{let $=new X1;return $.all("/gateway/:virtualMcpId?",async(Z)=>{let Q=Z.req.param("virtualMcpId")||Z.req.header("x-virtual-mcp-id");return Ff0(Z,Q)}),$.all("/virtual-mcp/:virtualMcpId?",async(Z)=>{let Q=Z.req.param("virtualMcpId")||Z.req.header("x-virtual-mcp-id");return Ff0(Z,Q)}),$};var Nf0=L(()=>{JG();s8();St();F8();xn();wx0();qJ();_t()});import{SpanStatusCode as Bf0}from"@opentelemetry/api";var rG8=($,Z)=>{if($ instanceof dd)return Z.header("Retry-After",String(Math.ceil($.cooldownRemainingMs/1000))),Z.json({error:$.message},503);if($.message.includes("not found"))return Z.json({error:$.message},404);if($.message.includes("does not belong to the active organization"))return Z.json({error:"Connection not found"},404);if($.message.includes("inactive"))return Z.json({error:$.message},503);return Z.json({error:"Internal server error",message:$.message},500)},Lf0=()=>{let $=new X1;return $.all("/",async(Z)=>{return Ff0(Z,void 0)}),$.get("/:connectionId/ui-resource",async(Z)=>{let Q=Z.get("studioContext"),X=Z.req.param("connectionId"),Y=Z.req.query("uri");if(!Y)return Z.json({error:"uri query param is required"},400);if(!Q.organization?.id)return Z.json({error:"Organization context is required"},403);let J=t91(X),G;if(J){let B=u0(Q);if(!B)return Z.json({error:"Authentication required"},401);if(G=await Mh(Q,J,B,Z.req.query("branch")??void 0),!G)return Z.json({error:"Dev server not running"},503)}else if(G=await Q.storage.connections.findById(X,Q.organization.id),!G||G.organization_id!==Q.organization.id)return Z.json({error:"Connection not found"},404);let W=Qz(G,Q,!1,n9()??void 0),K,H;try{let D=(await W.readResource({uri:Y})).contents?.[0];K=D?.text,H=D?._meta?.ui?.csp}catch(B){return Z.json({error:B.message},502)}finally{await W.close().catch(()=>{})}if(typeof K!=="string")return Z.json({error:"Resource has no text content"},404);let F=mG8(K,{resourceCsp:H}),U=`"${Bun.hash(F).toString(36)}"`,N="private, no-cache";if(Z.req.header("if-none-match")===U)return new Response(null,{status:304,headers:{ETag:U,"Cache-Control":N}});return new Response(F,{headers:{"Content-Type":"text/html; charset=utf-8",ETag:U,"Cache-Control":N}})}),$.all("/:connectionId",async(Z)=>{let Q=Z.req.param("connectionId"),X=Z.get("studioContext");if(Q.endsWith("_self")){let G=Q.slice(0,-5);if(!X.organization||X.organization.id!==G)return Z.json({error:"Connection not found"},404);let W=vt(),K=new KW({enableJsonResponse:Z.req.raw.headers.get("Accept")?.includes("application/json")??!1});return await W.connect(K),PO.run(X,()=>pK(W,K,Z.req.raw,`mcp:self:${Q}`))}let Y=t91(Q);if(Y){if(!X.organization?.id)return Z.json({error:"Organization context is required"},403);let G=u0(X);if(!G)return Z.json({error:"Authentication required"},401);let W=await Mh(X,Y,G,Z.req.query("branch")??void 0);if(!W)return Z.json({error:"Dev server not running"},503);let K=qO0(W,X,!1),H=new KW({enableJsonResponse:Z.req.raw.headers.get("Accept")?.includes("application/json")??!1});return await K.connect(H),pK(K,H,Z.req.raw,`mcp:dev:${Q}`)}let J=null;try{try{if(!X.organization?.id)return Z.json({error:"Organization context is required"},403);if(J=await X.tracer.startActiveSpan("studio.connection.lookup",{attributes:{"connection.id":Q}},async(O)=>{iK(Z,"mcp.find_connection");try{let j=await X.storage.connections.findById(Q,X.organization.id);return O.setStatus({code:Bf0.OK}),j}catch(j){throw O.setStatus({code:Bf0.ERROR,message:j.message}),O.recordException(j),j}finally{HW(Z,"mcp.find_connection"),O.end()}}),!J)throw Error("Connection not found");let G=J;if(G.organization_id!==X.organization.id)throw Error("Connection does not belong to the active organization");let W=!1;if(G.status!=="active"){let O=Date.now()-new Date(G.updated_at).getTime();if(G.status==="error"&&!!G.connection_url&&O>=e91)W=!0;else{if(G.status==="error"&&G.connection_url){let w=e91-O;Z.header("Retry-After",String(Math.ceil(w/1000)))}throw Error(`Connection inactive: ${G.status}`)}}let K=await oG8(Z.req.raw),{decision:H,listType:F}=tG8(K),U=H==="probe";if(H==="skip-if-list-cached"&&F){let O=n9();U=O?await O.get(F,Q)===null:!0}if(W)U=!0;if(G.connection_url&&U)YB0(Q),await X.tracer.startActiveSpan("studio.connection.handshake",{attributes:{"connection.id":Q,"connection.url":G.connection_url}},async(O)=>{iK(Z,"mcp.client_handshake");try{if(await NJ(G,X,!1),JB0(Q),kP1().recordSuccess(Q),W)await X.storage.connections.update(Q,{status:"active"}),console.info("[proxy] auto-recovered connection after successful re-probe",{connectionId:Q,org:X.organization?.slug});O.setStatus({code:Bf0.OK})}catch(j){throw O.setStatus({code:Bf0.ERROR,message:j.message}),O.recordException(j),j}finally{HW(Z,"mcp.client_handshake"),O.end()}});iK(Z,"mcp.create_server");let N=qO0(G,X,!1);HW(Z,"mcp.create_server");let B=new KW({enableJsonResponse:Z.req.raw.headers.get("Accept")?.includes("application/json")??!1});iK(Z,"mcp.server_connect"),await N.connect(B),HW(Z,"mcp.server_connect"),iK(Z,"mcp.handle_request");let D=await pK(N,B,Z.req.raw,`mcp:${Q}`);return HW(Z,"mcp.handle_request"),D}catch(G){if(G instanceof dd)throw G;if(J??=await X.storage.connections.findById(Q,X.organization?.id),J?.connection_url){let W=await SP1({error:G,reqUrl:new URL(Z.req.raw.url),connectionId:Q,connectionUrl:J.connection_url,headers:{},orgSlug:X.organization?.slug});if(W)return W;GB0(Q);let{shouldDisable:K}=await kP1().recordFailure(Q);if(K&&J.status==="active")await X.storage.connections.update(Q,{status:"error"}),console.warn("[proxy] auto-disabled connection after sustained failures",{connectionId:Q,org:X.organization?.slug,error:G.message})}throw G}}catch(G){return rG8(G,Z)}}),$.all("/:connectionId/call-tool/:toolName",async(Z)=>{let Q=Z.req.param("connectionId"),X=Z.req.param("toolName"),Y=Z.get("studioContext");if(!Y.organization?.id)return Z.json({error:"Organization context is required"},403);let J=null;try{if(J=await Y.storage.connections.findById(Q,Y.organization.id),!J)return Z.json({error:"Connection not found"},404);if(J.organization_id!==Y.organization.id)throw Error("Connection does not belong to the active organization");if(J.status!=="active")throw Error(`Connection inactive: ${J.status}`);let G;try{G=await Z.req.json()}catch{return Z.json({error:"Request body must be valid JSON"},400)}let K=await(await NJ(J,Y,!1)).callTool({name:X,arguments:G});if(K.isError)return new Response(JSON.stringify(K.content),{headers:{"Content-Type":"application/json"},status:500});return new Response(JSON.stringify(K.structuredContent??K.content),{headers:{"Content-Type":"application/json"}})}catch(G){if(J??=await Y.storage.connections.findById(Q,Y.organization.id),J?.connection_url){let W=await SP1({error:G,reqUrl:new URL(Z.req.raw.url),connectionId:Q,connectionUrl:J.connection_url,headers:{},orgSlug:Y.organization?.slug});if(W)return W}return rG8(G,Z)}}),$};var Df0=L(()=>{xR();St();F8();qP1();CD();_t();RZ0();BJ();I40();cG8();KY1();CP1();aG8();Nf0();wx0();s8();vP1()});async function MP($,Z,Q,X){if(Z.type!=="event"||!Z.connection_id)return{success:!0};let Y=await $.storage.connections.findById(Z.connection_id);if(!Y)return{success:!0};let J=$.organization?.id,G=$.organization?.slug;try{let W=await NJ(Y,$,!0),K=DH1.forClient(_P1(W)),H,F,U;if(Q&&X&&J){let w=await X.generateTokenPair();F=w.plaintext,U=w.hash,H=G?`${$.baseUrl}/api/${G}/trigger-callback`:`${$.baseUrl}/api/trigger-callback`}let N=5000,B=!1,D=new Promise((w,E)=>setTimeout(()=>{B=!0,E(Error("TRIGGER_CONFIGURE timeout"))},N)),O;try{O=await Promise.race([K.TRIGGER_CONFIGURE({type:Z.event_type,params:JSON.parse(Z.params??"{}"),enabled:Q,callbackUrl:H,callbackToken:F}),D])}catch(w){if(B&&Q&&X&&J&&U)await X.persistTokenHash(J,Z.connection_id,U);return console.error(`[configureTriggerOnMcp] TRIGGER_CONFIGURE threw on connection=${Z.connection_id} type=${Z.event_type}:`,w),{success:!1,error:String(w)}}let j=O;if(!j||j.success!==!0)return console.error(`[configureTriggerOnMcp] TRIGGER_CONFIGURE did not return success=true on connection=${Z.connection_id} type=${Z.event_type}. Raw payload:`,JSON.stringify(O)),{success:!1,error:`TRIGGER_CONFIGURE did not return success=true (got ${JSON.stringify(O)})`};try{if(Q&&X&&J&&U)await X.persistTokenHash(J,Z.connection_id,U);if(!Q&&X&&J)await X.deleteByConnection(Z.connection_id,J)}catch(w){console.error("[configureTriggerOnMcp] Token persistence failed after successful TRIGGER_CONFIGURE:",w)}return{success:!0}}catch(W){return{success:!1,error:String(W)}}}var qZ0=L(()=>{xR();Df0();OH1()});import{z as X9}from"zod";var xP1;var sG8=L(()=>{bh();_0();$7();qZ0();xP1=c({name:"AUTOMATION_UPDATE",description:"Update an automation's config. Toggling active state reconfigures event triggers on MCPs.",annotations:{title:"Update Automation",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:X9.object({id:X9.string(),name:X9.string().min(1).max(255).optional(),active:X9.boolean().optional(),messages:X9.union([X9.string(),X9.array(X9.looseObject({id:X9.string().optional(),role:X9.enum(["user","assistant","system"]),parts:X9.array(X9.record(X9.string(),X9.unknown())),metadata:X9.unknown().optional()}))]).optional(),models:X9.object({tier:Hz,modelId:X9.string().optional(),credentialId:X9.string().optional()}).loose().optional(),tools:X9.array(X9.string()).nullable().optional(),maxAgentSteps:X9.number().int().min(1).max(100).nullable().optional(),temperature:X9.number().optional()}),outputSchema:X9.object({id:X9.string(),name:X9.string(),active:X9.boolean(),updated_at:X9.string()}),handler:async($,Z)=>{t(Z);let Q=G0(Z);await Z.access.check();let X=await Z.storage.automations.findById($.id,Q.id);if(!X)throw Error("Automation not found");let Y={};if($.name!==void 0)Y.name=$.name;if($.active!==void 0)Y.active=$.active;if($.messages!==void 0){let G=Qf0($.messages);Y.messages=JSON.stringify(G)}if($.models!==void 0)Y.models=JSON.stringify($.models);if($.tools!==void 0)Y.tools=$.tools===null?null:JSON.stringify($.tools);if($.temperature!==void 0)Y.temperature=$.temperature;if($.maxAgentSteps!==void 0)Y.max_agent_steps=$.maxAgentSteps;let J=await Z.storage.automations.update($.id,Q.id,Y);if($.active!==void 0&&$.active!==X.active){let G=await Z.storage.automations.listTriggers(J.id),W=G.filter((K)=>K.type==="event");await Promise.allSettled(W.map(async(K)=>{let H=await MP(Z,K,$.active);if(!H.success)console.warn(`Failed to configure trigger ${K.id}: ${H.error}`)})),await vG8(G,$.active)}return{id:J.id,name:J.name,active:J.active,updated_at:J.updated_at}}})});import{z as Of0}from"zod";var fP1;var eG8=L(()=>{bh();J6();_0();qZ0();fP1=c({name:"AUTOMATION_DELETE",description:"Permanently delete an automation. Disables all event triggers on connected MCPs first.",annotations:{title:"Delete Automation",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!1},inputSchema:Of0.object({id:Of0.string()}),outputSchema:Of0.object({success:Of0.boolean()}),handler:async($,Z)=>{t(Z);let Q=G0(Z);if(await Z.access.check(),!await Z.storage.automations.findById($.id,Q.id))throw Error("Automation not found");let Y=await Z.storage.automations.listTriggers($.id),J=Y.filter((K)=>K.type==="event");await Promise.allSettled(J.map(async(K)=>{let H=await MP(Z,K,!1);if(!H.success)console.warn(`Failed to disable trigger ${K.id}: ${H.error}`)}));let{success:G}=await Z.storage.automations.delete($.id,Q.id);await xG8(Y);let W=u0(Z);if(W)h1.capture({distinctId:W,event:"automation_deleted",groups:{organization:Q.id},properties:{organization_id:Q.id,automation_id:$.id,trigger_count:Y.length}});return{success:G}}})});function xt($){return`webhook_${$}`}function jf0($,Z,Q){if(!Z)throw Error("Cannot build webhook URL: organization slug missing from request context");return`${$}/api/${Z}/webhooks/${Q}`}import{z as wX}from"zod";var $38=300000,il6=10,bP1;var Z38=L(()=>{LP1();bh();BP1();_0();qZ0();bP1=c({name:"AUTOMATION_TRIGGER_ADD",description:"Add a cron, event, or webhook trigger to an automation. For webhook triggers the response includes a one-time URL + secret token.",annotations:{title:"Add Trigger",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!1},inputSchema:wX.object({automation_id:wX.string(),type:wX.enum(["cron","event","webhook"]),cron_expression:wX.string().optional(),connection_id:wX.string().optional(),event_type:wX.string().optional(),params:wX.record(wX.string(),wX.string()).optional()}),outputSchema:wX.object({id:wX.string(),automation_id:wX.string(),type:wX.enum(["cron","event","webhook"]),created_at:wX.string(),webhook:wX.object({url:wX.string(),token:wX.string()}).nullable().optional()}),handler:async($,Z)=>{t(Z);let Q=G0(Z);await Z.access.check();let X=await Z.storage.automations.findById($.automation_id,Q.id);if(!X)throw Error("Automation not found");if($.type==="cron"){if(!$.cron_expression)throw Error("cron_expression is required for cron triggers");let K=new Yf0($.cron_expression,{timezone:"UTC"}).nextRuns(il6);if(K.length===0)throw Error("Cron expression has no future runs");let H=1/0;for(let F=1;F<K.length;F++){let U=K[F].getTime()-K[F-1].getTime();if(U<H)H=U}if(K.length>=2&&Number.isFinite(H)&&H<$38){let F=$38/1000;throw Error(`Cron fires too frequently \u2014 minimum interval is ${F}s between runs (observed ${H/1000}s)`)}}if($.type==="event"){if(!$.connection_id)throw Error("connection_id is required for event triggers");if(!$.event_type)throw Error("event_type is required for event triggers");if(!await Z.storage.connections.findById($.connection_id,Q.id))throw Error("Connection not found");let K={id:"",automation_id:$.automation_id,type:"event",cron_expression:null,connection_id:$.connection_id,event_type:$.event_type,params:$.params?JSON.stringify($.params):null,last_run_at:null,next_run_at:null,api_key_id:null,created_at:""},H=await MP(Z,K,!0,Z.storage.triggerCallbackTokens);if(!H.success)throw Error(`Failed to configure trigger on connection: ${H.error}`)}let Y=$.type==="cron"&&$.cron_expression?Jf0($.cron_expression,new Date):null,J=await Z.storage.automations.addTrigger({automation_id:$.automation_id,type:$.type,cron_expression:$.type==="cron"?$.cron_expression:null,connection_id:$.type==="event"?$.connection_id:null,event_type:$.type==="event"?$.event_type:null,params:$.params?JSON.stringify($.params):null,next_run_at:Y?.toISOString()??null}),G=null;if($.type==="webhook")try{let W=await Z.boundAuth.apiKey.create({name:`webhook:${X.name}:${J.id.slice(0,8)}`,permissions:{[xt(J.id)]:["FIRE"]},metadata:{kind:"webhook_trigger",automation_id:X.id,trigger_id:J.id}});await Z.storage.automations.setTriggerApiKeyId(J.id,W.id),G={url:jf0(Z.baseUrl,Q.slug,J.id),token:W.key}}catch(W){await Z.storage.automations.removeTrigger(J.id,J.automation_id);let K=W instanceof Error?W.message:String(W);throw Error(`Failed to mint webhook token: ${K}`)}return await Wf0(J,X),{id:J.id,automation_id:J.automation_id,type:J.type,created_at:J.created_at,webhook:G}}})});import{z as wf0}from"zod";var yP1;var Q38=L(()=>{bh();_0();qZ0();yP1=c({name:"AUTOMATION_TRIGGER_REMOVE",description:"Remove a trigger from an automation. Disables associated event listeners on MCPs.",annotations:{title:"Remove Trigger",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!1},inputSchema:wf0.object({trigger_id:wf0.string()}),outputSchema:wf0.object({success:wf0.boolean()}),handler:async($,Z)=>{t(Z);let Q=G0(Z);await Z.access.check();let X=await Z.storage.automations.findTriggerById($.trigger_id);if(!X)throw Error("Trigger not found");if(!await Z.storage.automations.findById(X.automation_id,Q.id))throw Error("Automation not found");if(X.type==="event"){let G=await MP(Z,X,!1,Z.storage.triggerCallbackTokens);if(!G.success)console.warn(`Failed to disable trigger ${X.id}: ${G.error}`)}let{success:J}=await Z.storage.automations.removeTrigger(X.id,X.automation_id);if(X.type==="cron")await AP1(X.id);if(X.type==="webhook"&&X.api_key_id)try{await Z.boundAuth.apiKey.delete(X.api_key_id)}catch(G){console.warn(`[trigger-remove] failed to delete api key ${X.api_key_id} for trigger ${X.id}:`,G instanceof Error?G.message:G)}return{success:J}}})});import{z as ft}from"zod";var gP1;var X38=L(()=>{_0();gP1=c({name:"AUTOMATION_TRIGGER_ROTATE_TOKEN",description:"Rotate the secret token for a webhook automation trigger. Returns a new token; the old token is revoked.",annotations:{title:"Rotate Webhook Token",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!1},inputSchema:ft.object({trigger_id:ft.string()}),outputSchema:ft.object({trigger_id:ft.string(),url:ft.string(),token:ft.string()}),handler:async($,Z)=>{t(Z);let Q=G0(Z);await Z.access.check();let X=await Z.storage.automations.findTriggerById($.trigger_id);if(!X)throw Error("Trigger not found");if(X.type!=="webhook")throw Error("Trigger is not a webhook trigger");let Y=await Z.storage.automations.findById(X.automation_id,Q.id);if(!Y)throw Error("Automation not found");let J=X.api_key_id,G=await Z.boundAuth.apiKey.create({name:`webhook:${Y.name}:${X.id.slice(0,8)}`,permissions:{[xt(X.id)]:["FIRE"]},metadata:{kind:"webhook_trigger",automation_id:Y.id,trigger_id:X.id}});if(await Z.storage.automations.setTriggerApiKeyId(X.id,G.id),J)try{await Z.boundAuth.apiKey.delete(J)}catch(W){console.warn(`[trigger-rotate] failed to delete old key ${J} for trigger ${X.id}:`,W instanceof Error?W.message:W)}return{trigger_id:X.id,url:jf0(Z.baseUrl,Q.slug,X.id),token:G.key}}})});import{z as bt}from"zod";var hP1;var Y38=L(()=>{J6();_0();hP1=c({name:"AUTOMATION_RUN",description:"Manually trigger an automation run. Bypasses configured triggers.",annotations:{title:"Run Automation",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!1},inputSchema:bt.object({id:bt.string()}),outputSchema:bt.object({threadId:bt.string().optional(),error:bt.string().optional(),skipped:bt.string().optional()}),handler:async($,Z)=>{t(Z);let Q=G0(Z);if(await Z.access.check(),!Z.automationRunner)throw Error("Automation runner not available");let X=u0(Z);if(!X)throw Error("User ID not available");let Y=await Z.automationRunner($.id,Q.id,X);if(h1.capture({distinctId:X,event:"automation_run",groups:{organization:Q.id},properties:{organization_id:Q.id,automation_id:$.id,thread_id:"taskId"in Y?Y.taskId:void 0,status:"skipped"in Y?"skipped":("error"in Y)?"error":"started",skip_reason:"skipped"in Y?Y.skipped:void 0,error_message:"error"in Y?Y.error:void 0}}),"skipped"in Y)return{skipped:Y.skipped};if("error"in Y)return{threadId:Y.taskId,error:Y.error};return{threadId:Y.taskId}}})});import{z as SQ}from"zod";var pl6=500,uP1;var J38=L(()=>{y6();_0();uP1=c({name:"AUTOMATION_RUN_STATS",description:"Aggregate run counts (by status) and LLM token/cost totals for a single automation.",annotations:{title:"Automation Run Stats",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:SQ.object({automation_id:SQ.string(),startDate:SQ.string().datetime().optional().describe("Filter runs at or after this ISO timestamp"),endDate:SQ.string().datetime().optional().describe("Filter runs at or before this ISO timestamp")}),outputSchema:SQ.object({runs:SQ.object({total:SQ.number(),completed:SQ.number(),failed:SQ.number(),inProgress:SQ.number()}),usage:SQ.object({calls:SQ.number(),inputTokens:SQ.number(),outputTokens:SQ.number(),totalTokens:SQ.number(),costUsd:SQ.number(),sampledRuns:SQ.number(),truncated:SQ.boolean()})}),handler:async($,Z)=>{t(Z);let Q=G0(Z);if(await Z.access.check(),await nJ(),!await Z.storage.automations.findById($.automation_id,Q.id))throw Error("Automation not found");let Y=await Z.storage.automations.getRunStats($.automation_id,Q.id,{startDate:$.startDate,endDate:$.endDate}),J=await Z.storage.automations.listRunThreadIds($.automation_id,Q.id,{startDate:$.startDate,endDate:$.endDate,limit:pl6}),G={calls:0,inputTokens:0,outputTokens:0,totalTokens:0,costUsd:0,sampledRuns:J.length,truncated:Y.total>J.length};if(J.length>0){let W=await Z.storage.monitoring.queryThreadUsage({organizationId:Q.id,connectionId:"decopilot",threadIds:J,startDate:$.startDate?new Date($.startDate):void 0,endDate:$.endDate?new Date($.endDate):void 0});for(let K of W)G.calls+=K.calls,G.inputTokens+=K.inputTokens,G.outputTokens+=K.outputTokens,G.totalTokens+=K.totalTokens,G.costUsd+=K.costUsd}return{runs:Y,usage:G}}})});var G38=L(()=>{zG8();PG8();AG8();sG8();eG8();Z38();Q38();X38();Y38();J38()});import{z as IP}from"zod";var tl6,ol6,lP1;var W38=L(()=>{_0();tl6=IP.object({id:IP.string().min(1)}),ol6=IP.object({user:IP.object({id:IP.string(),name:IP.string(),email:IP.string(),image:IP.string().nullable()}).nullable()}),lP1=c({name:"USER_GET",description:"Get a user's profile by ID. Only returns users who share an organization with the caller.",annotations:{title:"Get User",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:tl6,outputSchema:ol6,handler:async($,Z)=>{await Z.access.check(),t(Z);let Q=u0(Z);if(!Q)throw Error("Authentication required");let X=await Z.storage.users.findById($.id,Q);if(!X)return{user:null};return{user:{id:X.id,name:X.name,email:X.email,image:X.image??null}}}})});import{z as al6}from"zod";var rl6,mP1;var K38=L(()=>{_0();$7();rl6={tiers:{}},mP1=c({name:"USER_MODEL_PREFERENCES_GET",description:"Get the calling user's personal chat tier \u2192 model overrides for the current organization. Absent tiers fall back to the org default.",annotations:{title:"Get User Model Preferences",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:al6.object({}),outputSchema:s40,handler:async($,Z)=>{t(Z),await Z.access.check();let Q=G0(Z),X=Z.auth?.user?.id;if(!X)throw Error("No authenticated user in context");return await Z.storage.userModelPreferences.get(X,Q.id)??rl6}})});function sl6($,Z,Q){let X={};for(let Y of Hz.options){let J=$[Y];if(!J||JW(Q,J.keyId,J.modelId)){X[Y]=J;continue}let G=Z?.[Y];if(!(G?.keyId===J.keyId&&G?.modelId===J.modelId))throw Error("Model not allowed for your role");X[Y]=null}return X}var cP1;var H38=L(()=>{_0();$7();Ih();cP1=c({name:"USER_MODEL_PREFERENCES_UPDATE",description:"Set the calling user's personal chat tier \u2192 model overrides for the current organization. Only affects this user's chats; the org default and every non-chat path (automations, background tools) are unchanged. Omit a tier (or set it null) to fall back to the org default. Models the caller's role is not allowed to use are rejected.",annotations:{title:"Update User Model Preferences",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:s40,outputSchema:s40,handler:async($,Z)=>{t(Z),await Z.access.check();let Q=G0(Z),X=Z.auth?.user?.id;if(!X)throw Error("No authenticated user in context");let[Y,J]=await Promise.all([GW(Z.db,Q.id,Q.role??Z.auth.user?.role),Z.storage.userModelPreferences.get(X,Q.id)]);return await Z.storage.userModelPreferences.upsert(X,Q.id,{tiers:sl6($.tiers,J?.tiers,Y)})}})});var F38=L(()=>{W38();K38();H38()});import{z as $m6}from"zod";var dP1;var U38=L(()=>{Rd();_0();dP1=c({name:"SIDEBAR_GET",description:"Get the project sidebar for the calling member: the organization's folders (the same for everyone), the member's own pinned, hidden and dismissed projects and hidden folders, and when they joined the organization.",annotations:{title:"Get Project Sidebar",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:$m6.object({}),outputSchema:dw$,handler:async($,Z)=>{t(Z),await Z.access.check();let Q=G0(Z),X=Z.auth?.user?.id;if(!X)throw Error("No authenticated user in context");let Y=Z.storage.projectSidebar,[J,G,W]=await Promise.all([Y.getFolders(Q.id),Y.getPreferences(X,Q.id),Y.joinedAt(X,Q.id)]);return{folders:J,preferences:G,joinedAt:W}}})});function N38($){m6.emit($,{id:crypto.randomUUID(),type:nw$,source:"project-sidebar",subject:$,data:{},time:new Date().toISOString()})}var B38=L(()=>{Rd();BP()});import{z as L38}from"zod";var iP1;var D38=L(()=>{Rd();_0();B38();iP1=c({name:"PROJECT_FOLDERS_SET",description:"Replace the organization's project folders: names, order, and which projects each holds. Org-wide, every member sees the change. A project listed in two folders stays in the first. Deleting a folder never deletes its projects.",annotations:{title:"Set Project Folders",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:L38.object({folders:Ad}),outputSchema:L38.object({folders:Ad}),handler:async($,Z)=>{t(Z),await Z.access.check();let Q=G0(Z),X=await Z.storage.projectSidebar.setFolders(Q.id,$.folders);return N38(Q.id),{folders:X}}})});var pP1;var O38=L(()=>{Rd();_0();pP1=c({name:"SIDEBAR_PREFERENCES_SET",description:"Replace the calling member's own sidebar preferences: pinned, hidden and dismissed projects, and hidden folders. Affects only this member.",annotations:{title:"Set Sidebar Preferences",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:Td,outputSchema:Td,handler:async($,Z)=>{t(Z),await Z.access.check();let Q=G0(Z),X=Z.auth?.user?.id;if(!X)throw Error("No authenticated user in context");return Z.storage.projectSidebar.setPreferences(X,Q.id,$)}})});var j38=L(()=>{U38();D38();O38()});import FW from"zod";var nP1;var w38=L(()=>{_0();wK();nP1=c({name:"AI_PROVIDERS_LIST",description:"List all supported AI providers and their connection methods (API key, OAuth).",annotations:{readOnlyHint:!0,idempotentHint:!0},inputSchema:FW.object({}),outputSchema:FW.object({providers:FW.array(FW.object({id:FW.string(),name:FW.string(),description:FW.string(),logo:FW.string().optional(),supportedMethods:FW.array(FW.enum(["api-key","oauth-pkce"])),supportsTopUp:FW.boolean().optional(),supportsCredits:FW.boolean().optional(),supportsProvision:FW.boolean().optional()}))}),handler:async($,Z)=>{return t(Z),G0(Z),await Z.access.check(),{providers:Object.values(V9()).filter((X)=>!!X).map((X)=>({...X.info,supportedMethods:X.supportedMethods,supportsTopUp:!!X.getTopUpUrl,supportsCredits:!!X.getCreditsBalance,supportsProvision:!!X.provisionKey}))}}})});import r7 from"zod";var tP1;var E38=L(()=>{_0();Ih();tP1=c({name:"AI_PROVIDERS_LIST_MODELS",description:"List models available from an AI provider. Requires a valid stored API key.",annotations:{readOnlyHint:!0,idempotentHint:!0},inputSchema:r7.object({keyId:r7.string().describe("The provider key ID to use")}),outputSchema:r7.object({models:r7.array(r7.object({providerId:r7.string(),modelId:r7.string(),title:r7.string(),description:r7.string().nullish(),logo:r7.string().nullish(),capabilities:r7.array(r7.string()),limits:r7.object({contextWindow:r7.coerce.number(),maxOutputTokens:r7.coerce.number().nullable()}).nullish(),costs:r7.object({input:r7.coerce.number(),output:r7.coerce.number()}).nullish(),asyncResearch:r7.boolean().optional()}))}),handler:async($,Z)=>{t(Z);let Q=G0(Z);await Z.access.check();let[X,Y]=await Promise.all([Z.aiProviders.listModels($.keyId,Q.id),GW(Z.db,Q.id,Q.role??Z.auth.user?.role)]);return{models:X.filter((G)=>JW(Y,$.keyId,G.modelId))}}})});import AO from"zod";var oP1;var z38=L(()=>{_0();wK();oP1=c({name:"AI_PROVIDERS_ACTIVE",description:"List AI providers that have at least one API key configured and ready to use.",inputSchema:AO.object({}),outputSchema:AO.object({providers:AO.array(AO.object({id:AO.string(),name:AO.string(),description:AO.string(),logo:AO.string().optional(),keyCount:AO.number()}))}),handler:async($,Z)=>{t(Z);let Q=G0(Z);await Z.access.check();let X=await Z.storage.aiProviderKeys.list({organizationId:Q.id}),Y=new Map;for(let G of X)Y.set(G.providerId,(Y.get(G.providerId)??0)+1);return{providers:[...Y.entries()].flatMap(([G,W])=>{let H=V9()[G];if(!H)return console.warn(`AI provider "${G}" has stored keys but is not in the registry; skipping.`),[];return[{...H.info,keyCount:W}]})}}})});var iF=L(()=>{s8()});import pF from"zod";var yh,aP1;var MZ0=L(()=>{J6();_0();iF();yh=pF.object({id:pF.string(),providerId:pF.string(),label:pF.string(),presetId:pF.string().nullable(),createdAt:pF.string()}),aP1=c({name:"AI_PROVIDER_KEY_CREATE",description:"Store an API key for an AI provider. The key is encrypted at rest in the vault.",inputSchema:pF.object({providerId:pF.enum(iZ),label:pF.string().min(1).max(100),apiKey:pF.string().min(1),presetId:pF.string().min(1).max(64).optional()}),outputSchema:yh,handler:async($,Z)=>{t(Z);let Q=G0(Z);await Z.access.check();let X=await Z.storage.aiProviderKeys.create({providerId:$.providerId,label:$.label,apiKey:$.apiKey,organizationId:Q.id,createdBy:Z.auth.user.id,presetId:$.presetId??null});return h1.capture({distinctId:Z.auth.user.id,event:"ai_provider_key_created",groups:{organization:Q.id},properties:{organization_id:Q.id,provider_id:X.providerId,preset_id:X.presetId,key_id:X.id,label:X.label}}),{id:X.id,providerId:X.providerId,label:X.label,presetId:X.presetId,createdAt:X.createdAt}}})});import Ef0 from"zod";var yt=($,Z)=>$&&$.keyId===Z?null:$,Qm6=($,Z)=>{let Q={tiers:{fast:yt($.tiers.fast,Z),smart:yt($.tiers.smart,Z),thinking:yt($.tiers.thinking,Z),image:yt($.tiers.image,Z),web_search:yt($.tiers.web_search,Z),deep_research:yt($.tiers.deep_research,Z)}},X=Q.tiers.fast!==$.tiers.fast||Q.tiers.smart!==$.tiers.smart||Q.tiers.thinking!==$.tiers.thinking||Q.tiers.image!==$.tiers.image||Q.tiers.web_search!==$.tiers.web_search||Q.tiers.deep_research!==$.tiers.deep_research;return{config:Q,changed:X}},rP1;var P38=L(()=>{J6();_0();rP1=c({name:"AI_PROVIDER_KEY_DELETE",description:"Delete a stored AI provider API key. Cannot be undone.",inputSchema:Ef0.object({keyId:Ef0.string().describe("The provider key ID to delete")}),outputSchema:Ef0.object({success:Ef0.boolean()}),handler:async($,Z)=>{t(Z);let Q=G0(Z);await Z.access.check();let X=await Z.storage.organizationSettings.get(Q.id);if(X?.simple_mode){let{config:Y,changed:J}=Qm6(X.simple_mode,$.keyId);if(J)await Z.storage.organizationSettings.upsert(Q.id,{simple_mode:Y})}return await Z.storage.aiProviderKeys.delete($.keyId,Q.id),h1.capture({distinctId:Z.auth.user.id,event:"ai_provider_key_deleted",groups:{organization:Q.id},properties:{organization_id:Q.id,key_id:$.keyId}}),{success:!0}}})});import zf0 from"zod";var sP1;var A38=L(()=>{_0();MZ0();sP1=c({name:"AI_PROVIDER_KEY_UPDATE",description:"Update the label and/or API key of a stored AI provider key. Pass apiKey to rotate the stored credential.",inputSchema:zf0.object({keyId:zf0.string(),label:zf0.string().min(1).max(100).optional(),apiKey:zf0.string().min(1).optional()}),outputSchema:yh,handler:async($,Z)=>{t(Z);let Q=G0(Z);await Z.access.check();let X=await Z.storage.aiProviderKeys.updateKey($.keyId,Q.id,{label:$.label,apiKey:$.apiKey});return{id:X.id,providerId:X.providerId,label:X.label,presetId:X.presetId,createdAt:X.createdAt}}})});import gt from"zod";var eP1;var T38=L(()=>{_0();eP1=c({name:"AI_PROVIDER_KEY_PREVIEW",description:"Get the label and a masked preview of a stored AI provider API key. The API key is partially obscured (only the last 4 characters are visible). For openai-compatible keys the baseUrl is also returned.",inputSchema:gt.object({keyId:gt.string()}),outputSchema:gt.object({label:gt.string(),maskedKey:gt.string(),baseUrl:gt.string().optional()}),handler:async($,Z)=>{t(Z);let Q=G0(Z);return await Z.access.check(),Z.storage.aiProviderKeys.getPreview($.keyId,Q.id)}})});import nF from"zod";var $21;var R38=L(()=>{_0();iF();Ih();$21=c({name:"AI_PROVIDER_KEY_LIST",description:"List stored AI provider API keys. Returns metadata only \u2014 secrets are never exposed.",annotations:{readOnlyHint:!0,idempotentHint:!0},inputSchema:nF.object({providerId:nF.enum(xF0).optional()}),outputSchema:nF.object({keys:nF.array(nF.object({id:nF.string(),providerId:nF.string(),label:nF.string(),presetId:nF.string().nullable(),createdBy:nF.string(),createdAt:nF.string()}))}),handler:async($,Z)=>{t(Z);let Q=G0(Z);await Z.access.check();let[X,Y]=await Promise.all([Z.storage.aiProviderKeys.list({organizationId:Q.id,providerId:$.providerId}),GW(Z.db,Q.id,Q.role??Z.auth.user?.role)]);return{keys:X.filter((W)=>UY8(Y,W.id)).map(({organizationId:W,...K})=>K)}}})});import{createHash as Xm6,randomBytes as Ym6}from"crypto";function q38(){return Ym6(32).toString("base64url")}function M38($){return Xm6("sha256").update($).digest("base64url")}var I38=()=>{};import ht from"zod";function V38($){return $==="localhost"||$.endsWith(".localhost")||$==="127.0.0.1"||$==="[::1]"||$==="::1"}function Jm6($){let Z=z0(),Q=Z.baseUrl??`http://localhost:${Z.port}`,X=new URL($),Y=new URL(Q);if(X.origin===Y.origin)return!0;return X.protocol===Y.protocol&&V38(X.hostname)&&V38(Y.hostname)}var Z21;var k38=L(()=>{_0();iF();wK();I38();o1();Z21=c({name:"AI_PROVIDER_OAUTH_URL",description:"Get the OAuth PKCE authorization URL for a provider. Returns URL and state token.",inputSchema:ht.object({providerId:ht.enum(iZ),callbackUrl:ht.string().url().refine(($)=>{return Jm6($)},{message:"callbackUrl must be on the same origin as BASE_URL"})}),outputSchema:ht.object({url:ht.string(),stateToken:ht.string().describe("Opaque token \u2014 pass to AI_PROVIDER_OAUTH_EXCHANGE")}),handler:async($,Z)=>{t(Z);let Q=G0(Z);await Z.access.check();let X=V9()[$.providerId];if(!X)throw Error(`Unknown provider: ${$.providerId}`);if(!X.supportedMethods.includes("oauth-pkce")||!X.getOAuthUrl)throw Error(`Provider ${$.providerId} does not support OAuth PKCE`);let Y=q38(),J=M38(Y),G=await Z.storage.oauthPkceStates.create(Y,Q.id,Z.auth.user.id),W=new URL($.callbackUrl);W.searchParams.set("state",G);let K={callbackUrl:W.toString(),codeChallenge:J,codeChallengeMethod:"S256",organizationId:Q.id};return{url:X.getOAuthUrl(K),stateToken:G}}})});import IZ0 from"zod";var Q21;var C38=L(()=>{_0();iF();wK();MZ0();Q21=c({name:"AI_PROVIDER_OAUTH_EXCHANGE",description:"Exchange an OAuth authorization code for an API key. Completes the OAuth flow started by AI_PROVIDER_OAUTH_URL.",inputSchema:IZ0.object({providerId:IZ0.enum(iZ),code:IZ0.string(),stateToken:IZ0.string().describe("The stateToken returned by AI_PROVIDER_OAUTH_URL"),label:IZ0.string().min(1).max(100)}),outputSchema:yh,handler:async($,Z)=>{t(Z);let Q=G0(Z);await Z.access.check();let X=V9()[$.providerId];if(!X)throw Error(`Unknown provider: ${$.providerId}`);if(!X.supportedMethods.includes("oauth-pkce")||!X.exchangeOAuthCode)throw Error(`Provider ${$.providerId} does not support OAuth PKCE`);let Y=u0(Z);if(!Y)throw Error("Unable to determine user ID");let J=await Z.storage.oauthPkceStates.consume($.stateToken,Q.id,Y),{apiKey:G}=await X.exchangeOAuthCode({code:$.code,codeVerifier:J,codeChallengeMethod:"S256"}),W=await Z.storage.aiProviderKeys.upsert({providerId:$.providerId,label:$.label,apiKey:G,organizationId:Q.id,createdBy:Y});return{id:W.id,providerId:W.providerId,label:W.label,presetId:W.presetId,createdAt:W.createdAt}}})});import S38 from"zod";var X21;var _38=L(()=>{_0();iF();wK();uH();MZ0();X21=c({name:"AI_PROVIDER_PROVISION_KEY",description:"Auto-provision an API key for a provider that supports server-to-server key creation (e.g. Deco AI Gateway).",inputSchema:S38.object({providerId:S38.enum(iZ)}),outputSchema:yh,handler:async($,Z)=>{t(Z);let Q=G0(Z);await Z.access.check();let X=u0(Z);if(!X)throw Error("Unable to determine user ID");let Y=V9()[$.providerId];if(!Y)throw Error(`Unknown provider: ${$.providerId}`);if(!Y.provisionKey)throw Error(`Provider ${$.providerId} does not support key provisioning`);let J=await UQ(X),G=await Y.provisionKey(J,Q.id),W=await Z.storage.aiProviderKeys.upsert({providerId:$.providerId,label:"Auto-provisioned",apiKey:G,organizationId:Q.id,createdBy:X});return{id:W.id,providerId:W.providerId,label:W.label,presetId:W.presetId,createdAt:W.createdAt}}})});function VZ0(){let $=z0();return $.aiGatewayEnabled&&!!$.aiGatewayAdminToken}async function v38($,Z,Q){let X=z0(),Y=await fetch(`${X.aiGatewayUrl}${$}`,{method:"POST",headers:{Authorization:`Bearer ${X.aiGatewayAdminToken}`,"Content-Type":"application/json"},body:JSON.stringify(Z),signal:AbortSignal.timeout(15000)}),J=await Y.text().catch(()=>"");if(!Y.ok){let G=Y.status>=400&&Y.status<500&&Y.status!==408&&Y.status!==429,W=`${Q} failed (${Y.status}): ${J}`;throw G?new ut(Y.status,W):Error(W)}}async function lt($){let Z=z0();if(!Z.aiGatewayEnabled)return;if(!Z.aiGatewayAdminToken)throw Error("DECO_AI_GATEWAY_ADMIN_TOKEN is not set \u2014 cannot place the gateway plan");await v38("/api/admin/plans",{orgId:$.organizationId,planId:$.planId,note:$.note},"gateway plan change")}async function x38($){if(!VZ0())throw Error("gateway admin not configured \u2014 cannot credit top-up");await v38("/api/admin/credits",{orgId:$.organizationId,amountCents:$.amountCents,description:"Studio credit top-up (Stripe)",referenceId:$.referenceId},"gateway top-up credit")}var ut;var kZ0=L(()=>{o1();ut=class ut extends Error{status;constructor($,Z){super(Z);this.status=$;this.name="GatewayAdminPermanentError"}}});import mt from"zod";var Gm6=1e6,Y21;var f38=L(()=>{kZ0();yD();T9();o1();_0();iF();wK();uH();Y21=c({name:"AI_PROVIDER_TOPUP_URL",description:"Get a checkout URL to top up credits for a provider that supports it (e.g. Deco AI Gateway)",requiresFeature:"credits",inputSchema:mt.object({providerId:mt.enum(iZ),amountCents:mt.number().int().positive().max(Gm6).describe("Amount in cents (e.g. 1000 = $10.00), max $10,000.00"),currency:mt.enum(["usd","brl"]).default("usd")}),outputSchema:mt.object({url:mt.string().describe("Checkout URL \u2014 open in browser to complete payment")}),handler:async($,Z)=>{t(Z);let Q=G0(Z);await Z.access.check();let X=u0(Z);if(!X)throw Error("Unable to determine user ID");let Y=z0();if($.providerId==="deco"&&Y.stripeSecretKey&&VZ0()&&Q.slug){let K=await Z.storage.organizationBilling.getBilling(Q.id),H=`${a5()}${Xz(Q.slug)}`,{url:F}=await vl$({organizationId:Q.id,amountCents:$.amountCents,currency:$.currency,feePercent:Y.topupFeePercent,customerId:K?.stripeCustomerId??null,successUrl:`${H}?topup=success`,cancelUrl:`${H}?topup=canceled`});return{url:F}}let J=V9()[$.providerId];if(!J)throw Error(`Unknown provider: ${$.providerId}`);if(!J.getTopUpUrl)throw Error(`Provider ${$.providerId} does not support credit top-ups`);let G=await UQ(X,Z.auth.user?.email);return{url:await J.getTopUpUrl(G,Q.id,$.amountCents,$.currency)}}})});import Pf0 from"zod";function Wm6($){return Number.isFinite($)}var J21;var b38=L(()=>{_0();iF();wK();uH();J21=c({name:"AI_PROVIDER_CREDITS",description:"Get the current credit balance for a provider (providers that support it, e.g. Deco AI Gateway)",inputSchema:Pf0.object({providerId:Pf0.enum(iZ)}),outputSchema:Pf0.object({balanceCents:Pf0.number().describe("Remaining balance in cents (e.g. 1000 = $10.00)")}),handler:async($,Z)=>{t(Z);let Q=G0(Z);await Z.access.check();let X=u0(Z);if(!X)throw Error("Unable to determine user ID");let Y=V9()[$.providerId];if(!Y)throw Error(`Unknown provider: ${$.providerId}`);if(!Y.getCreditsBalance)throw Error(`Provider ${$.providerId} does not expose a credits balance`);let J=await UQ(X),G=await Y.getCreditsBalance(J,Q.id);if(!Wm6(G.balanceCents))throw console.error(`AI provider "${$.providerId}" returned a non-finite credits balance for org ${Q.id}: ${G.balanceCents}`),Error(`Provider ${$.providerId} returned an invalid credits balance`);return G}})});function y38($){return{plan:$.plan,features:$.features,usage:$.usage,credits:$.credits,tasks:$.tasks,periodStart:$.periodStart,periodEnd:$.periodEnd}}import yZ from"zod";var G21;var g38=L(()=>{_0();iF();wK();uH();G21=c({name:"AI_PLAN_ENTITLEMENTS",description:"Get the organization's plan, its feature flags and the AI usage bar (a percentage, never a dollar amount)",inputSchema:yZ.object({providerId:yZ.enum(iZ)}),outputSchema:yZ.object({plan:yZ.object({id:yZ.string(),name:yZ.string()}),features:yZ.record(yZ.string(),yZ.boolean()),usage:yZ.object({percent:yZ.number(),state:yZ.enum(["ok","warn","exhausted"]),usedMicros:yZ.number().nullable(),limitMicros:yZ.number().nullable()}).nullable(),credits:yZ.object({remainingUsd:yZ.number()}).nullable(),tasks:yZ.object({allowed:yZ.boolean(),remaining:yZ.number().nullable(),denyReason:yZ.string().nullable()}),periodStart:yZ.string().nullable(),periodEnd:yZ.string().nullable()}),handler:async($,Z)=>{t(Z);let Q=G0(Z);await Z.access.check();let X=u0(Z);if(!X)throw Error("Unable to determine user ID");let Y=V9()[$.providerId];if(!Y)throw Error(`Unknown provider: ${$.providerId}`);if(!Y.getEntitlements)throw Error(`Provider ${$.providerId} does not expose plans`);let J=await UQ(X);return y38(await Y.getEntitlements(J,Q.id))}})});function K21($){if(l38=$,W21)return;let Z=$();if(!Z)return;W21=Z.subscribe(h38);let Q=new TextDecoder;(async()=>{for await(let X of W21)try{let Y=JSON.parse(Q.decode(X.data));if(typeof Y.organizationId!=="string")continue;if(Y.originId===u38)continue;gK1(Y.organizationId)}catch{}})()}function gh($){gK1($);try{let Z=l38?.()??null;if(!Z)return;let Q={originId:u38,organizationId:$};Z.publish(h38,Km6.encode(JSON.stringify(Q)))}catch(Z){console.warn("[plans] cross-pod cache invalidation failed to publish",{organizationId:$,error:Z instanceof Error?Z.message:String(Z)})}}var h38="studio.plans.invalidate",u38,l38=null,W21=null,Km6;var CZ0=L(()=>{EF();u38=crypto.randomUUID(),Km6=new TextEncoder});import e9 from"zod";function Fm6($){if(!$.plansEnabled)return"Plans are not enabled on this deployment.";if(!$.entitlements)return"Could not read this organization's plan.";if($.entitlements.features.invoice_upgrade!==!0)return"This organization cannot add a plan to its invoice.";if($.subscriptionBound)return"This organization has an active subscription \u2014 change plans through billing.";if($.entitlements.planId===$.targetPlanId)return"This organization is already on that plan.";return null}var Hm6,H21,F21,U21;var m38=L(()=>{_0();iF();wK();uH();CZ0();kZ0();o1();J6();Hm6=e9.object({id:e9.string(),name:e9.string(),features:e9.record(e9.string(),e9.boolean())}),H21=c({name:"AI_PLAN_LIST",description:"List the plans an organization can move to",inputSchema:e9.object({providerId:e9.enum(iZ)}),outputSchema:e9.object({plans:e9.array(Hm6)}),handler:async($,Z)=>{t(Z);let Q=G0(Z);await Z.access.check();let X=u0(Z);if(!X)throw Error("Unable to determine user ID");let Y=V9()[$.providerId];if(!Y?.listPlans)throw Error(`Provider ${$.providerId} does not expose plans`);let J=await UQ(X);return{plans:await Y.listPlans(J,Q.id)}}}),F21=c({name:"AI_PLAN_SET",description:"Drop the organization back to the free tier. Paid plans are granted by subscribing (ORGANIZATION_BILLING_CHECKOUT_START), never here.",inputSchema:e9.object({providerId:e9.enum(iZ),planId:e9.literal("free")}),outputSchema:e9.object({plan:e9.object({id:e9.string(),name:e9.string()}),features:e9.record(e9.string(),e9.boolean())}),handler:async($,Z)=>{t(Z);let Q=G0(Z);await Z.access.check();let X=u0(Z);if(!X)throw Error("Unable to determine user ID");if((await Z.storage.organizationBilling.getBilling(Q.id))?.stripeSubscriptionId)throw Error("This organization has an active subscription \u2014 cancel it in billing first; the plan drops to free when it ends.");let J=V9()[$.providerId];if(!J?.setPlan)throw Error(`Provider ${$.providerId} does not expose plans`);let G=await UQ(X),W=await J.setPlan(G,Q.id,$.planId);return gh(Q.id),{plan:W.plan,features:W.features}}});U21=c({name:"AI_PLAN_INVOICE_UPGRADE",description:"Move the organization to a paid plan now, billed on its next deco invoice. Only for organizations deco enabled for invoice billing.",inputSchema:e9.object({planId:e9.enum(["starter","business"])}),outputSchema:e9.object({planId:e9.string()}),handler:async($,Z)=>{t(Z);let Q=G0(Z);await Z.access.check();let X=u0(Z);if(!X)throw Error("Unable to determine user ID");let Y=z0().plansEnabled&&VZ0(),J=await Z.storage.organizationBilling.getBilling(Q.id),G=V9().deco,W=null;if(Y&&G?.getEntitlements){let F=await G.getEntitlements(await UQ(X),Q.id);if(F.features&&typeof F.features==="object")W={planId:F.plan.id,features:F.features}}let K=Fm6({plansEnabled:Y,entitlements:W,subscriptionBound:!!J?.stripeSubscriptionId,targetPlanId:$.planId});if(K||!W)throw Error(K??"Could not read this organization's plan.");let H=Z.auth.user?.email??X;return await lt({organizationId:Q.id,planId:$.planId,note:`invoice upgrade by ${H} at ${new Date().toISOString()} \u2014 bill on next invoice`}),gh(Q.id),DQ({event:"plan_invoice_upgrade",organizationId:Q.id,userId:X,properties:{plan_id:$.planId,previous_plan_id:W.planId,org_slug:Q.slug,org_name:Q.name}}),{planId:$.planId}}})});var c38=L(()=>{w38();E38();z38();MZ0();P38();A38();T38();R38();k38();C38();_38();f38();b38();g38();m38()});import VP from"zod";function Bm6($){let Z=$.trim();if(Z.startsWith(Nm6))throw Error("That looks like a Console API key, which bills per-token API usage instead of your subscription. Run `claude setup-token` and paste the token it prints.");if(/\s/.test(Z))throw Error("The token must not contain spaces or line breaks");if(Z.length===0)throw Error("The token must not be empty");return Z}var N21,Nm6="sk-ant-api",d38,i38,p38;var n38=L(()=>{_0();N21=VP.object({connected:VP.boolean(),linkedAt:VP.string().nullable(),expiresAt:VP.string().nullable().describe("Known expiry, or null when the token carries none we can read")});d38=c({name:"CLAUDE_SUBSCRIPTION_CONNECT",description:"Link the caller's Claude subscription with a token from `claude setup-token`, so their claude-code runs bill against their own Pro/Max plan. Stored encrypted, for the caller only.",inputSchema:VP.object({token:VP.string().min(1).describe("The token printed by `claude setup-token` (sk-ant-oat\u2026)")}),outputSchema:N21,handler:async($,Z)=>{t(Z),G0(Z),await Z.access.check();let Q=u0(Z);if(!Q)throw Error("Unable to determine user ID");let X=Bm6($.token);return{connected:!0,...await Z.storage.claudeSubscriptions.upsert({userId:Q,accessToken:X})}}}),i38=c({name:"CLAUDE_SUBSCRIPTION_STATUS",description:"Whether the caller has a linked Claude subscription token, and since when.",inputSchema:VP.object({}),outputSchema:N21,handler:async($,Z)=>{t(Z),G0(Z),await Z.access.check();let Q=u0(Z);if(!Q)throw Error("Unable to determine user ID");let X=await Z.storage.claudeSubscriptions.find(Q);if(!X)return{connected:!1,linkedAt:null,expiresAt:null};return{connected:!(X.expiresAt!==null&&new Date(X.expiresAt)<=new Date),...X}}}),p38=c({name:"CLAUDE_SUBSCRIPTION_DISCONNECT",description:"Unlink the caller's Claude subscription and delete the stored token.",inputSchema:VP.object({}),outputSchema:N21,handler:async($,Z)=>{t(Z),G0(Z),await Z.access.check();let Q=u0(Z);if(!Q)throw Error("Unable to determine user ID");return await Z.storage.claudeSubscriptions.delete(Q),{connected:!1,linkedAt:null,expiresAt:null}}})});import RB from"zod";var Af0;var B21=L(()=>{Af0=RB.object({id:RB.string(),scope:RB.enum(["user","organization"]),userId:RB.string().nullable(),name:RB.string(),description:RB.string().nullable(),createdBy:RB.string(),createdAt:RB.string(),updatedBy:RB.string(),updatedAt:RB.string()})});import SZ0 from"zod";var Dm6=65536,L21;var t38=L(()=>{_0();B21();L21=c({name:"SECRET_CREATE",description:"Create a secret. The value is encrypted at rest in the credential vault and never returned by any tool. Scope 'user' is private to the caller within this organization; scope 'organization' is visible to all org members.",inputSchema:SZ0.object({scope:SZ0.enum(["user","organization"]),name:SZ0.string().min(1).max(128).regex(/^[A-Za-z0-9_.-]+$/,{message:"Name may only contain letters, digits, underscore, dot, and hyphen."}),value:SZ0.string().min(1).max(Dm6),description:SZ0.string().max(500).optional()}),outputSchema:Af0,handler:async($,Z)=>{t(Z);let Q=G0(Z);await Z.access.check();let X=Z.auth.user.id,Y=$.scope==="user"?{kind:"user",userId:X}:{kind:"organization"};return await Z.storage.secrets.create({organizationId:Q.id,scope:Y,name:$.name,value:$.value,description:$.description??null,createdBy:X})}})});import Tf0 from"zod";var D21;var o38=L(()=>{_0();B21();D21=c({name:"SECRET_LIST",description:"List secrets visible to the caller: all organization-scoped secrets, plus user-scoped secrets owned by the caller. Values are never returned.",annotations:{readOnlyHint:!0,idempotentHint:!0},inputSchema:Tf0.object({scope:Tf0.enum(["user","organization"]).optional()}),outputSchema:Tf0.object({secrets:Tf0.array(Af0)}),handler:async($,Z)=>{t(Z);let Q=G0(Z);await Z.access.check();let X=Z.auth.user.id,Y=$.scope==="user"?{kind:"user",userId:X}:$.scope==="organization"?{kind:"organization"}:void 0;return{secrets:await Z.storage.secrets.list({organizationId:Q.id,callerUserId:X,scope:Y})}}})});var a38=L(()=>{t38();o38()});var hh=f((Am6)=>{var O21;(function($){$.HEADER="header",$.QUERY="query"})(O21||(O21={}));var j21;(function($){$.HEADER="header",$.QUERY="query"})(j21||(j21={}));var w21;(function($){$.HTTP="http",$.HTTPS="https"})(w21||(w21={}));var _Z0;(function($){$.MD5="md5",$.CRC32="crc32",$.CRC32C="crc32c",$.SHA1="sha1",$.SHA256="sha256"})(_Z0||(_Z0={}));var jm6=($)=>{let Z=[];if($.sha256!==void 0)Z.push({algorithmId:()=>_Z0.SHA256,checksumConstructor:()=>$.sha256});if($.md5!=null)Z.push({algorithmId:()=>_Z0.MD5,checksumConstructor:()=>$.md5});return{addChecksumAlgorithm(Q){Z.push(Q)},checksumAlgorithms(){return Z}}},wm6=($)=>{let Z={};return $.checksumAlgorithms().forEach((Q)=>{Z[Q.algorithmId()]=Q.checksumConstructor()}),Z},Em6=($)=>{return jm6($)},zm6=($)=>{return wm6($)},E21;(function($){$[$.HEADER=0]="HEADER",$[$.TRAILER=1]="TRAILER"})(E21||(E21={}));var Pm6="__smithy_context",z21;(function($){$.PROFILE="profile",$.SSO_SESSION="sso-session",$.SERVICES="services"})(z21||(z21={}));var P21;(function($){$.HTTP_0_9="http/0.9",$.HTTP_1_0="http/1.0",$.TDS_8_0="tds/8.0"})(P21||(P21={}));Am6.AlgorithmId=_Z0;Am6.EndpointURLScheme=w21;Am6.FieldPosition=E21;Am6.HttpApiKeyAuthLocation=j21;Am6.HttpAuthLocation=O21;Am6.IniSectionType=z21;Am6.RequestHandlerProtocol=P21;Am6.SMITHY_CONTEXT_KEY=Pm6;Am6.getDefaultClientConfiguration=Em6;Am6.resolveDefaultRuntimeConfig=zm6});var qB=f((hm6)=>{var{SMITHY_CONTEXT_KEY:r38}=hh(),vm6=($)=>$[r38]||($[r38]={});class Rf0{method;protocol;hostname;port;path;query;headers;username;password;fragment;body;constructor($){this.method=$.method||"GET",this.hostname=$.hostname||"localhost",this.port=$.port,this.query=$.query||{},this.headers=$.headers||{},this.body=$.body,this.protocol=$.protocol?$.protocol.slice(-1)!==":"?`${$.protocol}:`:$.protocol:"https:",this.path=$.path?$.path.charAt(0)!=="/"?`/${$.path}`:$.path:"/",this.username=$.username,this.password=$.password,this.fragment=$.fragment}static clone($){let Z=new Rf0({...$,headers:{...$.headers}});if(Z.query)Z.query=xm6(Z.query);return Z}static isInstance($){if(!$)return!1;let Z=$;return"method"in Z&&"protocol"in Z&&"hostname"in Z&&"path"in Z&&typeof Z.query==="object"&&typeof Z.headers==="object"}clone(){return Rf0.clone(this)}}function xm6($){return Object.keys($).reduce((Z,Q)=>{let X=$[Q];return{...Z,[Q]:Array.isArray(X)?[...X]:X}},{})}class s38{statusCode;reason;headers;body;constructor($){this.statusCode=$.statusCode,this.reason=$.reason,this.headers=$.headers||{},this.body=$.body}static isInstance($){if(!$)return!1;let Z=$;return typeof Z.statusCode==="number"&&typeof Z.headers==="object"}}var fm6=new RegExp("^(?!.*-$)(?!-)[a-zA-Z0-9-]{1,63}$"),e38=($,Z=!1)=>{if(!Z)return fm6.test($);let Q=$.split(".");for(let X of Q)if(!e38(X))return!1;return!0};function bm6($){return/^[a-z0-9][a-z0-9\.\-]*[a-z0-9]$/.test($)}var ym6=($)=>{if(typeof $==="function")return $;let Z=Promise.resolve($);return()=>Z};function $W8($){let Z={};if($=$.replace(/^\?/,""),$)for(let Q of $.split("&")){let[X,Y=null]=Q.split("=");if(X=decodeURIComponent(X),Y)Y=decodeURIComponent(Y);if(!(X in Z))Z[X]=Y;else if(Array.isArray(Z[X]))Z[X].push(Y);else Z[X]=[Z[X],Y]}return Z}var qf0=($)=>{if(typeof $==="string")return qf0(new URL($));let{hostname:Z,pathname:Q,port:X,protocol:Y,search:J}=$,G;if(J)G=$W8(J);return{hostname:Z,port:X?parseInt(X):void 0,protocol:Y,path:Q,query:G}},gm6=($)=>{if(typeof $==="object"){if("url"in $){let Z=qf0($.url);if($.headers){Z.headers={};for(let Q in $.headers)Z.headers[Q.toLowerCase()]=$.headers[Q].join(", ")}return Z}return $}return qf0($)};hm6.HttpRequest=Rf0;hm6.HttpResponse=s38;hm6.getSmithyContext=vm6;hm6.isValidHostLabel=e38;hm6.isValidHostname=bm6;hm6.normalizeProvider=ym6;hm6.parseQueryString=$W8;hm6.parseUrl=qf0;hm6.toEndpointV1=gm6});var tF=f((Kc6)=>{var{getSmithyContext:ZW8,HttpResponse:om6,toEndpointV1:am6}=qB(),Mf0=($)=>{if(typeof $==="function")return $();return $},R21=($,Z,Q,X,Y)=>({name:Z,namespace:$,traits:Q,input:X,output:Y}),rm6=($)=>(Z,Q)=>async(X)=>{let{response:Y}=await Z(X),{operationSchema:J}=ZW8(Q),[,G,W,K,H,F]=J??[];try{let U=await $.protocol.deserializeResponse(R21(G,W,K,H,F),{...$,...Q},Y);return{response:Y,output:U}}catch(U){if(Object.defineProperty(U,"$response",{value:Y,enumerable:!1,writable:!1,configurable:!1}),!("$metadata"in U)){try{U.message+=`
4448
4448
  Deserialization error: to see the raw response, inspect the hidden field {error}.$response on this object.`}catch(B){if(!Q.logger||Q.logger?.constructor?.name==="NoOpLogger")console.warn("Deserialization error: to see the raw response, inspect the hidden field {error}.$response on this object.");else Q.logger?.warn?.("Deserialization error: to see the raw response, inspect the hidden field {error}.$response on this object.")}if(typeof U.$responseBodyText<"u"){if(U.$response)U.$response.body=U.$responseBodyText}try{if(om6.isInstance(Y)){let{headers:B={},statusCode:D}=Y,O=Object.entries(B);U.$metadata={httpStatusCode:D,requestId:A21(/^x-[\w-]+-request-?id$/,O),extendedRequestId:A21(/^x-[\w-]+-id-2$/,O),cfId:A21(/^x-[\w-]+-cf-id$/,O)}}}catch(B){}}throw U}},A21=($,Z)=>{return(Z.find(([Q])=>{return Q.match($)})||[void 0,void 0])[1]},sm6=($)=>(Z,Q)=>async(X)=>{let{operationSchema:Y}=ZW8(Q),[,J,G,W,K,H]=Y??[],F=Q.endpointV2?async()=>am6(Q.endpointV2):$.endpoint,U=await $.protocol.serializeRequest(R21(J,G,W,K,H),X.input,{...$,...Q,endpoint:F});return Z({...X,request:U})},QW8={name:"deserializerMiddleware",step:"deserialize",tags:["DESERIALIZER"],override:!0},XW8={name:"serializerMiddleware",step:"serialize",tags:["SERIALIZER"],override:!0};function em6($){return{applyToStack:(Z)=>{Z.add(sm6($),XW8),Z.add(rm6($),QW8),$.protocol.setSerdeContext($)}}}class uG{name;namespace;traits;static assign($,Z){return Object.assign($,Z)}static[Symbol.hasInstance]($){let Z=this.prototype.isPrototypeOf($);if(!Z&&typeof $==="object"&&$!==null)return $.symbol===this.symbol;return Z}getName(){return this.namespace+"#"+this.name}}class Cf0 extends uG{static symbol=Symbol.for("@smithy/lis");name;traits;valueSchema;symbol=Cf0.symbol}var $c6=($,Z,Q,X)=>uG.assign(new Cf0,{name:Z,namespace:$,traits:Q,valueSchema:X});class Sf0 extends uG{static symbol=Symbol.for("@smithy/map");name;traits;keySchema;valueSchema;symbol=Sf0.symbol}var Zc6=($,Z,Q,X,Y)=>uG.assign(new Sf0,{name:Z,namespace:$,traits:Q,keySchema:X,valueSchema:Y});class _f0 extends uG{static symbol=Symbol.for("@smithy/ope");name;traits;input;output;symbol=_f0.symbol}var Qc6=($,Z,Q,X,Y)=>uG.assign(new _f0,{name:Z,namespace:$,traits:Q,input:X,output:Y});class bZ0 extends uG{static symbol=Symbol.for("@smithy/str");name;traits;memberNames;memberList;symbol=bZ0.symbol}var Xc6=($,Z,Q,X,Y)=>uG.assign(new bZ0,{name:Z,namespace:$,traits:Q,memberNames:X,memberList:Y});class vf0 extends bZ0{static symbol=Symbol.for("@smithy/err");ctor;symbol=vf0.symbol}var Yc6=($,Z,Q,X,Y,J)=>uG.assign(new vf0,{name:Z,namespace:$,traits:Q,memberNames:X,memberList:Y,ctor:null}),If0=[];function fZ0($){if(typeof $==="object")return $;if($=$|0,If0[$])return If0[$];let Z={},Q=0;for(let X of["httpLabel","idempotent","idempotencyToken","sensitive","httpPayload","httpResponseCode","httpQueryParams"])if(($>>Q++&1)===1)Z[X]=1;return If0[$]=Z}var vZ0={it:Symbol.for("@smithy/nor-struct-it"),ns:Symbol.for("@smithy/ns")},Vf0=[],kf0={};class RO{ref;memberName;static symbol=Symbol.for("@smithy/nor");symbol=RO.symbol;name;schema;_isMemberSchema;traits;memberTraits;normalizedTraits;constructor($,Z){this.ref=$,this.memberName=Z;let Q=[],X=$,Y=$;this._isMemberSchema=!1;while(T21(X))Q.push(X[1]),X=X[0],Y=Mf0(X),this._isMemberSchema=!0;if(Q.length>0){this.memberTraits={};for(let J=Q.length-1;J>=0;--J){let G=Q[J];Object.assign(this.memberTraits,fZ0(G))}}else this.memberTraits=0;if(Y instanceof RO){let J=this.memberTraits;Object.assign(this,Y),this.memberTraits=Object.assign({},J,Y.getMemberTraits(),this.getMemberTraits()),this.normalizedTraits=void 0,this.memberName=Z??Y.memberName;return}if(this.schema=Mf0(Y),YW8(this.schema))this.name=`${this.schema[1]}#${this.schema[2]}`,this.traits=this.schema[3];else this.name=this.memberName??String(Y),this.traits=0;if(this._isMemberSchema&&!Z)throw Error(`@smithy/core/schema - NormalizedSchema member init ${this.getName(!0)} missing member name.`)}static[Symbol.hasInstance]($){let Z=this.prototype.isPrototypeOf($);if(!Z&&typeof $==="object"&&$!==null)return $.symbol===this.symbol;return Z}static of($){let Z=typeof $==="function"||typeof $==="object"&&$!==null;if(typeof $==="number"){if(Vf0[$])return Vf0[$]}else if(typeof $==="string"){if(kf0[$])return kf0[$]}else if(Z){if($[vZ0.ns])return $[vZ0.ns]}let Q=Mf0($);if(Q instanceof RO)return Q;if(T21(Q)){let[Y,J]=Q;if(Y instanceof RO)return Object.assign(Y.getMergedTraits(),fZ0(J)),Y;throw Error(`@smithy/core/schema - may not init unwrapped member schema=${JSON.stringify($,null,2)}.`)}let X=new RO(Q);if(Z)return $[vZ0.ns]=X;if(typeof Q==="string")return kf0[Q]=X;if(typeof Q==="number")return Vf0[Q]=X;return X}getSchema(){let $=this.schema;if(Array.isArray($)&&$[0]===0)return $[4];return $}getName($=!1){let{name:Z}=this;return!$&&Z&&Z.includes("#")?Z.split("#")[1]:Z||void 0}getMemberName(){return this.memberName}isMemberSchema(){return this._isMemberSchema}isListSchema(){let $=this.getSchema();return typeof $==="number"?$>=64&&$<128:$[0]===1}isMapSchema(){let $=this.getSchema();return typeof $==="number"?$>=128&&$<=255:$[0]===2}isStructSchema(){let $=this.getSchema();if(typeof $!=="object")return!1;let Z=$[0];return Z===3||Z===-3||Z===4}isUnionSchema(){let $=this.getSchema();if(typeof $!=="object")return!1;return $[0]===4}isBlobSchema(){let $=this.getSchema();return $===21||$===42}isTimestampSchema(){let $=this.getSchema();return typeof $==="number"&&$>=4&&$<=7}isUnitSchema(){return this.getSchema()==="unit"}isDocumentSchema(){return this.getSchema()===15}isStringSchema(){return this.getSchema()===0}isBooleanSchema(){return this.getSchema()===2}isNumericSchema(){return this.getSchema()===1}isBigIntegerSchema(){return this.getSchema()===17}isBigDecimalSchema(){return this.getSchema()===19}isStreaming(){let{streaming:$}=this.getMergedTraits();return!!$||this.getSchema()===42}isIdempotencyToken(){return!!this.getMergedTraits().idempotencyToken}getMergedTraits(){return this.normalizedTraits??(this.normalizedTraits={...this.getOwnTraits(),...this.getMemberTraits()})}getMemberTraits(){return fZ0(this.memberTraits)}getOwnTraits(){return fZ0(this.traits)}getKeySchema(){let[$,Z]=[this.isDocumentSchema(),this.isMapSchema()];if(!$&&!Z)throw Error(`@smithy/core/schema - cannot get key for non-map: ${this.getName(!0)}`);let Q=this.getSchema(),X=$?15:Q[4]??0;return xZ0([X,0],"key")}getValueSchema(){let $=this.getSchema(),[Z,Q,X]=[this.isDocumentSchema(),this.isMapSchema(),this.isListSchema()],Y=typeof $==="number"?63&$:$&&typeof $==="object"&&(Q||X)?$[3+$[0]]:Z?15:void 0;if(Y!=null)return xZ0([Y,0],Q?"value":"member");throw Error(`@smithy/core/schema - ${this.getName(!0)} has no value member.`)}getMemberSchema($){let Z=this.getSchema();if(this.isStructSchema()&&Z[4].includes($)){let Q=Z[4].indexOf($),X=Z[5][Q];return xZ0(T21(X)?X:[X,0],$)}if(this.isDocumentSchema())return xZ0([15,0],$);throw Error(`@smithy/core/schema - ${this.getName(!0)} has no member=${$}.`)}getMemberSchemas(){let $={};try{for(let[Z,Q]of this.structIterator())$[Z]=Q}catch(Z){}return $}getEventStreamMember(){if(this.isStructSchema()){for(let[$,Z]of this.structIterator())if(Z.isStreaming()&&Z.isStructSchema())return $}return""}*structIterator(){if(this.isUnitSchema())return;if(!this.isStructSchema())throw Error("@smithy/core/schema - cannot iterate non-struct schema.");let $=this.getSchema(),Z=$[4].length,Q=$[vZ0.it];if(Q&&Z===Q.length){yield*Q;return}Q=Array(Z);for(let X=0;X<Z;++X){let Y=$[4][X],J=xZ0([$[5][X],0],Y);yield Q[X]=[Y,J]}$[vZ0.it]=Q}}function xZ0($,Z){if($ instanceof RO)return Object.assign($,{memberName:Z,_isMemberSchema:!0});return new RO($,Z)}var T21=($)=>Array.isArray($)&&$.length===2,YW8=($)=>Array.isArray($)&&$.length>=5;class yZ0 extends uG{static symbol=Symbol.for("@smithy/sim");name;schemaRef;traits;symbol=yZ0.symbol}var Jc6=($,Z,Q,X)=>uG.assign(new yZ0,{name:Z,namespace:$,traits:X,schemaRef:Q}),Gc6=($,Z,Q,X)=>uG.assign(new yZ0,{name:Z,namespace:$,traits:Q,schemaRef:X}),Wc6={BLOB:21,STREAMING_BLOB:42,BOOLEAN:2,STRING:0,NUMERIC:1,BIG_INTEGER:17,BIG_DECIMAL:19,DOCUMENT:15,TIMESTAMP_DEFAULT:4,TIMESTAMP_DATE_TIME:5,TIMESTAMP_HTTP_DATE:6,TIMESTAMP_EPOCH_SECONDS:7,LIST_MODIFIER:64,MAP_MODIFIER:128};class TO{namespace;schemas;exceptions;static registries=new Map;constructor($,Z=new Map,Q=new Map){this.namespace=$,this.schemas=Z,this.exceptions=Q}static for($){if(!TO.registries.has($))TO.registries.set($,new TO($));return TO.registries.get($)}copyFrom($){let{schemas:Z,exceptions:Q}=this;for(let[X,Y]of $.schemas)if(!Z.has(X))Z.set(X,Y);for(let[X,Y]of $.exceptions)if(!Q.has(X))Q.set(X,Y)}register($,Z){let Q=this.normalizeShapeId($);for(let X of[this,TO.for(Q.split("#")[0])])X.schemas.set(Q,Z)}getSchema($){let Z=this.normalizeShapeId($);if(!this.schemas.has(Z)){if(!$.includes("#")){let Q="#"+$,X=[];for(let[Y,J]of this.schemas.entries())if(Y.endsWith(Q))X.push(J);if(X.length===1)return X[0]}throw Error(`@smithy/core/schema - schema not found for ${Z}`)}return this.schemas.get(Z)}registerError($,Z){let Q=$,X=Q[1];for(let Y of[this,TO.for(X)])Y.schemas.set(X+"#"+Q[2],Q),Y.exceptions.set(Q,Z)}getErrorCtor($){let Z=$;if(this.exceptions.has(Z))return this.exceptions.get(Z);return TO.for(Z[1]).exceptions.get(Z)}getBaseException(){for(let $ of this.exceptions.keys())if(Array.isArray($)){let[,Z,Q]=$,X=Z+"#"+Q;if(X.startsWith("smithy.ts.sdk.synthetic.")&&X.endsWith("ServiceException"))return $}return}find($){for(let Z of this.schemas.values())if($(Z))return Z;return}clear(){this.schemas.clear(),this.exceptions.clear()}normalizeShapeId($){if($.includes("#"))return $;return this.namespace+"#"+$}}Kc6.ErrorSchema=vf0;Kc6.ListSchema=Cf0;Kc6.MapSchema=Sf0;Kc6.NormalizedSchema=RO;Kc6.OperationSchema=_f0;Kc6.SCHEMA=Wc6;Kc6.Schema=uG;Kc6.SimpleSchema=yZ0;Kc6.StructureSchema=bZ0;Kc6.TypeRegistry=TO;Kc6.deref=Mf0;Kc6.deserializerMiddlewareOption=QW8;Kc6.error=Yc6;Kc6.getSchemaSerdePlugin=em6;Kc6.isStaticSchema=YW8;Kc6.list=$c6;Kc6.map=Zc6;Kc6.op=Qc6;Kc6.operation=R21;Kc6.serializerMiddlewareOption=XW8;Kc6.sim=Jc6;Kc6.simAdapter=Gc6;Kc6.simpleSchemaCacheN=Vf0;Kc6.simpleSchemaCacheS=kf0;Kc6.struct=Xc6;Kc6.traitsCache=If0;Kc6.translateTraits=fZ0});var Y9=f((Ld6)=>{var{getSmithyContext:bc6,normalizeProvider:yc6}=qB();Ld6.getSmithyContext=bc6;Ld6.normalizeProvider=yc6;var{SMITHY_CONTEXT_KEY:gc6,AlgorithmId:ff0}=hh();Ld6.AlgorithmId=ff0;var{NormalizedSchema:hc6}=tF(),uh=($,Z)=>{let Q=[];if($)Q.push($);if(Z)for(let X of Z)Q.push(X);return Q},kP=($,Z)=>{return`${$||"anonymous"}${Z&&Z.length>0?` (a.k.a. ${Z.join(",")})`:""}`},gZ0=()=>{let $=[],Z=[],Q=!1,X=new Set,Y=(U)=>U.sort((N,B)=>JW8[B.step]-JW8[N.step]||GW8[B.priority||"normal"]-GW8[N.priority||"normal"]),J=(U)=>{let N=!1,B=(D)=>{let O=uh(D.name,D.aliases);if(O.includes(U)){N=!0;for(let j of O)X.delete(j);return!1}return!0};return $=$.filter(B),Z=Z.filter(B),N},G=(U)=>{let N=!1,B=(D)=>{if(D.middleware===U){N=!0;for(let O of uh(D.name,D.aliases))X.delete(O);return!1}return!0};return $=$.filter(B),Z=Z.filter(B),N},W=(U)=>{return $.forEach((N)=>{U.add(N.middleware,{...N})}),Z.forEach((N)=>{U.addRelativeTo(N.middleware,{...N})}),U.identifyOnResolve?.(F.identifyOnResolve()),U},K=(U)=>{let N=[];return U.before.forEach((B)=>{if(B.before.length===0&&B.after.length===0)N.push(B);else N.push(...K(B))}),N.push(U),U.after.reverse().forEach((B)=>{if(B.before.length===0&&B.after.length===0)N.push(B);else N.push(...K(B))}),N},H=(U=!1)=>{let N=[],B=[],D={};return $.forEach((j)=>{let w={...j,before:[],after:[]};for(let E of uh(w.name,w.aliases))D[E]=w;N.push(w)}),Z.forEach((j)=>{let w={...j,before:[],after:[]};for(let E of uh(w.name,w.aliases))D[E]=w;B.push(w)}),B.forEach((j)=>{if(j.toMiddleware){let w=D[j.toMiddleware];if(w===void 0){if(U)return;throw Error(`${j.toMiddleware} is not found when adding ${kP(j.name,j.aliases)} middleware ${j.relation} ${j.toMiddleware}`)}if(j.relation==="after")w.after.push(j);if(j.relation==="before")w.before.push(j)}}),Y(N).map(K).reduce((j,w)=>{return j.push(...w),j},[])},F={add:(U,N={})=>{let{name:B,override:D,aliases:O}=N,j={step:"initialize",priority:"normal",middleware:U,...N},w=uh(B,O);if(w.length>0){if(w.some((E)=>X.has(E))){if(!D)throw Error(`Duplicate middleware name '${kP(B,O)}'`);for(let E of w){let z=$.findIndex((P)=>P.name===E||P.aliases?.some((A)=>A===E));if(z===-1)continue;let T=$[z];if(T.step!==j.step||j.priority!==T.priority)throw Error(`"${kP(T.name,T.aliases)}" middleware with ${T.priority} priority in ${T.step} step cannot be overridden by "${kP(B,O)}" middleware with ${j.priority} priority in ${j.step} step.`);$.splice(z,1)}}for(let E of w)X.add(E)}$.push(j)},addRelativeTo:(U,N)=>{let{name:B,override:D,aliases:O}=N,j={middleware:U,...N},w=uh(B,O);if(w.length>0){if(w.some((E)=>X.has(E))){if(!D)throw Error(`Duplicate middleware name '${kP(B,O)}'`);for(let E of w){let z=Z.findIndex((P)=>P.name===E||P.aliases?.some((A)=>A===E));if(z===-1)continue;let T=Z[z];if(T.toMiddleware!==j.toMiddleware||T.relation!==j.relation)throw Error(`"${kP(T.name,T.aliases)}" middleware ${T.relation} "${T.toMiddleware}" middleware cannot be overridden by "${kP(B,O)}" middleware ${j.relation} "${j.toMiddleware}" middleware.`);Z.splice(z,1)}}for(let E of w)X.add(E)}Z.push(j)},clone:()=>W(gZ0()),use:(U)=>{U.applyToStack(F)},remove:(U)=>{if(typeof U==="string")return J(U);else return G(U)},removeByTag:(U)=>{let N=!1,B=(D)=>{let{tags:O,name:j,aliases:w}=D;if(O&&O.includes(U)){let E=uh(j,w);for(let z of E)X.delete(z);return N=!0,!1}return!0};return $=$.filter(B),Z=Z.filter(B),N},concat:(U)=>{let N=W(gZ0());return N.use(U),N.identifyOnResolve(Q||N.identifyOnResolve()||(U.identifyOnResolve?.()??!1)),N},applyToStack:W,identify:()=>{return H(!0).map((U)=>{let N=U.step??U.relation+" "+U.toMiddleware;return kP(U.name,U.aliases)+" - "+N})},identifyOnResolve(U){if(typeof U==="boolean")Q=U;return Q},resolve:(U,N)=>{for(let B of H().map((D)=>D.middleware).reverse())U=B(U,N);if(Q)console.log(F.identify());return U}};return F},JW8={initialize:5,serialize:4,build:3,finalizeRequest:2,deserialize:1},GW8={high:3,normal:2,low:1},uc6=($)=>()=>{throw Error($)},lc6=($)=>()=>Promise.reject($),xf0=()=>{let $=new WeakSet;return(Z,Q)=>{if(typeof Q==="object"&&Q!==null){if($.has(Q))return"[Circular]";$.add(Q)}return Q}},mc6=($)=>{return new Promise((Z)=>setTimeout(Z,$*1000))},HW8={minDelay:2,maxDelay:120},MB;(function($){$.ABORTED="ABORTED",$.FAILURE="FAILURE",$.SUCCESS="SUCCESS",$.RETRY="RETRY",$.TIMEOUT="TIMEOUT"})(MB||(MB={}));var cc6=($)=>{if($.state===MB.ABORTED){let Z=Error(`${JSON.stringify({...$,reason:"Request was aborted"},xf0())}`);throw Z.name="AbortError",Z}else if($.state===MB.TIMEOUT){let Z=Error(`${JSON.stringify({...$,reason:"Waiter has timed out"},xf0())}`);throw Z.name="TimeoutError",Z}else if($.state!==MB.SUCCESS)throw Error(`${JSON.stringify($,xf0())}`);return $},dc6=async({minDelay:$,maxDelay:Z,maxWaitTime:Q,abortController:X,client:Y,abortSignal:J},G,W)=>{let K={},[H,F]=[$*1000,Z*1000],U=0,N=Date.now()+Q*1000,B=Date.now()+60000,D=!1;while(!0){if(U>0){let w=nc6(H,F,U,N);if(X?.signal?.aborted||J?.aborted)return K["AbortController signal aborted."]|=0,K["AbortController signal aborted."]+=1,{state:MB.ABORTED,observedResponses:K};if(Date.now()+w>N)return{state:MB.TIMEOUT,observedResponses:K};await mc6(w/1000)}let{state:O,reason:j}=await W(Y,G);if(j){let w=pc6(j);K[w]|=0,K[w]+=1}if(O!==MB.RETRY)return{state:O,reason:j,final:j,observedResponses:K};if(U+=1,!D&&Date.now()>=B)ic6(K,Y),D=!0}},ic6=($={},Z)=>{let Q=Object.keys($),X=0;for(let G of Q){let W=$[G]|0;if(G.startsWith("403:"))X+=W}let Y=Z?.config?.logger,J=typeof Y?.warn==="function"&&!Y.constructor?.name?.includes?.("NoOpLogger")?Y:console;if(X>=3||Q[Q.length-1]?.startsWith("403:"))J.warn("@smithy/util-waiter WARN - 403 status code encountered during waiter polling.")},pc6=($)=>{let Z=$?.$response?.statusCode??$?.$metadata?.httpStatusCode;if($?.$responseBodyText)return`${Z?Z+": ":""}Deserialization error for body: ${$.$responseBodyText}`;if(Z){if($?.$response||$?.message)return`${Z??"Unknown"}: ${$?.message}`;return`${Z}: OK`}return String($?.message??JSON.stringify($,xf0())??"Unknown")},nc6=($,Z,Q,X)=>{let Y=Math.log(Z/$)/Math.log(2)+1;if(Q>Y)return Z;let J=$*2**(Q-1),G=Math.min(J,Z),W=tc6($,G);if(Date.now()+W>X){let K=X-Date.now();return Math.max(0,K-500)}return W},tc6=($,Z)=>$+Math.random()*(Z-$),oc6=($)=>{if($.maxWaitTime<=0)throw Error("WaiterConfiguration.maxWaitTime must be greater than 0");else if($.minDelay<=0)throw Error("WaiterConfiguration.minDelay must be greater than 0");else if($.maxDelay<=0)throw Error("WaiterConfiguration.maxDelay must be greater than 0");else if($.maxWaitTime<=$.minDelay)throw Error(`WaiterConfiguration.maxWaitTime [${$.maxWaitTime}] must be greater than WaiterConfiguration.minDelay [${$.minDelay}] for this waiter`);else if($.maxDelay<$.minDelay)throw Error(`WaiterConfiguration.maxDelay [${$.maxDelay}] must be greater than WaiterConfiguration.minDelay [${$.minDelay}] for this waiter`)},WW8=($)=>{let Z,Q=new Promise((X)=>{if(Z=()=>X({state:MB.ABORTED}),typeof $.addEventListener==="function")$.addEventListener("abort",Z);else $.onabort=Z});return{clearListener(){if(typeof $.removeEventListener==="function")$.removeEventListener("abort",Z)},aborted:Q}},ac6=async($,Z,Q)=>{let X={...HW8,...$};oc6(X);let Y=[dc6(X,Z,Q)],J=[];if($.abortSignal){let{aborted:G,clearListener:W}=WW8($.abortSignal);J.push(W),Y.push(G)}if($.abortController?.signal){let{aborted:G,clearListener:W}=WW8($.abortController.signal);J.push(W),Y.push(G)}return Promise.race(Y).then((G)=>{for(let W of J)W();return G})};class FW8{config;middlewareStack=gZ0();initConfig;handlers;constructor($){this.config=$;let{protocol:Z,protocolSettings:Q}=$;if(Q){if(typeof Z==="function")$.protocol=new Z(Q)}}send($,Z,Q){let X=typeof Z!=="function"?Z:void 0,Y=typeof Z==="function"?Z:Q,J=X===void 0&&this.config.cacheMiddleware===!0,G;if(J){if(!this.handlers)this.handlers=new WeakMap;let W=this.handlers;if(W.has($.constructor))G=W.get($.constructor);else G=$.resolveMiddleware(this.middlewareStack,this.config,X),W.set($.constructor,G)}else delete this.handlers,G=$.resolveMiddleware(this.middlewareStack,this.config,X);if(Y)G($).then((W)=>Y(null,W.output),(W)=>Y(W)).catch(()=>{});else return G($).then((W)=>W.output)}destroy(){this.config?.requestHandler?.destroy?.(),delete this.handlers}}var q21="***SensitiveInformation***";function bf0($,Z){if(Z==null)return Z;let Q=hc6.of($);if(Q.getMergedTraits().sensitive)return q21;if(Q.isListSchema()){if(!!Q.getValueSchema().getMergedTraits().sensitive)return q21}else if(Q.isMapSchema()){if(!!Q.getKeySchema().getMergedTraits().sensitive||!!Q.getValueSchema().getMergedTraits().sensitive)return q21}else if(Q.isStructSchema()&&typeof Z==="object"){let X=Z,Y={};for(let[J,G]of Q.structIterator())if(X[J]!=null)Y[J]=bf0(G,X[J]);return Y}return Z}class I21{middlewareStack=gZ0();schema;static classBuilder(){return new UW8}resolveMiddlewareWithContext($,Z,Q,{middlewareFn:X,clientName:Y,commandName:J,inputFilterSensitiveLog:G,outputFilterSensitiveLog:W,smithyContext:K,additionalContext:H,CommandCtor:F}){for(let j of X.bind(this)(F,$,Z,Q))this.middlewareStack.use(j);let U=$.concat(this.middlewareStack),{logger:N}=Z,B={logger:N,clientName:Y,commandName:J,inputFilterSensitiveLog:G,outputFilterSensitiveLog:W,[gc6]:{commandInstance:this,...K},...H},{requestHandler:D}=Z,O=Q??{};if(K.eventStream)O={isEventStream:!0,...O};return U.resolve((j)=>D.handle(j.request,O),B)}}class UW8{_init=()=>{};_ep={};_middlewareFn=()=>[];_commandName="";_clientName="";_additionalContext={};_smithyContext={};_inputFilterSensitiveLog=void 0;_outputFilterSensitiveLog=void 0;_serializer=null;_deserializer=null;_operationSchema;init($){this._init=$}ep($){return this._ep=$,this}m($){return this._middlewareFn=$,this}s($,Z,Q={}){return this._smithyContext={service:$,operation:Z,...Q},this}c($={}){return this._additionalContext=$,this}n($,Z){return this._clientName=$,this._commandName=Z,this}f($=(Q)=>Q,Z=(Q)=>Q){return this._inputFilterSensitiveLog=$,this._outputFilterSensitiveLog=Z,this}ser($){return this._serializer=$,this}de($){return this._deserializer=$,this}sc($){return this._operationSchema=$,this._smithyContext.operationSchema=$,this}build(){let $=this,Z;return Z=class extends I21{input;static getEndpointParameterInstructions(){return $._ep}constructor(...[Q]){super();this.input=Q??{},$._init(this),this.schema=$._operationSchema}resolveMiddleware(Q,X,Y){let J=$._operationSchema,G=J?.[4]??J?.input,W=J?.[5]??J?.output;return this.resolveMiddlewareWithContext(Q,X,Y,{CommandCtor:Z,middlewareFn:$._middlewareFn,clientName:$._clientName,commandName:$._commandName,inputFilterSensitiveLog:$._inputFilterSensitiveLog??(J?bf0.bind(null,G):(K)=>K),outputFilterSensitiveLog:$._outputFilterSensitiveLog??(J?bf0.bind(null,W):(K)=>K),smithyContext:$._smithyContext,additionalContext:$._additionalContext})}serialize=$._serializer;deserialize=$._deserializer}}}var rc6="***SensitiveInformation***",sc6=($,Z,Q)=>{for(let[J,G]of Object.entries($)){let W=async function(H,F,U){let N=new G(H);if(typeof F==="function")this.send(N,F);else if(typeof U==="function"){if(typeof F!=="object")throw Error(`Expected http options but got ${typeof F}`);this.send(N,F||{},U)}else return this.send(N,F)},K=(J[0].toLowerCase()+J.slice(1)).replace(/Command$/,"");Z.prototype[K]=W}let{paginators:X={},waiters:Y={}}=Q??{};for(let[J,G]of Object.entries(X))if(Z.prototype[J]===void 0)Z.prototype[J]=function(W={},K,...H){return G({...K,client:this},W,...H)};for(let[J,G]of Object.entries(Y))if(Z.prototype[J]===void 0)Z.prototype[J]=async function(W={},K,...H){let F=K;if(typeof K==="number")F={maxWaitTime:K};return G({...F,client:this},W,...H)}};class ct extends Error{$fault;$response;$retryable;$metadata;constructor($){super($.message);Object.setPrototypeOf(this,Object.getPrototypeOf(this).constructor.prototype),this.name=$.name,this.$fault=$.$fault,this.$metadata=$.$metadata}static isInstance($){if(!$)return!1;let Z=$;return ct.prototype.isPrototypeOf(Z)||Boolean(Z.$fault)&&Boolean(Z.$metadata)&&(Z.$fault==="client"||Z.$fault==="server")}static[Symbol.hasInstance]($){if(!$)return!1;let Z=$;if(this===ct)return ct.isInstance($);if(ct.isInstance($)){if(Z.name&&this.name)return this.prototype.isPrototypeOf($)||Z.name===this.name;return this.prototype.isPrototypeOf($)}return!1}}var NW8=($,Z={})=>{Object.entries(Z).filter(([,X])=>X!==void 0).forEach(([X,Y])=>{if($[X]==null||$[X]==="")$[X]=Y});let Q=$.message||$.Message||"UnknownError";return $.message=Q,delete $.Message,$},BW8=({output:$,parsedBody:Z,exceptionCtor:Q,errorCode:X})=>{let Y=$d6($),J=Y.httpStatusCode?Y.httpStatusCode+"":void 0,G=new Q({name:Z?.code||Z?.Code||X||J||"UnknownError",$fault:"client",$metadata:Y});throw NW8(G,Z)},ec6=($)=>{return({output:Z,parsedBody:Q,errorCode:X})=>{BW8({output:Z,parsedBody:Q,exceptionCtor:$,errorCode:X})}},$d6=($)=>({httpStatusCode:$.statusCode,requestId:$.headers["x-amzn-requestid"]??$.headers["x-amzn-request-id"]??$.headers["x-amz-request-id"],extendedRequestId:$.headers["x-amz-id-2"],cfId:$.headers["x-amz-cf-id"]}),Zd6=($)=>{switch($){case"standard":return{retryMode:"standard",connectionTimeout:3100};case"in-region":return{retryMode:"standard",connectionTimeout:1100};case"cross-region":return{retryMode:"standard",connectionTimeout:3100};case"mobile":return{retryMode:"standard",connectionTimeout:30000};default:return{}}},KW8=!1,Qd6=($)=>{if($&&!KW8&&parseInt($.substring(1,$.indexOf(".")))<16)KW8=!0},LW8=Object.values(ff0),DW8=($)=>{let Z=[];for(let Q in ff0){let X=ff0[Q];if($[X]===void 0)continue;Z.push({algorithmId:()=>X,checksumConstructor:()=>$[X]})}for(let[Q,X]of Object.entries($.checksumAlgorithms??{}))Z.push({algorithmId:()=>Q,checksumConstructor:()=>X});return{addChecksumAlgorithm(Q){$.checksumAlgorithms=$.checksumAlgorithms??{};let X=Q.algorithmId(),Y=Q.checksumConstructor();if(LW8.includes(X))$.checksumAlgorithms[X.toUpperCase()]=Y;else $.checksumAlgorithms[X]=Y;Z.push(Q)},checksumAlgorithms(){return Z}}},OW8=($)=>{let Z={};return $.checksumAlgorithms().forEach((Q)=>{let X=Q.algorithmId();if(LW8.includes(X))Z[X]=Q.checksumConstructor()}),Z},jW8=($)=>{return{setRetryStrategy(Z){$.retryStrategy=Z},retryStrategy(){return $.retryStrategy}}},wW8=($)=>{let Z={};return Z.retryStrategy=$.retryStrategy(),Z},EW8=($)=>{return Object.assign(DW8($),jW8($))},Xd6=EW8,Yd6=($)=>{return Object.assign(OW8($),wW8($))},Jd6=($)=>Array.isArray($)?$:[$],zW8=($)=>{for(let Q in $)if(Object.prototype.hasOwnProperty.call($,Q)&&$[Q]["#text"]!==void 0)$[Q]=$[Q]["#text"];else if(typeof $[Q]==="object"&&$[Q]!==null)$[Q]=zW8($[Q]);return $},Gd6=($)=>{return $!=null};class PW8{trace(){}debug(){}info(){}warn(){}error(){}}function AW8($,Z,Q){let X,Y,J;if(typeof Z>"u"&&typeof Q>"u")X={},J=$;else if(X=$,typeof Z==="function")return Y=Z,J=Q,Hd6(X,Y,J);else J=Z;for(let G of Object.keys(J)){if(!Array.isArray(J[G])){X[G]=J[G];continue}TW8(X,null,J,G)}return X}var Wd6=($)=>{let Z={};for(let[Q,X]of Object.entries($||{}))Z[Q]=[,X];return Z},Kd6=($,Z)=>{let Q={};for(let X in Z)TW8(Q,$,Z,X);return Q},Hd6=($,Z,Q)=>{return AW8($,Object.entries(Q).reduce((X,[Y,J])=>{if(Array.isArray(J))X[Y]=J;else if(typeof J==="function")X[Y]=[Z,J()];else X[Y]=[Z,J];return X},{}))},TW8=($,Z,Q,X)=>{if(Z!==null){let G=Q[X];if(typeof G==="function")G=[,G];let[W=Fd6,K=Ud6,H=X]=G;if(typeof W==="function"&&W(Z[H])||typeof W!=="function"&&!!W)$[X]=K(Z[H]);return}let[Y,J]=Q[X];if(typeof J==="function"){let G,W=Y===void 0&&(G=J())!=null,K=typeof Y==="function"&&!!Y(void 0)||typeof Y!=="function"&&!!Y;if(W)$[X]=G;else if(K)$[X]=J()}else{let G=Y===void 0&&J!=null,W=typeof Y==="function"&&!!Y(J)||typeof Y!=="function"&&!!Y;if(G||W)$[X]=J}},Fd6=($)=>$!=null,Ud6=($)=>$,Nd6=($)=>{if($!==$)return"NaN";switch($){case 1/0:return"Infinity";case-1/0:return"-Infinity";default:return $}},Bd6=($)=>$.toISOString().replace(".000Z","Z"),M21=($)=>{if($==null)return{};if(Array.isArray($))return $.filter((Z)=>Z!=null).map(M21);if(typeof $==="object"){let Z={};for(let Q of Object.keys($)){if($[Q]==null)continue;Z[Q]=M21($[Q])}return Z}return $};Ld6.Client=FW8;Ld6.Command=I21;Ld6.NoOpLogger=PW8;Ld6.SENSITIVE_STRING=rc6;Ld6.ServiceException=ct;Ld6.WaiterState=MB;Ld6._json=M21;Ld6.checkExceptions=cc6;Ld6.constructStack=gZ0;Ld6.convertMap=Wd6;Ld6.createAggregatedClient=sc6;Ld6.createWaiter=ac6;Ld6.decorateServiceException=NW8;Ld6.emitWarningIfUnsupportedVersion=Qd6;Ld6.getArrayIfSingleItem=Jd6;Ld6.getChecksumConfiguration=DW8;Ld6.getDefaultClientConfiguration=Xd6;Ld6.getDefaultExtensionConfiguration=EW8;Ld6.getRetryConfiguration=jW8;Ld6.getValueFromTextNode=zW8;Ld6.invalidFunction=uc6;Ld6.invalidProvider=lc6;Ld6.isSerializableHeaderValue=Gd6;Ld6.loadConfigsForDefaultMode=Zd6;Ld6.map=AW8;Ld6.resolveChecksumRuntimeConfig=OW8;Ld6.resolveDefaultRuntimeConfig=Yd6;Ld6.resolveRetryRuntimeConfig=wW8;Ld6.schemaLogFilter=bf0;Ld6.serializeDateTime=Bd6;Ld6.serializeFloat=Nd6;Ld6.take=Kd6;Ld6.throwDefaultError=BW8;Ld6.waiterServiceDefaults=HW8;Ld6.withBaseException=ec6});var d4=f((ai6)=>{var{homedir:ed6}=L0("os"),{sep:$i6,join:hZ0}=L0("path"),{createHash:Zi6}=L0("crypto"),{readFile:kW8}=L0("fs/promises"),{IniSectionType:yf0}=hh(),{normalizeProvider:gf0}=Y9(),{isValidHostLabel:Qi6}=qB();class dt extends Error{name="ProviderError";tryNextLink;constructor($,Z=!0){let Q,X=!0;if(typeof Z==="boolean")Q=void 0,X=Z;else if(Z!=null&&typeof Z==="object")Q=Z.logger,X=Z.tryNextLink??!0;super($);this.tryNextLink=X,Object.setPrototypeOf(this,dt.prototype),Q?.debug?.(`@smithy/property-provider ${X?"->":"(!)"} ${$}`)}static from($,Z=!0){return Object.assign(new this($.message,Z),$)}}class uZ0 extends dt{name="CredentialsProviderError";constructor($,Z=!0){super($,Z);Object.setPrototypeOf(this,uZ0.prototype)}}class _21 extends dt{name="TokenProviderError";constructor($,Z=!0){super($,Z);Object.setPrototypeOf(this,_21.prototype)}}var CW8=(...$)=>async()=>{if($.length===0)throw new dt("No providers in chain");let Z;for(let Q of $)try{return await Q()}catch(X){if(Z=X,X?.tryNextLink)continue;throw X}throw Z},SW8=($)=>()=>Promise.resolve($),v21=($,Z,Q)=>{let X,Y,J,G=!1,W=async()=>{if(!Y)Y=$();try{X=await Y,J=!0,G=!1}finally{Y=void 0}return X};if(Z===void 0)return async(K)=>{if(!J||K?.forceRefresh)X=await W();return X};return async(K)=>{if(!J||K?.forceRefresh)X=await W();if(G)return X;if(Q&&!Q(X))return G=!0,X;if(Z(X))return await W(),X;return X}},qO=($,Z,Q)=>{if(!(Z in $))return;if($[Z]==="true")return!0;if($[Z]==="false")return!1;throw Error(`Cannot load ${Q} "${Z}". Expected "true" or "false", got ${$[Z]}.`)},Xi6=($,Z,Q)=>{if(!(Z in $))return;let X=parseInt($[Z],10);if(Number.isNaN(X))throw TypeError(`Cannot load ${Q} '${Z}'. Expected number, got '${$[Z]}'.`);return X},oF;(function($){$.ENV="env",$.CONFIG="shared config entry"})(oF||(oF={}));var V21={},Yi6=()=>{if(process&&process.geteuid)return`${process.geteuid()}`;return"DEFAULT"},lZ0=()=>{let{HOME:$,USERPROFILE:Z,HOMEPATH:Q,HOMEDRIVE:X=`C:${$i6}`}=process.env;if($)return $;if(Z)return Z;if(Q)return`${X}${Q}`;let Y=Yi6();if(!V21[Y])V21[Y]=ed6();return V21[Y]},_W8="AWS_PROFILE",vW8="default",xW8=($)=>$.profile||process.env[_W8]||vW8,fW8=($)=>{let Q=Zi6("sha1").update($).digest("hex");return hZ0(lZ0(),".aws","sso","cache",`${Q}.json`)},hf0={},Ji6=async($)=>{if(hf0[$])return hf0[$];let Z=fW8($),Q=await kW8(Z,"utf8");return JSON.parse(Q)},lh=".",Gi6=($)=>Object.entries($).filter(([Z])=>{let Q=Z.indexOf(lh);if(Q===-1)return!1;return Object.values(yf0).includes(Z.substring(0,Q))}).reduce((Z,[Q,X])=>{let Y=Q.indexOf(lh),J=Q.substring(0,Y)===yf0.PROFILE?Q.substring(Y+1):Q;return Z[J]=X,Z},{...$.default&&{default:$.default}}),Wi6="AWS_CONFIG_FILE",bW8=()=>process.env[Wi6]||hZ0(lZ0(),".aws","config"),Ki6="AWS_SHARED_CREDENTIALS_FILE",Hi6=()=>process.env[Ki6]||hZ0(lZ0(),".aws","credentials"),Fi6=/^([\w-]+)\s(["'])?([\w-@\+\.%:/]+)\2$/,Ui6=["__proto__","profile __proto__"],C21=($)=>{let Z={},Q,X;for(let Y of $.split(/\r?\n/)){let J=Y.split(/(^|\s)[;#]/)[0].trim();if(J[0]==="["&&J[J.length-1]==="]"){Q=void 0,X=void 0;let W=J.substring(1,J.length-1),K=Fi6.exec(W);if(K){let[,H,,F]=K;if(Object.values(yf0).includes(H))Q=[H,F].join(lh)}else Q=W;if(Ui6.includes(W))throw Error(`Found invalid profile name "${W}"`)}else if(Q){let W=J.indexOf("=");if(![0,-1].includes(W)){let[K,H]=[J.substring(0,W).trim(),J.substring(W+1).trim()];if(H==="")X=K;else{if(X&&Y.trimStart()===Y)X=void 0;Z[Q]=Z[Q]||{};let F=X?[X,K].join(lh):K;Z[Q][F]=H}}}}return Z},k21={},uf0={},lf0=($,Z)=>{if(uf0[$]!==void 0)return uf0[$];if(!k21[$]||Z?.ignoreCache)k21[$]=kW8($,"utf8");return k21[$]},RW8=()=>({}),x21=async($={})=>{let{filepath:Z=Hi6(),configFilepath:Q=bW8()}=$,X=lZ0(),Y="~/",J=Z;if(Z.startsWith("~/"))J=hZ0(X,Z.slice(2));let G=Q;if(Q.startsWith("~/"))G=hZ0(X,Q.slice(2));let W=await Promise.all([lf0(G,{ignoreCache:$.ignoreCache}).then(C21).then(Gi6).catch(RW8),lf0(J,{ignoreCache:$.ignoreCache}).then(C21).catch(RW8)]);return{configFile:W[0],credentialsFile:W[1]}},Ni6=($)=>Object.entries($).filter(([Z])=>Z.startsWith(yf0.SSO_SESSION+lh)).reduce((Z,[Q,X])=>({...Z,[Q.substring(Q.indexOf(lh)+1)]:X}),{}),Bi6=()=>({}),Li6=async($={})=>lf0($.configFilepath??bW8()).then(C21).then(Ni6).catch(Bi6),Di6=(...$)=>{let Z={};for(let Q of $)for(let[X,Y]of Object.entries(Q))if(Z[X]!==void 0)Object.assign(Z[X],Y);else Z[X]=Y;return Z},Oi6=async($)=>{let Z=await x21($);return Di6(Z.configFile,Z.credentialsFile)},ji6={getFileRecord(){return uf0},interceptFile($,Z){uf0[$]=Promise.resolve(Z)},getTokenRecord(){return hf0},interceptToken($,Z){hf0[$]=Z}};function yW8($){try{let Z=new Set(Array.from($.match(/([A-Z_]){3,}/g)??[]));return Z.delete("CONFIG"),Z.delete("CONFIG_PREFIX_SEPARATOR"),Z.delete("ENV"),[...Z].join(", ")}catch(Z){return $}}var wi6=($,Z)=>async()=>{try{let Q=$(process.env,Z);if(Q===void 0)throw Error();return Q}catch(Q){throw new uZ0(Q.message||`Not found in ENV: ${yW8($.toString())}`,{logger:Z?.logger})}},Ei6=($,{preferredFile:Z="config",...Q}={})=>async()=>{let X=xW8(Q),{configFile:Y,credentialsFile:J}=await x21(Q),G=J[X]||{},W=Y[X]||{},K=Z==="config"?{...G,...W}:{...W,...G};try{let F=$(K,Z==="config"?Y:J);if(F===void 0)throw Error();return F}catch(H){throw new uZ0(H.message||`Not found in config files w/ profile [${X}]: ${yW8($.toString())}`,{logger:Q.logger})}},zi6=($)=>typeof $==="function",gW8=($)=>zi6($)?async()=>await $():SW8($),S21=({environmentVariableSelector:$,configFileSelector:Z,default:Q},X={})=>{let{signingName:Y,logger:J}=X;return v21(CW8(wi6($,{signingName:Y,logger:J}),Ei6(Z,X),gW8(Q)))},f21="AWS_USE_DUALSTACK_ENDPOINT",b21="use_dualstack_endpoint",Pi6=!1,Ai6={environmentVariableSelector:($)=>qO($,f21,oF.ENV),configFileSelector:($)=>qO($,b21,oF.CONFIG),default:!1},Ti6={environmentVariableSelector:($)=>qO($,f21,oF.ENV),configFileSelector:($)=>qO($,b21,oF.CONFIG),default:void 0},y21="AWS_USE_FIPS_ENDPOINT",g21="use_fips_endpoint",Ri6=!1,qi6={environmentVariableSelector:($)=>qO($,y21,oF.ENV),configFileSelector:($)=>qO($,g21,oF.CONFIG),default:!1},Mi6={environmentVariableSelector:($)=>qO($,y21,oF.ENV),configFileSelector:($)=>qO($,g21,oF.CONFIG),default:void 0},Ii6=($)=>{let{tls:Z,endpoint:Q,urlParser:X,useDualstackEndpoint:Y}=$;return Object.assign($,{tls:Z??!0,endpoint:gf0(typeof Q==="string"?X(Q):Q),isCustomEndpoint:!0,useDualstackEndpoint:gf0(Y??!1)})},Vi6=async($)=>{let{tls:Z=!0}=$,Q=await $.region();if(!new RegExp(/^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9])$/).test(Q))throw Error("Invalid region in client config");let Y=await $.useDualstackEndpoint(),J=await $.useFipsEndpoint(),{hostname:G}=await $.regionInfoProvider(Q,{useDualstackEndpoint:Y,useFipsEndpoint:J})??{};if(!G)throw Error("Cannot resolve hostname from client config");return $.urlParser(`${Z?"https:":"http:"}//${G}`)},ki6=($)=>{let Z=gf0($.useDualstackEndpoint??!1),{endpoint:Q,useFipsEndpoint:X,urlParser:Y,tls:J}=$;return Object.assign($,{tls:J??!0,endpoint:Q?gf0(typeof Q==="string"?Y(Q):Q):()=>Vi6({...$,useDualstackEndpoint:Z,useFipsEndpoint:X}),isCustomEndpoint:!!Q,useDualstackEndpoint:Z})},hW8="AWS_REGION",uW8="region",lW8={environmentVariableSelector:($)=>$[hW8],configFileSelector:($)=>$[uW8],default:()=>{throw Error("Region is missing")}},Ci6={preferredFile:"credentials"},qW8=new Set,Si6=($,Z=Qi6)=>{if(!qW8.has($)&&!Z($))if($==="*")console.warn('@smithy/config-resolver WARN - Please use the caller region instead of "*". See "sigv4a" in https://github.com/aws/aws-sdk-js-v3/blob/main/supplemental-docs/CLIENTS.md.');else throw Error(`Region not accepted: region="${$}" is not a valid hostname component.`);else qW8.add($)},mW8=($)=>typeof $==="string"&&($.startsWith("fips-")||$.endsWith("-fips")),_i6=($)=>mW8($)?["fips-aws-global","aws-fips"].includes($)?"us-east-1":$.replace(/fips-(dkr-|prod-)?|-fips/,""):$,vi6=($)=>{let{region:Z,useFipsEndpoint:Q}=$;if(!Z)throw Error("Region is missing");return Object.assign($,{region:async()=>{let X=typeof Z==="function"?await Z():Z,Y=_i6(X);return Si6(Y),Y},useFipsEndpoint:async()=>{let X=typeof Z==="string"?Z:await Z();if(mW8(X))return!0;return typeof Q!=="function"?Promise.resolve(!!Q):Q()}})},MW8=($=[],{useFipsEndpoint:Z,useDualstackEndpoint:Q})=>$.find(({tags:X})=>Z===X.includes("fips")&&Q===X.includes("dualstack"))?.hostname,xi6=($,{regionHostname:Z,partitionHostname:Q})=>Z?Z:Q?Q.replace("{region}",$):void 0,fi6=($,{partitionHash:Z})=>Object.keys(Z||{}).find((Q)=>Z[Q].regions.includes($))??"aws",bi6=($,{signingRegion:Z,regionRegex:Q,useFipsEndpoint:X})=>{if(Z)return Z;else if(X){let Y=Q.replace("\\\\","\\").replace(/^\^/g,"\\.").replace(/\$$/g,"\\."),J=$.match(Y);if(J)return J[0].slice(1,-1)}},yi6=($,{useFipsEndpoint:Z=!1,useDualstackEndpoint:Q=!1,signingService:X,regionHash:Y,partitionHash:J})=>{let G=fi6($,{partitionHash:J}),W=$ in Y?$:J[G]?.endpoint??$,K={useFipsEndpoint:Z,useDualstackEndpoint:Q},H=MW8(Y[W]?.variants,K),F=MW8(J[G]?.variants,K),U=xi6(W,{regionHostname:H,partitionHostname:F});if(U===void 0)throw Error(`Endpoint resolution failed for: ${{resolvedRegion:W,useFipsEndpoint:Z,useDualstackEndpoint:Q}}`);let N=bi6(U,{signingRegion:Y[W]?.signingRegion,regionRegex:J[G].regionRegex,useFipsEndpoint:Z});return{partition:G,signingService:X,hostname:U,...N&&{signingRegion:N},...Y[W]?.signingService&&{signingService:Y[W].signingService}}},gi6="AWS_EXECUTION_ENV",IW8="AWS_REGION",VW8="AWS_DEFAULT_REGION",hi6="AWS_EC2_METADATA_DISABLED",ui6=["in-region","cross-region","mobile","standard","legacy"],li6="/latest/meta-data/placement/region",mi6="AWS_DEFAULTS_MODE",ci6="defaults_mode",di6={environmentVariableSelector:($)=>{return $[mi6]},configFileSelector:($)=>{return $[ci6]},default:"legacy"},ii6=({region:$=S21(lW8),defaultsMode:Z=S21(di6)}={})=>v21(async()=>{let Q=typeof Z==="function"?await Z():Z;switch(Q?.toLowerCase()){case"auto":return pi6($);case"in-region":case"cross-region":case"mobile":case"standard":case"legacy":return Promise.resolve(Q?.toLocaleLowerCase());case void 0:return Promise.resolve("legacy");default:throw Error(`Invalid parameter for "defaultsMode", expect ${ui6.join(", ")}, got ${Q}`)}}),pi6=async($)=>{if($){let Z=typeof $==="function"?await $():$,Q=await ni6();if(!Q)return"standard";if(Z===Q)return"in-region";else return"cross-region"}return"standard"},ni6=async()=>{if(process.env[gi6]&&(process.env[IW8]||process.env[VW8]))return process.env[IW8]??process.env[VW8];if(!process.env[hi6])try{let $=await ti6();return(await oi6({hostname:$.hostname,path:li6})).toString()}catch($){}},ti6=async()=>{let $=process.env.AWS_EC2_METADATA_SERVICE_ENDPOINT;if($){let Q=new URL($);return{hostname:Q.hostname,path:Q.pathname}}if(process.env.AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE==="IPv6")return{hostname:"fd00:ec2::254",path:"/"};return{hostname:"169.254.169.254",path:"/"}},oi6=async({hostname:$,path:Z})=>{let{request:Q}=L0("http");return new Promise((X,Y)=>{let J=Q({method:"GET",hostname:$.replace(/^\[(.+)]$/,"$1"),path:Z,timeout:1000,signal:AbortSignal.timeout(1000)});J.on("error",(G)=>{Y(G),J.destroy()}),J.on("timeout",()=>{Y(Error("TimeoutError from instance metadata service")),J.destroy()}),J.on("response",(G)=>{let{statusCode:W=400}=G;if(W<200||300<=W){Y(Object.assign(Error("Error response received from instance metadata service"),{statusCode:W})),J.destroy();return}let K=[];G.on("data",(H)=>K.push(H)),G.on("end",()=>{X(Buffer.concat(K)),J.destroy()})}),J.end()})};ai6.CONFIG_PREFIX_SEPARATOR=lh;ai6.CONFIG_USE_DUALSTACK_ENDPOINT=b21;ai6.CONFIG_USE_FIPS_ENDPOINT=g21;ai6.CredentialsProviderError=uZ0;ai6.DEFAULT_PROFILE=vW8;ai6.DEFAULT_USE_DUALSTACK_ENDPOINT=Pi6;ai6.DEFAULT_USE_FIPS_ENDPOINT=Ri6;ai6.ENV_PROFILE=_W8;ai6.ENV_USE_DUALSTACK_ENDPOINT=f21;ai6.ENV_USE_FIPS_ENDPOINT=y21;ai6.NODE_REGION_CONFIG_FILE_OPTIONS=Ci6;ai6.NODE_REGION_CONFIG_OPTIONS=lW8;ai6.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS=Ai6;ai6.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS=qi6;ai6.ProviderError=dt;ai6.REGION_ENV_NAME=hW8;ai6.REGION_INI_NAME=uW8;ai6.SelectorType=oF;ai6.TokenProviderError=_21;ai6.booleanSelector=qO;ai6.chain=CW8;ai6.externalDataInterceptor=ji6;ai6.fromStatic=gW8;ai6.fromValue=SW8;ai6.getHomeDir=lZ0;ai6.getProfileName=xW8;ai6.getRegionInfo=yi6;ai6.getSSOTokenFilepath=fW8;ai6.getSSOTokenFromFile=Ji6;ai6.loadConfig=S21;ai6.loadSharedConfigFiles=x21;ai6.loadSsoSessionData=Li6;ai6.memoize=v21;ai6.nodeDualstackConfigSelectors=Ti6;ai6.nodeFipsConfigSelectors=Mi6;ai6.numberSelector=Xi6;ai6.parseKnownFiles=Oi6;ai6.readFile=lf0;ai6.resolveCustomEndpointsConfig=Ii6;ai6.resolveDefaultsModeConfig=ii6;ai6.resolveEndpointsConfig=ki6;ai6.resolveRegionConfig=vi6});var LZ=f((Tn6)=>{var{CONFIG_PREFIX_SEPARATOR:cW8,loadConfig:hp6}=d4(),{toEndpointV1:mf0,getSmithyContext:up6,normalizeProvider:h21,isValidHostLabel:pW8}=qB();Tn6.isValidHostLabel=pW8;Tn6.middlewareEndpointToEndpointV1=mf0;Tn6.toEndpointV1=mf0;var{EndpointURLScheme:m21}=hh(),dW8="AWS_ENDPOINT_URL",iW8="endpoint_url",lp6=($)=>({environmentVariableSelector:(Z)=>{let Q=$.split(" ").map((J)=>J.toUpperCase()),X=Z[[dW8,...Q].join("_")];if(X)return X;let Y=Z[dW8];if(Y)return Y;return},configFileSelector:(Z,Q)=>{if(Q&&Z.services){let Y=Q[["services",Z.services].join(cW8)];if(Y){let J=$.split(" ").map((W)=>W.toLowerCase()),G=Y[[J.join("_"),iW8].join(cW8)];if(G)return G}}let X=Z[iW8];if(X)return X;return},default:void 0}),cf0=async($)=>hp6(lp6($??""))(),mp6=async($)=>{let Z=$?.Bucket||"";if(typeof $.Bucket==="string")$.Bucket=Z.replace(/#/g,encodeURIComponent("#")).replace(/\?/g,encodeURIComponent("?"));if(np6(Z)){if($.ForcePathStyle===!0)throw Error("Path-style addressing cannot be used with ARN buckets")}else if(!pp6(Z)||Z.indexOf(".")!==-1&&!String($.Endpoint).startsWith("http:")||Z.toLowerCase()!==Z||Z.length<3)$.ForcePathStyle=!0;if($.DisableMultiRegionAccessPoints)$.disableMultiRegionAccessPoints=!0,$.DisableMRAP=!0;return $},cp6=/^[a-z0-9][a-z0-9\.\-]{1,61}[a-z0-9]$/,dp6=/(\d+\.){3}\d+/,ip6=/\.\./,pp6=($)=>cp6.test($)&&!dp6.test($)&&!ip6.test($),np6=($)=>{let[Z,Q,X,,,Y]=$.split(":"),J=Z==="arn"&&$.split(":").length>=6,G=Boolean(J&&Q&&X&&Y);if(J&&!G)throw Error(`Invalid ARN: ${$} was an invalid ARN.`);return G},tp6=($,Z,Q,X=!1)=>{let Y=async()=>{let J;if(X)J=Q.clientContextParams?.[$]??Q[$]??Q[Z];else J=Q[$]??Q[Z];if(typeof J==="function")return J();return J};if($==="credentialScope"||Z==="CredentialScope")return async()=>{let J=typeof Q.credentials==="function"?await Q.credentials():Q.credentials;return J?.credentialScope??J?.CredentialScope};if($==="accountId"||Z==="AccountId")return async()=>{let J=typeof Q.credentials==="function"?await Q.credentials():Q.credentials;return J?.accountId??J?.AccountId};if($==="endpoint"||Z==="endpoint")return async()=>{if(Q.isCustomEndpoint===!1)return;let J=await Y();if(J&&typeof J==="object"){if("url"in J)return J.url.href;if("hostname"in J){let{protocol:G,hostname:W,port:K,path:H}=J;return`${G}//${W}${K?":"+K:""}${H}`}}return J};return Y};function nW8($){return async(Z,Q,X,Y)=>{if(!X.isCustomEndpoint){let W;if(X.serviceConfiguredEndpoint)W=await X.serviceConfiguredEndpoint();else W=await $(X.serviceId);if(W)X.endpoint=()=>Promise.resolve(mf0(W)),X.isCustomEndpoint=!0}let J=await tW8(Z,Q,X);if(typeof X.endpointProvider!=="function")throw Error("config.endpointProvider is not set.");let G=X.endpointProvider(J,Y);if(X.isCustomEndpoint&&X.endpoint){let W=await X.endpoint();if(W?.headers){G.headers??={};for(let[K,H]of Object.entries(W.headers))G.headers[K]=Array.isArray(H)?H:[H]}}return G}}var tW8=async($,Z,Q)=>{let X={},Y=Z?.getEndpointParameterInstructions?.()||{};for(let[J,G]of Object.entries(Y))switch(G.type){case"staticContextParams":X[J]=G.value;break;case"contextParams":X[J]=$[G.name];break;case"clientContextParams":case"builtInParams":X[J]=await tp6(G.name,J,Q,G.type!=="builtInParams")();break;case"operationContextParams":X[J]=G.get($);break;default:throw Error("Unrecognized endpoint parameter instruction: "+JSON.stringify(G))}if(Object.keys(Y).length===0)Object.assign(X,Q);if(String(Q.serviceId).toLowerCase()==="s3")await mp6(X);return X};function op6($,Z,Q){if(!$.__smithy_context)$.__smithy_context={features:{}};else if(!$.__smithy_context.features)$.__smithy_context.features={};$.__smithy_context.features[Z]=Q}function oW8($){let Z=nW8($);return({config:Q,instructions:X})=>{return(Y,J)=>async(G)=>{if(Q.isCustomEndpoint)op6(J,"ENDPOINT_OVERRIDE","N");let W=await Z(G.input,{getEndpointParameterInstructions(){return X}},{...Q},J);J.endpointV2=W,J.authSchemes=W.properties?.authSchemes;let K=J.authSchemes?.[0];if(K){J.signing_region=K.signingRegion,J.signing_service=K.signingName;let F=up6(J)?.selectedHttpAuthScheme?.httpAuthOption;if(F)F.signingProperties=Object.assign(F.signingProperties||{},{signing_region:K.signingRegion,signingRegion:K.signingRegion,signing_service:K.signingName,signingName:K.signingName,signingRegionSet:K.signingRegionSet},K.properties)}return Y({...G})}}}var ap6={name:"serializerMiddleware"},aW8={step:"serialize",tags:["ENDPOINT_PARAMETERS","ENDPOINT_V2","ENDPOINT"],name:"endpointV2Middleware",override:!0,relation:"before",toMiddleware:ap6.name};function rp6($){let Z=oW8($);return(Q,X)=>({applyToStack:(Y)=>{Y.addRelativeTo(Z({config:Q,instructions:X}),aW8)}})}function sp6($){return(Z)=>{let Q=Z.tls??!0,{endpoint:X,useDualstackEndpoint:Y,useFipsEndpoint:J}=Z,G=X!=null?async()=>mf0(await h21(X)()):void 0,K=Object.assign(Z,{endpoint:G,tls:Q,isCustomEndpoint:!!X,useDualstackEndpoint:h21(Y??!1),useFipsEndpoint:h21(J??!1)}),H=void 0;return K.serviceConfiguredEndpoint=async()=>{if(Z.serviceId&&!H)H=$(Z.serviceId);return H},K}}class c21{nodes;root;conditions;results;constructor($,Z,Q,X){this.nodes=$,this.root=Z,this.conditions=Q,this.results=X}static from($,Z,Q,X){return new c21($,Z,Q,X)}}class rW8{capacity;data=new Map;parameters=[];constructor({size:$,params:Z}){if(this.capacity=$??50,Z)this.parameters=Z}get($,Z){let Q=this.hash($);if(Q===!1)return Z();if(!this.data.has(Q)){if(this.data.size>this.capacity+10){let X=this.data.keys(),Y=0;while(!0){let{value:J,done:G}=X.next();if(this.data.delete(J),G||++Y>10)break}}this.data.set(Q,Z())}return this.data.get(Q)}size(){return this.data.size}hash($){let Z="",{parameters:Q}=this;if(Q.length===0)return!1;for(let X of Q){let Y=String($[X]??"");if(Y.includes("|;"))return!1;Z+=Y+"|;"}return Z}}class EX extends Error{constructor($){super($);this.name="EndpointError"}}var mZ0="endpoints";function CP($){if(typeof $!=="object"||$==null)return $;if("ref"in $)return`$${CP($.ref)}`;if("fn"in $)return`${$.fn}(${($.argv||[]).map(CP).join(", ")})`;return JSON.stringify($,null,2)}var sW8={},ep6=($,Z)=>$===Z;function $n6(...$){for(let Z of $)if(Z!=null)return Z;return}var Zn6=($)=>{let Z=$.split("."),Q=[];for(let X of Z){let Y=X.indexOf("[");if(Y!==-1){if(X.indexOf("]")!==X.length-1)throw new EX(`Path: '${$}' does not end with ']'`);let J=X.slice(Y+1,-1);if(Number.isNaN(parseInt(J)))throw new EX(`Invalid array index: '${J}' in path: '${$}'`);if(Y!==0)Q.push(X.slice(0,Y));Q.push(J)}else Q.push(X)}return Q},eW8=($,Z)=>Zn6(Z).reduce((Q,X)=>{if(typeof Q!=="object")throw new EX(`Index '${X}' in '${Z}' not found in '${JSON.stringify($)}'`);else if(Array.isArray(Q)){let Y=parseInt(X);return Q[Y<0?Q.length+Y:Y]}return Q[X]},$),Qn6=($)=>$!=null;function Xn6($,Z,Q){return $?Z:Q}var Yn6=($)=>!$,Jn6=new RegExp("^(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}$"),$K8=($)=>Jn6.test($)||$.startsWith("[")&&$.endsWith("]"),u21={[m21.HTTP]:80,[m21.HTTPS]:443},Gn6=($)=>{let Z=(()=>{try{if($ instanceof URL)return $;if(typeof $==="object"&&"hostname"in $){let{hostname:N,port:B,protocol:D="",path:O="",query:j={}}=$,w=new URL(`${D}//${N}${B?`:${B}`:""}${O}`);return w.search=Object.entries(j).map(([E,z])=>`${E}=${z}`).join("&"),w}return new URL($)}catch(N){return null}})();if(!Z)return console.error(`Unable to parse ${JSON.stringify($)} as a whatwg URL.`),null;let Q=Z.href,{host:X,hostname:Y,pathname:J,protocol:G,search:W}=Z;if(W)return null;let K=G.slice(0,-1);if(!Object.values(m21).includes(K))return null;let H=$K8(Y),F=Q.includes(`${X}:${u21[K]}`)||typeof $==="string"&&$.includes(`${X}:${u21[K]}`),U=`${X}${F?`:${u21[K]}`:""}`;return{scheme:K,authority:U,path:J,normalizedPath:J.endsWith("/")?J:`${J}/`,isIp:H}};function Wn6($,Z,Q){if(Q===1)return[$];if($==="")return[""];let X=$.split(Z);if(Q===0)return X;return X.slice(0,Q-1).concat(X.slice(1).join(Z))}var Kn6=($,Z)=>$===Z,Hn6=($,Z,Q,X)=>{if($==null||Z>=Q||$.length<Q||/[^\u0000-\u007f]/.test($))return null;if(!X)return $.substring(Z,Q);return $.substring($.length-Q,$.length-Z)},Fn6=($)=>encodeURIComponent($).replace(/[!*'()]/g,(Z)=>`%${Z.charCodeAt(0).toString(16).toUpperCase()}`),Un6={booleanEquals:ep6,coalesce:$n6,getAttr:eW8,isSet:Qn6,isValidHostLabel:pW8,ite:Xn6,not:Yn6,parseURL:Gn6,split:Wn6,stringEquals:Kn6,substring:Hn6,uriEncode:Fn6},ZK8=($,Z)=>{let Q=[],{referenceRecord:X,endpointParams:Y}=Z,J=0;while(J<$.length){let G=$.indexOf("{",J);if(G===-1){Q.push($.slice(J));break}Q.push($.slice(J,G));let W=$.indexOf("}",G);if(W===-1){Q.push($.slice(G));break}if($[G+1]==="{"&&$[W+1]==="}")Q.push($.slice(G+1,W)),J=W+2;let K=$.substring(G+1,W);if(K.includes("#")){let[H,F]=K.split("#");Q.push(eW8(X[H]??Y[H],F))}else Q.push(X[K]??Y[K]);J=W+1}return Q.join("")},Nn6=({ref:$},Z)=>{return Z.referenceRecord[$]??Z.endpointParams[$]},cZ0=($,Z,Q)=>{if(typeof $==="string")return ZK8($,Q);else if($.fn)return XK8.callFunction($,Q);else if($.ref)return Nn6($,Q);throw new EX(`'${Z}': ${String($)} is not a string, function or reference.`)},QK8=({fn:$,argv:Z},Q)=>{let X=Array(Z.length);for(let G=0;G<X.length;++G){let W=Z[G];if(typeof W==="boolean"||typeof W==="number")X[G]=W;else X[G]=XK8.evaluateExpression(W,"arg",Q)}let Y=$.indexOf(".");if(Y!==-1){let W=sW8[$.slice(0,Y)]?.[$.slice(Y+1)];if(typeof W==="function")return W(...X)}let J=Un6[$];if(typeof J==="function")return J(...X);throw Error(`function ${$} not loaded in endpointFunctions.`)},XK8={evaluateExpression:cZ0,callFunction:QK8},YK8=($,Z)=>{let{assign:Q}=$;if(Q&&Q in Z.referenceRecord)throw new EX(`'${Q}' is already defined in Reference Record.`);let X=QK8($,Z);Z.logger?.debug?.(`${mZ0} evaluateCondition: ${CP($)} = ${CP(X)}`);let Y=X===""?!0:!!X;if(Q!=null)return{result:Y,toAssign:{name:Q,value:X}};return{result:Y}},JK8=($,Z)=>Object.entries($??{}).reduce((Q,[X,Y])=>{return Q[X]=Y.map((J)=>{let G=cZ0(J,"Header value entry",Z);if(typeof G!=="string")throw new EX(`Header '${X}' value '${G}' is not a string`);return G}),Q},{}),d21=($,Z)=>Object.entries($).reduce((Q,[X,Y])=>{return Q[X]=WK8.getEndpointProperty(Y,Z),Q},{}),GK8=($,Z)=>{if(Array.isArray($))return $.map((Q)=>GK8(Q,Z));switch(typeof $){case"string":return ZK8($,Z);case"object":if($===null)throw new EX(`Unexpected endpoint property: ${$}`);return WK8.getEndpointProperties($,Z);case"boolean":return $;default:throw new EX(`Unexpected endpoint property type: ${typeof $}`)}},WK8={getEndpointProperty:GK8,getEndpointProperties:d21},KK8=($,Z)=>{let Q=cZ0($,"Endpoint URL",Z);if(typeof Q==="string")try{return new URL(Q)}catch(X){throw console.error(`Failed to construct URL with ${Q}`,X),X}throw new EX(`Endpoint URL must be a string, got ${typeof Q}`)},l21=1e8,Bn6=($,Z)=>{let{nodes:Q,root:X,results:Y,conditions:J}=$,G=X,W={},K={referenceRecord:W,endpointParams:Z.endpointParams,logger:Z.logger};while(G!==1&&G!==-1&&G<l21){let H=3*(Math.abs(G)-1),[F,U,N]=[Q[H],Q[H+1],Q[H+2]],[B,D,O]=J[F],j=YK8({fn:B,assign:O,argv:D},K);if(j.toAssign){let{name:w,value:E}=j.toAssign;W[w]=E}G=G>=0===j.result?U:N}if(G>=l21){let H=Y[G-l21];if(H[0]===-1){let[,B]=H;throw new EX(cZ0(B,"Error",K))}let[F,U,N]=H;return{url:KK8(F,K),properties:d21(U,K),headers:JK8(N??{},K)}}throw new EX("No matching endpoint.")},i21=($=[],Z)=>{let Q={},X={...Z,referenceRecord:{...Z.referenceRecord}},Y=!1;for(let J of $){let{result:G,toAssign:W}=YK8(J,X);if(!G)return{result:G};if(W)Y=!0,Q[W.name]=W.value,X.referenceRecord[W.name]=W.value,Z.logger?.debug?.(`${mZ0} assign: ${W.name} := ${CP(W.value)}`)}if(Y)return{result:!0,referenceRecord:Q};return{result:!0}},Ln6=($,Z)=>{let{conditions:Q,endpoint:X}=$,{result:Y,referenceRecord:J}=i21(Q,Z);if(!Y)return;let G=J?{...Z,referenceRecord:{...Z.referenceRecord,...J}}:Z,{url:W,properties:K,headers:H}=X;Z.logger?.debug?.(`${mZ0} Resolving endpoint from template: ${CP(X)}`);let F={url:KK8(W,G)};if(H!=null)F.headers=JK8(H,G);if(K!=null)F.properties=d21(K,G);return F},Dn6=($,Z)=>{let{conditions:Q,error:X}=$,{result:Y,referenceRecord:J}=i21(Q,Z);if(!Y)return;let G=J?{...Z,referenceRecord:{...Z.referenceRecord,...J}}:Z;throw new EX(cZ0(X,"Error",G))},HK8=($,Z)=>{for(let Q of $)if(Q.type==="endpoint"){let X=Ln6(Q,Z);if(X)return X}else if(Q.type==="error")Dn6(Q,Z);else if(Q.type==="tree"){let X=FK8.evaluateTreeRule(Q,Z);if(X)return X}else throw new EX(`Unknown endpoint rule: ${Q}`);throw new EX("Rules evaluation failed")},On6=($,Z)=>{let{conditions:Q,rules:X}=$,{result:Y,referenceRecord:J}=i21(Q,Z);if(!Y)return;let G=J?{...Z,referenceRecord:{...Z.referenceRecord,...J}}:Z;return FK8.evaluateRules(X,G)},FK8={evaluateRules:HK8,evaluateTreeRule:On6},jn6=($,Z)=>{let{endpointParams:Q,logger:X}=Z,{parameters:Y,rules:J}=$;Z.logger?.debug?.(`${mZ0} Initial EndpointParams: ${CP(Q)}`);for(let W in Y){let K=Y[W],H=Q[W];if(H==null&&K.default!=null){Q[W]=K.default;continue}if(K.required&&H==null)throw new EX(`Missing required parameter: '${W}'`)}let G=HK8(J,{endpointParams:Q,logger:X,referenceRecord:{}});return Z.logger?.debug?.(`${mZ0} Resolved endpoint: ${CP(G)}`),G},wn6=($)=>{let{endpoint:Z}=$;if(Z===void 0)$.endpoint=async()=>{throw Error("@smithy/middleware-endpoint: (default endpointRuleSet) endpoint is not set - you must configure an endpoint.")};return $},En6=nW8(cf0),zn6=sp6(cf0),Pn6=oW8(cf0),An6=rp6(cf0);Tn6.BinaryDecisionDiagram=c21;Tn6.EndpointCache=rW8;Tn6.EndpointError=EX;Tn6.customEndpointFunctions=sW8;Tn6.decideEndpoint=Bn6;Tn6.endpointMiddleware=Pn6;Tn6.endpointMiddlewareOptions=aW8;Tn6.getEndpointFromInstructions=En6;Tn6.getEndpointPlugin=An6;Tn6.isIpAddress=$K8;Tn6.resolveEndpoint=jn6;Tn6.resolveEndpointConfig=zn6;Tn6.resolveEndpointRequiredConfig=wn6;Tn6.resolveParams=tW8});var SJ=f((To6)=>{var{createHmac:ln6,createHash:mn6,getRandomValues:cn6}=L0("crypto"),{ReadStream:dn6,lstatSync:in6,fstatSync:pn6}=L0("fs"),{HttpResponse:nn6}=qB(),{toEndpointV1:tn6}=LZ(),{Duplex:on6,Readable:dZ0,Writable:wK8,PassThrough:UK8}=L0("stream"),EK8=($)=>typeof ArrayBuffer==="function"&&$ instanceof ArrayBuffer||Object.prototype.toString.call($)==="[object ArrayBuffer]",nt=($,Z=0,Q=$.byteLength-Z)=>{if(!EK8($))throw TypeError(`The "input" argument must be ArrayBuffer. Received type ${typeof $} (${$})`);return Buffer.from($,Z,Q)},nf0=($,Z)=>{if(typeof $!=="string")throw TypeError(`The "input" argument must be of type string. Received type ${typeof $} (${$})`);return Z?Buffer.from($,Z):Buffer.from($)},an6=/^[A-Za-z0-9+/]*={0,2}$/,zK8=($)=>{if($.length*3%4!==0)throw TypeError("Incorrect padding on base64 string.");if(!an6.exec($))throw TypeError("Invalid base64 string.");let Z=nf0($,"base64");return new Uint8Array(Z.buffer,Z.byteOffset,Z.byteLength)},tf0=($)=>{let Z=nf0($,"utf8");return new Uint8Array(Z.buffer,Z.byteOffset,Z.byteLength/Uint8Array.BYTES_PER_ELEMENT)},s21=($)=>{let Z;if(typeof $==="string")Z=tf0($);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 nt(Z.buffer,Z.byteOffset,Z.byteLength).toString("base64")};function rn6($,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 PK8=($)=>{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 nt($.buffer,$.byteOffset,$.byteLength).toString("utf8")},qY=Array.from({length:256},($,Z)=>Z.toString(16).padStart(2,"0"));function sn6($){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,qY[Z[0]]+qY[Z[1]]+qY[Z[2]]+qY[Z[3]]+"-"+qY[Z[4]]+qY[Z[5]]+"-"+qY[Z[6]]+qY[Z[7]]+"-"+qY[Z[8]]+qY[Z[9]]+"-"+qY[Z[10]]+qY[Z[11]]+qY[Z[12]]+qY[Z[13]]+qY[Z[14]]+qY[Z[15]]}}var en6=($,Z,Q=(X)=>X)=>$,$t6=($)=>{switch($){case"true":return!0;case"false":return!1;default:throw Error(`Unable to parse boolean value "${$}"`)}},Zt6=($)=>{if($===null||$===void 0)return;if(typeof $==="number"){if($===0||$===1)oZ0.warn(if0(`Expected boolean, got ${typeof $}: ${$}`));if($===0)return!1;if($===1)return!0}if(typeof $==="string"){let Z=$.toLowerCase();if(Z==="false"||Z==="true")oZ0.warn(if0(`Expected boolean, got ${typeof $}: ${$}`));if(Z==="false")return!1;if(Z==="true")return!0}if(typeof $==="boolean")return $;throw TypeError(`Expected boolean, got ${typeof $}: ${$}`)},nZ0=($)=>{if($===null||$===void 0)return;if(typeof $==="string"){let Z=parseFloat($);if(!Number.isNaN(Z)){if(String(Z)!==String($))oZ0.warn(if0(`Expected number but observed string: ${$}`));return Z}}if(typeof $==="number")return $;throw TypeError(`Expected number, got ${typeof $}: ${$}`)},Qt6=Math.ceil(340282346638528860000000000000000000000),df0=($)=>{let Z=nZ0($);if(Z!==void 0&&!Number.isNaN(Z)&&Z!==1/0&&Z!==-1/0){if(Math.abs(Z)>Qt6)throw TypeError(`Expected 32-bit float, got ${$}`)}return Z},tZ0=($)=>{if($===null||$===void 0)return;if(Number.isInteger($)&&!Number.isNaN($))return $;throw TypeError(`Expected integer, got ${typeof $}: ${$}`)},Xt6=tZ0,t21=($)=>e21($,32),o21=($)=>e21($,16),a21=($)=>e21($,8),e21=($,Z)=>{let Q=tZ0($);if(Q!==void 0&&Yt6(Q,Z)!==Q)throw TypeError(`Expected ${Z}-bit integer, got ${$}`);return Q},Yt6=($,Z)=>{switch(Z){case 32:return Int32Array.of($)[0];case 16:return Int16Array.of($)[0];case 8:return Int8Array.of($)[0]}},Jt6=($,Z)=>{if($===null||$===void 0){if(Z)throw TypeError(`Expected a non-null value for ${Z}`);throw TypeError("Expected a non-null value")}return $},AK8=($)=>{if($===null||$===void 0)return;if(typeof $==="object"&&!Array.isArray($))return $;let Z=Array.isArray($)?"array":typeof $;throw TypeError(`Expected object, got ${Z}: ${$}`)},Gt6=($)=>{if($===null||$===void 0)return;if(typeof $==="string")return $;if(["boolean","number","bigint"].includes(typeof $))return oZ0.warn(if0(`Expected string, got ${typeof $}: ${$}`)),String($);throw TypeError(`Expected string, got ${typeof $}: ${$}`)},Wt6=($)=>{if($===null||$===void 0)return;let Z=AK8($),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},$A1=($)=>{if(typeof $=="string")return nZ0(at($));return nZ0($)},Kt6=$A1,TK8=($)=>{if(typeof $=="string")return df0(at($));return df0($)},Ht6=/(-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?)|(-?Infinity)|(NaN)/g,at=($)=>{let Z=$.match(Ht6);if(Z===null||Z[0].length!==$.length)throw TypeError("Expected real number, got implicit NaN");return parseFloat($)},ZA1=($)=>{if(typeof $=="string")return RK8($);return nZ0($)},Ft6=ZA1,Ut6=ZA1,Nt6=($)=>{if(typeof $=="string")return RK8($);return df0($)},RK8=($)=>{switch($){case"NaN":return NaN;case"Infinity":return 1/0;case"-Infinity":return-1/0;default:throw Error(`Unable to parse float value: ${$}`)}},qK8=($)=>{if(typeof $==="string")return tZ0(at($));return tZ0($)},Bt6=qK8,Lt6=($)=>{if(typeof $==="string")return t21(at($));return t21($)},tt=($)=>{if(typeof $==="string")return o21(at($));return o21($)},MK8=($)=>{if(typeof $==="string")return a21(at($));return a21($)},if0=($)=>{return String(TypeError($).stack||$).split(`
4449
4449
  `).slice(0,5).filter((Z)=>!Z.includes("stackTraceWarning")).join(`
4450
4450
  `)},oZ0={warn:console.warn},Dt6=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],QA1=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function Ot6($){let Z=$.getUTCFullYear(),Q=$.getUTCMonth(),X=$.getUTCDay(),Y=$.getUTCDate(),J=$.getUTCHours(),G=$.getUTCMinutes(),W=$.getUTCSeconds(),K=Y<10?`0${Y}`:`${Y}`,H=J<10?`0${J}`:`${J}`,F=G<10?`0${G}`:`${G}`,U=W<10?`0${W}`:`${W}`;return`${Dt6[X]}, ${K} ${QA1[Q]} ${Z} ${H}:${F}:${U} GMT`}var jt6=new RegExp(/^(\d{4})-(\d{2})-(\d{2})[tT](\d{2}):(\d{2}):(\d{2})(?:\.(\d+))?[zZ]$/),wt6=($)=>{if($===null||$===void 0)return;if(typeof $!=="string")throw TypeError("RFC-3339 date-times must be expressed as strings");let Z=jt6.exec($);if(!Z)throw TypeError("Invalid RFC-3339 date-time value");let[Q,X,Y,J,G,W,K,H]=Z,F=tt(ot(X)),U=IB(Y,"month",1,12),N=IB(J,"day",1,31);return iZ0(F,U,N,{hours:G,minutes:W,seconds:K,fractionalMilliseconds:H})},Et6=new RegExp(/^(\d{4})-(\d{2})-(\d{2})[tT](\d{2}):(\d{2}):(\d{2})(?:\.(\d+))?(([-+]\d{2}\:\d{2})|[zZ])$/),zt6=($)=>{if($===null||$===void 0)return;if(typeof $!=="string")throw TypeError("RFC-3339 date-times must be expressed as strings");let Z=Et6.exec($);if(!Z)throw TypeError("Invalid RFC-3339 date-time value");let[Q,X,Y,J,G,W,K,H,F]=Z,U=tt(ot(X)),N=IB(Y,"month",1,12),B=IB(J,"day",1,31),D=iZ0(U,N,B,{hours:G,minutes:W,seconds:K,fractionalMilliseconds:H});if(F.toUpperCase()!="Z")D.setTime(D.getTime()-vt6(F));return D},Pt6=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$/),At6=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$/),Tt6=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})$/),Rt6=($)=>{if($===null||$===void 0)return;if(typeof $!=="string")throw TypeError("RFC-7231 date-times must be expressed as strings");let Z=Pt6.exec($);if(Z){let[Q,X,Y,J,G,W,K,H]=Z;return iZ0(tt(ot(J)),p21(Y),IB(X,"day",1,31),{hours:G,minutes:W,seconds:K,fractionalMilliseconds:H})}if(Z=At6.exec($),Z){let[Q,X,Y,J,G,W,K,H]=Z;return Vt6(iZ0(Mt6(J),p21(Y),IB(X,"day",1,31),{hours:G,minutes:W,seconds:K,fractionalMilliseconds:H}))}if(Z=Tt6.exec($),Z){let[Q,X,Y,J,G,W,K,H]=Z;return iZ0(tt(ot(H)),p21(X),IB(Y.trimLeft(),"day",1,31),{hours:J,minutes:G,seconds:W,fractionalMilliseconds:K})}throw TypeError("Invalid RFC-7231 date-time value")},qt6=($)=>{if($===null||$===void 0)return;let Z;if(typeof $==="number")Z=$;else if(typeof $==="string")Z=$A1($);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))},iZ0=($,Z,Q,X)=>{let Y=Z-1;return Ct6($,Y,Q),new Date(Date.UTC($,Y,Q,IB(X.hours,"hour",0,23),IB(X.minutes,"minute",0,59),IB(X.seconds,"seconds",0,60),_t6(X.fractionalMilliseconds)))},Mt6=($)=>{let Z=new Date().getUTCFullYear(),Q=Math.floor(Z/100)*100+tt(ot($));if(Q<Z)return Q+100;return Q},It6=1576800000000,Vt6=($)=>{if($.getTime()-new Date().getTime()>It6)return new Date(Date.UTC($.getUTCFullYear()-100,$.getUTCMonth(),$.getUTCDate(),$.getUTCHours(),$.getUTCMinutes(),$.getUTCSeconds(),$.getUTCMilliseconds()));return $},p21=($)=>{let Z=QA1.indexOf($);if(Z<0)throw TypeError(`Invalid month: ${$}`);return Z+1},kt6=[31,28,31,30,31,30,31,31,30,31,30,31],Ct6=($,Z,Q)=>{let X=kt6[Z];if(Z===1&&St6($))X=29;if(Q>X)throw TypeError(`Invalid day for ${QA1[Z]} in ${$}: ${Q}`)},St6=($)=>{return $%4===0&&($%100!==0||$%400===0)},IB=($,Z,Q,X)=>{let Y=MK8(ot($));if(Y<Q||Y>X)throw TypeError(`${Z} must be between ${Q} and ${X}, inclusive`);return Y},_t6=($)=>{if($===null||$===void 0)return 0;return TK8("0."+$)*1000},vt6=($)=>{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},ot=($)=>{let Z=0;while(Z<$.length-1&&$.charAt(Z)==="0")Z++;if(Z===0)return $;return $.slice(Z)},mh=function(Z){return Object.assign(new String(Z),{deserializeJSON(){return JSON.parse(String(Z))},toString(){return String(Z)},toJSON(){return String(Z)}})};mh.from=($)=>{if($&&typeof $==="object"&&($ instanceof mh||("deserializeJSON"in $)))return $;else if(typeof $==="string"||Object.getPrototypeOf($)===String.prototype)return mh(String($));return mh(JSON.stringify($))};mh.fromObject=mh.from;function xt6($){if($.includes(",")||$.includes('"'))$=`"${$.replace(/"/g,"\\\"")}"`;return $}var XA1="(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun)(?:[ne|u?r]?s?day)?",YA1="(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)",JA1="(\\d?\\d):(\\d{2}):(\\d{2})(?:\\.(\\d+))?",IK8="(\\d?\\d)",VK8="(\\d{4})",ft6=new RegExp(/^(\d{4})-(\d\d)-(\d\d)[tT](\d\d):(\d\d):(\d\d)(\.(\d+))?(([-+]\d\d:\d\d)|[zZ])$/),bt6=new RegExp(`^${XA1}, ${IK8} ${YA1} ${VK8} ${JA1} GMT$`),yt6=new RegExp(`^${XA1}, ${IK8}-${YA1}-(\\d\\d) ${JA1} GMT$`),gt6=new RegExp(`^${XA1} ${YA1} ( [1-9]|\\d\\d) ${JA1} ${VK8}$`),ht6=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],ut6=($)=>{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))},lt6=($)=>{if($==null)return;if(typeof $!=="string")throw TypeError("RFC3339 timestamps must be strings");let Z=ft6.exec($);if(!Z)throw TypeError(`Invalid RFC3339 timestamp format ${$}`);let[,Q,X,Y,J,G,W,,K,H]=Z;MO(X,1,12),MO(Y,1,31),MO(J,0,23),MO(G,0,59),MO(W,0,60);let F=new Date(Date.UTC(Number(Q),Number(X)-1,Number(Y),Number(J),Number(G),Number(W),Number(K)?Math.round(parseFloat(`0.${K}`)*1000):0));if(F.setUTCFullYear(Number(Q)),H.toUpperCase()!="Z"){let[,U,N,B]=/([+-])(\d\d):(\d\d)/.exec(H)||[void 0,"+",0,0],D=U==="-"?1:-1;F.setTime(F.getTime()+D*(Number(N)*60*60*1000+Number(B)*60*1000))}return F},mt6=($)=>{if($==null)return;if(typeof $!=="string")throw TypeError("RFC7231 timestamps must be strings.");let Z,Q,X,Y,J,G,W,K;if(K=bt6.exec($))[,Z,Q,X,Y,J,G,W]=K;else if(K=yt6.exec($))[,Z,Q,X,Y,J,G,W]=K,X=(Number(X)+1900).toString();else if(K=gt6.exec($))[,Q,Z,Y,J,G,W,X]=K;if(X&&G){let H=Date.UTC(Number(X),ht6.indexOf(Q),Number(Z),Number(Y),Number(J),Number(G),W?Math.round(parseFloat(`0.${W}`)*1000):0);MO(Z,1,31),MO(Y,0,23),MO(J,0,59),MO(G,0,60);let F=new Date(H);return F.setUTCFullYear(Number(X)),F}throw TypeError(`Invalid RFC7231 date-time value ${$}.`)};function MO($,Z,Q){let X=Number($);if(X<Z||X>Q)throw Error(`Value ${X} out of range [${Z}, ${Q}]`)}function ct6($,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 dt6=($)=>{let Z=$.length,Q=[],X=!1,Y=void 0,J=0;for(let G=0;G<Z;++G){let W=$[G];switch(W){case'"':if(Y!=="\\")X=!X;break;case",":if(!X)Q.push($.slice(J,G)),J=G+1;break}Y=W}return Q.push($.slice(J)),Q.map((G)=>{G=G.trim();let W=G.length;if(W<2)return G;if(G[0]==='"'&&G[W-1]==='"')G=G.slice(1,W-1);return G.replace(/\\"/g,'"')})},NK8=/^-?\d*(\.\d+)?$/;class of0{string;type;constructor($,Z){if(this.string=$,this.type=Z,!NK8.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 of0.prototype.isPrototypeOf($)||Z.type==="bigDecimal"&&NK8.test(Z.string)}}function it6($){return new of0(String($),"bigDecimal")}var kK8={},r21={};for(let $=0;$<256;$++){let Z=$.toString(16).toLowerCase();if(Z.length===1)Z=`0${Z}`;kK8[$]=Z,r21[Z]=$}function pt6($){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 r21)Z[Q/2]=r21[X];else throw Error(`Cannot decode unrecognized sequence ${X} as hexadecimal`)}return Z}function CK8($){let Z="";for(let Q=0;Q<$.byteLength;Q++)Z+=kK8[$[Q]];return Z}var nt6=($)=>{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 dn6){if($.path!=null)return in6($.path).size;else if(typeof $.fd==="number")return pn6($.fd).size}throw Error(`Body Length computation failed for ${$}`)},SK8=($)=>{if(typeof $==="string")return tf0($);if(ArrayBuffer.isView($))return new Uint8Array($.buffer,$.byteOffset,$.byteLength/Uint8Array.BYTES_PER_ELEMENT);return new Uint8Array($)},_K8=($,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+=`