decocms 4.358.6 → 4.358.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (257) hide show
  1. package/dist/client/assets/{AlertCircle-CW0O4pBw.js → AlertCircle-CmSNkMzR.js} +1 -1
  2. package/dist/client/assets/{AreaChart-Cp6MXzZb.js → AreaChart-CkQ2fA7o.js} +1 -1
  3. package/dist/client/assets/{ArrowLeft-CN9RDpNo.js → ArrowLeft-Bu94Ii5M.js} +1 -1
  4. package/dist/client/assets/{ArrowRight-BX_PSZ1n.js → ArrowRight-mDGbrugB.js} +1 -1
  5. package/dist/client/assets/{ArrowUp-nlh0HDOg.js → ArrowUp-DSV_iaE8.js} +1 -1
  6. package/dist/client/assets/{Check-BhRIOCpN.js → Check-Dg3ccedM.js} +1 -1
  7. package/dist/client/assets/{CheckCircle-DLOzW94r.js → CheckCircle-CXvhBSH9.js} +1 -1
  8. package/dist/client/assets/{ChevronRight-D0Rkuzgn.js → ChevronRight-CTynsPcA.js} +1 -1
  9. package/dist/client/assets/{ChevronSelectorVertical-CL4P_ZBZ.js → ChevronSelectorVertical-CXzhk4X8.js} +1 -1
  10. package/dist/client/assets/{ChevronUp-_pfTz8yB.js → ChevronUp-bmYG6LkB.js} +1 -1
  11. package/dist/client/assets/{Copy01-C4hJcHl-.js → Copy01-C_pD92sU.js} +1 -1
  12. package/dist/client/assets/{CreditCard01-Cdtz3cQC.js → CreditCard01-DZSvJ623.js} +1 -1
  13. package/dist/client/assets/{DotsVertical-CNJtdwwq.js → DotsVertical-DERxV0IT.js} +1 -1
  14. package/dist/client/assets/{Download01-LL61yWJD.js → Download01-BrJcEIOJ.js} +1 -1
  15. package/dist/client/assets/{ErrorBarContext-CzmrIVxh.js → ErrorBarContext-D8Z1Ht69.js} +1 -1
  16. package/dist/client/assets/{Eye-B9MlIArW.js → Eye-DtzSWYJp.js} +1 -1
  17. package/dist/client/assets/{GitBranch01-DTF-gKNt.js → GitBranch01-CNkrChzn.js} +1 -1
  18. package/dist/client/assets/{Globe01-a9PcO0Vi.js → Globe01-DSqDXciw.js} +1 -1
  19. package/dist/client/assets/{HardDrive-CcK8PQXf.js → HardDrive-C33hwgdT.js} +1 -1
  20. package/dist/client/assets/{Image01-D7zqr1M8.js → Image01-CSSIg-V1.js} +1 -1
  21. package/dist/client/assets/{Key01-CaA-Rk8l.js → Key01-BArMmeeh.js} +1 -1
  22. package/dist/client/assets/{Link01-DrMHFicJ.js → Link01-D9m0U2Ta.js} +1 -1
  23. package/dist/client/assets/{LinkExternal01-B7whCsmH.js → LinkExternal01-_yUVYhsR.js} +1 -1
  24. package/dist/client/assets/{Monitor01-Bi-3rxWt.js → Monitor01-TbxGy4uJ.js} +1 -1
  25. package/dist/client/assets/{Package-B0XJYpfq.js → Package-CIgjd15K.js} +1 -1
  26. package/dist/client/assets/{Palette-BGP_8XBy.js → Palette-BJjA93OF.js} +1 -1
  27. package/dist/client/assets/{Play-DyAuIgFu.js → Play-CuabQ6V5.js} +1 -1
  28. package/dist/client/assets/{Plus-BeujyEwZ.js → Plus-CLw8nshS.js} +1 -1
  29. package/dist/client/assets/{SearchLg-CHitH-Kd.js → SearchLg-B_uG9UNP.js} +1 -1
  30. package/dist/client/assets/{SearchMd-DHdOgt1H.js → SearchMd-CvoyvhDO.js} +1 -1
  31. package/dist/client/assets/{Sector-C4sLJ-1V.js → Sector-D84p_AF-.js} +1 -1
  32. package/dist/client/assets/{Settings02-Dmq_9N1-.js → Settings02-B-LW8mkp.js} +1 -1
  33. package/dist/client/assets/{Share07-xuMrkrGu.js → Share07-DzwLu6Js.js} +1 -1
  34. package/dist/client/assets/{Shield01-6cNRJO7b.js → Shield01-CHOtU8tO.js} +1 -1
  35. package/dist/client/assets/{Stars01-CNelyhpt.js → Stars01-CQM502gA.js} +1 -1
  36. package/dist/client/assets/{Sun-DJIXTnoe.js → Sun-BeFqPYZz.js} +1 -1
  37. package/dist/client/assets/{Tool01-BrjDzkok.js → Tool01-DN82p4SK.js} +1 -1
  38. package/dist/client/assets/{Tool02-Da4A0ujA.js → Tool02-Cnm0LDZR.js} +1 -1
  39. package/dist/client/assets/{Trash01-CQfYw0YJ.js → Trash01-D3glACCY.js} +1 -1
  40. package/dist/client/assets/{TrendUp01-ClvAA7bo.js → TrendUp01-Du_0IpAS.js} +1 -1
  41. package/dist/client/assets/{Upload01-DMYP6HVa.js → Upload01-D8T1C7P0.js} +1 -1
  42. package/dist/client/assets/{User01-nxy53Igz.js → User01-ChUO6wNS.js} +1 -1
  43. package/dist/client/assets/{UserSquare-CBqLMnzb.js → UserSquare-CMhNzA5S.js} +1 -1
  44. package/dist/client/assets/{Users01-CusJiTMb.js → Users01-BkdRerkJ.js} +1 -1
  45. package/dist/client/assets/{Users03-DiBp-2rZ.js → Users03-CxjX2yOG.js} +1 -1
  46. package/dist/client/assets/{XCircle-D2ZPhClx.js → XCircle-Q_FzfXfM.js} +1 -1
  47. package/dist/client/assets/{XClose-mHv2rmh8.js → XClose-B2yo755N.js} +1 -1
  48. package/dist/client/assets/{Zap-D89Gt6Fw.js → Zap-Dp5FptyY.js} +1 -1
  49. package/dist/client/assets/{ZoomOut-DMcFahn8.js → ZoomOut-CzL3lV9f.js} +1 -1
  50. package/dist/client/assets/{access-gate-BoNTAAw6.js → access-gate-BZEI0Ppn.js} +1 -1
  51. package/dist/client/assets/{agent-icon-MWGASSSc.js → agent-icon-Dy2jpds_.js} +1 -1
  52. package/dist/client/assets/{agents-list-BLZZWf4k.js → agents-list-h87ZNcgJ.js} +1 -1
  53. package/dist/client/assets/{ai-providers-2BxiJMGH.js → ai-providers-vwKflTho.js} +1 -1
  54. package/dist/client/assets/{alert-CGd8ZySD.js → alert-ByJ8AkFR.js} +1 -1
  55. package/dist/client/assets/{alert-dialog-BZr4ofKO.js → alert-dialog-CfLTHal2.js} +1 -1
  56. package/dist/client/assets/{analytics-tab-hVYr6oh5.js → analytics-tab-OB0WOBW7.js} +1 -1
  57. package/dist/client/assets/api-keys-93oBHhP-.js +1 -0
  58. package/dist/client/assets/{api-keys-HnFYY98-.js → api-keys-BI4U3OFV.js} +1 -1
  59. package/dist/client/assets/{app-editor-DHJIwV6f.js → app-editor-DvQrswh0.js} +1 -1
  60. package/dist/client/assets/{auth-luB2ReMr.js → auth-BRCvCyvK.js} +1 -1
  61. package/dist/client/assets/{auth-catchall-CymTA4Xj.js → auth-catchall-ZheHiaNX.js} +1 -1
  62. package/dist/client/assets/{auth-entry-CQF0KL2n.js → auth-entry-wjih1rgO.js} +1 -1
  63. package/dist/client/assets/{auth-split-layout-dgja2t1C.js → auth-split-layout-CeDEhY76.js} +1 -1
  64. package/dist/client/assets/{authenticate-and-persist-oauth-Dkpk1b_4.js → authenticate-and-persist-oauth-eUo-h56q.js} +1 -1
  65. package/dist/client/assets/{automation-list-row-DMR6qaRU.js → automation-list-row-oRD34d51.js} +1 -1
  66. package/dist/client/assets/{automation-runs-CYcu-5ir.js → automation-runs-CvRx2s0y.js} +1 -1
  67. package/dist/client/assets/{automations-D4XnCX7H.js → automations-DkxpvUP4.js} +1 -1
  68. package/dist/client/assets/{autosend-D1PJjyTv.js → autosend-C5-piDIA.js} +1 -1
  69. package/dist/client/assets/{avatar-C3S80rWa.js → avatar-B93oLzxy.js} +1 -1
  70. package/dist/client/assets/{badge-C0dM1yqI.js → badge-BDgqklMs.js} +1 -1
  71. package/dist/client/assets/{block-document-PjwDgver.js → block-document-B9S_7VZV.js} +1 -1
  72. package/dist/client/assets/{breadcrumb-BwWW0ZYj.js → breadcrumb-CtpPA7Rf.js} +1 -1
  73. package/dist/client/assets/{buckets-BBkrLkhE.js → buckets-ByvDEjty.js} +1 -1
  74. package/dist/client/assets/{bulk-category-panel-CvNzRuGu.js → bulk-category-panel-CbE9Fh9p.js} +1 -1
  75. package/dist/client/assets/{capability-load-error-D_FgiO0o.js → capability-load-error-BJ_jcKAV.js} +1 -1
  76. package/dist/client/assets/{cards-CPmpdqbR.js → cards-Dxj0WXQa.js} +1 -1
  77. package/dist/client/assets/{category-editor-Bvp5J1Ue.js → category-editor-13ULlzrv.js} +1 -1
  78. package/dist/client/assets/{cdn-tab-DJGbM01z.js → cdn-tab-D1IKX-5q.js} +1 -1
  79. package/dist/client/assets/{chart-D4taNc_Z.js → chart-BiOppEJ3.js} +1 -1
  80. package/dist/client/assets/{chat-context-CiSqTsaU.js → chat-context-DB2h4osD.js} +1 -1
  81. package/dist/client/assets/{checkbox-CkvNIg15.js → checkbox-BoFs553Q.js} +1 -1
  82. package/dist/client/assets/{choose-editor-BwfOj7ju.js → choose-editor-DPWErb-7.js} +1 -1
  83. package/dist/client/assets/{cli-auth-success-Czr-QGke.js → cli-auth-success-CaiITPtM.js} +1 -1
  84. package/dist/client/assets/{client-icons-kGMNtxUX.js → client-icons-DFuiJ80A.js} +1 -1
  85. package/dist/client/assets/{collection-detail-CGWWADun.js → collection-detail-DA1BxkQ_.js} +1 -1
  86. package/dist/client/assets/{collection-display-button-CK6xl2gO.js → collection-display-button-DFwk7HqF.js} +1 -1
  87. package/dist/client/assets/{collection-search-BLnLRPJY.js → collection-search-CWpQkN_Z.js} +1 -1
  88. package/dist/client/assets/{collection-table-wrapper-BY31wZT4.js → collection-table-wrapper-5iNy3BEg.js} +1 -1
  89. package/dist/client/assets/{collection-tabs-cVeFEz0v.js → collection-tabs-Czo7NLaO.js} +1 -1
  90. package/dist/client/assets/{command-BS_wx-x7.js → command-B6uncQvS.js} +1 -1
  91. package/dist/client/assets/{commerce-onboarding-C_2xdi6n.js → commerce-onboarding-Bz9kNl4w.js} +1 -1
  92. package/dist/client/assets/{connect-F3JBBPbA.js → connect-B9IbKpH0.js} +1 -1
  93. package/dist/client/assets/{connect-layout-Lihb2uIT.js → connect-layout-D6s3gNlo.js} +1 -1
  94. package/dist/client/assets/{connection-CM9gtY5w.js → connection-C7-gff1D.js} +1 -1
  95. package/dist/client/assets/{connection-card-C_ZIPjY2.js → connection-card-CO42dC4k.js} +1 -1
  96. package/dist/client/assets/{connection-detail-CsRsHtEa.js → connection-detail-BP8gSuaf.js} +1 -1
  97. package/dist/client/assets/{connection-form-helpers-B1-pfy6E.js → connection-form-helpers-ptQ77JH2.js} +1 -1
  98. package/dist/client/assets/{connections-BL4kY4Xa.js → connections-CHtcnGgH.js} +1 -1
  99. package/dist/client/assets/{create-organization-dialog-6ybzcMZg.js → create-organization-dialog-DDOozMUI.js} +1 -1
  100. package/dist/client/assets/{decopilot-sse-pool-XAXiiLSH.js → decopilot-sse-pool-BV-nZdw9.js} +1 -1
  101. package/dist/client/assets/{dialog-D5t1X9lU.js → dialog-DUEME7DJ.js} +1 -1
  102. package/dist/client/assets/{domain-settings-BYYRJipq.js → domain-settings-CrOy6YME.js} +1 -1
  103. package/dist/client/assets/{drawer-Df4pRBXo.js → drawer-BPAaqlqm.js} +1 -1
  104. package/dist/client/assets/{dropdown-menu-DaKMrV9t.js → dropdown-menu-BdAGNhae.js} +1 -1
  105. package/dist/client/assets/{e2e-tab-D46zC88a.js → e2e-tab-WBs4Ry3_.js} +1 -1
  106. package/dist/client/assets/{editor-C-r0gGGU.js → editor-CbtcAvCg.js} +1 -1
  107. package/dist/client/assets/{empty-state-HeALLFVe.js → empty-state-Dtwkb-iN.js} +1 -1
  108. package/dist/client/assets/{empty-state-Co_odNhC.js → empty-state-UuH9Il0J.js} +1 -1
  109. package/dist/client/assets/{extract-connection-data-xbCt3zcQ.js → extract-connection-data-oTtb1BaN.js} +1 -1
  110. package/dist/client/assets/{file-explorer-C2kyz1ZG.js → file-explorer-DO9bb6wZ.js} +1 -1
  111. package/dist/client/assets/{file-type-icon-BZ5LBYvN.js → file-type-icon-27-E6Qdl.js} +1 -1
  112. package/dist/client/assets/{folder-icon-BbPXRXJY.js → folder-icon-CKMNLNfS.js} +1 -1
  113. package/dist/client/assets/{form-CeMhKgcZ.js → form-r05b-I6X.js} +1 -1
  114. package/dist/client/assets/{general-D-krAqsI.js → general-BZK_31jo.js} +1 -1
  115. package/dist/client/assets/{github-icon-BfYxSeCS.js → github-icon-EWgLsKjp.js} +1 -1
  116. package/dist/client/assets/{hooks-C5zGbAN-.js → hooks-DxiN--jI.js} +1 -1
  117. package/dist/client/assets/{index-C1Rz7LoU.js → index-B5fJ_jRf.js} +1 -1
  118. package/dist/client/assets/{index-BH_v75ZT.js → index-BA9swz3B.js} +1 -1
  119. package/dist/client/assets/{index-DwLTHuEV.js → index-BAedCESS.js} +2 -2
  120. package/dist/client/assets/{index-BVP3J12_.js → index-BDHc__VT.js} +1 -1
  121. package/dist/client/assets/{index-CVRcfb7q.js → index-BItxgHFJ.js} +1 -1
  122. package/dist/client/assets/{index-CYmu_lpv.js → index-BlLPD0rg.js} +6 -6
  123. package/dist/client/assets/{index-Df6H4nZG.js → index-BwI3Edgw.js} +1 -1
  124. package/dist/client/assets/{index-BwkkhXAQ.js → index-C803x1XG.js} +1 -1
  125. package/dist/client/assets/{index-DY7Qz03S.js → index-CO2mZC5x.js} +1 -1
  126. package/dist/client/assets/{index-BqtVkVrN.js → index-CQwdWcoq.js} +1 -1
  127. package/dist/client/assets/{index-DH8v1CXN.js → index-CSR8RjAB.js} +1 -1
  128. package/dist/client/assets/{index-t1QFjxgF.js → index-MxN6W3Rg.js} +1 -1
  129. package/dist/client/assets/{index-redirect-BClVJBxJ.js → index-redirect-G-aJbUS9.js} +1 -1
  130. package/dist/client/assets/{infiniteQueryObserver-BsIIe3_Y.js → infiniteQueryObserver-a1irpNBf.js} +1 -1
  131. package/dist/client/assets/{infra-billing-CdTgJc_9.js → infra-billing-0q8_17Cl.js} +1 -1
  132. package/dist/client/assets/{input-BrLxyu7g.js → input-TuiIIqH6.js} +1 -1
  133. package/dist/client/assets/{integration-icon-SNrRdp_f.js → integration-icon-JdG4xh_j.js} +1 -1
  134. package/dist/client/assets/{invite-member-dialog-CVP3APjW.js → invite-member-dialog-BiVatLIt.js} +1 -1
  135. package/dist/client/assets/{label-DO0unQuW.js → label-WUiqx2WK.js} +1 -1
  136. package/dist/client/assets/{layout-qjlYJBSt.js → layout-Chr9Vtej.js} +1 -1
  137. package/dist/client/assets/{login-DTtHLEr3.js → login-D8uTK94O.js} +1 -1
  138. package/dist/client/assets/{markdown-DivzufJq.js → markdown-CNtWUp-j.js} +1 -1
  139. package/dist/client/assets/{mcp-app-renderer-Cm4vAfQ5.js → mcp-app-renderer-Bwxfrw0h.js} +1 -1
  140. package/dist/client/assets/{mcp-oauth-BOLDxb5w.js → mcp-oauth-Cg840wbY.js} +1 -1
  141. package/dist/client/assets/{members-HYcXh_m3.js → members-BnJH1AGH.js} +1 -1
  142. package/dist/client/assets/{monaco-editor-BbPO71I5.js → monaco-editor-CFtlqgKG.js} +1 -1
  143. package/dist/client/assets/{monitoring-stats-row-BVzVd4-Q.js → monitoring-stats-row-BbaBgzqv.js} +1 -1
  144. package/dist/client/assets/{multi-select-CO6tWQdE.js → multi-select-BAixkxBR.js} +1 -1
  145. package/dist/client/assets/{oauth-callback-D-AheijO.js → oauth-callback-CFGjLMN9.js} +1 -1
  146. package/dist/client/assets/{oauth-callback-ai-provider-C7c0R32o.js → oauth-callback-ai-provider-B2Fj4AlA.js} +1 -1
  147. package/dist/client/assets/{onboarding-Pmst8RY1.js → onboarding-BVqaYGqg.js} +1 -1
  148. package/dist/client/assets/{org-layout-Dkleo3c_.js → org-layout-CyofguTT.js} +1 -1
  149. package/dist/client/assets/{organization-choice-CW8hHcif.js → organization-choice-UtAuDgsl.js} +1 -1
  150. package/dist/client/assets/{orgs-3E9IW3cx.js → orgs-BA9FXBu5.js} +1 -1
  151. package/dist/client/assets/{page-seo-form-CdZWSlOv.js → page-seo-form-CjYRnEyu.js} +1 -1
  152. package/dist/client/assets/{popover-CYNdLknD.js → popover-CSwDoJWv.js} +1 -1
  153. package/dist/client/assets/{post-calendar-BaHJqLJq.js → post-calendar-BJH0mUgs.js} +1 -1
  154. package/dist/client/assets/{post-editor-C92UmWtb.js → post-editor-Dx5eKpsQ.js} +1 -1
  155. package/dist/client/assets/{primitives-DclQz1uQ.js → primitives-DD-UxZ0K.js} +1 -1
  156. package/dist/client/assets/{profile-CbdzrFg-.js → profile-BnISBpst.js} +1 -1
  157. package/dist/client/assets/{project-app-view-DDTMhLEa.js → project-app-view-BPqLEHUx.js} +1 -1
  158. package/dist/client/assets/{project-icon-_AADSlOL.js → project-icon-eA-nQusH.js} +1 -1
  159. package/dist/client/assets/{prompts-DziHWbWK.js → prompts-C160yWe8.js} +1 -1
  160. package/dist/client/assets/record-editor-BA60nhWY.js +1 -0
  161. package/dist/client/assets/redirect-editor-XRwNClGT.js +1 -0
  162. package/dist/client/assets/registry-BpSMi978.js +2 -0
  163. package/dist/client/assets/{registry-layout-D03cBxoy.js → registry-layout-_mSuHnlf.js} +1 -1
  164. package/dist/client/assets/{reports-xxpGWJER.js → reports-D1Tbe2id.js} +1 -1
  165. package/dist/client/assets/{repositories-D-JqEXhh.js → repositories-CHGfv1rO.js} +1 -1
  166. package/dist/client/assets/{repository-import-picker-B3hvJpPt.js → repository-import-picker-gzz61js_.js} +1 -1
  167. package/dist/client/assets/{repository-picker-D23-XofN.js → repository-picker-CCOAxXyS.js} +1 -1
  168. package/dist/client/assets/{require-capability-PPe9XU6v.js → require-capability-B2N02pbD.js} +1 -1
  169. package/dist/client/assets/{required-auth-layout-CcyTsGD8.js → required-auth-layout-lCk5RtRt.js} +1 -1
  170. package/dist/client/assets/{reset-password-DTsQ-j7j.js → reset-password-CMX4eAbb.js} +1 -1
  171. package/dist/client/assets/{review-settings-BIQc2Tpj.js → review-settings-4DWQSl88.js} +1 -1
  172. package/dist/client/assets/{roles-GYBgNUXU.js → roles-CDKRwwF5.js} +1 -1
  173. package/dist/client/assets/{schema-BEs_LihD.js → schema-bn-nczrm.js} +1 -1
  174. package/dist/client/assets/{scroll-area-g0nUcrXQ.js → scroll-area-khQdmnJm.js} +1 -1
  175. package/dist/client/assets/{search-input-jiiS9zP6.js → search-input-NP3xLzdZ.js} +1 -1
  176. package/dist/client/assets/{secrets-cwVhpkqm.js → secrets-C3Xsgj9o.js} +1 -1
  177. package/dist/client/assets/{sections-editor-DQESxxPc.js → sections-editor-UGzw9l9W.js} +1 -1
  178. package/dist/client/assets/{select-Bp3traQ4.js → select-Cs6cmusu.js} +1 -1
  179. package/dist/client/assets/{select-model-D9l0Ou7P.js → select-model-HZpjX99E.js} +1 -1
  180. package/dist/client/assets/{self-tool-result-S3FLFbzz.js → self-tool-result-DMwc2p5N.js} +1 -1
  181. package/dist/client/assets/{seo-editor-CI9Pz5g0.js → seo-editor-D-auq7-j.js} +1 -1
  182. package/dist/client/assets/settings-layout-KTbN_kWx.js +1 -0
  183. package/dist/client/assets/{settings-sidebar-DHpdn5C9.js → settings-sidebar-Dner6t5H.js} +1 -1
  184. package/dist/client/assets/{shell-controls-BYYp4573.js → shell-controls-DtNm_Atn.js} +1 -1
  185. package/dist/client/assets/{shell-layout-BS7N74ED.js → shell-layout-8XPciKoI.js} +1 -1
  186. package/dist/client/assets/{skill-preview-CFI6FGea.js → skill-preview-CCu_7jUM.js} +1 -1
  187. package/dist/client/assets/{skills-BPPeZIgJ.js → skills-mobmS0Cu.js} +1 -1
  188. package/dist/client/assets/{sso-C_Rapysd.js → sso-CFnzyayZ.js} +1 -1
  189. package/dist/client/assets/{store-DJwhkUE7.js → store-QWQEJkmz.js} +1 -1
  190. package/dist/client/assets/store-registry-CJcS99FJ.js +2 -0
  191. package/dist/client/assets/{switch-cSkDhXT4.js → switch-CTIrbdkL.js} +1 -1
  192. package/dist/client/assets/{synced-repos-DpOWWvk6.js → synced-repos-g09eTVU1.js} +1 -1
  193. package/dist/client/assets/{table-DTpsTVx_.js → table-CPMYpTul.js} +1 -1
  194. package/dist/client/assets/{tabs-CrMOtF5I.js → tabs-08DxzxY_.js} +1 -1
  195. package/dist/client/assets/{task-board-D1NFzUy7.js → task-board-DhERAZm4.js} +1 -1
  196. package/dist/client/assets/{task-route-BqIa8KFK.js → task-route-BwOuH1kk.js} +1 -1
  197. package/dist/client/assets/{tasks-zBWnoZyu.js → tasks-CA-QGnOj.js} +1 -1
  198. package/dist/client/assets/{textarea-BzS9prJw.js → textarea-BpbE_kY0.js} +1 -1
  199. package/dist/client/assets/{thread-intent-CwKzUr8k.js → thread-intent-C60z1Ups.js} +1 -1
  200. package/dist/client/assets/{thread-route-0tqXILPp.js → thread-route-AF4fUXAb.js} +1 -1
  201. package/dist/client/assets/{toggle-group-BmZ03JYY.js → toggle-group-DHFTyRQw.js} +1 -1
  202. package/dist/client/assets/{toolbar-zXkttmNV.js → toolbar-8bik0Syp.js} +1 -1
  203. package/dist/client/assets/{toolbar-icon-button-FS_Ht5xa.js → toolbar-icon-button-E_4R6vvs.js} +1 -1
  204. package/dist/client/assets/{track-Uk-d37hu.js → track-DJIS7Ijr.js} +1 -1
  205. package/dist/client/assets/{types-D0egiqka.js → types-DIUb1_Md.js} +1 -1
  206. package/dist/client/assets/{use-ai-providers-CCeZ_hn_.js → use-ai-providers-CPqinilp.js} +1 -1
  207. package/dist/client/assets/{use-automations-DufB7i1w.js → use-automations-DiccRABG.js} +1 -1
  208. package/dist/client/assets/{use-autosave-SPWHVk3b.js → use-autosave-favfxUE8.js} +1 -1
  209. package/dist/client/assets/{use-connection-BySY6_LW.js → use-connection-CQ7bQ-r6.js} +1 -1
  210. package/dist/client/assets/{use-copy-JqVB03dy.js → use-copy-DbTeee2Q.js} +1 -1
  211. package/dist/client/assets/{use-create-virtual-mcp-w5PpL0vo.js → use-create-virtual-mcp-COEAaJiL.js} +1 -1
  212. package/dist/client/assets/{use-date-fns-locale-DwsB-rti.js → use-date-fns-locale-Bw8LkRGs.js} +1 -1
  213. package/dist/client/assets/{use-debounced-autosave-Cf8HfeJg.js → use-debounced-autosave-BoUtyVR9.js} +1 -1
  214. package/dist/client/assets/{use-debounced-value-DZZTZpqX.js → use-debounced-value-BsmwA_bi.js} +1 -1
  215. package/dist/client/assets/{use-decopilot-events-ukH84hzL.js → use-decopilot-events-Bm9EUklJ.js} +1 -1
  216. package/dist/client/assets/{use-delete-connection-CWkJIdZ8.js → use-delete-connection-CMlLvOz1.js} +1 -1
  217. package/dist/client/assets/{use-deployment-admin-CpX_nea-.js → use-deployment-admin-C9j4OUB5.js} +1 -1
  218. package/dist/client/assets/{use-destination-route-CvSc3PW1.js → use-destination-route-B0lMhqr-.js} +1 -1
  219. package/dist/client/assets/{use-file-configs-BguQryrn.js → use-file-configs-BSImuLcM.js} +1 -1
  220. package/dist/client/assets/{use-infinite-scroll-DFWE1P5B.js → use-infinite-scroll-hYhzTevO.js} +1 -1
  221. package/dist/client/assets/{use-join-requests-C-iPcyvV.js → use-join-requests-BeY7TwRa.js} +1 -1
  222. package/dist/client/assets/{use-mcp-auth-status-Be0uN9_3.js → use-mcp-auth-status-CcJ30wHQ.js} +1 -1
  223. package/dist/client/assets/{use-mcp-client-D-xbmqqG.js → use-mcp-client-DRbjI6tX.js} +1 -1
  224. package/dist/client/assets/{use-mcp-prompts-B4tR_SGm.js → use-mcp-prompts-BIzsd0iZ.js} +1 -1
  225. package/dist/client/assets/{use-mcp-tools-DfE-BOiB.js → use-mcp-tools-BM8OmaVn.js} +1 -1
  226. package/dist/client/assets/{use-members-DVfjd1M3.js → use-members-CvMoH-iF.js} +1 -1
  227. package/dist/client/assets/{use-navigate-to-agent-S-To4kW5.js → use-navigate-to-agent-CGLdpa0F.js} +1 -1
  228. package/dist/client/assets/{use-org-auth-client-DvTd9eSw.js → use-org-auth-client-DnRe-g1g.js} +1 -1
  229. package/dist/client/assets/{use-org-notice-BskYN6-R.js → use-org-notice-BxLLlDC5.js} +1 -1
  230. package/dist/client/assets/{use-org-sso-DZsIHXB_.js → use-org-sso-D3yIS-8J.js} +1 -1
  231. package/dist/client/assets/{use-organization-roles-D45T_Abp.js → use-organization-roles-ktHRdCrw.js} +1 -1
  232. package/dist/client/assets/{use-organization-settings-C0-L_o7G.js → use-organization-settings-tIS8xJQP.js} +1 -1
  233. package/dist/client/assets/{use-panel-navigate-MkBOnUP9.js → use-panel-navigate-DdBCZnsD.js} +1 -1
  234. package/dist/client/assets/{use-registry-connections-CptCzADX.js → use-registry-connections-CpCOrqJZ.js} +1 -1
  235. package/dist/client/assets/{use-secrets-BjcoO2jT.js → use-secrets-GY3e_So0.js} +1 -1
  236. package/dist/client/assets/{use-section-preview-base-txV2PKk6.js → use-section-preview-base-EGUCuSYn.js} +1 -1
  237. package/dist/client/assets/{use-status-sounds-DhEUawFs.js → use-status-sounds-Dr5PODZ9.js} +1 -1
  238. package/dist/client/assets/{use-tags-DqPfa9lk.js → use-tags-P8XJaTzT.js} +1 -1
  239. package/dist/client/assets/{use-view-mode-Cs6DOhsU.js → use-view-mode-BbAbqvz6.js} +1 -1
  240. package/dist/client/assets/{use-virtual-mcp-KkwQ7U1_.js → use-virtual-mcp-C4XUTl0E.js} +1 -1
  241. package/dist/client/assets/useInfiniteQuery-Bto9KSSl.js +1 -0
  242. package/dist/client/assets/useSuspenseInfiniteQuery-Df-vkKBB.js +1 -0
  243. package/dist/client/assets/{users-5K4ChBIu.js → users-CS5WQkaQ.js} +1 -1
  244. package/dist/client/assets/{variant-calendar-CH-t_mxv.js → variant-calendar-ehJVqgLU.js} +1 -1
  245. package/dist/client/assets/{view-mode-toggle-Fes_BCGT.js → view-mode-toggle-x5dJlEQb.js} +1 -1
  246. package/dist/client/index.html +1 -1
  247. package/dist/server/cli.js +2 -2
  248. package/dist/server/server.js +2 -2
  249. package/package.json +1 -1
  250. package/dist/client/assets/api-keys-Bhl6zyMv.js +0 -1
  251. package/dist/client/assets/record-editor-6ESDWlAy.js +0 -1
  252. package/dist/client/assets/redirect-editor-C2zMKRjs.js +0 -1
  253. package/dist/client/assets/registry-DD6VJ6Ri.js +0 -2
  254. package/dist/client/assets/settings-layout-DiHA_kmT.js +0 -1
  255. package/dist/client/assets/store-registry-DIXLfAi9.js +0 -2
  256. package/dist/client/assets/useInfiniteQuery-DTnA7lQ7.js +0 -1
  257. package/dist/client/assets/useSuspenseInfiniteQuery-B31lgzv6.js +0 -1
@@ -1965,7 +1965,7 @@ Usage: deco services <up|down|status>`),process.exit(1)}}var Xs1=D(()=>{hy()});f
1965
1965
  `.execute($);if(Number(W.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${G}/${K}, keeping in old table`);continue}}await Uh`
1966
1966
  DELETE FROM kysely_migration WHERE name = ${Q}
1967
1967
  `.execute($)}}async function P8$($){await l94($),await c94($);let Z=new E8$({db:$,provider:{getMigrations:()=>Promise.resolve(gr0)}}),{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 m94($){let{keepOpen:Z=!1,database:Q,skipBetterAuth:X=!1}=$??{},Y="skipped";if(!X&&!Q)Y=await Wp0();let J=Q??l$(),G=async()=>{if(!Z&&!Q)await QD(J).catch((K)=>{console.warn("Warning: Error closing database:",K)})};try{let K=await P8$(J.db);return await G(),{betterAuth:Y,kysely:K}}catch(K){throw await G(),K}}async function d94(){let $=l$(),Z=new E8$({db:$.db,provider:{getMigrations:()=>Promise.resolve(gr0)}}),{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 T8$=D(()=>{j8$();Hp0();TQ()});async function QY0($){let Z={...process.env},Q=i60($,Z);console.log(JT1(Q.settings.encryptionKey));let X=Q.settings.betterAuthSecret||(Q.settings.localMode?fe1(Q.settings.dataDir):""),{ensureServices:Y}=await Promise.resolve().then(() => (XX0(),QX0)),{outputs:J,services:G}=await Y({home:Q.settings.dataDir,externalDatabaseUrl:Q.externalDatabaseUrl,externalNatsUrl:Q.externalNatsUrl});if(!Q.skipMigrations){let{migrateBetterAuth:W}=await Promise.resolve().then(() => (Hp0(),ye1));await W(J.databaseUrl);let{createDatabase:H}=await Promise.resolve().then(() => (TQ(),es1)),{migrateToLatest:F}=await Promise.resolve().then(() => (T8$(),A8$)),U=H(J.databaseUrl);await F({keepOpen:!0,database:U,skipBetterAuth:!0})}let K={...Q.settings,betterAuthSecret:X,databaseUrl:J.databaseUrl,natsUrls:J.natsUrls,...J.s3?{s3Endpoint:J.s3.endpoint,s3Bucket:J.s3.bucket,s3AccessKeyId:J.s3.accessKeyId,s3SecretAccessKey:J.s3.secretAccessKey,s3ForcePathStyle:J.s3.forcePathStyle}:{}};return Ys1(K),{settings:K,services:G.map((W)=>({name:W.name==="PostgreSQL"?"Postgres":W.name,port:W.port})),managedServiceNames:G.filter((W)=>W.owner==="managed").map((W)=>W.name)}}var hr0=D(()=>{hy();be1();A$()});var M8$={};e(M8$,{updateService:()=>Zz,subscribeCliState:()=>cr0,setTuiConsoleIntercepted:()=>XY0,setServerUrl:()=>zt,setMigrationsDone:()=>Et,setDevMode:()=>p94,resetCliStateForTests:()=>i94,isTuiConsoleIntercepted:()=>YY0,getCliState:()=>lr0,addLogEntry:()=>WD});function R8$(){return[{name:"Postgres",status:"pending",port:0},{name:"NATS",status:"pending",port:0}]}function q8$(){return{services:R8$(),migrationsStatus:"pending",serverUrl:null,logs:[]}}function i94(){OY=q8$()}function jt(){for(let $ of ur0)$()}function lr0(){return OY}function cr0($){return ur0.add($),()=>ur0.delete($)}function Zz($){OY={...OY,services:OY.services.map((Z)=>Z.name===$.name?$:Z)},jt()}function Et(){OY={...OY,migrationsStatus:"done"},jt()}function zt($){OY={...OY,serverUrl:$},jt()}function WD($){let Z=[...OY.logs,$];OY={...OY,logs:Z.length>500?Z.slice(-500):Z},jt()}function p94(){OY={...OY,services:[...R8$(),{name:"API",status:"pending",port:0},{name:"Vite",status:"pending",port:0}]},jt()}function XY0($){I8$=$}function YY0(){return I8$}var OY,ur0,I8$=!1;var Qz=D(()=>{OY=q8$();ur0=new Set});import{createServer as V8$}from"net";function n94($){return new Promise((Z)=>{let Q=V8$();Q.once("error",()=>Z(!1)),Q.listen($,"0.0.0.0",()=>{Q.close(()=>Z(!0))})})}async function Pt($){if(await n94($))return $;let Z=await new Promise((Q,X)=>{let Y=V8$();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 mr0=()=>{};var ir0={};e(ir0,{startDevServer:()=>o94,pipeToLogStore:()=>dr0});import{join as t94}from"path";function dr0($){let Z=$.getReader(),Q=new TextDecoder,X="";function Y(){let J=X.split(`
1968
- `);X=J.pop()??"";for(let G of J){let K=Bun.stripANSI(G).replace(/^\[\d+\]\s*/,"").trim();if(!K)continue;WD({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:K})}}(async()=>{try{for(;;){let{done:J,value:G}=await Z.read();if(J)break;X+=Q.decode(G,{stream:!0}),Y()}}catch{}if(X.trim()){let J=Bun.stripANSI(X).replace(/^\[\d+\]\s*/,"").trim();if(J)WD({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:J})}})()}async function o94($){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 Pt(Number(Y)+1):await Pt(Number($.port)),{settings:K,services:W,managedServiceNames:H}=await QY0({port:String(G),home:$.home,baseUrl:$.baseUrl,localMode:$.localMode,skipMigrations:$.skipMigrations,noTui:$.noTui,vitePort:$.vitePort});for(let L of W)Zz({name:L.name,status:"ready",port:L.port});Et();let F=t94(import.meta.dir,"..","..","..","..",".."),U=Q===!0,N=Bun.spawn(["bun","run","dev:servers"],{cwd:F,env:{...process.env,PORT:String(K.port),VITE_PORT:String(Y),DATABASE_URL:K.databaseUrl,NATS_URL:K.natsUrls.join(","),NODE_ENV:K.nodeEnv,BASE_URL:J,DECOCMS_LOCAL_MODE:String(K.localMode),DECOCMS_HOME:K.dataDir,DATA_DIR:K.dataDir,DECO_CLI:"1",...K.betterAuthSecret?{BETTER_AUTH_SECRET:K.betterAuthSecret}:{},...K.s3Endpoint?{S3_ENDPOINT:K.s3Endpoint,S3_BUCKET:K.s3Bucket??"",S3_ACCESS_KEY_ID:K.s3AccessKeyId??"",S3_SECRET_ACCESS_KEY:K.s3SecretAccessKey??"",S3_FORCE_PATH_STYLE:String(K.s3ForcePathStyle)}:{},...K.natsCredsPath?{NATS_CREDS:K.natsCredsPath}:{}},stdio:["inherit",U?"inherit":"pipe",U?"inherit":"pipe"]});if(!U)dr0(N.stdout),dr0(N.stderr);zt(J),Zz({name:"Vite",status:"ready",port:Number(Y)}),Zz({name:"API",status:"ready",port:Number(K.port)});let O=async(L)=>{if(N.kill(L),await N.exited,H.length>0){let{stopServices:w}=await Promise.resolve().then(() => (XX0(),QX0));await w(K.dataDir)}};return process.on("SIGINT",()=>O("SIGINT")),process.on("SIGTERM",()=>O("SIGTERM")),{port:Number(Y),process:N}}var pr0=D(()=>{hr0();Qz();mr0()});var JY0;var nr0=D(()=>{JY0={name:"decocms",version:"4.358.6",description:"Deco CMS \u2014 Self-hostable MCP Gateway for managing AI connections and tools",author:"Deco team",repository:{type:"git",url:"git+https://github.com/decocms/studio.git",directory:"apps/api"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:"bun run migrate && bun run dev:server","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts",build:"bun run build:server","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","generate:tool-contracts":"bun run scripts/generate-tool-contracts.ts","db:migrate":"bun run ./dist/server/migrate.js","db:migrate:dbos":"bun run ./dist/server/migrate-dbos.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts","migrate:dbos":"bun run src/database/migrate-dbos.ts",test:"bun test src","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts",prepublishOnly:"bun run --cwd=../.. build:studio"},optionalDependencies:{"@duckdb/node-api":"^1.5.0-r.1"},dependencies:{"@ai-sdk/anthropic":"^3.0.85","@ai-sdk/google":"^3.0.83","@ai-sdk/openai":"^3.0.73","@anthropic-ai/sdk":"^0.105.0","@aws-sdk/client-s3":"^3.1013.0","@aws-sdk/client-sts":"^3.1013.0","@aws-sdk/lib-storage":"^3.1013.0","@aws-sdk/s3-request-presigner":"^3.1013.0","@clickhouse/client":"^1.8.1","@dbos-inc/dbos-sdk":"^4.21.6","@inkjs/ui":"^2.0.0","@nats-io/jetstream":"3.4.0","@nats-io/kv":"3.4.0","@nats-io/nats-core":"3.4.0","@nats-io/transport-node":"3.4.0","@openrouter/ai-sdk-provider":"^2.9.1","@opentelemetry/core":"^2.6.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12","posthog-node":"^5.0.0",react:"^19.2.6","react-dom":"^19.2.6"},devDependencies:{"@ai-sdk/provider":"^3.0.10","@better-auth/sso":"1.4.1","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/runtime":"workspace:*","@decocms/sandbox":"workspace:*","@decocms/shared":"workspace:*","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.29.0","@opentelemetry/api":"^1.9.0","@opentelemetry/api-logs":"^0.211.0","@opentelemetry/exporter-logs-otlp-proto":"^0.211.0","@opentelemetry/exporter-prometheus":"^0.208.0","@opentelemetry/exporter-trace-otlp-proto":"^0.207.0","@opentelemetry/instrumentation-runtime-node":"^0.24.0","@opentelemetry/resources":"^2.6.0","@opentelemetry/sdk-logs":"^0.211.0","@opentelemetry/sdk-metrics":"^2.2.0","@opentelemetry/sdk-node":"^0.207.0","@opentelemetry/sdk-trace-base":"^2.5.0","@types/bun":"^1.3.1","@types/google.maps":"^3.65.2","@types/pg":"^8.15.6","@types/react-syntax-highlighter":"^15.5.13","@vercel/nft":"^1.1.1",ai:"^6.0.208","better-auth":"1.4.22",croner:"^9.1.0",degit:"^2.8.4",hono:"^4.10.7",jose:"^6.0.11",nanoid:"^5.1.6",pg:"^8.16.3",typescript:"^7.0.2",typescript5:"npm:typescript@^5.9.3",zod:"4.3.6"},homepage:"https://github.com/decocms/studio",keywords:["mcp","model-context-protocol","ai","gateway","self-hosted","tools"],license:"MIT",publishConfig:{access:"public"}}});import{Box as a94,Text as k8$}from"ink";import{jsx as s94,jsxs as S8$}from"react/jsx-runtime";function C8$({version:$}){return S8$(a94,{flexDirection:"column",marginTop:1,children:[MX0.map((Z,Q)=>s94(k8$,{color:VX0[Q],children:Z},Q)),S8$(k8$,{dimColor:!0,children:[" v",$]})]})}var _8$=D(()=>{Yt()});import{Box as Xz,Text as HD}from"ink";import{Spinner as e94}from"@inkjs/ui";import{jsx as CJ,jsxs as Nh}from"react/jsx-runtime";function v8$({status:$}){if($==="pending")return CJ(e94,{label:""});return CJ(HD,{color:"green",children:"\u2713"})}function $Z4($){return`${$.name}: ${$.port||"...."}`}function x8$({services:$,migrationsStatus:Z,home:Q,serverUrl:X}){return Nh(Xz,{flexDirection:"column",paddingBottom:1,children:[CJ(C8$,{version:JY0.version}),CJ(Xz,{marginBottom:1,children:CJ(HD,{dimColor:!0,children:"\u2500".repeat(80)})}),CJ(Xz,{children:Nh(HD,{dimColor:!0,children:["Home: ",Q]})}),Nh(Xz,{gap:2,children:[$.map((Y)=>Nh(Xz,{gap:1,children:[CJ(HD,{children:$Z4(Y)}),CJ(v8$,{status:Y.status})]},Y.name)),Nh(Xz,{gap:1,children:[CJ(HD,{children:"Migrations"}),CJ(v8$,{status:Z})]})]}),CJ(Xz,{children:X?Nh(HD,{children:["Open in browser: ",CJ(HD,{color:"cyan",children:X})]}):CJ(HD,{dimColor:!0,children:"Starting..."})})]})}var f8$=D(()=>{nr0();_8$()});import{Box as ZZ4,Text as At}from"ink";import{jsx as tr0,jsxs as or0}from"react/jsx-runtime";function QZ4($){if($>=500)return"red";if($>=400)return"yellow";if($>=300)return"cyan";return"green"}function b8$({logs:$}){return tr0(ZZ4,{flexDirection:"column",children:$.map((Z,Q)=>{if(Z.rawLine)return tr0(At,{dimColor:!0,children:Z.rawLine},Q);let X=Z.duration<1000?`${Z.duration}ms`:`${(Z.duration/1000).toFixed(1)}s`;return or0(At,{children:[or0(At,{dimColor:!0,children:[Z.method.padEnd(6)," ",Z.path.padEnd(30)," "]}),tr0(At,{color:QZ4(Z.status),children:Z.status}),or0(At,{dimColor:!0,children:[" ",X.padStart(8)]})]},Q)})})}var y8$=()=>{};var rr0={};e(rr0,{App:()=>JZ4});import{Box as XZ4}from"ink";import{useSyncExternalStore as YZ4}from"react";import{jsx as g8$,jsxs as GZ4}from"react/jsx-runtime";function JZ4({home:$}){let Z=YZ4(cr0,lr0);return GZ4(XZ4,{flexDirection:"column",children:[g8$(x8$,{services:Z.services,migrationsStatus:Z.migrationsStatus,home:$,serverUrl:Z.serverUrl}),g8$(b8$,{logs:Z.logs})]})}var ar0=D(()=>{f8$();y8$();Qz()});var JG="thread-gate",WN="decopilot-hosted-harness",HN="decopilot-hosted-harness-sandboxed",GG="automations",FD="background-tools",Yz="task-board-github-reads";var h8$="11";function u8$($){return{name:"decocms",systemDatabaseUrl:$.systemDatabaseUrl,systemDatabaseSchemaName:"dbos",systemDatabasePoolSize:$.poolSize,runAdminServer:!1,executorID:$.executorID,applicationVersion:h8$,...$.listenQueues!==void 0?{listenQueues:$.listenQueues}:{}}}var l8$=()=>{};import KZ4 from"pg";async function m8$($,Z){let{databaseUrl:Q,lockTimeoutMs:X=WZ4}=$,Y=$.log??((W)=>console.log(W)),J=new KZ4.Client({connectionString:Q});await J.connect();let G=Date.now(),K=!1;try{while(!K){if(K=(await J.query("SELECT pg_try_advisory_lock($1) AS locked",[c8$.toString()])).rows[0]?.locked===!0,K)break;if(Date.now()-G>=X)throw Error(`Timed out after ${X}ms waiting for the DBOS migration lock. Another process is still migrating the dbos schema; this pod will restart and retry.`);await B$(HZ4)}let W=Date.now()-G;if(W>1000)Y(`[dbos] waited ${W}ms for the migration lock; another process migrated first`);return await Z()}finally{if(K)try{await J.query("SELECT pg_advisory_unlock($1)",[c8$.toString()])}catch{}await J.end().catch(()=>{})}}var c8$=8314027461559302n,WZ4=600000,HZ4=500;var d8$=D(()=>{Z8()});function FZ4(){let $=(process.env.BUN_OPTIONS??"").split(/\s+/).filter(Boolean);return[...process.argv.slice(1),...$]}function sr0($,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 i8$(){let $=FZ4();if($.includes("--cpu-prof")){console.log(JSON.stringify({msg:"cpu-profiling-active",dir:sr0($,"--cpu-prof-dir")??process.cwd(),name:sr0($,"--cpu-prof-name"),markdown:$.includes("--cpu-prof-md"),intervalUs:Number(sr0($,"--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 p8$(){if(process.env.HEAP_WATCH!=="1")return()=>{};let $=Number(process.env.HEAP_WATCH_INTERVAL_MS??60000),Z=async()=>{let Q=aE();if(!Q)return;let X={};try{let{heapStats:Y}=await import("bun:jsc"),J=Y(),G=Object.entries(J.objectTypeCounts).sort((K,W)=>W[1]-K[1]).slice(0,20);X={objectCount:J.objectCount,heapSize:J.heapSize,top:Object.fromEntries(G)}}catch{}console.log(JSON.stringify({msg:"heap-watch",ts:new Date().toISOString(),uptimeS:Math.round(process.uptime()),rss:Q.rss,heapUsed:Q.heapUsed,heapTotal:Q.heapTotal,external:Q.external,arrayBuffers:Q.arrayBuffers,...X}))};return Z().catch(()=>{}),GY0=setInterval(()=>void Z().catch(()=>{}),$),GY0.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(GY0)clearInterval(GY0)}}var GY0;var n8$=()=>{};import*as UZ4 from"bun:jsc";function t8$(){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{NZ4()}catch(J){return console.error("[stall-watchdog] failed to start sampling profiler:",J),()=>{}}let Q,X=performance.now()+Z,Y=()=>{let J=performance.now(),G=J-X;X=J+Z;let K=[];try{K=BZ4()?.traces??[]}catch{}if(G>$&&K.length>0){let W=new Map;for(let F of K){let U=F.frames.find((O)=>O.sourceURL&&!/Unknown Executable/.test(O.category??""))??F.frames[0];if(!U)continue;let N=(U.sourceURL??"?").replace(/^.*\/node_modules\//,"node_modules/"),B=`${U.name??"?"} @ ${N}:${U.line??"?"}`;W.set(B,(W.get(B)??0)+1)}let H=[...W.entries()].sort((F,U)=>U[1]-F[1]).slice(0,8).map(([F,U])=>({frame:F,count:U}));console.warn(JSON.stringify({msg:"stall-stack",ts:new Date().toISOString(),lagMs:Math.round(G),samplesInWindow:K.length,top:H}))}Q=setTimeout(Y,Z),Q.unref?.()};return Q=setTimeout(Y,Z),Q.unref?.(),()=>{if(Q)clearTimeout(Q)}}var NZ4,BZ4;var o8$=D(()=>{({startSamplingProfiler:NZ4,samplingProfilerStackTraces:BZ4}=UZ4)});function r8$(){i8$();let $=[p8$(),is1(),t8$()];return()=>{for(let Z of $)Z()}}var a8$=D(()=>{$p0();n8$();o8$()});var Jz=v((s8$)=>{Object.defineProperty(s8$,"__esModule",{value:!0});s8$.RepublishHeaders=s8$.DirectMsgHeaders=s8$.JsHeaders=s8$.AdvisoryKind=void 0;s8$.isOrderedPushConsumerOptions=OZ4;s8$.isPullConsumer=DZ4;s8$.isPushConsumer=LZ4;s8$.isBoundPushConsumerOptions=wZ4;function OZ4($){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 DZ4($){return $.isPullConsumer()}function LZ4($){return $.isPushConsumer()}function wZ4($){if($&&typeof $==="object")return"deliver_subject"in $||"deliver_group"in $||"idle_heartbeat"in $;return!1}s8$.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"};s8$.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"};s8$.DirectMsgHeaders={Stream:"Nats-Stream",Sequence:"Nats-Sequence",TimeStamp:"Nats-Time-Stamp",Subject:"Nats-Subject",LastSequence:"Nats-Last-Sequence",NumPending:"Nats-Num-Pending"};s8$.RepublishHeaders={Stream:"Nats-Stream",Subject:"Nats-Subject",Sequence:"Nats-Sequence",LastSequence:"Nats-Last-Sequence",Size:"Nats-Msg-Size"}});var _J=v(($4$)=>{Object.defineProperty($4$,"__esModule",{value:!0});$4$.TD=$4$.TE=$4$.Empty=void 0;$4$.encode=IZ4;$4$.decode=MZ4;$4$.Empty=new Uint8Array(0);$4$.TE=new TextEncoder;$4$.TD=new TextDecoder;function qZ4(...$){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 IZ4(...$){let Z=[];for(let Q=0;Q<$.length;Q++)Z.push($4$.TE.encode($[Q]));if(Z.length===0)return $4$.Empty;if(Z.length===1)return Z[0];return qZ4(...Z)}function MZ4($){if(!$||$.length===0)return"";return $4$.TD.decode($)}});var vJ=v((X4$)=>{Object.defineProperty(X4$,"__esModule",{value:!0});X4$.errors=X4$.PermissionViolationError=X4$.NoRespondersError=X4$.TimeoutError=X4$.RequestError=X4$.ProtocolError=X4$.ConnectionError=X4$.DrainingConnectionError=X4$.ClosedConnectionError=X4$.AuthorizationError=X4$.UserAuthenticationExpiredError=X4$.InvalidOperationError=X4$.InvalidArgumentError=X4$.InvalidSubjectError=void 0;class $a0 extends Error{constructor($,Z){super(`illegal subject: '${$}'`,Z);this.name="InvalidSubjectError"}}X4$.InvalidSubjectError=$a0;class KY0 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 KY0(`${$} ${Z}`,Q)}}X4$.InvalidArgumentError=KY0;class Za0 extends Error{constructor($,Z){super($,Z);this.name="InvalidOperationError"}}X4$.InvalidOperationError=Za0;class WY0 extends Error{constructor($,Z){super($,Z);this.name="UserAuthenticationExpiredError"}static parse($){if($.toLowerCase().indexOf("user authentication expired")!==-1)return new WY0($);return null}}X4$.UserAuthenticationExpiredError=WY0;class HY0 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 HY0($);return null}}X4$.AuthorizationError=HY0;class Qa0 extends Error{constructor(){super("closed connection");this.name="ClosedConnectionError"}}X4$.ClosedConnectionError=Qa0;class Xa0 extends Error{constructor(){super("connection draining");this.name="DrainingConnectionError"}}X4$.DrainingConnectionError=Xa0;class Ya0 extends Error{constructor($,Z){super($,Z);this.name="ConnectionError"}}X4$.ConnectionError=Ya0;class Ja0 extends Error{constructor($,Z){super($,Z);this.name="ProtocolError"}}X4$.ProtocolError=Ja0;class Ga0 extends Error{constructor($="",Z){super($,Z);this.name="RequestError"}isNoResponders(){return this.cause instanceof FY0}}X4$.RequestError=Ga0;class Ka0 extends Error{constructor($){super("timeout",$);this.name="TimeoutError"}}X4$.TimeoutError=Ka0;class FY0 extends Error{subject;constructor($,Z){super(`no responders: '${$}'`,Z);this.subject=$,this.name="NoResponders"}}X4$.NoRespondersError=FY0;class UY0 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 UY0($,Q,X,Y)}}X4$.PermissionViolationError=UY0;X4$.errors={AuthorizationError:HY0,ClosedConnectionError:Qa0,ConnectionError:Ya0,DrainingConnectionError:Xa0,InvalidArgumentError:KY0,InvalidOperationError:Za0,InvalidSubjectError:$a0,NoRespondersError:FY0,PermissionViolationError:UY0,ProtocolError:Ja0,RequestError:Ga0,TimeoutError:Ka0,UserAuthenticationExpiredError:WY0}});var _K=v((W4$)=>{Object.defineProperty(W4$,"__esModule",{value:!0});W4$.SimpleMutex=W4$.Perf=void 0;W4$.extend=dZ4;W4$.render=iZ4;W4$.timeout=pZ4;W4$.delay=nZ4;W4$.deadline=tZ4;W4$.deferred=Ha0;W4$.debugDeferred=oZ4;W4$.shuffle=rZ4;W4$.collect=aZ4;W4$.jitter=K4$;W4$.backoff=sZ4;W4$.nanos=eZ4;W4$.millis=$74;W4$.randomToken=X74;var mZ4=_J(),Wa0=vJ();function dZ4($,...Z){for(let Q=0;Q<Z.length;Q++){let X=Z[Q];Object.keys(X).forEach(function(Y){$[Y]=X[Y]})}return $}function iZ4($){return mZ4.TD.decode($).replace(/\n/g,"\u240A").replace(/\r/g,"\u240D")}function pZ4($,Z=!0){let Q=Z?new Wa0.TimeoutError:null,X,Y,J=new Promise((G,K)=>{X={cancel:()=>{if(Y)clearTimeout(Y)}},Y=setTimeout(()=>{if(Q===null)K(new Wa0.TimeoutError);else K(Q)},$)});return Object.assign(J,X)}function nZ4($=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 tZ4($,Z=1000){let Q=Ha0(),X=setTimeout(()=>{Q.reject(new Wa0.TimeoutError)},Z);try{return await Promise.race([$,Q])}finally{clearTimeout(X)}}function Ha0(){let $={},Z=new Promise((Q,X)=>{$={resolve:Q,reject:X}});return Object.assign(Z,$)}function oZ4(){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 rZ4($){for(let Z=$.length-1;Z>0;Z--){let Q=Math.floor(Math.random()*(Z+1));[$[Z],$[Q]]=[$[Q],$[Z]]}return $}async function aZ4($){let Z=[];for await(let Q of $)Z.push(Q);return Z}class J4${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})}),$}}W4$.Perf=J4$;class G4${max;current;waiting;constructor($=1){this.max=$,this.current=0,this.waiting=[]}lock(){if(this.current++,this.current<=this.max)return Promise.resolve();let $=Ha0();return this.waiting.push($),$}unlock(){this.current--,this.waiting.pop()?.resolve()}}W4$.SimpleMutex=G4$;function K4$($){if($===0)return 0;return Math.floor($/2+Math.random()*$)}function sZ4($=[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 K4$(Q>Z?$[Z]:$[Q])}}}function eZ4($){return $*1e6}function $74($){return Math.floor($/1e6)}var Z74="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",FN=new Uint8Array(62);for(let $=0;$<62;$++)FN[$]=Z74.charCodeAt($);var Q74=218340105584896;function X74(){let $=Math.floor(Math.random()*Q74),Z=$%62,Q=FN[Z];$=($-Z)/62,Z=$%62;let X=FN[Z];$=($-Z)/62,Z=$%62;let Y=FN[Z];$=($-Z)/62,Z=$%62;let J=FN[Z];$=($-Z)/62,Z=$%62;let G=FN[Z];$=($-Z)/62,Z=$%62;let K=FN[Z];$=($-Z)/62,Z=$%62;let W=FN[Z];$=($-Z)/62;let H=FN[$];return String.fromCharCode(Q,X,Y,J,G,K,W,H)}});var L4$=v((O4$)=>{Object.defineProperty(O4$,"__esModule",{value:!0});O4$.nuid=O4$.NuidImpl=void 0;var E74="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",UD=62,BY0=12,N4$=10,F4$=33,z74=333,U4$=BY0+N4$,Ua0=new Uint8Array(UD);for(let $=0;$<UD;$++)Ua0[$]=E74.charCodeAt($);var NY0=4294967296,B4$=BigInt(UD)**BigInt(N4$),Tt=Number(B4$/(1n<<32n)),Fa0=Number(B4$%(1n<<32n));function P74($){for(let Z=0;Z<$.length;Z++)$[Z]=Math.floor(Math.random()*256)}function A74($){if(globalThis?.crypto?.getRandomValues)globalThis.crypto.getRandomValues($);else P74($)}class Na0{buf;cbuf;seqHi;seqLo;inc;inited;constructor(){this.buf=new Uint8Array(U4$),this.cbuf=new Uint8Array(BY0),this.inited=!1}init(){this.inited=!0,this.setPre(),this.initSeqAndInc(),this.fillSeq()}initSeqAndInc(){let $=0;do this.seqHi=Math.floor(Math.random()*(Tt+1)),this.seqLo=Math.floor(Math.random()*NY0);while($++<8&&this.seqHi===Tt&&this.seqLo>=Fa0);if(this.seqHi===Tt&&this.seqLo>=Fa0)this.seqLo=0;this.inc=Math.random()*(z74-F4$)+F4$|0}setPre(){A74(this.cbuf);for(let $=0;$<BY0;$++)this.buf[$]=Ua0[this.cbuf[$]%UD]}fillSeq(){let $=this.seqHi,Z=this.seqLo;for(let Q=U4$-1;Q>=BY0;Q--){let X=Math.floor($/UD),J=($-X*UD)*NY0+Z,G=Math.floor(J/UD),K=J-G*UD;this.buf[Q]=Ua0[K],$=X,Z=G}}next(){if(!this.inited)this.init();if(this.seqLo+=this.inc,this.seqLo>=NY0)this.seqLo-=NY0,this.seqHi+=1;if(this.seqHi>Tt||this.seqHi===Tt&&this.seqLo>=Fa0)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()}}O4$.NuidImpl=Na0;O4$.nuid=new Na0});var z4$=v((j4$)=>{Object.defineProperty(j4$,"__esModule",{value:!0});j4$.nuid=j4$.Nuid=void 0;var w4$=L4$();j4$.Nuid=w4$.NuidImpl;j4$.nuid=w4$.nuid});var DY0=v((OY0)=>{Object.defineProperty(OY0,"__esModule",{value:!0});OY0.nuid=OY0.Nuid=void 0;var P4$=z4$();Object.defineProperty(OY0,"Nuid",{enumerable:!0,get:function(){return P4$.Nuid}});Object.defineProperty(OY0,"nuid",{enumerable:!0,get:function(){return P4$.nuid}})});var ND=v((A4$)=>{Object.defineProperty(A4$,"__esModule",{value:!0});A4$.DEFAULT_HOST=A4$.DEFAULT_PORT=A4$.Match=void 0;A4$.syncIterator=V74;A4$.createInbox=k74;var I74=DY0(),M74=vJ();A4$.Match={Exact:"exact",CanonicalMIME:"canonical",IgnoreCase:"insensitive"};function V74($){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 k74($=""){if($=$||"_INBOX",typeof $!=="string")throw TypeError("prefix must be a string");return $.split(".").forEach((Z)=>{if(Z==="*"||Z===">")throw M74.InvalidArgumentError.format("prefix",`cannot have wildcards ('${$}')`)}),`${$}.${I74.nuid.next()}`}A4$.DEFAULT_PORT=4222;A4$.DEFAULT_HOST="127.0.0.1"});var Rt=v((I4$)=>{Object.defineProperty(I4$,"__esModule",{value:!0});I4$.DataBuffer=void 0;var R4$=_J();class q4${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 R4$.TE.encode($)}static toAscii($){return R4$.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}}I4$.DataBuffer=q4$});var Gz=v((k4$)=>{Object.defineProperty(k4$,"__esModule",{value:!0});k4$.LF=k4$.CR=k4$.CRLF=k4$.CR_LF_LEN=k4$.CR_LF=void 0;k4$.setTransportFactory=y74;k4$.defaultPort=g74;k4$.getUrlParseFn=h74;k4$.newTransport=u74;k4$.getResolveFn=l74;k4$.protoLen=V4$;k4$.extractProtocolMessage=c74;var x74=_J(),f74=ND(),b74=Rt(),xJ;function y74($){xJ=$}function g74(){return xJ!==void 0&&xJ.defaultPort!==void 0?xJ.defaultPort:f74.DEFAULT_PORT}function h74(){return xJ!==void 0&&xJ.urlParseFn?xJ.urlParseFn:void 0}function u74(){if(!xJ||typeof xJ.factory!=="function")throw Error("transport fn is not set");return xJ.factory()}function l74(){return xJ!==void 0&&xJ.dnsResolveFn?xJ.dnsResolveFn:void 0}k4$.CR_LF=`\r
1968
+ `);X=J.pop()??"";for(let G of J){let K=Bun.stripANSI(G).replace(/^\[\d+\]\s*/,"").trim();if(!K)continue;WD({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:K})}}(async()=>{try{for(;;){let{done:J,value:G}=await Z.read();if(J)break;X+=Q.decode(G,{stream:!0}),Y()}}catch{}if(X.trim()){let J=Bun.stripANSI(X).replace(/^\[\d+\]\s*/,"").trim();if(J)WD({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:J})}})()}async function o94($){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 Pt(Number(Y)+1):await Pt(Number($.port)),{settings:K,services:W,managedServiceNames:H}=await QY0({port:String(G),home:$.home,baseUrl:$.baseUrl,localMode:$.localMode,skipMigrations:$.skipMigrations,noTui:$.noTui,vitePort:$.vitePort});for(let L of W)Zz({name:L.name,status:"ready",port:L.port});Et();let F=t94(import.meta.dir,"..","..","..","..",".."),U=Q===!0,N=Bun.spawn(["bun","run","dev:servers"],{cwd:F,env:{...process.env,PORT:String(K.port),VITE_PORT:String(Y),DATABASE_URL:K.databaseUrl,NATS_URL:K.natsUrls.join(","),NODE_ENV:K.nodeEnv,BASE_URL:J,DECOCMS_LOCAL_MODE:String(K.localMode),DECOCMS_HOME:K.dataDir,DATA_DIR:K.dataDir,DECO_CLI:"1",...K.betterAuthSecret?{BETTER_AUTH_SECRET:K.betterAuthSecret}:{},...K.s3Endpoint?{S3_ENDPOINT:K.s3Endpoint,S3_BUCKET:K.s3Bucket??"",S3_ACCESS_KEY_ID:K.s3AccessKeyId??"",S3_SECRET_ACCESS_KEY:K.s3SecretAccessKey??"",S3_FORCE_PATH_STYLE:String(K.s3ForcePathStyle)}:{},...K.natsCredsPath?{NATS_CREDS:K.natsCredsPath}:{}},stdio:["inherit",U?"inherit":"pipe",U?"inherit":"pipe"]});if(!U)dr0(N.stdout),dr0(N.stderr);zt(J),Zz({name:"Vite",status:"ready",port:Number(Y)}),Zz({name:"API",status:"ready",port:Number(K.port)});let O=async(L)=>{if(N.kill(L),await N.exited,H.length>0){let{stopServices:w}=await Promise.resolve().then(() => (XX0(),QX0));await w(K.dataDir)}};return process.on("SIGINT",()=>O("SIGINT")),process.on("SIGTERM",()=>O("SIGTERM")),{port:Number(Y),process:N}}var pr0=D(()=>{hr0();Qz();mr0()});var JY0;var nr0=D(()=>{JY0={name:"decocms",version:"4.358.7",description:"Deco CMS \u2014 Self-hostable MCP Gateway for managing AI connections and tools",author:"Deco team",repository:{type:"git",url:"git+https://github.com/decocms/studio.git",directory:"apps/api"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:"bun run migrate && bun run dev:server","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts",build:"bun run build:server","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","generate:tool-contracts":"bun run scripts/generate-tool-contracts.ts","db:migrate":"bun run ./dist/server/migrate.js","db:migrate:dbos":"bun run ./dist/server/migrate-dbos.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts","migrate:dbos":"bun run src/database/migrate-dbos.ts",test:"bun test src","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts",prepublishOnly:"bun run --cwd=../.. build:studio"},optionalDependencies:{"@duckdb/node-api":"^1.5.0-r.1"},dependencies:{"@ai-sdk/anthropic":"^3.0.85","@ai-sdk/google":"^3.0.83","@ai-sdk/openai":"^3.0.73","@anthropic-ai/sdk":"^0.105.0","@aws-sdk/client-s3":"^3.1013.0","@aws-sdk/client-sts":"^3.1013.0","@aws-sdk/lib-storage":"^3.1013.0","@aws-sdk/s3-request-presigner":"^3.1013.0","@clickhouse/client":"^1.8.1","@dbos-inc/dbos-sdk":"^4.21.6","@inkjs/ui":"^2.0.0","@nats-io/jetstream":"3.4.0","@nats-io/kv":"3.4.0","@nats-io/nats-core":"3.4.0","@nats-io/transport-node":"3.4.0","@openrouter/ai-sdk-provider":"^2.9.1","@opentelemetry/core":"^2.6.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12","posthog-node":"^5.0.0",react:"^19.2.6","react-dom":"^19.2.6"},devDependencies:{"@ai-sdk/provider":"^3.0.10","@better-auth/sso":"1.4.1","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/runtime":"workspace:*","@decocms/sandbox":"workspace:*","@decocms/shared":"workspace:*","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.29.0","@opentelemetry/api":"^1.9.0","@opentelemetry/api-logs":"^0.211.0","@opentelemetry/exporter-logs-otlp-proto":"^0.211.0","@opentelemetry/exporter-prometheus":"^0.208.0","@opentelemetry/exporter-trace-otlp-proto":"^0.207.0","@opentelemetry/instrumentation-runtime-node":"^0.24.0","@opentelemetry/resources":"^2.6.0","@opentelemetry/sdk-logs":"^0.211.0","@opentelemetry/sdk-metrics":"^2.2.0","@opentelemetry/sdk-node":"^0.207.0","@opentelemetry/sdk-trace-base":"^2.5.0","@types/bun":"^1.3.1","@types/google.maps":"^3.65.2","@types/pg":"^8.15.6","@types/react-syntax-highlighter":"^15.5.13","@vercel/nft":"^1.1.1",ai:"^6.0.208","better-auth":"1.4.22",croner:"^9.1.0",degit:"^2.8.4",hono:"^4.10.7",jose:"^6.0.11",nanoid:"^5.1.6",pg:"^8.16.3",typescript:"^7.0.2",typescript5:"npm:typescript@^5.9.3",zod:"4.3.6"},homepage:"https://github.com/decocms/studio",keywords:["mcp","model-context-protocol","ai","gateway","self-hosted","tools"],license:"MIT",publishConfig:{access:"public"}}});import{Box as a94,Text as k8$}from"ink";import{jsx as s94,jsxs as S8$}from"react/jsx-runtime";function C8$({version:$}){return S8$(a94,{flexDirection:"column",marginTop:1,children:[MX0.map((Z,Q)=>s94(k8$,{color:VX0[Q],children:Z},Q)),S8$(k8$,{dimColor:!0,children:[" v",$]})]})}var _8$=D(()=>{Yt()});import{Box as Xz,Text as HD}from"ink";import{Spinner as e94}from"@inkjs/ui";import{jsx as CJ,jsxs as Nh}from"react/jsx-runtime";function v8$({status:$}){if($==="pending")return CJ(e94,{label:""});return CJ(HD,{color:"green",children:"\u2713"})}function $Z4($){return`${$.name}: ${$.port||"...."}`}function x8$({services:$,migrationsStatus:Z,home:Q,serverUrl:X}){return Nh(Xz,{flexDirection:"column",paddingBottom:1,children:[CJ(C8$,{version:JY0.version}),CJ(Xz,{marginBottom:1,children:CJ(HD,{dimColor:!0,children:"\u2500".repeat(80)})}),CJ(Xz,{children:Nh(HD,{dimColor:!0,children:["Home: ",Q]})}),Nh(Xz,{gap:2,children:[$.map((Y)=>Nh(Xz,{gap:1,children:[CJ(HD,{children:$Z4(Y)}),CJ(v8$,{status:Y.status})]},Y.name)),Nh(Xz,{gap:1,children:[CJ(HD,{children:"Migrations"}),CJ(v8$,{status:Z})]})]}),CJ(Xz,{children:X?Nh(HD,{children:["Open in browser: ",CJ(HD,{color:"cyan",children:X})]}):CJ(HD,{dimColor:!0,children:"Starting..."})})]})}var f8$=D(()=>{nr0();_8$()});import{Box as ZZ4,Text as At}from"ink";import{jsx as tr0,jsxs as or0}from"react/jsx-runtime";function QZ4($){if($>=500)return"red";if($>=400)return"yellow";if($>=300)return"cyan";return"green"}function b8$({logs:$}){return tr0(ZZ4,{flexDirection:"column",children:$.map((Z,Q)=>{if(Z.rawLine)return tr0(At,{dimColor:!0,children:Z.rawLine},Q);let X=Z.duration<1000?`${Z.duration}ms`:`${(Z.duration/1000).toFixed(1)}s`;return or0(At,{children:[or0(At,{dimColor:!0,children:[Z.method.padEnd(6)," ",Z.path.padEnd(30)," "]}),tr0(At,{color:QZ4(Z.status),children:Z.status}),or0(At,{dimColor:!0,children:[" ",X.padStart(8)]})]},Q)})})}var y8$=()=>{};var rr0={};e(rr0,{App:()=>JZ4});import{Box as XZ4}from"ink";import{useSyncExternalStore as YZ4}from"react";import{jsx as g8$,jsxs as GZ4}from"react/jsx-runtime";function JZ4({home:$}){let Z=YZ4(cr0,lr0);return GZ4(XZ4,{flexDirection:"column",children:[g8$(x8$,{services:Z.services,migrationsStatus:Z.migrationsStatus,home:$,serverUrl:Z.serverUrl}),g8$(b8$,{logs:Z.logs})]})}var ar0=D(()=>{f8$();y8$();Qz()});var JG="thread-gate",WN="decopilot-hosted-harness",HN="decopilot-hosted-harness-sandboxed",GG="automations",FD="background-tools",Yz="task-board-github-reads";var h8$="11";function u8$($){return{name:"decocms",systemDatabaseUrl:$.systemDatabaseUrl,systemDatabaseSchemaName:"dbos",systemDatabasePoolSize:$.poolSize,runAdminServer:!1,executorID:$.executorID,applicationVersion:h8$,...$.listenQueues!==void 0?{listenQueues:$.listenQueues}:{}}}var l8$=()=>{};import KZ4 from"pg";async function m8$($,Z){let{databaseUrl:Q,lockTimeoutMs:X=WZ4}=$,Y=$.log??((W)=>console.log(W)),J=new KZ4.Client({connectionString:Q});await J.connect();let G=Date.now(),K=!1;try{while(!K){if(K=(await J.query("SELECT pg_try_advisory_lock($1) AS locked",[c8$.toString()])).rows[0]?.locked===!0,K)break;if(Date.now()-G>=X)throw Error(`Timed out after ${X}ms waiting for the DBOS migration lock. Another process is still migrating the dbos schema; this pod will restart and retry.`);await B$(HZ4)}let W=Date.now()-G;if(W>1000)Y(`[dbos] waited ${W}ms for the migration lock; another process migrated first`);return await Z()}finally{if(K)try{await J.query("SELECT pg_advisory_unlock($1)",[c8$.toString()])}catch{}await J.end().catch(()=>{})}}var c8$=8314027461559302n,WZ4=600000,HZ4=500;var d8$=D(()=>{Z8()});function FZ4(){let $=(process.env.BUN_OPTIONS??"").split(/\s+/).filter(Boolean);return[...process.argv.slice(1),...$]}function sr0($,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 i8$(){let $=FZ4();if($.includes("--cpu-prof")){console.log(JSON.stringify({msg:"cpu-profiling-active",dir:sr0($,"--cpu-prof-dir")??process.cwd(),name:sr0($,"--cpu-prof-name"),markdown:$.includes("--cpu-prof-md"),intervalUs:Number(sr0($,"--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 p8$(){if(process.env.HEAP_WATCH!=="1")return()=>{};let $=Number(process.env.HEAP_WATCH_INTERVAL_MS??60000),Z=async()=>{let Q=aE();if(!Q)return;let X={};try{let{heapStats:Y}=await import("bun:jsc"),J=Y(),G=Object.entries(J.objectTypeCounts).sort((K,W)=>W[1]-K[1]).slice(0,20);X={objectCount:J.objectCount,heapSize:J.heapSize,top:Object.fromEntries(G)}}catch{}console.log(JSON.stringify({msg:"heap-watch",ts:new Date().toISOString(),uptimeS:Math.round(process.uptime()),rss:Q.rss,heapUsed:Q.heapUsed,heapTotal:Q.heapTotal,external:Q.external,arrayBuffers:Q.arrayBuffers,...X}))};return Z().catch(()=>{}),GY0=setInterval(()=>void Z().catch(()=>{}),$),GY0.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(GY0)clearInterval(GY0)}}var GY0;var n8$=()=>{};import*as UZ4 from"bun:jsc";function t8$(){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{NZ4()}catch(J){return console.error("[stall-watchdog] failed to start sampling profiler:",J),()=>{}}let Q,X=performance.now()+Z,Y=()=>{let J=performance.now(),G=J-X;X=J+Z;let K=[];try{K=BZ4()?.traces??[]}catch{}if(G>$&&K.length>0){let W=new Map;for(let F of K){let U=F.frames.find((O)=>O.sourceURL&&!/Unknown Executable/.test(O.category??""))??F.frames[0];if(!U)continue;let N=(U.sourceURL??"?").replace(/^.*\/node_modules\//,"node_modules/"),B=`${U.name??"?"} @ ${N}:${U.line??"?"}`;W.set(B,(W.get(B)??0)+1)}let H=[...W.entries()].sort((F,U)=>U[1]-F[1]).slice(0,8).map(([F,U])=>({frame:F,count:U}));console.warn(JSON.stringify({msg:"stall-stack",ts:new Date().toISOString(),lagMs:Math.round(G),samplesInWindow:K.length,top:H}))}Q=setTimeout(Y,Z),Q.unref?.()};return Q=setTimeout(Y,Z),Q.unref?.(),()=>{if(Q)clearTimeout(Q)}}var NZ4,BZ4;var o8$=D(()=>{({startSamplingProfiler:NZ4,samplingProfilerStackTraces:BZ4}=UZ4)});function r8$(){i8$();let $=[p8$(),is1(),t8$()];return()=>{for(let Z of $)Z()}}var a8$=D(()=>{$p0();n8$();o8$()});var Jz=v((s8$)=>{Object.defineProperty(s8$,"__esModule",{value:!0});s8$.RepublishHeaders=s8$.DirectMsgHeaders=s8$.JsHeaders=s8$.AdvisoryKind=void 0;s8$.isOrderedPushConsumerOptions=OZ4;s8$.isPullConsumer=DZ4;s8$.isPushConsumer=LZ4;s8$.isBoundPushConsumerOptions=wZ4;function OZ4($){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 DZ4($){return $.isPullConsumer()}function LZ4($){return $.isPushConsumer()}function wZ4($){if($&&typeof $==="object")return"deliver_subject"in $||"deliver_group"in $||"idle_heartbeat"in $;return!1}s8$.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"};s8$.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"};s8$.DirectMsgHeaders={Stream:"Nats-Stream",Sequence:"Nats-Sequence",TimeStamp:"Nats-Time-Stamp",Subject:"Nats-Subject",LastSequence:"Nats-Last-Sequence",NumPending:"Nats-Num-Pending"};s8$.RepublishHeaders={Stream:"Nats-Stream",Subject:"Nats-Subject",Sequence:"Nats-Sequence",LastSequence:"Nats-Last-Sequence",Size:"Nats-Msg-Size"}});var _J=v(($4$)=>{Object.defineProperty($4$,"__esModule",{value:!0});$4$.TD=$4$.TE=$4$.Empty=void 0;$4$.encode=IZ4;$4$.decode=MZ4;$4$.Empty=new Uint8Array(0);$4$.TE=new TextEncoder;$4$.TD=new TextDecoder;function qZ4(...$){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 IZ4(...$){let Z=[];for(let Q=0;Q<$.length;Q++)Z.push($4$.TE.encode($[Q]));if(Z.length===0)return $4$.Empty;if(Z.length===1)return Z[0];return qZ4(...Z)}function MZ4($){if(!$||$.length===0)return"";return $4$.TD.decode($)}});var vJ=v((X4$)=>{Object.defineProperty(X4$,"__esModule",{value:!0});X4$.errors=X4$.PermissionViolationError=X4$.NoRespondersError=X4$.TimeoutError=X4$.RequestError=X4$.ProtocolError=X4$.ConnectionError=X4$.DrainingConnectionError=X4$.ClosedConnectionError=X4$.AuthorizationError=X4$.UserAuthenticationExpiredError=X4$.InvalidOperationError=X4$.InvalidArgumentError=X4$.InvalidSubjectError=void 0;class $a0 extends Error{constructor($,Z){super(`illegal subject: '${$}'`,Z);this.name="InvalidSubjectError"}}X4$.InvalidSubjectError=$a0;class KY0 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 KY0(`${$} ${Z}`,Q)}}X4$.InvalidArgumentError=KY0;class Za0 extends Error{constructor($,Z){super($,Z);this.name="InvalidOperationError"}}X4$.InvalidOperationError=Za0;class WY0 extends Error{constructor($,Z){super($,Z);this.name="UserAuthenticationExpiredError"}static parse($){if($.toLowerCase().indexOf("user authentication expired")!==-1)return new WY0($);return null}}X4$.UserAuthenticationExpiredError=WY0;class HY0 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 HY0($);return null}}X4$.AuthorizationError=HY0;class Qa0 extends Error{constructor(){super("closed connection");this.name="ClosedConnectionError"}}X4$.ClosedConnectionError=Qa0;class Xa0 extends Error{constructor(){super("connection draining");this.name="DrainingConnectionError"}}X4$.DrainingConnectionError=Xa0;class Ya0 extends Error{constructor($,Z){super($,Z);this.name="ConnectionError"}}X4$.ConnectionError=Ya0;class Ja0 extends Error{constructor($,Z){super($,Z);this.name="ProtocolError"}}X4$.ProtocolError=Ja0;class Ga0 extends Error{constructor($="",Z){super($,Z);this.name="RequestError"}isNoResponders(){return this.cause instanceof FY0}}X4$.RequestError=Ga0;class Ka0 extends Error{constructor($){super("timeout",$);this.name="TimeoutError"}}X4$.TimeoutError=Ka0;class FY0 extends Error{subject;constructor($,Z){super(`no responders: '${$}'`,Z);this.subject=$,this.name="NoResponders"}}X4$.NoRespondersError=FY0;class UY0 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 UY0($,Q,X,Y)}}X4$.PermissionViolationError=UY0;X4$.errors={AuthorizationError:HY0,ClosedConnectionError:Qa0,ConnectionError:Ya0,DrainingConnectionError:Xa0,InvalidArgumentError:KY0,InvalidOperationError:Za0,InvalidSubjectError:$a0,NoRespondersError:FY0,PermissionViolationError:UY0,ProtocolError:Ja0,RequestError:Ga0,TimeoutError:Ka0,UserAuthenticationExpiredError:WY0}});var _K=v((W4$)=>{Object.defineProperty(W4$,"__esModule",{value:!0});W4$.SimpleMutex=W4$.Perf=void 0;W4$.extend=dZ4;W4$.render=iZ4;W4$.timeout=pZ4;W4$.delay=nZ4;W4$.deadline=tZ4;W4$.deferred=Ha0;W4$.debugDeferred=oZ4;W4$.shuffle=rZ4;W4$.collect=aZ4;W4$.jitter=K4$;W4$.backoff=sZ4;W4$.nanos=eZ4;W4$.millis=$74;W4$.randomToken=X74;var mZ4=_J(),Wa0=vJ();function dZ4($,...Z){for(let Q=0;Q<Z.length;Q++){let X=Z[Q];Object.keys(X).forEach(function(Y){$[Y]=X[Y]})}return $}function iZ4($){return mZ4.TD.decode($).replace(/\n/g,"\u240A").replace(/\r/g,"\u240D")}function pZ4($,Z=!0){let Q=Z?new Wa0.TimeoutError:null,X,Y,J=new Promise((G,K)=>{X={cancel:()=>{if(Y)clearTimeout(Y)}},Y=setTimeout(()=>{if(Q===null)K(new Wa0.TimeoutError);else K(Q)},$)});return Object.assign(J,X)}function nZ4($=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 tZ4($,Z=1000){let Q=Ha0(),X=setTimeout(()=>{Q.reject(new Wa0.TimeoutError)},Z);try{return await Promise.race([$,Q])}finally{clearTimeout(X)}}function Ha0(){let $={},Z=new Promise((Q,X)=>{$={resolve:Q,reject:X}});return Object.assign(Z,$)}function oZ4(){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 rZ4($){for(let Z=$.length-1;Z>0;Z--){let Q=Math.floor(Math.random()*(Z+1));[$[Z],$[Q]]=[$[Q],$[Z]]}return $}async function aZ4($){let Z=[];for await(let Q of $)Z.push(Q);return Z}class J4${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})}),$}}W4$.Perf=J4$;class G4${max;current;waiting;constructor($=1){this.max=$,this.current=0,this.waiting=[]}lock(){if(this.current++,this.current<=this.max)return Promise.resolve();let $=Ha0();return this.waiting.push($),$}unlock(){this.current--,this.waiting.pop()?.resolve()}}W4$.SimpleMutex=G4$;function K4$($){if($===0)return 0;return Math.floor($/2+Math.random()*$)}function sZ4($=[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 K4$(Q>Z?$[Z]:$[Q])}}}function eZ4($){return $*1e6}function $74($){return Math.floor($/1e6)}var Z74="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",FN=new Uint8Array(62);for(let $=0;$<62;$++)FN[$]=Z74.charCodeAt($);var Q74=218340105584896;function X74(){let $=Math.floor(Math.random()*Q74),Z=$%62,Q=FN[Z];$=($-Z)/62,Z=$%62;let X=FN[Z];$=($-Z)/62,Z=$%62;let Y=FN[Z];$=($-Z)/62,Z=$%62;let J=FN[Z];$=($-Z)/62,Z=$%62;let G=FN[Z];$=($-Z)/62,Z=$%62;let K=FN[Z];$=($-Z)/62,Z=$%62;let W=FN[Z];$=($-Z)/62;let H=FN[$];return String.fromCharCode(Q,X,Y,J,G,K,W,H)}});var L4$=v((O4$)=>{Object.defineProperty(O4$,"__esModule",{value:!0});O4$.nuid=O4$.NuidImpl=void 0;var E74="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",UD=62,BY0=12,N4$=10,F4$=33,z74=333,U4$=BY0+N4$,Ua0=new Uint8Array(UD);for(let $=0;$<UD;$++)Ua0[$]=E74.charCodeAt($);var NY0=4294967296,B4$=BigInt(UD)**BigInt(N4$),Tt=Number(B4$/(1n<<32n)),Fa0=Number(B4$%(1n<<32n));function P74($){for(let Z=0;Z<$.length;Z++)$[Z]=Math.floor(Math.random()*256)}function A74($){if(globalThis?.crypto?.getRandomValues)globalThis.crypto.getRandomValues($);else P74($)}class Na0{buf;cbuf;seqHi;seqLo;inc;inited;constructor(){this.buf=new Uint8Array(U4$),this.cbuf=new Uint8Array(BY0),this.inited=!1}init(){this.inited=!0,this.setPre(),this.initSeqAndInc(),this.fillSeq()}initSeqAndInc(){let $=0;do this.seqHi=Math.floor(Math.random()*(Tt+1)),this.seqLo=Math.floor(Math.random()*NY0);while($++<8&&this.seqHi===Tt&&this.seqLo>=Fa0);if(this.seqHi===Tt&&this.seqLo>=Fa0)this.seqLo=0;this.inc=Math.random()*(z74-F4$)+F4$|0}setPre(){A74(this.cbuf);for(let $=0;$<BY0;$++)this.buf[$]=Ua0[this.cbuf[$]%UD]}fillSeq(){let $=this.seqHi,Z=this.seqLo;for(let Q=U4$-1;Q>=BY0;Q--){let X=Math.floor($/UD),J=($-X*UD)*NY0+Z,G=Math.floor(J/UD),K=J-G*UD;this.buf[Q]=Ua0[K],$=X,Z=G}}next(){if(!this.inited)this.init();if(this.seqLo+=this.inc,this.seqLo>=NY0)this.seqLo-=NY0,this.seqHi+=1;if(this.seqHi>Tt||this.seqHi===Tt&&this.seqLo>=Fa0)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()}}O4$.NuidImpl=Na0;O4$.nuid=new Na0});var z4$=v((j4$)=>{Object.defineProperty(j4$,"__esModule",{value:!0});j4$.nuid=j4$.Nuid=void 0;var w4$=L4$();j4$.Nuid=w4$.NuidImpl;j4$.nuid=w4$.nuid});var DY0=v((OY0)=>{Object.defineProperty(OY0,"__esModule",{value:!0});OY0.nuid=OY0.Nuid=void 0;var P4$=z4$();Object.defineProperty(OY0,"Nuid",{enumerable:!0,get:function(){return P4$.Nuid}});Object.defineProperty(OY0,"nuid",{enumerable:!0,get:function(){return P4$.nuid}})});var ND=v((A4$)=>{Object.defineProperty(A4$,"__esModule",{value:!0});A4$.DEFAULT_HOST=A4$.DEFAULT_PORT=A4$.Match=void 0;A4$.syncIterator=V74;A4$.createInbox=k74;var I74=DY0(),M74=vJ();A4$.Match={Exact:"exact",CanonicalMIME:"canonical",IgnoreCase:"insensitive"};function V74($){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 k74($=""){if($=$||"_INBOX",typeof $!=="string")throw TypeError("prefix must be a string");return $.split(".").forEach((Z)=>{if(Z==="*"||Z===">")throw M74.InvalidArgumentError.format("prefix",`cannot have wildcards ('${$}')`)}),`${$}.${I74.nuid.next()}`}A4$.DEFAULT_PORT=4222;A4$.DEFAULT_HOST="127.0.0.1"});var Rt=v((I4$)=>{Object.defineProperty(I4$,"__esModule",{value:!0});I4$.DataBuffer=void 0;var R4$=_J();class q4${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 R4$.TE.encode($)}static toAscii($){return R4$.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}}I4$.DataBuffer=q4$});var Gz=v((k4$)=>{Object.defineProperty(k4$,"__esModule",{value:!0});k4$.LF=k4$.CR=k4$.CRLF=k4$.CR_LF_LEN=k4$.CR_LF=void 0;k4$.setTransportFactory=y74;k4$.defaultPort=g74;k4$.getUrlParseFn=h74;k4$.newTransport=u74;k4$.getResolveFn=l74;k4$.protoLen=V4$;k4$.extractProtocolMessage=c74;var x74=_J(),f74=ND(),b74=Rt(),xJ;function y74($){xJ=$}function g74(){return xJ!==void 0&&xJ.defaultPort!==void 0?xJ.defaultPort:f74.DEFAULT_PORT}function h74(){return xJ!==void 0&&xJ.urlParseFn?xJ.urlParseFn:void 0}function u74(){if(!xJ||typeof xJ.factory!=="function")throw Error("transport fn is not set");return xJ.factory()}function l74(){return xJ!==void 0&&xJ.dnsResolveFn?xJ.dnsResolveFn:void 0}k4$.CR_LF=`\r
1969
1969
  `;k4$.CR_LF_LEN=k4$.CR_LF.length;k4$.CRLF=b74.DataBuffer.fromAscii(k4$.CR_LF);k4$.CR=new Uint8Array(k4$.CRLF)[0];k4$.LF=new Uint8Array(k4$.CRLF)[1];function V4$($){for(let Z=0;Z<$.length;Z++){let Q=Z+1;if($.byteLength>Q&&$[Z]===k4$.CR&&$[Q]===k4$.LF)return Q+1}return 0}function c74($){let Z=V4$($);if(Z>0){let X=new Uint8Array($).slice(0,Z);return x74.TD.decode(X)}return""}});var wa0=v((y4$)=>{Object.defineProperty(y4$,"__esModule",{value:!0});y4$.ipV4=x4$;y4$.isIP=e74;y4$.parseIP=f4$;var qt=4,Kz=16,LY0=48,v4$=57,C4$=65,a74=70,_4$=97,s74=102,La0=16777215;function x4$($,Z,Q,X){let Y=new Uint8Array(Kz);return[0,0,0,0,0,0,0,0,0,0,255,255].forEach((G,K)=>{Y[K]=G}),Y[12]=$,Y[13]=Z,Y[14]=Q,Y[15]=X,Y}function e74($){return f4$($)!==void 0}function f4$($){for(let Z=0;Z<$.length;Z++)switch($[Z]){case".":return b4$($);case":":return $Q4($)}return}function b4$($){let Z=new Uint8Array(qt);for(let Q=0;Q<qt;Q++){if($.length===0)return;if(Q>0){if($[0]!==".")return;$=$.substring(1)}let{n:X,c:Y,ok:J}=ZQ4($);if(!J||X>255)return;$=$.substring(Y),Z[Q]=X}return x4$(Z[0],Z[1],Z[2],Z[3])}function $Q4($){let Z=new Uint8Array(Kz),Q=-1;if($.length>=2&&$[0]===":"&&$[1]===":"){if(Q=0,$=$.substring(2),$.length===0)return Z}let X=0;while(X<Kz){let{n:Y,c:J,ok:G}=QQ4($);if(!G||Y>65535)return;if(J<$.length&&$[J]==="."){if(Q<0&&X!=Kz-qt)return;if(X+qt>Kz)return;let K=b4$($);if(K===void 0)return;Z[X]=K[12],Z[X+1]=K[13],Z[X+2]=K[14],Z[X+3]=K[15],$="",X+=qt;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<Kz){if(Q<0)return;let Y=Kz-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 ZQ4($){let Z=0,Q=0;for(Z=0;Z<$.length&&LY0<=$.charCodeAt(Z)&&$.charCodeAt(Z)<=v4$;Z++)if(Q=Q*10+($.charCodeAt(Z)-LY0),Q>=La0)return{n:La0,c:Z,ok:!1};if(Z===0)return{n:0,c:0,ok:!1};return{n:Q,c:Z,ok:!0}}function QQ4($){let Z=0,Q=0;for(Q=0;Q<$.length;Q++){if(LY0<=$.charCodeAt(Q)&&$.charCodeAt(Q)<=v4$)Z*=16,Z+=$.charCodeAt(Q)-LY0;else if(_4$<=$.charCodeAt(Q)&&$.charCodeAt(Q)<=s74)Z*=16,Z+=$.charCodeAt(Q)-_4$+10;else if(C4$<=$.charCodeAt(Q)&&$.charCodeAt(Q)<=a74)Z*=16,Z+=$.charCodeAt(Q)-C4$+10;else break;if(Z>=La0)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 Ta0=v((h4$)=>{Object.defineProperty(h4$,"__esModule",{value:!0});h4$.Servers=h4$.ServerImpl=void 0;h4$.isIPV4OrHostname=g4$;h4$.hostPort=Aa0;var ja0=Gz(),Ea0=_K(),za0=wa0(),GQ4=ND(),KQ4=vJ();function g4$($){if($.indexOf("[")!==-1||$.indexOf("::")!==-1)return!1;if($.indexOf(".")!==-1)return!0;if($.split(":").length<=2)return!0;return!1}function Pa0($){return!g4$($)}function WQ4($){let Q=$.toUpperCase().indexOf("::FFFF:");if(Q!==-1&&$.indexOf(".")!==-1){let X=$.substring(Q+7);return X=X.replace("[",""),X.replace("]","")}return $}function Aa0($){if($=$.trim(),$.match(/^(.*:\/\/)(.*)/m))$=$.replace(/^(.*:\/\/)(.*)/gm,"$2");if($=WQ4($),Pa0($)&&$.indexOf("[")===-1)$=`[${$}]`;let Z=Pa0($)?$.match(/(]:)(\d+)/):$.match(/(:)(\d+)/),Q=Z&&Z.length===3&&Z[1]&&Z[2]?parseInt(Z[2]):GQ4.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 Bh{src;listen;hostname;port;didConnect;reconnects;lastConnect;gossiped;tlsName;resolves;constructor($,Z=!1){this.src=$,this.tlsName="";let Q=Aa0($);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,za0.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}://${Pa0(X)?"["+X+"]":X}`);J.port=`${this.port}`;let G=new Bh(J.host,!1);G.tlsName=this.hostname,Z.push(G)}}if($.randomize)(0,Ea0.shuffle)(Z);return this.resolves=Z,Z}}h4$.ServerImpl=Bh;class wY0{firstSelect;servers;currentServer;tlsName;randomize;constructor($={}){this.firstSelect=!0,this.servers=[],this.tlsName="",this.randomize=$.randomize||!1}setServers($){if(!Array.isArray($)||$.length===0)throw KQ4.InvalidArgumentError.format("servers","cannot be empty");let Z=(0,ja0.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}=Aa0(Y),G=Q.get(J);if(G)G.gossiped=!1,X.push(G);else X.push(new Bh(Y))}if(this.randomize)(0,Ea0.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,za0.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,ja0.getUrlParseFn)();$=Q?Q($):$;let X=new Bh($,Z);if((0,za0.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 wY0.freezeAll(this.servers)}snapshotForHandler(){let $=this.currentServer;if(!$)return this.snapshot();let Z=this.servers.indexOf($);if(Z<=0)return this.snapshot();return wY0.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,ja0.getUrlParseFn)(),J=new Map;if($.connect_urls&&$.connect_urls.length>0)$.connect_urls.forEach((K)=>{K=Y?Y(K,Z):K;let W=new Bh(K,!0);J.set(K,W)});let G=[];if(this.servers.forEach((K,W)=>{let H=K.listen;if(K.gossiped&&this.currentServer.listen!==H&&J.get(H)===void 0)G.push(W);J.delete(H)}),G.reverse(),G.forEach((K)=>{let W=this.servers.splice(K,1);X=X.concat(W[0].listen)}),J.forEach((K,W)=>{this.servers.push(K),Q.push(W)}),this.randomize&&Q.length>0){let K=this.currentServer,W=this.servers.filter((H)=>H!==K);(0,Ea0.shuffle)(W),this.servers=K?[K,...W]:W}return{added:Q,deleted:X}}}h4$.Servers=wY0});var jY0=v((m4$)=>{Object.defineProperty(m4$,"__esModule",{value:!0});m4$.QueuedIteratorImpl=void 0;var Ra0=_K(),l4$=vJ();class c4${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,Ra0.deferred)(),this.yields=[],this.iterClosed=(0,Ra0.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 l4$.InvalidOperationError("iterator cannot be used when a callback is registered");if(this.yielding)throw new l4$.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,Ra0.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}}m4$.QueuedIteratorImpl=c4$});var qa0=v((n4$)=>{Object.defineProperty(n4$,"__esModule",{value:!0});n4$.MuxSubscription=void 0;var NQ4=ND(),i4$=vJ();class p4${baseInbox;reqs;constructor(){this.reqs=new Map}size(){return this.reqs.size}init($){return this.baseInbox=`${(0,NQ4.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 i4$.NoRespondersError(X.requestSubject):null;X.resolver($,Z)}}}}close(){let $=new i4$.RequestError("connection closed");this.reqs.forEach((Z)=>{Z.resolver($,{})})}}n4$.MuxSubscription=p4$});var Ia0=v((r4$)=>{Object.defineProperty(r4$,"__esModule",{value:!0});r4$.Heartbeat=void 0;var BQ4=_K();class o4${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,BQ4.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})}}r4$.Heartbeat=o4$});var ka0=v((Z6$)=>{Object.defineProperty(Z6$,"__esModule",{value:!0});Z6$.DenoBuffer=Z6$.MAX_SIZE=Z6$.AssertionError=void 0;Z6$.assert=e4$;Z6$.concat=$6$;Z6$.append=DQ4;Z6$.readAll=LQ4;Z6$.writeAll=wQ4;var OQ4=_J();class Ma0 extends Error{constructor($){super($);this.name="AssertionError"}}Z6$.AssertionError=Ma0;function e4$($,Z="Assertion failed."){if(!$)throw new Ma0(Z)}var s4$=32768;Z6$.MAX_SIZE=4294967294;function EY0($,Z,Q=0){let X=Z.byteLength-Q;if($.byteLength>X)$=$.subarray(0,X);return Z.set($,Q),$.byteLength}function $6$($,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 DQ4($,Z){return $6$($,Uint8Array.of(Z))}class Va0{_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($){e4$($<=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=EY0(this._buf.subarray(this._off),$);return this._off+=Z,Z}writeByte($){return this.write(Uint8Array.of($))}writeString($){return this.write(OQ4.TE.encode($))}write($){let Z=this._grow($.byteLength);return EY0($,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)EY0(this._buf.subarray(this._off),this._buf);else if(X+$>Z6$.MAX_SIZE)throw Error("The buffer cannot be grown beyond the maximum size.");else{let Y=new Uint8Array(Math.min(2*X+$,Z6$.MAX_SIZE));EY0(this._buf.subarray(this._off),Y),this._buf=Y}return this._off=0,this._reslice(Math.min(Z+$,Z6$.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(s4$);while(!0){let X=this.capacity-this.length<s4$,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}}}Z6$.DenoBuffer=Va0;function LQ4($){let Z=new Va0;return Z.readFrom($),Z.bytes()}function wQ4($,Z){let Q=0;while(Q<Z.length)Q+=$.write(Z.subarray(Q))}});var _a0=v((G6$)=>{Object.defineProperty(G6$,"__esModule",{value:!0});G6$.cc=G6$.State=G6$.Parser=G6$.Kind=void 0;G6$.describe=RQ4;var Sa0=ka0(),Ca0=_J();G6$.Kind={OK:0,ERR:1,MSG:2,INFO:3,PING:4,PONG:5};function RQ4($){let Z,Q="";switch($.kind){case G6$.Kind.MSG:Z="MSG";break;case G6$.Kind.OK:Z="OK";break;case G6$.Kind.ERR:Z="ERR",Q=Ca0.TD.decode($.data);break;case G6$.Kind.PING:Z="PING";break;case G6$.Kind.PONG:Z="PONG";break;case G6$.Kind.INFO:Z="INFO",Q=Ca0.TD.decode($.data)}return`${Z}: ${Q}`}function X6$(){let $={};return $.sid=-1,$.hdr=-1,$.size=-1,$}var Y6$=48,qQ4=57,Oh=67108864;class J6${dispatcher;state;as;drop;hdr;ma;argBuf;msgBuf;constructor($){this.dispatcher=$,this.state=G6$.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 G6$.State.OP_START:switch(Q){case G6$.cc.M:case G6$.cc.m:this.state=G6$.State.OP_M,this.hdr=-1,this.ma=X6$();break;case G6$.cc.H:case G6$.cc.h:this.state=G6$.State.OP_H,this.hdr=0,this.ma=X6$();break;case G6$.cc.P:case G6$.cc.p:this.state=G6$.State.OP_P;break;case G6$.cc.PLUS:this.state=G6$.State.OP_PLUS;break;case G6$.cc.MINUS:this.state=G6$.State.OP_MINUS;break;case G6$.cc.I:case G6$.cc.i:this.state=G6$.State.OP_I;break;default:throw this.fail($.subarray(Z))}break;case G6$.State.OP_H:switch(Q){case G6$.cc.M:case G6$.cc.m:this.state=G6$.State.OP_M;break;default:throw this.fail($.subarray(Z))}break;case G6$.State.OP_M:switch(Q){case G6$.cc.S:case G6$.cc.s:this.state=G6$.State.OP_MS;break;default:throw this.fail($.subarray(Z))}break;case G6$.State.OP_MS:switch(Q){case G6$.cc.G:case G6$.cc.g:this.state=G6$.State.OP_MSG;break;default:throw this.fail($.subarray(Z))}break;case G6$.State.OP_MSG:switch(Q){case G6$.cc.SPACE:case G6$.cc.TAB:this.state=G6$.State.OP_MSG_SPC;break;default:throw this.fail($.subarray(Z))}break;case G6$.State.OP_MSG_SPC:switch(Q){case G6$.cc.SPACE:case G6$.cc.TAB:continue;default:this.state=G6$.State.MSG_ARG,this.as=Z}break;case G6$.State.MSG_ARG:switch(Q){case G6$.cc.CR:this.drop=1;break;case G6$.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=G6$.State.MSG_PAYLOAD,Z=this.as+this.ma.size-1;break}default:if(this.argBuf)this.argBuf.writeByte(Q)}break;case G6$.State.MSG_PAYLOAD:if(this.msgBuf)if(this.msgBuf.length>=this.ma.size){let X=this.msgBuf.bytes({copy:!1});this.dispatcher.push({kind:G6$.Kind.MSG,msg:this.ma,data:X}),this.argBuf=void 0,this.msgBuf=void 0,this.state=G6$.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:G6$.Kind.MSG,msg:this.ma,data:$.subarray(this.as,Z)}),this.argBuf=void 0,this.msgBuf=void 0,this.state=G6$.State.MSG_END;break;case G6$.State.MSG_END:switch(Q){case G6$.cc.NL:this.drop=0,this.as=Z+1,this.state=G6$.State.OP_START;break;default:continue}break;case G6$.State.OP_PLUS:switch(Q){case G6$.cc.O:case G6$.cc.o:this.state=G6$.State.OP_PLUS_O;break;default:throw this.fail($.subarray(Z))}break;case G6$.State.OP_PLUS_O:switch(Q){case G6$.cc.K:case G6$.cc.k:this.state=G6$.State.OP_PLUS_OK;break;default:throw this.fail($.subarray(Z))}break;case G6$.State.OP_PLUS_OK:switch(Q){case G6$.cc.NL:this.dispatcher.push({kind:G6$.Kind.OK}),this.drop=0,this.state=G6$.State.OP_START;break}break;case G6$.State.OP_MINUS:switch(Q){case G6$.cc.E:case G6$.cc.e:this.state=G6$.State.OP_MINUS_E;break;default:throw this.fail($.subarray(Z))}break;case G6$.State.OP_MINUS_E:switch(Q){case G6$.cc.R:case G6$.cc.r:this.state=G6$.State.OP_MINUS_ER;break;default:throw this.fail($.subarray(Z))}break;case G6$.State.OP_MINUS_ER:switch(Q){case G6$.cc.R:case G6$.cc.r:this.state=G6$.State.OP_MINUS_ERR;break;default:throw this.fail($.subarray(Z))}break;case G6$.State.OP_MINUS_ERR:switch(Q){case G6$.cc.SPACE:case G6$.cc.TAB:this.state=G6$.State.OP_MINUS_ERR_SPC;break;default:throw this.fail($.subarray(Z))}break;case G6$.State.OP_MINUS_ERR_SPC:switch(Q){case G6$.cc.SPACE:case G6$.cc.TAB:continue;default:this.state=G6$.State.MINUS_ERR_ARG,this.as=Z}break;case G6$.State.MINUS_ERR_ARG:switch(Q){case G6$.cc.CR:this.drop=1;break;case G6$.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:G6$.Kind.ERR,data:X}),this.drop=0,this.as=Z+1,this.state=G6$.State.OP_START;break}default:if(this.argBuf)this.argBuf.write(Uint8Array.of(Q))}break;case G6$.State.OP_P:switch(Q){case G6$.cc.I:case G6$.cc.i:this.state=G6$.State.OP_PI;break;case G6$.cc.O:case G6$.cc.o:this.state=G6$.State.OP_PO;break;default:throw this.fail($.subarray(Z))}break;case G6$.State.OP_PO:switch(Q){case G6$.cc.N:case G6$.cc.n:this.state=G6$.State.OP_PON;break;default:throw this.fail($.subarray(Z))}break;case G6$.State.OP_PON:switch(Q){case G6$.cc.G:case G6$.cc.g:this.state=G6$.State.OP_PONG;break;default:throw this.fail($.subarray(Z))}break;case G6$.State.OP_PONG:switch(Q){case G6$.cc.NL:this.dispatcher.push({kind:G6$.Kind.PONG}),this.drop=0,this.state=G6$.State.OP_START;break}break;case G6$.State.OP_PI:switch(Q){case G6$.cc.N:case G6$.cc.n:this.state=G6$.State.OP_PIN;break;default:throw this.fail($.subarray(Z))}break;case G6$.State.OP_PIN:switch(Q){case G6$.cc.G:case G6$.cc.g:this.state=G6$.State.OP_PING;break;default:throw this.fail($.subarray(Z))}break;case G6$.State.OP_PING:switch(Q){case G6$.cc.NL:this.dispatcher.push({kind:G6$.Kind.PING}),this.drop=0,this.state=G6$.State.OP_START;break}break;case G6$.State.OP_I:switch(Q){case G6$.cc.N:case G6$.cc.n:this.state=G6$.State.OP_IN;break;default:throw this.fail($.subarray(Z))}break;case G6$.State.OP_IN:switch(Q){case G6$.cc.F:case G6$.cc.f:this.state=G6$.State.OP_INF;break;default:throw this.fail($.subarray(Z))}break;case G6$.State.OP_INF:switch(Q){case G6$.cc.O:case G6$.cc.o:this.state=G6$.State.OP_INFO;break;default:throw this.fail($.subarray(Z))}break;case G6$.State.OP_INFO:switch(Q){case G6$.cc.SPACE:case G6$.cc.TAB:this.state=G6$.State.OP_INFO_SPC;break;default:throw this.fail($.subarray(Z))}break;case G6$.State.OP_INFO_SPC:switch(Q){case G6$.cc.SPACE:case G6$.cc.TAB:continue;default:this.state=G6$.State.INFO_ARG,this.as=Z}break;case G6$.State.INFO_ARG:switch(Q){case G6$.cc.CR:this.drop=1;break;case G6$.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:G6$.Kind.INFO,data:X}),this.drop=0,this.as=Z+1,this.state=G6$.State.OP_START;break}default:if(this.argBuf)this.argBuf.writeByte(Q)}break;default:throw this.fail($.subarray(Z))}}if((this.state===G6$.State.MSG_ARG||this.state===G6$.State.MINUS_ERR_ARG||this.state===G6$.State.INFO_ARG)&&!this.argBuf)this.argBuf=new Sa0.DenoBuffer($.subarray(this.as,Z-this.drop));if(this.state===G6$.State.MSG_PAYLOAD&&!this.msgBuf){if(!this.argBuf)this.cloneMsgArg();this.msgBuf=new Sa0.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 Sa0.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 G6$.cc.SPACE:case G6$.cc.TAB:case G6$.cc.CR:case G6$.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],Oh);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],Oh);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}: ${Ca0.TD.decode($)}`)}processHeaderMsgArgs($){let Z=[],Q=-1;for(let X=0;X<$.length;X++)switch($[X]){case G6$.cc.SPACE:case G6$.cc.TAB:case G6$.cc.CR:case G6$.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],Oh),this.ma.size=this.protoParseInt(Z[3],Oh);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],Oh),this.ma.size=this.protoParseInt(Z[4],Oh);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]<Y6$||$[X]>qQ4)return-1;Q=Q*10+($[X]-Y6$)}return Z!==void 0&&Q>Z?-1:Q}}G6$.Parser=J6$;G6$.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};G6$.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 AY0=v((W6$)=>{Object.defineProperty(W6$,"__esModule",{value:!0});W6$.MsgHdrsImpl=void 0;W6$.canonicalMIMEHeaderKey=xa0;W6$.headers=VQ4;var K6$=_J(),vK=ND(),PY0=vJ();function xa0($){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 PY0.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 VQ4($=0,Z=""){if($===0&&Z!=="")throw PY0.InvalidArgumentError.format("code","is required");else if($>0&&Z==="")throw PY0.InvalidArgumentError.format("description","is required");return new Dh($,Z)}var va0="NATS/1.0";class Dh{_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 Dh,X=K6$.TD.decode($).split(`\r
1970
1970
  `),Y=X[0];if(Y!==va0){let J=Y.replace(va0,"").trim();if(J.length>0){if(Z._code=parseInt(J,10),isNaN(Z._code))Z._code=0;let G=Z._code.toString();J=J.replace(G,""),Z._description=J.trim()}}if(X.length>=1)X.slice(1).map((J)=>{if(J){let G=J.indexOf(":");if(G>-1){let K=J.slice(0,G),W=J.slice(G+1).trim();Z.append(K,W)}}});return Z}toString(){if(this.headers.size===0&&this._code===0)return"";let $=va0;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
1971
1971
  ${Z}: ${Q[X]}`;return`${$}\r
@@ -4638,7 +4638,7 @@ ${Y}`,$.data)}function HC0($){let Z=$;if(!Z||Z.isError!==!0||!Array.isArray(Z.co
4638
4638
  ${Z}`}:X)}}var gJ8=D(()=>{I9()});async function Sm6($,Z,Q){if(!$)return!1;let X=await $.get("tools",Z).catch(()=>null);if(!X)return!1;for(let Y of X)if(typeof Y==="object"&&Y!==null&&Y.name===Q)return Y.annotations?.readOnlyHint===!0;return!1}function AL1(){return{kind:"org"}}function bL($,Z,Q,X){let Y=new KZ({name:`lazy-${$.id}`,version:"1.0.0"},{capabilities:{},jsonSchemaValidator:x5}),J=$.metadata?.isDevConnection===!0,G=null,K=!1;function W(){if(K)return Promise.reject(Error(`MCP client for connection ${$.id} is closed`));if(!G){zK0($.id);let L=d7($,Z,Q).then((w)=>{PK0($.id);let j=w.onclose;return w.onclose=()=>{if(G===L)G=null;j?.()},w}).catch((w)=>{throw G=null,AK0($.id),w});G=L}return G}let H=(L,w)=>L!==void 0||w!==void 0,F=(L,w,j,E)=>{return async(z,P)=>{if($.connection_type==="VIRTUAL"||J||!X||H(z,P)){let q=await W();return w(q,z,P)}let A=await fL(L,$.id,async()=>{let q=await W(),V=await w(q);return j(V)},X,(q)=>Z.pendingRevalidations.push(q),xL);return E(A??[])}};Y.listTools=F("tools",(L,w,j)=>L.listTools(w,j),(L)=>L.tools,(L)=>({tools:L})),Y.listResources=F("resources",(L,w,j)=>L.listResources(w,j),(L)=>L.resources,(L)=>({resources:L})),Y.listPrompts=F("prompts",(L,w,j)=>L.listPrompts(w,j),(L)=>L.prompts,(L)=>({prompts:L}));let U=eW0(),N=$.connection_type!=="VIRTUAL"&&!J,B=async(L,w,j)=>{let E=L?.name,z=U&&N&&typeof E==="string"&&await Sm6(X,$.id,E);if(U&&z&&!w)return await U.fetch({type:"tools/call",connectionId:$.id,scope:AL1(),params:{name:E,arguments:L?.arguments},fetchLive:async()=>{return(await W()).callTool(L,w,j)},shouldCache:(q)=>q?.isError!==!0,onRevalidation:(q)=>Z.pendingRevalidations.push(q)});let P=await W();if(U&&N&&!z)try{return await P.callTool(L,w,j)}finally{dl($.id)}return P.callTool(L,w,j)};Y.callTool=async(L,w,j)=>{let E=L?.name,z=typeof E==="string"?E:null,P=L?.arguments,A=async()=>{return(await X.get("tools",$.id).catch(()=>null))?.find((x)=>typeof x==="object"&&x!==null&&x.name===z)?.inputSchema},q=async(d)=>{let x=fJ8(d,P);if(!x)return null;return await B({...L,arguments:x},w,j).catch(()=>null)},V;try{V=await B(L,w,j)}catch(d){if(!z||!X||!(d instanceof z1)||d.code!==V1.InvalidParams)throw d;let x=await A(),b=await q(x);if(b&&!HC0(b))return b;throw bJ8(d,z,x,P)}if(!z||!X||!HC0(V))return V;let I=await A(),C=await q(I);if(C&&!HC0(C))return C;return yJ8(V,PL1(z,I,P))},Y.getPrompt=async(L,w)=>{if(!U||!N)return(await W()).getPrompt(L,w);return await U.fetch({type:"prompts/get",connectionId:$.id,scope:AL1(),params:L,fetchLive:async()=>{return(await W()).getPrompt(L,w)},onRevalidation:(E)=>Z.pendingRevalidations.push(E)})},Y.readResource=async(L,w)=>{if(!U||!N){if(process.env?.MCP_CACHE_DEBUG)console.log("[mcp-read-cache] BYPASS (VIRTUAL)",$.id,"resources/read");return(await W()).readResource(L,w)}return await U.fetch({type:"resources/read",connectionId:$.id,scope:AL1(),params:L,fetchLive:async()=>{return(await W()).readResource(L,w)},onRevalidation:(E)=>Z.pendingRevalidations.push(E)})},Y.listResourceTemplates=async(L,w)=>{return(await W()).listResourceTemplates(L,w)};let O=Y.close.bind(Y);return Y.close=async()=>{if(K=!0,G){let L=await G.catch(()=>null);if(L)await L.close().catch(()=>{})}await O()},Y}var $s=D(()=>{lH();SQ();I9();j41();ea();Ds();VY();Bs();gJ8()});function wW1($){return{client:{callTool:$.callTool.bind($),listTools:$.listTools.bind($)}}}async function Cm6($,Z,{superUser:Q}){if(!Q&&!Z.organization?.id)throw Error("Organization context is required");let X=typeof $==="string"?await Z.storage.connections.findById($,Z.organization?.id):$;if(!X)throw Error("Connection not found");if(Z.organization&&X.organization_id!==Z.organization.id)throw Error("Connection does not belong to the active organization");if(!Z.organization){let H=await Z.db.selectFrom("organization").select(["id","slug","name"]).where("id","=",X.organization_id).executeTakeFirst();Z.organization=H?{id:H.id,slug:H.slug,name:H.name}:{id:X.organization_id}}if(X.status!=="active")throw Error(`Connection inactive: ${X.status}`);let Y=bL(X,Z,Q,V9()??void 0),J=xz(Y,{name:"mcp-cms-proxy-client",version:"1.0.0"},{capabilities:{tools:{},resources:{},prompts:{}},toolCallTimeoutMs:Du}),{client:G,server:K}=M11();await J.connect(K);let W=new KZ({name:"mcp-cms-proxy-client",version:"1.0.0"},{jsonSchemaValidator:x5});return await W.connect(G),W}async function hJ8($,Z){return Cm6($,Z,{superUser:!1})}var jW1=D(()=>{$s();VY();SQ();lH()});function TL1($,Z){for(let[Q,X]of Object.entries(Z)){let Y=$[Q];if(!Y||Y.length===0){let G=$["*"];if(!G||G.length===0)return!1;if(G.includes("*"))continue;let K=new Set(G);for(let W of X)if(!K.has(W))return!1;continue}if(Y.includes("*"))continue;let J=new Set(Y);for(let G of X)if(!J.has(G))return!1}return!0}import{sql as RL1}from"kysely";function FC0($){if($==null)return null;return typeof $==="string"?$:$.toISOString()}function UC0($){return`msg_async_stub_${$}`}async function qL1($,Z){await $.deleteFrom("thread_messages").where("id","=",UC0(Z)).execute(),await $.deleteFrom("thread_message_parts").where("message_id","=",UC0(Z)).execute()}function _m6($){if($==null)return null;if(typeof $!=="string")return $;try{return JSON.parse($)}catch{return null}}function IL1($){return{id:$.id,interactionId:$.interaction_id??null,toolCallId:$.tool_call_id,organizationId:$.organization_id,threadId:$.thread_id,messageId:$.message_id??null,provider:$.provider,modelId:$.model_id,query:$.query,status:$.status,attempts:$.attempts??0,lastPolledAt:FC0($.last_polled_at),lastError:$.last_error??null,inputTokens:$.input_tokens??null,outputTokens:$.output_tokens??null,citations:_m6($.citations),resultUri:$.result_uri??null,resultPreview:$.result_preview??null,resultContent:$.result_content??null,createdAt:FC0($.created_at)??"",updatedAt:FC0($.updated_at)??"",completedAt:FC0($.completed_at)}}class ML1{inner;organizationId;constructor($,Z){this.inner=$;this.organizationId=Z}requireOrg(){if(!this.organizationId)throw Error("OrgScopedAsyncResearchJobStorage: requires an authenticated organization");return this.organizationId}setOrganizationId($){this.organizationId=$}upsertPending($){return this.inner.upsertPending({organizationId:this.requireOrg(),...$})}findByToolCall($){return this.inner.findByToolCall(this.requireOrg(),$)}markPolling($,Z,Q){return this.inner.markPolling(this.requireOrg(),$,Z,Q)}recordPoll($,Z){return this.inner.recordPoll(this.requireOrg(),$,Z)}markCompleted($,Z){return this.inner.markCompleted(this.requireOrg(),$,Z)}markFailed($,Z){return this.inner.markFailed(this.requireOrg(),$,Z)}markCancelled($,Z){return this.inner.markCancelled(this.requireOrg(),$,Z)}}class n80{db;constructor($){this.db=$}async upsertPending($){let Z=new Date().toISOString(),Q=await this.db.insertInto("async_research_jobs").values({organization_id:$.organizationId,thread_id:$.threadId,tool_call_id:$.toolCallId,message_id:$.messageId??null,provider:$.provider,model_id:$.modelId,query:$.query,status:"pending",attempts:0,updated_at:Z}).onConflict((Y)=>Y.columns(["organization_id","tool_call_id"]).doNothing()).returningAll().executeTakeFirst();if(Q)return IL1(Q);let X=await this.db.selectFrom("async_research_jobs").selectAll().where("organization_id","=",$.organizationId).where("tool_call_id","=",$.toolCallId).executeTakeFirstOrThrow();return IL1(X)}async findByToolCall($,Z){let Q=await this.db.selectFrom("async_research_jobs").selectAll().where("organization_id","=",$).where("tool_call_id","=",Z).executeTakeFirst();return Q?IL1(Q):null}async markPolling($,Z,Q,X){let Y=new Date().toISOString();await this.db.transaction().execute(async(J)=>{if(await J.updateTable("async_research_jobs").set({status:"polling",interaction_id:Q,last_polled_at:Y,updated_at:Y}).where("organization_id","=",$).where("tool_call_id","=",Z).execute(),(await J.selectFrom("threads").select("message_storage_version").where("id","=",X.threadId).where("organization_id","=",$).executeTakeFirst())?.message_storage_version!==2)return;let K=UC0(Z);await J.insertInto("thread_message_parts").values([{id:`${X.threadId}:${K}:0`,seq:0,org_id:$,thread_id:X.threadId,run_id:X.threadId,message_id:K,role:"assistant",kind:"tool_call",payload:JSON.stringify({type:`tool-${X.toolName}`,toolCallId:Z,state:"input-available",input:{query:X.query}}),payload_ref:null,metadata:null,created_at:Y},{id:`${X.threadId}:${K}:finish`,seq:1,org_id:$,thread_id:X.threadId,run_id:X.threadId,message_id:K,role:"assistant",kind:"finish",payload:JSON.stringify({}),payload_ref:null,metadata:null,created_at:Y}]).onConflict((W)=>W.column("id").doNothing()).execute()})}async recordPoll($,Z,Q){let X=new Date().toISOString();await this.db.updateTable("async_research_jobs").set({attempts:RL1`attempts + 1`,last_polled_at:X,...Q!==void 0?{last_error:Q}:{},updated_at:X}).where("organization_id","=",$).where("tool_call_id","=",Z).execute()}async markCompleted($,Z,Q){let X=new Date().toISOString();await this.db.transaction().execute(async(Y)=>{await Y.updateTable("async_research_jobs").set({status:"completed",input_tokens:Q.inputTokens,output_tokens:Q.outputTokens,citations:JSON.stringify(Q.citations),result_uri:Q.resultUri,result_preview:Q.resultPreview,result_content:Q.resultContent,completed_at:X,updated_at:X}).where("organization_id","=",$).where("tool_call_id","=",Z).execute(),await qL1(Y,Z)})}async markFailed($,Z,Q){let X=new Date().toISOString();await this.db.transaction().execute(async(Y)=>{await Y.updateTable("async_research_jobs").set({status:"failed",last_error:Q,completed_at:X,updated_at:X}).where("organization_id","=",$).where("tool_call_id","=",Z).execute(),await qL1(Y,Z)})}async markCancelled($,Z,Q){let X=new Date().toISOString();await this.db.transaction().execute(async(Y)=>{await Y.updateTable("async_research_jobs").set({status:"cancelled",last_error:Q??null,completed_at:X,updated_at:X}).where("organization_id","=",$).where("tool_call_id","=",Z).execute(),await qL1(Y,Z)})}async sweepAbandoned($){let Z=new Date(Date.now()-$).toISOString(),Q=new Date().toISOString();return await this.db.transaction().execute(async(X)=>{let Y=await X.updateTable("async_research_jobs").set({status:"abandoned",completed_at:Q,updated_at:Q,last_error:RL1`COALESCE(last_error, '') || ' [abandoned by sweeper]'`}).where("status","in",["pending","polling"]).where(RL1`COALESCE(last_polled_at, created_at) < ${Z}::timestamptz`).returning(["tool_call_id"]).execute();if(Y.length===0)return 0;let J=Y.map((G)=>UC0(G.tool_call_id));return await X.deleteFrom("thread_messages").where("id","in",J).execute(),await X.deleteFrom("thread_message_parts").where("message_id","in",J).execute(),Y.length})}}var VL1=()=>{};class kL1{db;vault;constructor($,Z){this.db=$;this.vault=Z}async get($){let Z=await this.db.selectFrom("subsidized_gateway_keys").select("encrypted_key").where("organization_id","=",$).executeTakeFirst();if(!Z)return null;return await this.vault.decrypt(Z.encrypted_key)}async put($,Z){let Q=await this.vault.encrypt(Z);await this.db.insertInto("subsidized_gateway_keys").values({organization_id:$,encrypted_key:Q}).onConflict((X)=>X.column("organization_id").doUpdateSet({encrypted_key:Q})).execute()}}import{sql as vm6}from"kysely";function uJ8($){return $ instanceof Date?$.toISOString():String($)}class SL1{db;vault;constructor($,Z){this.db=$;this.vault=Z}rowToInfo($){return{id:$.id,organizationId:$.organization_id,name:$.name,description:$.description,bucket:$.bucket,region:$.region,endpoint:$.endpoint,forcePathStyle:$.force_path_style,prefix:$.prefix,publicUrlBase:$.public_url_base,credentialType:$.credential_type??"static",refreshUrl:$.refresh_url,siteSlug:$.site_slug,createdBy:$.created_by,createdAt:uJ8($.created_at),updatedBy:$.updated_by,updatedAt:uJ8($.updated_at)}}async create($){let Z=x8("fcfg"),Q=await this.vault.encrypt(JSON.stringify($.credentials)),X=new Date,Y=await this.db.insertInto("org_file_configs").values({id:Z,organization_id:$.organizationId,name:$.name,description:$.description??null,bucket:$.bucket,region:$.region,endpoint:$.endpoint??null,force_path_style:$.forcePathStyle??!1,prefix:$.prefix??null,public_url_base:$.publicUrlBase??null,credential_type:$.credentials.type,refresh_url:$.refreshUrl??null,site_slug:$.siteSlug??null,encrypted_credentials:Q,created_by:$.createdBy,created_at:X,updated_by:$.createdBy,updated_at:X}).returning(NC0).executeTakeFirstOrThrow();return this.rowToInfo(Y)}async update($){if(!await this.db.selectFrom("org_file_configs").where("id","=",$.id).where("organization_id","=",$.organizationId).select(["id"]).executeTakeFirst())throw new Yi($.id);let Q={updated_by:$.updatedBy,updated_at:new Date};if($.name!==void 0)Q.name=$.name;if($.description!==void 0)Q.description=$.description;if($.bucket!==void 0)Q.bucket=$.bucket;if($.region!==void 0)Q.region=$.region;if($.endpoint!==void 0)Q.endpoint=$.endpoint;if($.forcePathStyle!==void 0)Q.force_path_style=$.forcePathStyle;if($.prefix!==void 0)Q.prefix=$.prefix;if($.publicUrlBase!==void 0)Q.public_url_base=$.publicUrlBase;if($.refreshUrl!==void 0)Q.refresh_url=$.refreshUrl;if($.siteSlug!==void 0)Q.site_slug=$.siteSlug;if($.credentials!==void 0)Q.credential_type=$.credentials.type,Q.encrypted_credentials=await this.vault.encrypt(JSON.stringify($.credentials));let X=await this.db.updateTable("org_file_configs").set(Q).where("id","=",$.id).where("organization_id","=",$.organizationId).returning(NC0).executeTakeFirstOrThrow();return this.rowToInfo(X)}async delete($,Z){if(!await this.db.selectFrom("org_file_configs").where("id","=",$).where("organization_id","=",Z).select(["id"]).executeTakeFirst())throw new Yi($);await this.db.deleteFrom("org_file_configs").where("id","=",$).where("organization_id","=",Z).execute()}async list($){return(await this.db.selectFrom("org_file_configs").where("organization_id","=",$).select(NC0).orderBy("created_at","desc").execute()).map((Q)=>this.rowToInfo(Q))}async findById($,Z){let Q=await this.db.selectFrom("org_file_configs").where("id","=",$).where("organization_id","=",Z).select(NC0).executeTakeFirst();if(!Q)throw new Yi($);return this.rowToInfo(Q)}async resolveById($,Z){let Q=await this.db.selectFrom("org_file_configs").where("id","=",$).where("organization_id","=",Z).selectAll().executeTakeFirst();if(!Q)throw new Yi($);return{info:this.rowToInfo(Q),credentials:await this.decodeCredentials(Q)}}async resolveByName($){let Z=await this.db.selectFrom("org_file_configs").where("organization_id","=",$.organizationId).where(vm6`lower(name) = lower(${$.name})`).selectAll().executeTakeFirst();if(!Z)throw new Yi($.name);return{info:this.rowToInfo(Z),credentials:await this.decodeCredentials(Z)}}async decodeCredentials($){if($.credential_type==="managed")return{type:"managed"};let Z=await this.vault.decrypt($.encrypted_credentials),Q=JSON.parse(Z);if(($.credential_type??"static")==="sts-session")return{type:"sts-session",apiKey:String(Q.apiKey)};return{type:"static",accessKeyId:String(Q.accessKeyId),secretAccessKey:String(Q.secretAccessKey)}}}var NC0,Yi;var lJ8=D(()=>{CQ();NC0=["id","organization_id","name","description","bucket","region","endpoint","force_path_style","prefix","public_url_base","credential_type","refresh_url","site_slug","created_by","created_at","updated_by","updated_at"];Yi=class Yi extends Error{constructor($){super(`File config ${$} not found`);this.name="OrgFileConfigNotFoundError"}}});function cJ8($){return $ instanceof Date?$.toISOString():String($)}function t80($){return{slug:$.slug,organizationId:$.organization_id,source:$.source,createdBy:$.created_by,createdAt:cJ8($.created_at),updatedBy:$.updated_by,updatedAt:cJ8($.updated_at)}}class ib{db;constructor($){this.db=$}async claimSite($){if(!p7($.slug))throw Error(`Invalid site slug "${$.slug}" \u2014 must be 1-60 chars of lowercase letters, digits, or hyphens, starting with a letter or digit`);let Z=new Date,Q=await this.db.insertInto("org_sites").values({slug:$.slug,organization_id:$.organizationId,source:$.source??"deco-import",created_by:$.by,created_at:Z,updated_by:$.by,updated_at:Z}).onConflict((J)=>J.column("slug").doNothing()).returningAll().executeTakeFirst();if(Q)return t80(Q);let X=await this.getBySlug($.slug);if(!X)throw new o80($.slug,"unknown");if(X.organizationId!==$.organizationId)throw new o80($.slug,X.organizationId);let Y=await this.db.updateTable("org_sites").set({source:$.source??X.source,updated_by:$.by,updated_at:Z}).where("slug","=",$.slug).where("organization_id","=",$.organizationId).returningAll().executeTakeFirstOrThrow();return t80(Y)}async reassignSite($){if(!p7($.slug))throw Error(`Invalid site slug "${$.slug}" \u2014 must be 1-60 chars of lowercase letters, digits, or hyphens, starting with a letter or digit`);let Z=new Date,Q=await this.db.insertInto("org_sites").values({slug:$.slug,organization_id:$.organizationId,source:$.source??"manual",created_by:$.by,created_at:Z,updated_by:$.by,updated_at:Z}).onConflict((X)=>X.column("slug").doUpdateSet({organization_id:$.organizationId,source:$.source??"manual",updated_by:$.by,updated_at:Z})).returningAll().executeTakeFirstOrThrow();return t80(Q)}async releaseSite($,Z){let Q=await this.db.deleteFrom("org_sites").where("slug","=",$).where("organization_id","=",Z).executeTakeFirst();return Number(Q.numDeletedRows??0n)>0}async getBySlug($){let Z=await this.db.selectFrom("org_sites").selectAll().where("slug","=",$).executeTakeFirst();return Z?t80(Z):null}async listByOrg($){return(await this.db.selectFrom("org_sites").selectAll().where("organization_id","=",$).orderBy("slug","asc").execute()).map((Q)=>t80(Q))}async isOwnedBy($,Z){return!!await this.db.selectFrom("org_sites").select("slug").where("slug","=",$).where("organization_id","=",Z).executeTakeFirst()}}var o80;var CL1=D(()=>{HF();o80=class o80 extends Error{slug;ownerOrganizationId;constructor($,Z){super(`Site slug "${$}" is already owned by another organization`);this.slug=$;this.ownerOrganizationId=Z;this.name="OrgSiteConflictError"}}});function _L1($){return $?`${$.id}:${$.updatedAt}`:null}class vL1{db;constructor($){this.db=$}async create($,Z){return await this.db.deleteFrom("github_connect_flows").where("expires_at","<=",new Date).execute(),this.db.transaction().execute(async(Q)=>{await Q.selectFrom("organization").select("id").where("id","=",$.organizationId).forUpdate().executeTakeFirstOrThrow(),await Q.deleteFrom("github_connect_flows").where("organization_id","=",$.organizationId).where("user_id","=",$.userId).execute();let X=crypto.randomUUID();return await Q.insertInto("github_connect_flows").values({id:X,organization_id:$.organizationId,user_id:$.userId,encrypted_access_token:Z,expires_at:new Date(Date.now()+600000)}).execute(),X})}async get($,Z){return this.db.selectFrom("github_connect_flows").selectAll().where("id","=",$).where("organization_id","=",Z.organizationId).where("user_id","=",Z.userId).where("expires_at",">",new Date).executeTakeFirst()}async refresh($,Z,Q){return(await this.db.updateTable("github_connect_flows").set({encrypted_access_token:Q}).where("id","=",$).where("organization_id","=",Z.organizationId).where("user_id","=",Z.userId).where("expires_at",">",new Date).executeTakeFirst()).numUpdatedRows>0n}async cancel($,Z){await this.db.deleteFrom("github_connect_flows").where("id","=",$).where("organization_id","=",Z.organizationId).where("user_id","=",Z.userId).execute()}async connect($,Z,Q,X){return this.db.transaction().execute(async(Y)=>{if(await Y.selectFrom("organization").select("id").where("id","=",Z.organizationId).forUpdate().executeTakeFirstOrThrow(),!await Y.deleteFrom("github_connect_flows").where("id","=",$).where("organization_id","=",Z.organizationId).where("user_id","=",Z.userId).where("expires_at",">",new Date).returning("id").executeTakeFirst())return null;let G=new $w(Y),K=await G.findByExternalId({organizationId:Z.organizationId,host:Q.host,externalAccountId:Q.externalAccountId});if(_L1(K)!==X)throw new BC0("GitHub repository access changed. Review the selection again.");return G.upsert({...Q,organizationId:Z.organizationId,createdBy:Z.userId})})}}var BC0;var xL1=D(()=>{AH0();BC0=class BC0 extends Error{}});class fL1{db;constructor($){this.db=$}async create($){await this.deleteExpired($.organizationId);let Z=crypto.randomUUID();return await this.db.insertInto("git_provider_oauth_states").values({id:Z,organization_id:$.organizationId,user_id:$.userId,provider:$.provider,host:$.host,return_to:$.returnTo,expires_at:new Date(Date.now()+600000)}).execute(),Z}async consume($){let Z=await this.db.deleteFrom("git_provider_oauth_states").where("id","=",$).returningAll().executeTakeFirst();if(!Z)return null;if((Z.expires_at instanceof Date?Z.expires_at:new Date(Z.expires_at))<new Date)return null;return{organizationId:Z.organization_id,userId:Z.user_id,provider:Z.provider,host:Z.host,returnTo:Z.return_to}}async deleteExpired($){await this.db.deleteFrom("git_provider_oauth_states").where("organization_id","=",$).where("expires_at","<",new Date).execute()}}function mJ8($){return $ instanceof Date?$.toISOString():String($)}class oB{db;vault;constructor($,Z){this.db=$;this.vault=Z}async toEntity($){return{id:$.id,organizationId:$.organization_id,siteUrl:$.site_url,email:$.email,apiToken:await this.vault.decrypt($.api_token),boardId:$.board_id,boardName:$.board_name,webhookSecret:$.webhook_secret,enabled:$.enabled,createdBy:$.created_by,createdAt:mJ8($.created_at),updatedAt:mJ8($.updated_at)}}async getByOrg($){let Z=await this.db.selectFrom("org_jira_integrations").selectAll().where("organization_id","=",$).executeTakeFirst();return Z?this.toEntity(Z):null}async upsert($){let Z=await this.vault.encrypt($.apiToken),Q=await this.db.insertInto("org_jira_integrations").values({organization_id:$.organizationId,site_url:$.siteUrl,email:$.email,api_token:Z,board_id:$.boardId,board_name:$.boardName,enabled:$.enabled,created_by:$.createdBy}).onConflict((X)=>X.column("organization_id").doUpdateSet({site_url:$.siteUrl,email:$.email,api_token:Z,board_id:$.boardId,board_name:$.boardName,enabled:$.enabled,updated_at:new Date})).returningAll().executeTakeFirstOrThrow();return this.toEntity(Q)}async getByWebhookSecret($){let Z=await this.db.selectFrom("org_jira_integrations").selectAll().where("webhook_secret","=",$).executeTakeFirst();return Z?this.toEntity(Z):null}async delete($){return(await this.db.deleteFrom("org_jira_integrations").where("organization_id","=",$).executeTakeFirst()).numDeletedRows>0n}async getById($){let Z=await this.db.selectFrom("org_jira_integrations").selectAll().where("id","=",$).executeTakeFirst();return Z?this.toEntity(Z):null}async listEnabledIds(){return(await this.db.selectFrom("org_jira_integrations").select("id").where("enabled","=",!0).orderBy("created_at","asc").execute()).map((Z)=>Z.id)}async getLinkByIssueId($,Z){let Q=await this.db.selectFrom("task_board_item_jira_links").select(["item_id","jira_issue_id","jira_issue_key"]).where("organization_id","=",$).where("jira_issue_id","=",Z).executeTakeFirst();return Q?dJ8(Q):null}async getLinkByItemId($,Z){let Q=await this.db.selectFrom("task_board_item_jira_links").select(["item_id","jira_issue_id","jira_issue_key"]).where("item_id","=",$).where("organization_id","=",Z).executeTakeFirst();return Q?dJ8(Q):null}async createLink($){await this.db.insertInto("task_board_item_jira_links").values({item_id:$.itemId,organization_id:$.organizationId,jira_issue_id:$.jiraIssueId,jira_issue_key:$.jiraIssueKey}).onConflict((Z)=>Z.doNothing()).execute()}async claimTrigger($,Z,Q){return((await this.db.insertInto("jira_trigger_claims").values({organization_id:$,jira_issue_id:Z,changelog_id:Q}).onConflict((Y)=>Y.doNothing()).executeTakeFirst()).numInsertedOrUpdatedRows??0n)>0n}async listAutomations($){return(await this.db.selectFrom("org_jira_column_automations").select(["jira_status","prompt"]).where("organization_id","=",$).orderBy("jira_status","asc").execute()).map((Q)=>({jiraStatus:Q.jira_status,prompt:Q.prompt}))}async getAutomation($,Z){let Q=await this.db.selectFrom("org_jira_column_automations").select(["jira_status","prompt"]).where("organization_id","=",$).where("jira_status","=",Z).executeTakeFirst();return Q?{jiraStatus:Q.jira_status,prompt:Q.prompt}:null}async upsertAutomation($,Z,Q){return await this.db.insertInto("org_jira_column_automations").values({organization_id:$,jira_status:Z,prompt:Q}).onConflict((X)=>X.columns(["organization_id","jira_status"]).doUpdateSet({prompt:Q,updated_at:new Date})).execute(),{jiraStatus:Z,prompt:Q}}async removeAutomation($,Z){return((await this.db.deleteFrom("org_jira_column_automations").where("organization_id","=",$).where("jira_status","=",Z).executeTakeFirst()).numDeletedRows??0n)>0n}}function dJ8($){return{itemId:$.item_id,jiraIssueId:$.jira_issue_id,jiraIssueKey:$.jira_issue_key}}class bL1{db;constructor($){this.db=$}async listByOrg($){return(await this.db.selectFrom("task_board_column_automations").select(["column_key","prompt"]).where("organization_id","=",$).orderBy("column_key","asc").execute()).map((Q)=>({columnKey:Q.column_key,prompt:Q.prompt}))}async get($,Z){let Q=await this.db.selectFrom("task_board_column_automations").select(["column_key","prompt"]).where("organization_id","=",$).where("column_key","=",Z).executeTakeFirst();if(!Q)return null;let X=Q;return{columnKey:X.column_key,prompt:X.prompt}}async upsert($,Z,Q){return await this.db.insertInto("task_board_column_automations").values({id:`tbca_${$}_${Z}`,organization_id:$,column_key:Z,prompt:Q}).onConflict((X)=>X.columns(["organization_id","column_key"]).doUpdateSet({prompt:Q,updated_at:new Date})).execute(),{columnKey:Z,prompt:Q}}async remove($,Z){return((await this.db.deleteFrom("task_board_column_automations").where("organization_id","=",$).where("column_key","=",Z).executeTakeFirst()).numDeletedRows??0n)>0n}}class yL1{db;constructor($){this.db=$}async listByOrg($){return(await this.db.selectFrom("task_board_prompts").select(["column_key","prompt"]).where("organization_id","=",$).orderBy("column_key","asc").execute()).map((Q)=>({columnKey:Q.column_key,prompt:Q.prompt})).sort((Q,X)=>Q.columnKey===null?-1:X.columnKey===null?1:0)}async promptFor($,Z){let X=(await this.listByOrg($)).filter((Y)=>Y.columnKey===null||Y.columnKey===Z).map((Y)=>Y.prompt.trim()).filter(Boolean);return X.length>0?X.join(`
4639
4639
 
4640
4640
  `):void 0}async upsert($,Z,Q){return await this.db.insertInto("task_board_prompts").values({id:iJ8($,Z),organization_id:$,column_key:Z,prompt:Q}).onConflict((X)=>X.column("id").doUpdateSet({prompt:Q,updated_at:new Date})).execute(),{columnKey:Z,prompt:Q}}async remove($,Z){return((await this.db.deleteFrom("task_board_prompts").where("id","=",iJ8($,Z)).where("organization_id","=",$).executeTakeFirst()).numDeletedRows??0n)>0n}}var iJ8=($,Z)=>`tbp_${$}_${Z??""}`;function gL1($){let Z=new Set;for(let Q of $.matchAll(xm6))if(Z.add(Q[2]),Z.size>=50)break;return[...Z]}var xm6;var pJ8=D(()=>{xm6=/\[@([^\]]+)\]\(mention:([^)\s]+)\)/g});async function nJ8($){let{db:Z,organizationId:Q,actorId:X}=$;try{let Y=new Set(gL1($.previousBody??"")),G=gL1($.body).filter((H)=>!Y.has(H)).filter((H)=>H!==X);if(G.length===0)return;let W=(await Z.selectFrom("member").select("userId").where("organizationId","=",Q).where("userId","in",G).execute()).map((H)=>H.userId);if(W.length===0)return;await Qm({db:Z,taskBoardItemId:$.taskBoardItemId,type:"mentioned",actorId:X,alsoSubscribe:W,recipients:W})}catch(Y){console.error("[notifications] mention fan-out failed",Y)}}var tJ8=D(()=>{pJ8();Hq0()});import{sql as fm6}from"kysely";class hL1{db;constructor($){this.db=$}async listUnread($,Z,Q={}){let X=Math.min(Q.limit??bm6,ym6),Y=Q.cursor?await this.anchorExists(Q.cursor):!1,J=this.db.selectFrom("notifications").select(["id","task_board_item_id","type","data","created_at"]).where("user_id","=",$).where("organization_id","=",Z).where("read_at","is",null).orderBy("created_at","desc").orderBy("id","desc").limit(X+1);if(Y)J=J.where(fm6`(created_at, id) <
4641
- (SELECT created_at, id FROM notifications WHERE id = ${Q.cursor})`);let G=await J.execute(),K=G.slice(0,X),W=await this.db.selectFrom("notifications").select((F)=>F.fn.countAll().as("count")).where("user_id","=",$).where("organization_id","=",Z).where("read_at","is",null).executeTakeFirst(),H=K[K.length-1];return{nextCursor:G.length>X&&H?H.id:null,notifications:K.map((F)=>({id:F.id,taskBoardItemId:F.task_board_item_id,type:F.type,data:Zm.parse(F.data),createdAt:gm6(F.created_at)})),unreadCount:Number(W?.count??0)}}async anchorExists($){return!!await this.db.selectFrom("notifications").select("id").where("id","=",$).executeTakeFirst()}async markRead($,Z,Q){if(Q&&Q.length===0)return 0;let X=this.db.updateTable("notifications").set({read_at:new Date}).where("user_id","=",$).where("organization_id","=",Z).where("read_at","is",null);if(Q)X=X.where("id","in",Q);let Y=await X.executeTakeFirst();return Number(Y.numUpdatedRows??0n)}async setSubscribed($,Z,Q){await this.db.insertInto("notification_subscriptions").values({id:x8("nsub"),user_id:$,task_board_item_id:Z,subscribed:Q}).onConflict((X)=>X.columns(["user_id","task_board_item_id"]).doUpdateSet({subscribed:Q,updated_at:new Date})).execute()}async notify($){await Qm({...$,db:this.db})}async notifyMentions($){await nJ8({...$,db:this.db})}async listSubscribers($){return(await this.db.selectFrom("notification_subscriptions").select("user_id").where("task_board_item_id","=",$).where("subscribed","=",!0).execute()).map((Q)=>Q.user_id)}}var bm6=20,ym6=50,gm6=($)=>$ instanceof Date?$.toISOString():$;var oJ8=D(()=>{CQ();Wq0();Hq0();tJ8()});class uL1{db;constructor($){this.db=$}async create($,Z,Q){await this.deleteExpired(Z);let X=crypto.randomUUID(),Y=new Date(Date.now()+600000);return await this.db.insertInto("oauth_pkce_states").values({id:X,organization_id:Z,user_id:Q,code_verifier:$,expires_at:Y,created_at:new Date}).execute(),X}async deleteExpired($){await this.db.deleteFrom("oauth_pkce_states").where("organization_id","=",$).where("expires_at","<",new Date).execute()}async consume($,Z,Q){let X=await this.db.deleteFrom("oauth_pkce_states").where("id","=",$).where("organization_id","=",Z).where("user_id","=",Q).returningAll().executeTakeFirst();if(!X)throw Error("Invalid or expired OAuth state token");if((X.expires_at instanceof Date?X.expires_at:new Date(X.expires_at))<new Date)throw Error("OAuth state token has expired");return X.code_verifier}}class lL1{db;vault;constructor($,Z){this.db=$;this.vault=Z}async upsert($){let Z=await this.vault.encrypt($.accessToken),Q=$.expiresAt??null,X=new Date;return await this.db.insertInto("claude_subscriptions").values({user_id:$.userId,encrypted_access_token:Z,expires_at:Q,created_at:X}).onConflict((Y)=>Y.column("user_id").doUpdateSet({encrypted_access_token:Z,expires_at:Q,created_at:X})).execute(),{linkedAt:X.toISOString(),expiresAt:Q?.toISOString()??null}}async find($){let Z=await this.db.selectFrom("claude_subscriptions").select(["created_at","expires_at"]).where("user_id","=",$).executeTakeFirst();if(!Z)return null;return{linkedAt:new Date(Z.created_at).toISOString(),expiresAt:Z.expires_at?new Date(Z.expires_at).toISOString():null}}async findLiveToken($){let Z=await this.db.selectFrom("claude_subscriptions").select(["encrypted_access_token","expires_at"]).where("user_id","=",$).executeTakeFirst();if(!Z)return null;if(Z.expires_at&&new Date(Z.expires_at).getTime()<=Date.now())return null;return this.vault.decrypt(Z.encrypted_access_token)}async delete($){await this.db.deleteFrom("claude_subscriptions").where("user_id","=",$).execute()}}function hm6($){return $.includes("/")?$.split("/").slice(1).join("/"):$}function um6($){let Z=$.supported_parameters.includes("tools"),Q=$.supported_parameters.includes("reasoning");return{providerId:"openrouter",modelId:hm6($.id),title:$.name,description:$.description||null,logo:null,capabilities:[...new Set([...$.architecture.input_modalities.map((X)=>X==="image"?"vision":X),...$.architecture.output_modalities,...Z?["tools"]:[],...Q?["reasoning"]:[]])],limits:{contextWindow:$.context_length,maxOutputTokens:$.top_provider.max_completion_tokens||null},costs:{input:$.pricing.prompt,output:$.pricing.completion}}}function aJ8($){let Z=new Map;for(let Q of $){let X={description:Q.description,capabilities:Q.capabilities,limits:Q.limits,costs:Q.costs};Z.set(Q.modelId,X);let Y=Q.modelId.replace(/\./g,"-");if(Y!==Q.modelId)Z.set(Y,X)}return Z}async function lm6($){if($){let Z=await $.get(rJ8,"openrouter");if(Z)return aJ8(Z)}try{let Z=await fetch("https://openrouter.ai/api/v1/models",{signal:AbortSignal.timeout(1e4)});if(!Z.ok)return new Map;let{data:Q}=await Z.json(),X=Q.map(um6);if($)await $.set(rJ8,"openrouter",X);return aJ8(X)}catch{return new Map}}function cm6($){let Z=$.replace(/\./g,"-"),Q=$.replace(/-\d{8}$/,""),X=Q.replace(/\./g,"-");return[...new Set([$,Z,Q,X])]}function mm6($){return $.providerId==="anthropic"||$.modelId.startsWith("anthropic/")}function eJ8($,Z){if(mm6(Z)&&$.includes("vision")&&!$.includes("file"))return[...$,"file"];return $}function dm6($,Z){return $.map((Q)=>{let Y=cm6(Q.modelId).map((K)=>Z.get(K)).find(Boolean),J=Q.capabilities.length?Q.capabilities:Y?.capabilities??[],G=eJ8(J,Q);if(!Y)return G===J?Q:{...Q,capabilities:G};return{...Q,description:Q.description??Y.description??null,capabilities:G,limits:Q.limits??Y.limits??null,costs:Q.costs??Y.costs??null}})}class cL1{storage;cache;constructor($,Z){this.storage=$;this.cache=Z}async activate($,Z){let{keyInfo:Q,apiKey:X}=await this.storage.resolve($,Z),Y=XQ()[Q.providerId];if(!Y)throw Error(`Unknown provider: ${Q.providerId}`);return Y.create(X)}async listModels($,Z){let{keyInfo:Q,apiKey:X}=await this.storage.resolve($,Z),Y=Q.providerId,J=XQ()[Y];if(!J)throw Error(`Unknown provider: ${Y}`);if(this.cache){let U=await this.cache.get(Z,Y);if(U)return sJ8(U,J,X)}let K=await J.create(X).listModels(),W=new Set,H=K.filter((U)=>{if(U.deprecated)return!1;if(W.has(U.modelId))return!1;return W.add(U.modelId),!0});if(Y!=="openrouter"){let U=await lm6(this.cache);H=dm6(H,U)}else H=H.map((U)=>({...U,capabilities:eJ8(U.capabilities,U)}));let F=H.map((U)=>({...U,providerId:Y}));if(this.cache)await this.cache.set(Z,Y,F);return sJ8(F,J,X)}}function sJ8($,Z,Q){let Y=Z.create(Q).asyncResearch;if(!Y)return $;return $.map((J)=>Y.canHandle(J.modelId)?{...J,asyncResearch:!0}:J)}var rJ8="_global";var $38=D(()=>{vB()});import{SpanStatusCode as Z38}from"@opentelemetry/api";function pm6($){if(!$)return;try{let Z=JSON.parse($);if(typeof Z!=="object"||Z===null||Array.isArray(Z))return;let Q={};for(let[X,Y]of Object.entries(Z)){if(Object.keys(Q).length>=im6)break;if(typeof Y==="string"&&X.length<=Q38&&Y.length<=Q38)Q[X]=Y}return Object.keys(Q).length>0?Q:void 0}catch{return}}function nm6($,Z){return Z?.connectionId??$?.headers.get("x-caller-id")??void 0}function tm6($){try{let Z=new URL($.url).pathname.split("/").filter(Boolean);if(Z[0]==="api"&&Z[1])return decodeURIComponent(Z[1])}catch{}return}function iL1($){let{auth:Z,headers:Q,role:X,permissions:Y,userId:J,apiKeyId:G,organizationId:K}=$,W=!!G,H=Z.api.hasPermission;return{isApiKeyPrincipal:W,hasPermission:async(F,U)=>{if(W)return TL1(Y??{},F);let N=!!U?.organizationId&&!!K&&U.organizationId!==K,B=U?U.role:X;if(l9(B))return!0;if(Y&&!N)return TL1(Y,F);let O=_Y8(U?.role,F,vY8());if(O!=="fallback")return O==="grant";if(!H)return console.error("[Auth] hasPermission API not available"),!1;let L=U?.organizationId?{organizationId:U.organizationId}:{};try{if((await H({headers:Q,body:{permission:F,...L}}))?.success===!0)return!0;let j=NN$(F);return(await H({headers:Q,body:{permission:j,...L}}))?.success===!0}catch(w){let j=w?.statusCode;if(j!==401&&j!==403)console.error("[Auth] Permission check failed:",w instanceof Error?w.message:String(w));return!1}},organization:{create:async(F)=>{return Z.api.createOrganization({body:F})},update:async(F)=>{return Z.api.updateOrganization({headers:Q,body:F})},delete:async(F)=>{await Z.api.deleteOrganization({headers:Q,body:{organizationId:F}})},get:async(F)=>{return Z.api.getFullOrganization({headers:Q,query:F?{organizationId:F}:void 0})},list:async()=>{return(await Z.api.listOrganizations({headers:Q})).filter((U)=>!a5(U))},addMember:async(F)=>{return Z.api.addMember({body:F})},removeMember:async(F)=>{return Z.api.removeMember({headers:Q,body:F})},listMembers:async(F)=>{return Z.api.listMembers({headers:Q,query:F?{organizationId:F.organizationId,limit:F.limit,offset:F.offset,filterField:F.filterField,filterValue:F.filterValue}:void 0})},updateMemberRole:async(F)=>{return Z.api.updateMemberRole({headers:Q,body:F})}},apiKey:{create:async(F)=>{return Z.api.createApiKey({body:{...F,userId:J}})},list:async()=>{return Z.api.listApiKeys({headers:Q})},update:async(F)=>{return Z.api.updateApiKey({body:{...F,userId:J}})},delete:async(F)=>{await Z.api.deleteApiKey({headers:Q,body:{keyId:F}})}}}}async function dP($,Z,Q){if(yh.includes(Q))return;let X=await $.selectFrom("organizationRole").select(["permission"]).where("organizationId","=",Z).where("role","=",Q).executeTakeFirst();if(!X?.permission)return;try{return JSON.parse(X.permission)}catch{console.error(`[Auth] Failed to parse permissions for role: ${Q}`);return}}function rm6($,Z,Q){$.delete(Z),$.set(Z,{archived:Q,at:Date.now()})}function am6($,Z,Q){if($.size<=Z)return;let X=Date.now();for(let[Y,J]of $)if(X-J.at>=Q)$.delete(Y);if($.size>Z){let Y=$.size-Z,J=0;for(let G of $.keys()){if(J>=Y)break;$.delete(G),J++}}}async function Y38($,Z,Q,X){let Y=mL1.get(Q);if(Y&&Date.now()-Y.at<X38)return Y.archived;let J=await Z.measure(X,()=>$.selectFrom("organization").select(["metadata"]).where("id","=",Q).executeTakeFirst()),G=a5(J);return rm6(mL1,Q,G),am6(mL1,om6,X38),G}async function dL1($,Z,Q,X,Y){let J=Y?.get(Q,X);if(J)return J;let K=(await Z.measure("auth_query_membership",()=>$.selectFrom("member").select(["member.role"]).where("member.userId","=",Q).where("member.organizationId","=",X).executeTakeFirst()))?.role;if(K)Y?.set(Q,X,K);return K}function sm6($,Z){if(!$)return!0;return Z===$}async function em6($,Z,Q,X,Y){let J=EK0($.headers,"token");if(!J)return;let G=await Q.measure("auth_verify_onbehalf_studio_jwt",()=>ts0(J));if(!G?.sub)return;let K=G.metadata?.organizationId;if(!sm6(X,K))return;let W=X?await dL1(Z,Q,G.sub,X,Y):G.user?.role??void 0;return{id:G.sub,email:G.user?.email,name:G.user?.name,role:W}}async function $d6($,Z,Q,X=G38,Y){let J=$.headers.get("Authorization");try{let G=new Headers($.headers);G.set("X-MCP-Session-Auth","true");let K=await X.measure("auth_get_mcp_session",()=>Z.api.getMcpSession({headers:G}));if(K){let W=K.userId,H=$.headers.get("x-org-id"),F=$.headers.get("x-org-slug"),U=tm6($),N=await X.measure("auth_query_membership",()=>{let w=Q.selectFrom("member").innerJoin("organization","organization.id","member.organizationId").select(["member.role","member.organizationId","organization.id as orgId","organization.slug as orgSlug","organization.name as orgName","organization.metadata as orgMetadata"]).where("member.userId","=",W);if(U)return w.where("organization.slug","=",U).executeTakeFirst();if(H)return w.where("organization.id","=",H).executeTakeFirst();if(F)return w.where("organization.slug","=",F).executeTakeFirst();return w.orderBy("member.createdAt","asc").limit(2).execute().then((j)=>j.length===1?j[0]:void 0)});if(a5({metadata:N?.orgMetadata}))throw Error("Organization is archived");let B=N?.role,O=N?{id:N.orgId,slug:N.orgSlug,name:N.orgName}:void 0;if(N&&B)Y?.set(W,N.organizationId,B);let L;if(N&&B)L=await X.measure("auth_fetch_role_permissions",()=>dP(Q,N.organizationId,B));return{user:{id:W,role:B},role:B,permissions:L,organization:O}}}catch(G){console.error("[Auth] OAuth session check failed:",G)}if(J?.startsWith("Bearer ")){let G=J.replace("Bearer ","").trim();try{let K=await X.measure("auth_verify_studio_token",()=>ts0(G));if(K){let W,H=K.metadata?.organizationId;if(K.sub&&H)W=await dL1(Q,X,K.sub,H,Y);let F,U=K.metadata?.organizationId;if(U){let N=K.metadata?.organizationName,B=K.metadata?.organizationSlug;if(N||B){if(await Y38(Q,X,U,"auth_query_org_archived_for_studio_token"))return{user:void 0};F={id:U,name:N,slug:B}}else{let O=await X.measure("auth_query_org_for_studio_token",()=>Q.selectFrom("organization").select(["id","slug","name","metadata"]).where("id","=",U).executeTakeFirst());if(a5(O))return{user:void 0};F=O?{id:O.id,slug:O.slug,name:O.name}:{id:U}}}return{user:{id:K.sub,connectionId:K.metadata?.connectionId,role:W},role:W,permissions:K.permissions,tokenOrganizationId:H,organization:F}}}catch{}try{let K=await X.measure("auth_verify_api_key",()=>Z.api.verifyApiKey({body:{key:G}}));if(K?.valid&&K.key){let W=K.key.metadata?.organization;if(W?.id&&await Y38(Q,X,W.id,"auth_query_org_for_api_key"))return{user:void 0};let H=K.key.permissions,F,U=K.key.userId;if(U&&W?.id)F=await dL1(Q,X,U,W.id,Y);let N=await em6($,Q,X,W?.id,Y);return{apiKeyId:K.key.id,user:N??{id:K.key.userId,role:F},role:N?N.role:F,permissions:H,apiKey:{id:K.key.id,name:K.key.name??"",userId:K.key.userId,metadata:K.key.metadata},tokenOrganizationId:W?.id,organization:W?{id:W.id,slug:W.slug,name:W.name}:void 0}}}catch(K){let W=K;if(W.body?.code==="INVALID_API_KEY"||W.message?.includes("Invalid API key"))console.warn("[Auth] invalid API key (Bearer)",{path:new URL($.url).pathname,method:$.method,ua:$.headers.get("user-agent")??void 0,ip:$.headers.get("x-forwarded-for")??$.headers.get("x-real-ip")??void 0,tokenPrefix:G.slice(0,8)});else console.error("[Auth] API key check failed:",W)}}try{let G=new Headers($.headers);G.delete("Authorization");let K=await X.measure("auth_get_session",()=>Z.api.getSession({headers:G}));if(K){let W,H,F=$.headers.get("x-org-id"),U=$.headers.get("x-org-slug");if(!F&&!U&&$.method.toUpperCase()==="GET")try{let N=new URL($.url).searchParams;F=N.get("x-org-id"),U=N.get("x-org-slug")}catch{}if(F||U){let N=await X.measure("auth_query_membership_from_header",()=>{let B=Q.selectFrom("member").innerJoin("organization","organization.id","member.organizationId").select(["member.role","organization.id as orgId","organization.slug as orgSlug","organization.name as orgName","organization.metadata as orgMetadata"]).where("member.userId","=",K.user.id);if(F)B=B.where("organization.id","=",F);else if(U)B=B.where("organization.slug","=",U);return B.executeTakeFirst()});if(a5({metadata:N?.orgMetadata}))throw Error("Organization is archived");if(N)W={id:N.orgId,slug:N.orgSlug,name:N.orgName},H=N.role}else if(K.session.activeOrganizationId){let N=await X.measure("auth_get_full_organization",()=>Z.api.getFullOrganization({headers:G}).catch(()=>null));if(N){if(a5(N))throw Error("Organization is archived");W={id:N.id,slug:N.slug,name:N.name},H=N.members?.find((O)=>O.userId===K.user.id)?.role}else W={id:K.session.activeOrganizationId,slug:"",name:""}}return{user:{id:K.user.id,email:K.user.email,emailVerified:!!K.user.emailVerified,name:K.user.name,image:K.user.image??void 0,role:H},role:H,organization:W}}}catch(G){let K=G;console.error("[Auth] Session check failed:",JSON.stringify({message:K.message,body:K.body,stack:K.stack},null,2))}return{user:void 0}}async function K38($){let Z=new VX($.encryption.key),Q=k0(),X=Q.clickhouseUrl,Y=!!X,J=!Y&&!!Q.monitoringS3Bucket,G=Y?"clickhouse":"duckdb",{resolve:K}=await import("path"),W=K(IK()),H=K(YN()),F=(A)=>`read_ndjson('${W}/${A}/**/*.ndjson', auto_detect=true)`,U=(A)=>`read_ndjson('${H}/${A}/**/*.ndjson', auto_detect=true)`,N,B,O,L,w=!1;if($.monitoringEngines)N=$.monitoringEngines.monitoringEngine,B=$.monitoringEngines.metricEngine,O=F,L=U;else if(Y){let A=Q.clickhouseMaxMemoryUsage?{maxMemoryUsage:String(Q.clickhouseMaxMemoryUsage)}:void 0;N=new Ua(X,A),B=new Ua(X,A),O=(q)=>"studio_monitoring_logs",L=(q)=>"studio_monitoring_logs"}else if(J){let A=Q.monitoringS3AccessKeyId??Q.s3AccessKeyId,q=Q.monitoringS3SecretAccessKey??Q.s3SecretAccessKey,V=Q.duckdbExtensionDirectory;if(!A||!q||!V)throw Error("MONITORING_S3_BUCKET is set but the GCS monitoring path is misconfigured: MONITORING_S3_ACCESS_KEY_ID/S3_ACCESS_KEY_ID, MONITORING_S3_SECRET_ACCESS_KEY/S3_SECRET_ACCESS_KEY, and DUCKDB_EXTENSION_DIRECTORY are all required.");let I={endpoint:Q.monitoringS3Endpoint??Q.s3Endpoint??"storage.googleapis.com",region:Q.monitoringS3Region??Q.s3Region,accessKeyId:A,secretAccessKey:q,extensionDirectory:V},C=new Fa(I,{memoryLimit:Q.duckdbMemoryLimit,threads:Q.duckdbThreads});N=C,B=C;let d=Q.monitoringS3Bucket,x=Q.monitoringS3Prefix??"",b=(m,y)=>pU$({bucket:d,prefix:x,range:y});O=b,L=b,w=!0}else{let{engine:A}=await s81({basePath:IK()}),{engine:q}=await s81({basePath:YN()});N=A,B=q,O=F,L=U}let j=new ju($.db),E=new n80($.db),z=new Da($.db),P={connections:new so($.db,Z),connectionCredentialVault:new B$1($.db),organizationSettings:new OP($.db),userModelPreferences:new $41($.db),monitoring:new z$1(N,O,B,L,G,w),virtualMcps:new Eu($.db),users:new D41($.db),tags:new La($.db),organizationBilling:new aH($.db),virtualMcpPluginConfigs:new Z41($.db),aiProviderKeys:new ca($.db,Z,$.providerKeyCache),subsidizedGatewayKeys:new kL1($.db,Z),secrets:new oY1($.db,Z),orgFileConfigs:new SL1($.db,Z),orgSites:new ib($.db),orgRepoSyncs:new FA($.db),gitProviderAccounts:new $w($.db),gitProviderAccountCredentials:new bs($.db,Z),gitProviderOAuthStates:new fL1($.db),githubConnectFlows:new vL1($.db),repositories:new ys($.db),jiraIntegrations:new oB($.db,Z),taskBoard:new j3($.db),columnAutomations:new bL1($.db),taskBoardPrompts:new yL1($.db),notifications:new hL1($.db),orgFsEntries:new nt($.db),oauthPkceStates:new uL1($.db),claudeSubscriptions:new lL1($.db,Z),automations:JK0($.db),triggerCallbackTokens:new Ba($.db),orgSsoConfig:new W41($.db,Z),orgSsoSessions:new H41($.db),registry:{items:new wl($.db),publishRequests:new jl($.db),publishApiKeys:new El($.db),monitorRuns:new DK0($.db),monitorResults:new LK0($.db),monitorConnections:new wK0($.db)},brandContext:new Oa($.db),organizationDomains:new dJ($.db),organizationJoinRequests:new Ll($.db),kv:z,interests:new K41(z)};return async(A,q)=>{let V=q?.timings??G38,I=WC0(),C=A?await $.observability.tracer.startActiveSpan("studio.auth",async(E0)=>{try{let g0=await $d6(A,$.auth,$.db,V,$.memberRoleCache);return E0.setStatus({code:Z38.OK}),g0}catch(g0){throw E0.setStatus({code:Z38.ERROR,message:g0.message}),E0.recordException(g0),g0}finally{E0.end()}}):{user:void 0},d=nm6(A,C.user),x=iL1({auth:$.auth,headers:A?.headers??new Headers,role:C.role,permissions:C.permissions,userId:C.user?.id,apiKeyId:C.apiKeyId,organizationId:C.organization?.id}),b={user:C.user,tokenOrganizationId:C.tokenOrganizationId,permissions:C.permissions,permissionsOrganizationId:C.permissions?C.organization?.id:void 0};if(C.apiKey)b.apiKey=C.apiKey;let m=C.organization,y=A?k0().baseUrl??`${new URL(A.url).origin}`:w5(),p=new Tz(b.user?.id,void 0,x,C.role,"self",void 0,m?.id),Y0={...P,virtualMcps:HK$(P.virtualMcps),threads:new H$1(j,m?.id),asyncResearchJobs:new ML1(E,m?.id)},L0=new cL1(Y0.aiProviderKeys,$.modelListCache),s=x7(),r=!m?null:s?AX(s,m.id):new KG(m.id,y),O0=m&&r?new WG(r,Y0.orgFsEntries,m.id):null;Yp0(Y0,{objectStorage:r,baseUrl:y,orgSlug:m?.slug});let Z0={timings:V,auth:b,connectionId:d,organization:m,storage:Y0,vault:Z,authInstance:$.auth,boundAuth:x,access:p,db:$.db,tracer:$.observability.tracer,meter:$.observability.meter,baseUrl:y,objectStorage:r,orgFs:O0,metadata:{requestId:crypto.randomUUID(),timestamp:new Date,wellKnownForwardableHeaders:Object.fromEntries(Zd6.map((E0)=>[E0,A?.headers.get(E0)??null]).filter(([E0,g0])=>g0!==null)),userAgent:(A?EK0(A.headers,"client"):null)||A?.headers.get("User-Agent")||void 0,ipAddress:(A?.headers.get("CF-Connecting-IP")||A?.headers.get("X-Forwarded-For"))??void 0,properties:pm6(A?EK0(A.headers,"properties"):null)},aiProviders:L0,createMCPProxy:async(E0)=>{return await hJ8(E0,Z0)},invalidateMemberRole:$.memberRoleCache?(E0,g0)=>$.memberRoleCache.invalidate(E0,g0):void 0,getOrCreateClient:I,pendingRevalidations:[],firecrawlApiKey:k0().firecrawlApiKey};return Z0}}function pw($,Z){$.storage.threads.setOrganizationId(Z.id),$.storage.asyncResearchJobs.setOrganizationId(Z.id);let Q=x7();$.objectStorage=Q?AX(Q,Z.id):new KG(Z.id,$.baseUrl),$.orgFs=new WG($.objectStorage,$.storage.orgFsEntries,Z.id),Yp0($.storage,{objectStorage:$.objectStorage,baseUrl:$.baseUrl,orgSlug:Z.slug??void 0})}var im6=50,Q38=500,X38=60000,om6=1e4,mL1,J38,r7,G38,Zd6;var WF=D(()=>{ED();zD();A$();E5();F$1();WG0();O$1();DK$();nU$();$G();e81();tU$();Q41();X41();J41();FN$();O41();jK0();AN();w41();jW1();VQ();QL1();ao();VL1();EL1();y61();Y00();lJ8();CL1();AH0();gs();xL1();zB();oJ8();ls0();wN();$38();JN();qh();PX0();mL1=new Map;r7={set:($)=>{J38=$},create:async($,Z)=>{return await J38($,Z)}},G38={measure:async($,Z)=>{return await Z()}},Zd6=["x-hub-signature-256"]});import{DBOS as OC0,SchedulerMode as Qd6}from"@dbos-inc/dbos-sdk";function W38($){nL1=$}function H38(){if(!nL1)throw Error("[org-fs] org-repo-sync runtime not initialized \u2014 setOrgRepoSyncRuntime() must run before the workflow fires");return nL1}async function Yd6($,Z){let Q=await $.selectFrom("organization").select(["id","slug","name"]).where("id","=",Z).executeTakeFirst();if(!Q)return null;let X=await r7.create();return X.organization={id:Q.id,slug:Q.slug,name:Q.name},pw(X,{id:Q.id,slug:Q.slug}),X}async function Jd6($){try{let{db:Z}=H38(),Q=await Yd6(Z,$.organizationId);if(!Q)return{id:$.id,volume:$.volume,error:"organization no longer exists"};let X=await oH0(Q,$);return"error"in X?{id:X.id,volume:X.volume,error:X.error}:{id:X.id,volume:X.volume}}catch(Z){return{id:$.id,volume:$.volume,error:Z instanceof Error?Z.message:String(Z)}}}async function Gd6($,Z){let Q=await OC0.runStep(()=>new FA(H38().db).listEnabled(),{name:"loadOrgRepoSyncConfigs"});for(let X of Q){let Y=await OC0.runStep(()=>Jd6(X),{name:`syncOrgRepo:${X.id}`});if(Y.error)console.warn(`[org-fs] org repo sync ${Y.id} (${Y.volume}) failed: ${Y.error}`)}}function F38(){if(pL1)return;pL1=OC0.registerWorkflow(Gd6,{name:"orgRepoSyncWorkflow"}),OC0.registerScheduled(pL1,{name:"orgRepoSyncWorkflow",crontab:Xd6,mode:Qd6.ExactlyOncePerIntervalWhenActive})}var Xd6="7-59/10 * * * *",nL1=null,pL1=null;var U38=D(()=>{WF();rH0()});import{DBOS as DC0,SchedulerMode as Kd6}from"@dbos-inc/dbos-sdk";function N38($){oL1=$}function B38(){if(!oL1)throw Error("[task-board-archive] runtime not initialized \u2014 setTaskBoardArchiveSweepRuntime() must run before the workflow fires");return oL1}async function Ud6($,Z){try{let Q=await hF(B38().db,$);if(!Q)return{organizationId:$,archived:0};let{archived:X}=await Rh$(Q,$,Z);return{organizationId:$,archived:X}}catch(Q){return{organizationId:$,archived:0,error:Q instanceof Error?Q.message:String(Q)}}}async function Nd6($,Z){let Q=new Date($.getTime()-Hd6),X=await DC0.runStep(()=>new j3(B38().db).listItemsAwaitingArchive(Q,Fd6),{name:"loadArchiveCandidates"});if(X.length===0)return;let Y=await Promise.all(Nq0(X).map(({organizationId:G,itemIds:K})=>DC0.runStep(()=>Ud6(G,K),{name:`archiveMergedForOrg:${G}`})));for(let G of Y)if(G.error)console.warn(`[task-board-archive] org ${G.organizationId} failed: ${G.error}`);let J=Y.reduce((G,K)=>G+K.archived,0);if(J>0)console.log(`[task-board-archive] archived ${J} of ${X.length} candidates`)}function O38(){if(tL1)return;tL1=DC0.registerWorkflow(Nd6,{name:"taskBoardArchiveSweepWorkflow"}),DC0.registerScheduled(tL1,{name:"taskBoardArchiveSweepWorkflow",crontab:Wd6,mode:Kd6.ExactlyOncePerIntervalWhenActive})}var Wd6="23 * * * *",Hd6=432000000,Fd6=200,oL1=null,tL1=null;var D38=D(()=>{zB();Xm();Jm()});async function Bd6($,Z){let Q=await $.storage.tags.listOrgTags(Z),X=Q.find((J)=>J.name.toLowerCase()===LC0);if(X)return X.id;return(await $.storage.tags.createTag(Z,LC0,jH0(Q.length))).id}async function Od6($,Z,Q,X,Y){let J=await $.storage.taskBoard.getById(Q,Z);if(!J||!Vh$(J.status))return!1;let G=await $.storage.taskBoard.listPrs(Q,Z),K=await Promise.all(G.map(async(H)=>({...H,...await Y($,Z,H)})));if(!Ef(K))return!1;await $.storage.taskBoard.addItemTags(Q,[await X()],"system");let W=await $.storage.taskBoard.getById(Q,Z);if(!W)return!1;return await y6($,{taskBoardItemId:Q,action:"tags_changed",actorId:null,data:{from:J.tags,to:W.tags,reason:"merged_pr_auto_tag"}}),B8(Z,W),!0}async function L38($,Z,Q,X=Bq0){let Y=null,J=()=>Y??=Bd6($,Z),G=0;for(let K of Q)try{if(await Od6($,Z,K,J,X))G+=1}catch(W){console.error(`[task-board-merged-tag] ${K} failed`,W)}return{tagged:G}}var LC0="merged";var w38=D(()=>{R4();rQ();Xm();_W();gZ();O9()});import{DBOS as wC0,SchedulerMode as Dd6}from"@dbos-inc/dbos-sdk";function j38($){aL1=$}function E38(){if(!aL1)throw Error("[task-board-merged-tag] runtime not initialized \u2014 setTaskBoardMergedTagSweepRuntime() must run before the workflow fires");return aL1}async function jd6($,Z){try{let Q=await hF(E38().db,$);if(!Q)return{organizationId:$,tagged:0};let{tagged:X}=await L38(Q,$,Z);return{organizationId:$,tagged:X}}catch(Q){return{organizationId:$,tagged:0,error:Q instanceof Error?Q.message:String(Q)}}}async function Ed6(){let $=await wC0.runStep(()=>new j3(E38().db).listItemsAwaitingMergedTag(LC0,wd6),{name:"loadMergedTagCandidates"});if($.length===0)return;let Z=await Promise.all(Nq0($).map(({organizationId:X,itemIds:Y})=>wC0.runStep(()=>jd6(X,Y),{name:`tagMergedForOrg:${X}`})));for(let X of Z)if(X.error)console.warn(`[task-board-merged-tag] org ${X.organizationId} failed: ${X.error}`);let Q=Z.reduce((X,Y)=>X+Y.tagged,0);if(Q>0)console.log(`[task-board-merged-tag] tagged ${Q} of ${$.length} candidates`)}function z38(){if(rL1)return;rL1=wC0.registerWorkflow(Ed6,{name:"taskBoardMergedTagSweepWorkflow"}),wC0.registerScheduled(rL1,{name:"taskBoardMergedTagSweepWorkflow",crontab:Ld6,mode:Dd6.ExactlyOncePerIntervalWhenActive})}var Ld6="41 * * * *",wd6=200,aL1=null,rL1=null;var P38=D(()=>{zB();Xm();Jm();w38()});function T38($){if(!$)return!1;try{return new URL($).host==="api.decocms.com"&&$!=="https://studio.decocms.com/org/deco/registry/mcp"}catch{return!1}}var A38="https://studio.decocms.com/org/deco/registry/mcp";var q38,zd6,R38=($)=>{let Z=0,Q=$.length;while(Z<Q){let X=$.charCodeAt(Z);if(X!==32&&X!==9)break;Z++}while(Q>Z){let X=$.charCodeAt(Q-1);if(X!==32&&X!==9)break;Q--}return Z===0&&Q===$.length?$:$.slice(Z,Q)},sL1=($,Z)=>{if(Z&&$.indexOf(Z)===-1)return{};let Q=$.split(";"),X={};for(let Y of Q){let J=Y.indexOf("=");if(J===-1)continue;let G=R38(Y.substring(0,J));if(Z&&Z!==G||!q38.test(G))continue;let K=R38(Y.substring(J+1));if(K.startsWith('"')&&K.endsWith('"'))K=K.slice(1,-1);if(zd6.test(K)){if(X[G]=K.indexOf("%")!==-1?Pl(K,ja):K,Z)break}}return X},Pd6=($,Z,Q={})=>{if(!q38.test($))throw Error("Invalid cookie name");let X=`${$}=${Z}`;if($.startsWith("__Secure-")&&!Q.secure)throw Error("__Secure- Cookie must have Secure attributes");if($.startsWith("__Host-")){if(!Q.secure)throw Error("__Host- Cookie must have Secure attributes");if(Q.path!=="/")throw Error('__Host- Cookie must have Path attributes with "/"');if(Q.domain)throw Error("__Host- Cookie must not have Domain attributes")}for(let Y of["domain","path"])if(Q[Y]&&/[;\r\n]/.test(Q[Y]))throw Error(`${Y} must not contain ";", "\\r", or "\\n"`);if(Q&&typeof Q.maxAge==="number"&&Q.maxAge>=0){if(Q.maxAge>34560000)throw Error("Cookies Max-Age SHOULD NOT be greater than 400 days (34560000 seconds) in duration.");X+=`; Max-Age=${Q.maxAge|0}`}if(Q.domain&&Q.prefix!=="host")X+=`; Domain=${Q.domain}`;if(Q.path)X+=`; Path=${Q.path}`;if(Q.expires){if(Q.expires.getTime()-Date.now()>34560000000)throw Error("Cookies Expires SHOULD NOT be greater than 400 days (34560000 seconds) in the future.");X+=`; Expires=${Q.expires.toUTCString()}`}if(Q.httpOnly)X+="; HttpOnly";if(Q.secure)X+="; Secure";if(Q.sameSite)X+=`; SameSite=${Q.sameSite.charAt(0).toUpperCase()+Q.sameSite.slice(1)}`;if(Q.priority)X+=`; Priority=${Q.priority.charAt(0).toUpperCase()+Q.priority.slice(1)}`;if(Q.partitioned){if(!Q.secure)throw Error("Partitioned Cookie must have Secure attributes");X+="; Partitioned"}return X},jC0=($,Z,Q)=>{return Z=encodeURIComponent(Z),Pd6($,Z,Q)};var I38=D(()=>{EL();q38=/^[\w!#$%&'*.^`|~+-]+$/,zd6=/^[ !#-:<-[\]-~]*$/});var Ji=($,Z,Q)=>{let X=$.req.raw.headers.get("Cookie");if(typeof Z==="string"){if(!X)return;let J=Z;if(Q==="secure")J="__Secure-"+Z;else if(Q==="host")J="__Host-"+Z;return sL1(X,J)[J]}if(!X)return{};return sL1(X)},Ad6=($,Z,Q)=>{let X;if(Q?.prefix==="secure")X=jC0("__Secure-"+$,Z,{path:"/",...Q,secure:!0});else if(Q?.prefix==="host")X=jC0("__Host-"+$,Z,{...Q,path:"/",secure:!0,domain:void 0});else X=jC0($,Z,{path:"/",...Q});return X},r80=($,Z,Q,X)=>{let Y=Ad6(Z,Q,X);$.header("Set-Cookie",Y,{append:!0})};var EC0=D(()=>{I38()});var M38=($)=>{let Q={...{origin:"*",allowMethods:["GET","HEAD","PUT","POST","DELETE","PATCH"],allowHeaders:[],exposeHeaders:[]},...$},X=((J)=>{if(typeof J==="string")if(J==="*"){if(Q.credentials)return(G)=>G||null;return()=>J}else return(G)=>J===G?G:null;else if(typeof J==="function")return J;else return(G)=>J.includes(G)?G:null})(Q.origin),Y=((J)=>{if(typeof J==="function")return J;else if(Array.isArray(J))return()=>J;else return()=>[]})(Q.allowMethods);return async function(G,K){function W(F,U){G.res.headers.set(F,U)}let H=await X(G.req.header("origin")||"",G);if(H)W("Access-Control-Allow-Origin",H);if(Q.credentials)W("Access-Control-Allow-Credentials","true");if(Q.exposeHeaders?.length)W("Access-Control-Expose-Headers",Q.exposeHeaders.join(","));if(G.req.method==="OPTIONS"){if(Q.origin!=="*"||Q.credentials)W("Vary","Origin");if(Q.maxAge!=null)W("Access-Control-Max-Age",Q.maxAge.toString());let F=await Y(G.req.header("origin")||"",G);if(F.length)W("Access-Control-Allow-Methods",F.join(","));let U=Q.allowHeaders;if(!U?.length){let N=G.req.header("Access-Control-Request-Headers");if(N)U=N.split(/\s*,\s*/)}if(U?.length)W("Access-Control-Allow-Headers",U.join(",")),G.res.headers.append("Vary","Access-Control-Request-Headers");return G.res.headers.delete("Content-Length"),G.res.headers.delete("Content-Type"),new Response(null,{headers:G.res.headers,status:204,statusText:"No Content"})}if(await K(),Q.origin!=="*"||Q.credentials)G.header("Vary","Origin",{append:!0})}};var V38=()=>{};function eL1($,Z){return`${$}:${Z}`}function k38($){let Z=$?.ttlMs??120000,Q=$?.maxSize??1e4,X=new Map;function Y(){if(X.size<=Q)return;let J=Date.now();for(let[G,K]of X)if(K.expiresAt<=J)X.delete(G);if(X.size>Q){let G=X.size-Q,K=0;for(let W of X.keys()){if(K>=G)break;X.delete(W),K++}}}return{get(J,G){let K=eL1(J,G),W=X.get(K);if(!W)return;if(W.expiresAt<=Date.now()){X.delete(K);return}return W.role},set(J,G,K){let W=eL1(J,G);X.set(W,{role:K,expiresAt:Date.now()+Z}),Y()},invalidate(J,G){X.delete(eL1(J,G))}}}class $w1{options;subscriptions=[];localEmit=null;originId=crypto.randomUUID();encoder=new TextEncoder;seenMessageIds=new Set;constructor($){this.options=$}async start($){if($)this.localEmit=$;if(this.subscriptions.length>0)return;if(!this.localEmit)return;let Z=this.options.getConnection();if(!Z)return;let Q=new TextDecoder;this.subscriptions=S38.map((X)=>Z.subscribe(X));for(let X of this.subscriptions)(async()=>{for await(let Y of X)try{let J=JSON.parse(Q.decode(Y.data));if(typeof J?.originId!=="string"||typeof J?.organizationId!=="string"||typeof J?.event?.id!=="string"||typeof J?.event?.type!=="string")continue;if(J.originId===this.originId)continue;if(typeof J.messageId==="string"&&this.hasSeen(J.messageId))continue;this.localEmit?.(J.organizationId,J.event)}catch{}})().catch((Y)=>{console.error("[NatsSSEBroadcast] Subscription error:",Y)})}broadcast($,Z){this.localEmit?.($,Z);let Q={originId:this.originId,messageId:crypto.randomUUID(),organizationId:$,event:Z};try{let X=this.options.getConnection();if(!X)return;let Y=this.encoder.encode(JSON.stringify(Q));for(let J of S38)X.publish(J,Y)}catch(X){console.warn("[NatsSSEBroadcast] Publish failed (non-critical):",X)}}async stop(){for(let $ of this.subscriptions)$.unsubscribe();this.subscriptions=[],this.seenMessageIds.clear(),this.localEmit=null}hasSeen($){if(this.seenMessageIds.has($))return!0;if(this.seenMessageIds.add($),this.seenMessageIds.size>1000){let Z=this.seenMessageIds.values().next().value;if(Z)this.seenMessageIds.delete(Z)}return!1}}var S38;var C38=D(()=>{S38=["studio.sse.broadcast","mesh.sse.broadcast"]});async function Td6($,Z,Q=5){try{await q8(Z,{maxAttempts:Q,minTimeout:1000,maxTimeout:1e4,jitter:0})}catch(X){console.error(`${$} Deferred start failed:`,X instanceof i5?X.cause:X)}}function _38($){let Z=new $w1({getConnection:()=>$.getConnection()});l5.start(Z).catch((Q)=>{console.error("[SSEHub] Failed to start broadcast strategy:",Q)}),$.onReady(()=>{Td6("[NatsSSEBroadcast]",()=>Z.start())})}var Zw1=D(()=>{Z8();C38();A00();A00()});var v38=()=>{};var Qw1=()=>{};var x38=()=>{};var Rd6,tK7;var f38=D(()=>{v38();Qw1();EL();x38();Rd6={br:".br",zstd:".zst",gzip:".gz"},tK7=Object.keys(Rd6)});var b38=D(()=>{f38()});var y38=()=>{};var g38=D(()=>{y38()});var h38=()=>{};var u38=D(()=>{V41()});var Xw1=D(()=>{zL();u38()});var Yw1="x-hono-disable-ssg",BW7;var Jw1=D(()=>{Xw1();BW7=(()=>{try{return new Response("SSG is disabled",{status:404,headers:{[Yw1]:"true"}})}catch{return null}})()});var l38=D(()=>{VK0()});var Gw1=D(()=>{l38()});var c38=D(()=>{g38();h38();Qw1();Jw1();Gw1();Xw1()});var m38=D(()=>{Jw1();Gw1();c38()});var oW7;var d38=D(()=>{m38();({write:oW7}=Bun)});var Md6=class{#$;constructor($){this.#$=$,this.raw=$.raw,this.url=$.url?new URL($.url):null,this.protocol=$.protocol??null}send($,Z){this.#$.send($,Z??{})}raw;binaryType="arraybuffer";get readyState(){return this.#$.readyState}url;protocol;close($,Z){this.#$.close($,Z)}},i38=($)=>{return(...Z)=>{if(typeof Z[0]==="function"){let[Q,X]=Z;return async function(J,G){let K=await Q(J),W=await $(J,K,X);if(W)return W;await G()}}else{let[Q,X,Y]=Z;return(async()=>{let J=await $(Q,X,Y);if(!J)throw Error("Failed to upgrade WebSocket");return J})()}}};var p38=()=>{};var a80=($)=>("server"in $.env)?$.env.server:$.env;var zC0=()=>{};var Vd6;var n38=D(()=>{p38();zC0();Vd6=i38(($,Z)=>{let Q=a80($);if(!Q)throw TypeError("env has to include the 2nd argument of fetch.");if(Q.upgrade($.req.raw,{data:{events:Z,url:new URL($.req.url),protocol:$.req.url}}))return new Response(null);return})});var Kw1=($)=>{let Z=a80($);if(!Z)throw TypeError("env has to include the 2nd argument of fetch.");if(typeof Z.requestIP!=="function")throw TypeError("server.requestIP is not a function.");let Q=Z.requestIP($.req.raw);if(!Q)return{remote:{}};return{remote:{address:Q.address,addressType:Q.family==="IPv6"||Q.family==="IPv4"?Q.family:void 0,port:Q.port}}};var t38=D(()=>{zC0()});var o38=D(()=>{b38();d38();n38();t38();zC0()});var r38;var a38=D(()=>{r38={google:{name:"Google",icon:"https://assets.decocache.com/webdraw/eb7480aa-a68b-4ce4-98ff-36aa121762a7/google.svg"},github:{name:"GitHub",icon:"https://assets.decocache.com/decocms/e02ce92e-6684-41a6-acfc-432977eb4878/github.png"},microsoft:{name:"Microsoft",icon:"https://assets.decocache.com/mcp/aa6f6e1a-6526-4bca-99cc-82e2ec38b0e4/microsoft.png"}}});function s38(){let $=Object.keys(J4.socialProviders??{}),Z=$.length>0,Q=$.map((Y)=>({name:Y,icon:r38[Y].icon})),X=k0().localMode;return{emailAndPassword:{enabled:J4.emailAndPassword?.enabled??!1},magicLink:{enabled:J4.magicLinkConfig?.enabled??!1},emailOtp:{enabled:J4.emailOtpConfig?.enabled??!1},resetPassword:{enabled:JC0},socialProviders:{enabled:Z,providers:Q},sso:J4.ssoConfig?{enabled:!0,providerId:J4.ssoConfig.providerId}:{enabled:!1},stdioEnabled:X,localMode:AB()}}async function kd6($,Z,Q){try{if(!J4.inviteEmailProviderId||!J4.emailProviders||J4.emailProviders.length===0)return;let X=nJ(J4.emailProviders,J4.inviteEmailProviderId);if(!X)return;let Y=await $.selectFrom("member").innerJoin("user","user.id","member.userId").select(["user.email as email","member.role as role"]).where("member.organizationId","=",Z.id).execute(),J=Wo,G=Y.filter((H)=>(H.role??"").split(",").map((F)=>F.trim()).some((F)=>J.includes(F)));if(G.length===0)return;let K=pJ(X),W=`${w5()}/${Z.slug}/settings/members`;await Promise.allSettled(G.map((H)=>K({to:H.email,subject:`New request to join ${Z.name}`,html:tJ({preheader:`${Q} requested to join ${Z.name}.`,heading:"New join request",subheading:`<strong>${Q}</strong> requested to join <strong>${Z.name}</strong> on deco Studio.`,body:TP("Review request",W),footnote:"You can approve or deny this request from your members settings."})})))}catch(X){console.error("[Auth] Failed to notify admins of join request:",X)}}var rB,e38;var Ww1=D(()=>{m$();o38();v4();A$();eJ();TQ();KL1();q91();QC0();AP();VQ();E5();J41();a38();kf();bh();rB=new Q1;rB.post("/local-session",async($)=>{if(!AB())return $.json({success:!1,error:"Local mode is not active"},403);let Z;try{Z=Kw1($).remote.address}catch{}if(!(Z==="127.0.0.1"||Z==="::1"||Z==="::ffff:127.0.0.1"))return $.json({success:!1,error:"Forbidden"},403);try{let{waitForSeed:X}=await Promise.resolve().then(() => (kf(),fq0));await X();let{auth:Y}=await Promise.resolve().then(() => (eJ(),sY8)),J=await u31();if(!J)return $.json({success:!1,error:"Local admin user not found"},500);let G=await xq0();return await Y.api.signInEmail({body:{email:J.email,password:G},asResponse:!0})}catch(X){return console.error("Failed to create local session:",X),$.json({success:!1,error:X instanceof Error?X.message:"Failed to create local session"},500)}});rB.get("/my-capabilities/:slug",async($)=>{let Z=$.req.param("slug"),Q=await K8.api.getSession({headers:$.req.raw.headers});if(!Q?.user)return $.json({error:"Authentication required"},401);let X=l$().db,Y=await X.selectFrom("organization").select(["id"]).where("slug","=",Z).executeTakeFirst();if(!Y)return $.json({role:null,capabilities:{}});let G=(await X.selectFrom("member").select(["role"]).where("userId","=",Q.user.id).where("organizationId","=",Y.id).executeTakeFirst())?.role??null;if(!G)return $.json({role:null,capabilities:{}});if(l9(G))return $.json({role:G,capabilities:J7$()});if(G==="user")return $.json({role:G,capabilities:ke0({self:[...VJ0]})});let K=await X.selectFrom("organizationRole").select(["permission"]).where("role","=",G).where("organizationId","=",Y.id).executeTakeFirst(),W={},H=K?.permission;if(typeof H==="string")try{let F=JSON.parse(H);if(F&&typeof F==="object"&&!Array.isArray(F))W=F}catch{W={}}return $.json({role:G,capabilities:ke0(W)})});rB.get("/domain-lookup",async($)=>{let Z=await K8.api.getSession({headers:$.req.raw.headers});if(!Z?.user)return $.json({success:!1,error:"Authentication required"},401);if(!Z.user.emailVerified)return $.json({found:!1,organizations:[]});let Q=Z.user.email?.split("@")[1]?.toLowerCase();if(!Q||UW.has(Q))return $.json({found:!1,organizations:[]});try{let Y=(await new dJ(l$().db).getAllByDomain(Q)).filter(ZC0);if(Y.length===0)return $.json({found:!1,organizations:[]});let J=await l$().db.selectFrom("organization").select(["id","name","slug","logo","metadata"]).where("id","in",Y.map((W)=>W.organizationId)).execute(),G=new Map(J.map((W)=>[W.id,W])),K=Y.map((W)=>{let H=G.get(W.organizationId);if(!H)return null;if(a5(H))return null;return{id:H.id,name:H.name,slug:H.slug,logo:H.logo,joinMode:W.joinMode}}).filter((W)=>W!==null);return $.json({found:K.length>0,organizations:K})}catch(X){return console.error("[Auth] Domain lookup failed:",X),$.json({success:!1,error:"Domain lookup failed"},500)}});rB.post("/domain-join",async($)=>{let Z=await K8.api.getSession({headers:$.req.raw.headers});if(!Z?.user)return $.json({success:!1,error:"Authentication required"},401);if(!Z.user.emailVerified)return $.json({success:!1,error:"Email must be verified to join"},403);let Q=Z.user.email?.split("@")[1]?.toLowerCase();if(!Q||UW.has(Q))return $.json({success:!1,error:"Generic email domains cannot auto-join"},403);let X=await $.req.json().catch(()=>({})),Y=typeof X.organizationSlug==="string"&&X.organizationSlug.trim()?X.organizationSlug.trim():null;try{let J=l$().db,W=(await new dJ(J).getAllByDomain(Q)).filter((B)=>B.verificationStatus==="verified"&&B.joinMode==="auto");if(W.length===0)return $.json({success:!1,error:"Auto-join is not available for this domain"},403);let H=await J.selectFrom("organization").select(["id","slug","metadata"]).where("id","in",W.map((B)=>B.organizationId)).execute(),F=new Map(H.filter((B)=>!a5(B)).map((B)=>[B.id,{id:B.id,slug:B.slug}])),U=W.flatMap((B)=>{let O=F.get(B.organizationId);return O?[O]:[]});if(U.length===0)return $.json({success:!1,error:"Auto-join is not available for this domain"},403);let N;if(Y){let B=U.find((O)=>O.slug===Y);if(!B)return $.json({success:!1,error:"This organization is not available for auto-join with your email domain."},403);N=B}else if(U.length===1)N=U[0];else return $.json({success:!1,error:"Multiple organizations match this domain. Please pick one.",requiresSelection:!0},409);try{await K8.api.addMember({body:{userId:Z.user.id,role:"user",organizationId:N.id}})}catch(B){if(!tL(B))return console.error("[Auth] Domain join addMember failed:",B),$.json({success:!1,error:"Failed to join organization"},500)}return k1.capture({distinctId:Z.user.id,event:"organization_domain_joined",groups:{organization:N.id},properties:{organization_id:N.id,organization_slug:N.slug,email_domain:Q}}),$.json({success:!0,slug:N.slug})}catch(J){return k1.captureException(J,Z.user.id),console.error("[Auth] Domain join failed:",J),$.json({success:!1,error:"Failed to join organization"},500)}});rB.post("/domain-setup",async($)=>{let Z=await K8.api.getSession({headers:$.req.raw.headers});if(!Z?.user)return $.json({success:!1,error:"Authentication required"},401);if(!Z.user.emailVerified)return $.json({success:!1,error:"Email must be verified"},403);let Q=Z.user.email?.split("@")[1]?.toLowerCase();if(!Q||UW.has(Q))return $.json({success:!1,error:"Corporate email required"},403);let X=await $.req.json().catch(()=>({})),Y=typeof X.name==="string"&&X.name.trim().length>0?X.name.trim():null,J=typeof X.logo==="string"&&X.logo.length>0?X.logo:null,G=X.claimDomain!==!1;try{let K=l$().db,W=new dJ(K),H=await W.getAllByDomain(Q);if(H.length>0){let z=await K.selectFrom("member").innerJoin("organization","organization.id","member.organizationId").select(["organization.slug"]).where("member.userId","=",Z.user.id).where("member.organizationId","in",H.map((P)=>P.organizationId)).executeTakeFirst();if(z)return $.json({success:!0,slug:z.slug,alreadyExists:!0})}let F=Q.split(".")[0]??Q,U=Y??F.charAt(0).toUpperCase()+F.slice(1),N=(Y??F).toLowerCase().trim().replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")||F.toLowerCase().replace(/[^a-z0-9-]/g,""),B=null;for(let P=0;P<3;P++){let A=P===0?"":`-${Math.random().toString(36).slice(2,6)}`,q=P===0?U:`${U}${A}`,V=`${N}${A}`;try{B=await K8.api.createOrganization({body:{name:q,slug:V,userId:Z.user.id}});break}catch(I){if(!(I instanceof Error&&("body"in I)&&I.body?.code==="ORGANIZATION_ALREADY_EXISTS")||P===2)throw I}}if(!B?.id)throw Error("Failed to create organization");let O=B.id;if(G)await W.add(O,Q,{joinMode:"auto",verificationStatus:"verified",verificationMethod:"email"});let L=!1,w=null,j=null;try{let z=k0().firecrawlApiKey;if(z){let P=await BH0(Q,z,U);if(P){let A=new Oa(l$().db),q=await A.create(O,P);if(await A.setDefault(q.id,O),L=!0,P.name&&P.name!==U)w=P.name;j=P.favicon??P.logo??null}}}catch(z){console.error("[Auth] Brand extraction failed (non-fatal):",z)}let E={};if(!Y&&w)E.name=w;if(J)E.logo=J;else if(j)E.logo=j;if(Object.keys(E).length>0)try{await K8.api.updateOrganization({headers:$.req.raw.headers,body:{organizationId:O,data:E}})}catch(z){console.error("[Auth] Org update failed (non-fatal):",z)}return k1.identify({distinctId:Z.user.id,properties:{email:Z.user.email,$set:{email:Z.user.email},$set_once:{first_organization_created_at:new Date().toISOString()}}}),k1.groupIdentify({groupType:"organization",groupKey:O,properties:{name:B.slug??N,slug:B.slug??N,email_domain:Q,brand_extracted:L,created_at:new Date().toISOString()}}),k1.capture({distinctId:Z.user.id,event:"organization_created",groups:{organization:O},properties:{organization_id:O,organization_slug:B.slug??N,email_domain:Q,brand_extracted:L}}),$.json({success:!0,slug:B.slug??N,brandExtracted:L})}catch(K){return k1.captureException(K,Z.user?.id),console.error("[Auth] Domain setup failed:",K),$.json({success:!1,error:"Failed to set up organization"},500)}});rB.get("/org-access-status/:slug",async($)=>{let Z=$.req.param("slug"),Q=await K8.api.getSession({headers:$.req.raw.headers});if(!Q?.user)return $.json({success:!1,error:"Authentication required"},401);let X=l$().db,Y=await X.selectFrom("organization").select(["id","name","slug","logo"]).where("slug","=",Z).executeTakeFirst();if(!Y)return $.json({status:"not-found"});let J={id:Y.id,name:Y.name,slug:Y.slug,logo:Y.logo};if(await X.selectFrom("member").select(["id"]).where("userId","=",Q.user.id).where("organizationId","=",Y.id).executeTakeFirst())return $.json({status:"member",organization:J});try{let K=await K8.api.listUserInvitations({headers:$.req.raw.headers}),W=Date.now(),H=K.find((F)=>F.organizationId===Y.id&&F.status==="pending"&&new Date(F.expiresAt).getTime()>W);if(H)return $.json({status:"pending-invite",invitation:{id:H.id},organization:J})}catch(K){console.error("[Auth] listUserInvitations failed:",K)}if(Q.user.emailVerified){let K=Q.user.email?.split("@")[1]?.toLowerCase();if(K&&!UW.has(K)){let W=await new dJ(X).getByOrgAndDomain(Y.id,K);if(W?.verificationStatus==="verified"){if(W.joinMode==="auto")return $.json({status:"auto-domain-join",organization:{...J,domain:K}});if(W.joinMode==="request"){let H=await new Ll(X).getPending(Y.id,Q.user.id);return $.json({status:H?"request-pending":"can-request",organization:{...J,domain:K}})}}}}return $.json({status:"no-access",organization:J})});rB.post("/domain-request-join",async($)=>{let Z=await K8.api.getSession({headers:$.req.raw.headers});if(!Z?.user)return $.json({success:!1,error:"Authentication required"},401);if(!Z.user.emailVerified)return $.json({success:!1,error:"Email must be verified to request access"},403);let Q=Z.user.email?.split("@")[1]?.toLowerCase();if(!Q||UW.has(Q))return $.json({success:!1,error:"Generic email domains cannot request access"},403);let X=await $.req.json().catch(()=>({})),Y=typeof X.organizationSlug==="string"&&X.organizationSlug.trim()?X.organizationSlug.trim():null;if(!Y)return $.json({success:!1,error:"organizationSlug is required"},400);try{let J=l$().db,G=await J.selectFrom("organization").select(["id","slug","name"]).where("slug","=",Y).executeTakeFirst();if(!G)return $.json({success:!1,error:"Organization not found"},404);let K=await new dJ(J).getByOrgAndDomain(G.id,Q);if(!K||K.verificationStatus!=="verified"||K.joinMode!=="request")return $.json({success:!1,error:"This organization is not accepting requests for your domain."},403);if(await J.selectFrom("member").select(["id"]).where("userId","=",Z.user.id).where("organizationId","=",G.id).executeTakeFirst())return $.json({success:!0,slug:G.slug,alreadyMember:!0});return await new Ll(J).create(G.id,Z.user.id),await kd6(J,G,Z.user.email),k1.capture({distinctId:Z.user.id,event:"organization_join_requested",groups:{organization:G.id},properties:{organization_id:G.id,organization_slug:G.slug,email_domain:Q}}),$.json({success:!0,status:"pending"})}catch(J){return k1.captureException(J,Z.user.id),console.error("[Auth] Domain request-join failed:",J),$.json({success:!1,error:"Failed to request access"},500)}});rB.post("/ensure-organization",async($)=>{let Z=null;try{if(Z=await K8.api.getSession({headers:$.req.raw.headers}),!Z?.user)return $.json({success:!1,error:"Authentication required"},401);let Q=await XC0({db:l$().db,authApi:K8.api,user:{id:Z.user.id,email:Z.user.email,name:Z.user.name??null,emailVerified:!!Z.user.emailVerified},allowCreate:!0,createdVia:"commerce_onboarding_recovery"});if(Q.status==="ambiguous")return $.json({success:!1,status:Q.status,domain:Q.domain,organizations:Q.organizations});if(Q.status==="skipped")return $.json({success:!1,status:Q.status,reason:Q.reason,domain:Q.domain,error:"Organization creation is not available."},409);if(Q.status==="already_has_organization")return $.json({success:!0,status:Q.status,organization:Q.organization,domain:Q.domain});return $.json({success:!0,status:Q.status,organization:Q.organization,domain:Q.domain})}catch(Q){let X=Z?.user?.id;if(X)k1.captureException(Q,X);return console.error("[Auth] ensure organization failed:",Q),$.json({success:!1,error:"Failed to ensure organization"},500)}});e38=rB});import{createHmac as Sd6}from"crypto";function $G8($){return/^Bearer\s+(.+)$/i.exec($.get("authorization")??"")?.[1]?.trim()||null}function ZG8($){if(!$||typeof $!=="object"||!("userId"in $)||typeof $.userId!=="string")return null;return $.userId}function Cd6($){if(!$||typeof $!=="object"||!("user"in $))return null;let{user:Z}=$;if(!Z||typeof Z!=="object"||!("id"in Z)||typeof Z.id!=="string")return null;return Z.id}function _d6($){if(!$||typeof $!=="object"||!("valid"in $)||$.valid!==!0||!("key"in $))return null;return ZG8($.key)}async function QG8($){let Z=new Headers({authorization:`Bearer ${$}`,"X-MCP-Session-Auth":"true"}),Q=await K8.api.getMcpSession({headers:Z}).catch(()=>null),X=ZG8(Q);if(X)return X;let Y=await K8.api.verifyApiKey({body:{key:$}}).catch(()=>null);return _d6(Y)}function vd6($,Z){let Q=Sd6("sha256",Z).update($).digest("base64");return encodeURIComponent(`${$}.${Q}`)}var Hw1,XG8;var YG8=D(()=>{m$();eJ();Hw1=new Q1;Hw1.get("/me",async($)=>{let Z=$G8($.req.raw.headers),Q;if(Z)Q=await QG8(Z);else{let X=await K8.api.getSession({headers:$.req.raw.headers}).catch(()=>null);Q=Cd6(X)}if(!Q)return $.json({error:"unauthorized"},401);return $.json({userId:Q})});Hw1.post("/session-from-oauth",async($)=>{let Z=$G8($.req.raw.headers);if(!Z)return $.json({error:"unauthorized"},401);let Q=await QG8(Z);if(!Q)return $.json({error:"unauthorized"},401);try{let X=await K8.$context,Y=await X.internalAdapter.createSession(Q,!1),J=vd6(Y.token,X.secret);return $.json({sessionToken:J})}catch(X){return console.error("[desktop-auth] failed to mint a session from an OAuth bearer:",X instanceof Error?X.message:String(X)),$.json({error:"failed to mint a session"},500)}});XG8=Hw1});var Gi=($)=>{let Z=$.req.header("sec-fetch-dest");if(Z!==void 0)return Z==="document";let Q=$.req.header("accept")??"";return Q.includes("text/html")&&!/text\/html\s*;\s*q\s*=\s*0/.test(Q)};function xd6($){let Z=$.req.path;return $.req.method==="GET"&&/\/fs\/[^/]+\/read$/.test(Z)||$.req.method==="POST"&&/\/fs\/[^/]+\/unlock$/.test(Z)}function Fw1($){let Z=$.auth?.apiKey?.metadata;if(!Z||typeof Z!=="object"||Array.isArray(Z)||!("organization"in Z))return{present:!1};let Q=Z.organization;if(!Q||typeof Q!=="object"||Array.isArray(Q))return{present:!0};let X=Q.id;return{present:!0,id:typeof X==="string"?X:void 0}}function bd6($){let Z=$.split("/").filter(Boolean);if(Z[0]!=="api")return!1;let Q=Z.slice(2);return fd6.some((X)=>X.length===Q.length&&X.every((Y,J)=>Y==="*"||Y===Q[J]))}var fd6,Ki=async($,Z)=>{let Q=$.req.param("org");if(!Q)return $.json({error:"org slug missing in path"},400);let X=$.get("studioContext");if(!X?.db)return $.json({error:"studioContext not initialized"},500);let Y=X.db,J=bd6($.req.path),G=await Y.selectFrom("organization").select(["id","slug","name","metadata"]).where((F)=>J?F.or([F("slug","=",Q),F("id","=",Q)]):F("slug","=",Q)).executeTakeFirst();if(!G){if(Gi($))return $.redirect(`/${encodeURIComponent(Q)}`,302);return $.json({error:`organization "${Q}" not found`},404)}let K=Fw1(X);if(X.auth?.apiKey?.id&&K.present&&K.id!==G.id)return $.json({error:"forbidden: API key is scoped to another organization"},403);if(X.auth?.tokenOrganizationId&&X.auth.tokenOrganizationId!==G.id)return $.json({error:"forbidden: token is scoped to another organization"},403);if(a5(G)){if(Gi($))return $.redirect(`/${encodeURIComponent(Q)}`,302);return $.json({error:`organization "${Q}" not found`},404)}let W=X.auth?.user?.id,H;if(W){let F=await Y.selectFrom("member").select(["role"]).where("userId","=",W).where("organizationId","=",G.id).executeTakeFirst();if(!F){if(!xd6($)){if(Gi($))return $.redirect(`/${encodeURIComponent(G.slug)}`,302);return $.json({error:"forbidden: not a member of organization"},403)}}else H=F.role}return X.organization={id:G.id,slug:G.slug,name:G.name,role:H},X.access.setOrganizationId(G.id),X.access.setRole(H),pw(X,G),await Z()};var PC0=D(()=>{WF();fd6=[["vault","connections","*","access-token"],["vault","connections","*","configuration"],["internal","task-board","import"],["internal","commerce-diagnostic","share-invite"],["internal","organization-notices"]]});function yd6($){if(_Q($.id)!==null)return!0;if(CG$($.id))return!0;let Z=$.metadata?.liveAgentId;return typeof Z==="string"&&Z.length>0}function gd6($,Z){let Q=new Map,X=(Y)=>{let J=Q.get(Y);if(J)return J;let G=(async()=>{if(!(await $.storage.orgSsoConfig.getByOrgId(Y))?.enforced)return!0;return await $.storage.orgSsoSessions.isValid(Z,Y)})();return Q.set(Y,G),G};return async(Y)=>{let J=await Promise.all(Y.map((G)=>X(G.orgId)));return Y.filter((G,K)=>J[K]===!0)}}function hd6($){let Z=$.auth?.apiKey?.id?Fw1($):{present:!1,id:void 0};if(Z.present&&!Z.id)return AC0;let Q=$.auth?.tokenOrganizationId;if(Z.id&&Q&&Z.id!==Q)return AC0;let X=Z.id??Q??null;if(X===null&&$.auth?.apiKey?.id)return AC0;return X}var JG8="/api/_me",AC0,ud6=256,ld6=20,cd6=50,md6=10,dd6=5,GG8=()=>{let $=new Q1;return $.get("/projects/search",async(Z)=>{let Q=Z.get("studioContext");Z.header("Cache-Control","private, no-store");let X=o0(Q);if(!X)return Z.json({error:"Unauthorized"},401);let Y=hd6(Q);if(Y===AC0)return Z.json({error:"forbidden: credential is scoped to another organization"},403);let J=(Z.req.query("q")??"").trim();if(!J)return Z.json({items:[]});if(J.length>ud6)return Z.json({error:"query too long"},400);let G=Number.parseInt(Z.req.query("limit")??"",10),K=Number.isFinite(G)&&G>0?Math.min(G,cd6):ld6,W=gd6(Q,X),H=K+md6,F=[];for(let U=0;U<dd6&&F.length<K;U++){let N=await Q.storage.virtualMcps.searchAcrossMemberships({userId:X,term:J,limit:H,offset:U*H,organizationId:Y}),B=N.filter((O)=>!yd6(O)).filter((O)=>!a5({metadata:O.organization_metadata})).map((O)=>({id:O.id,title:O.title,icon:O.icon,orgId:O.organization_id,orgName:O.organization_name,orgSlug:O.organization_slug}));if(F.push(...await W(B)),N.length<H)break}return Z.json({items:F.slice(0,K)})}),$};var KG8=D(()=>{m$();f8();PC0();AC0=Symbol("deny")});var WG8="Payload Too Large",HG8,d5=($)=>{let Z=$.onError||(()=>{let X=new Response(WG8,{status:413});throw new G$(413,{res:X})}),Q=$.maxSize;return async function(Y,J){if(!Y.req.raw.body)return J();let G=Y.req.raw.headers.has("transfer-encoding"),K=Y.req.raw.headers.has("content-length");if(K&&!G)return parseInt(Y.req.raw.headers.get("content-length")||"0",10)>Q?Z(Y):J();let W=0,H=Y.req.raw.body.getReader(),U={body:new ReadableStream({async start(N){try{for(;;){let{done:B,value:O}=await H.read();if(B)break;if(W+=O.length,W>Q){N.error(new HG8(WG8));break}N.enqueue(O)}}finally{N.close()}}}),duplex:"half"};if(Y.req.raw=new Request(Y.req.raw,U),await J(),Y.error instanceof HG8)Y.res=await Z(Y)}};var ZH=D(()=>{QW();HG8=class extends Error{constructor($){super($);this.name="BodyLimitError"}}});import{createHash as id6}from"crypto";function s80($,Z,Q=0){return Z.every((X,Y)=>$[Q+Y]===X)}function UG8($){if(s80($,[137,80,78,71,13,10,26,10]))return{mime:"image/png",ext:"png"};if(s80($,[255,216,255]))return{mime:"image/jpeg",ext:"jpg"};if(s80($,[71,73,70,56])&&($[4]===55||$[4]===57)&&$[5]===97)return{mime:"image/gif",ext:"gif"};if(s80($,[82,73,70,70])&&s80($,[87,69,66,80],8))return{mime:"image/webp",ext:"webp"};return null}function Nw1($){return MH($)}function td6($,Z){let Q=id6("sha256").update($).digest("hex");return`${TC0}/${Q}.${Z}`}function qC0($,Z,Q){let X=new URLSearchParams({path:Q}).toString();return`${$.replace(/\/$/,"")}${RC0}/fs/${encodeURIComponent(Z)}/read?${X}`}function Wi($){let Z=x7(),Q=Z?AX(Z,Uw1):new KG(Uw1,$.baseUrl);return new WG(Q,$.storage.orgFsEntries,Uw1,pd6)}async function e80($,Z){return(await $.listDir(Z,TC0).catch(()=>[])).filter((X)=>X.kind==="file").sort((X,Y)=>Y.updatedAt.localeCompare(X.updatedAt))}async function NG8($,Z){return(await e80($,Z)).map((X)=>({path:X.path,current:X.readPublic,updatedAt:X.updatedAt}))}async function od6($,Z){if((await $.stat(Z,TC0))?.readPublic)await $.setReadPublic(Z,TC0,!1,{actor:Z})}async function Bw1($,Z,Q){let X=await e80($,Z);if(!X.some((Y)=>Y.path===Q))throw new MX(`No such avatar: ${Q}`);await od6($,Z),await $.setReadPublic(Z,Q,!0,{actor:Z}),await Promise.all(X.filter((Y)=>Y.path!==Q&&Y.readPublic).map((Y)=>$.setReadPublic(Z,Y.path,!1,{actor:Z})))}async function rd6($,Z,Q){try{let Y=(await e80($,Z)).filter((J)=>J.path!==Q).slice(nd6-1);await Promise.all(Y.map((J)=>$.delete(Z,J.path,{actor:Z})))}catch(X){console.warn("[user-fs] failed to evict old avatars",X)}}async function BG8($,Z){let{userId:Q,bytes:X,contentType:Y,ext:J}=Z,G=td6(X,J);return await $.write(Q,G,X,{actor:Q,contentType:Y}),await Bw1($,Q,G),await rd6($,Q,G),G}async function OG8($,Z,Q){if(!(await e80($,Z)).some((Y)=>Y.path===Q))throw new MX(`No such avatar: ${Q}`);await $.delete(Z,Q,{actor:Z})}async function DG8($,Z){try{let Q=await e80($,Z);await Promise.all(Q.map((X)=>$.delete(Z,X.path,{actor:Z})))}catch(Q){console.warn("[user-fs] failed to clear avatars",Q)}}var Uw1="org_user_fs",RC0="/api/_users",TC0="avatars",pd6,FG8=2097152,nd6=5;var Ow1=D(()=>{qh();JN();wN();Lz();pd6={maxFileBytes:5242880,volumeQuotaBytes:67108864}});function $40($,Z,Q,X){let Y=Z7(Q),J={"Content-Type":Y,"X-Content-Type-Options":"nosniff","Cache-Control":X?"public, max-age=0, must-revalidate":"private, max-age=0"};if(Y.startsWith("text/html"))J["Content-Security-Policy"]="sandbox allow-scripts allow-modals allow-same-origin allow-downloads";return $.body(Buffer.from(Z),200,J)}var Dw1=D(()=>{MK()});function IC0($,Z){if(Z instanceof MX)return $.json({error:Z.message},404);if(Z instanceof yJ)return $.json({error:Z.message},400);if(Z instanceof wz)return $.json({error:Z.message},413);return console.error("[user-fs] request failed",Z),$.json({error:"Internal error"},500)}function MC0($){let Q=$.get("studioContext").auth?.user?.id;if(!Q)return{ok:!1,res:$.json({error:"Unauthorized"},401)};if(!Nw1(Q))return{ok:!1,res:$.json({error:"Unsupported user id"},400)};return{ok:!0,userId:Q}}var LG8=()=>{let $=new Q1;return $.get("/fs/:userId/read",async(Z)=>{let Q=Z.req.param("userId"),X=Z.req.query("path")??"";if(!Nw1(Q))return Z.json({error:"Invalid user id"},400);let Y=Z.get("studioContext"),J=Wi(Y),K=(await J.resolveReadAccess(Q,X).catch(()=>({access:"private"}))).access==="public";if(!K&&Y.auth?.user?.id!==Q)return Z.json({error:"Not found"},404);try{return $40(Z,await J.read(Q,X),X,K)}catch(W){return IC0(Z,W)}}),$.post("/avatar",d5({maxSize:FG8,onError:(Z)=>Z.json({error:"Avatar exceeds the size limit"},413)}),async(Z)=>{let Q=MC0(Z);if(!Q.ok)return Q.res;let{userId:X}=Q,Y=Z.get("studioContext"),J=new Uint8Array(await Z.req.arrayBuffer());if(J.byteLength===0)return Z.json({error:"Empty request body"},400);let G=UG8(J);if(!G)return Z.json({error:"Avatar must be a PNG, JPEG, GIF or WebP image"},415);try{let K=await BG8(Wi(Y),{userId:X,bytes:J,contentType:G.mime,ext:G.ext});return Z.json({url:qC0(Y.baseUrl,X,K)})}catch(K){return IC0(Z,K)}}),$.get("/avatars",async(Z)=>{let Q=MC0(Z);if(!Q.ok)return Q.res;let X=Z.get("studioContext"),Y=await NG8(Wi(X),Q.userId);return Z.json({avatars:Y.map((J)=>({...J,url:qC0(X.baseUrl,Q.userId,J.path)}))})}),$.post("/avatar/select",async(Z)=>{let Q=MC0(Z);if(!Q.ok)return Q.res;let X=Z.get("studioContext"),Y=await Z.req.json().catch(()=>null);if(typeof Y?.path!=="string"||!Y.path)return Z.json({error:"Body must be { path: string }"},400);try{return await Bw1(Wi(X),Q.userId,Y.path),Z.json({url:qC0(X.baseUrl,Q.userId,Y.path)})}catch(J){return IC0(Z,J)}}),$.delete("/avatar",async(Z)=>{let Q=MC0(Z);if(!Q.ok)return Q.res;let X=Z.get("studioContext"),Y=Wi(X),J=Z.req.query("path");if(!J)return await DG8(Y,Q.userId),Z.json({ok:!0});try{return await OG8(Y,Q.userId,J),Z.json({ok:!0})}catch(G){return IC0(Z,G)}}),$};var wG8=D(()=>{m$();ZH();wN();Ow1();Dw1()});import{z as Hi}from"zod";var ad6,sd6,ed6=200,$i6=2000,Zi6=60,Qi6=2000,Xi6,VC0;var Lw1=D(()=>{ad6=["warn","block"],sd6=Hi.enum(ad6),Xi6=Hi.string().max(Qi6).refine(($)=>{try{let Z=new URL($);return Z.protocol==="https:"||Z.protocol==="http:"}catch{return!1}},{message:"ctaUrl must be an absolute http(s) URL"}),VC0=Hi.object({severity:sd6,title:Hi.string().trim().min(1).max(ed6),message:Hi.string().trim().min(1).max($i6),ctaLabel:Hi.string().trim().max(Zi6).nullable().optional(),ctaUrl:Xi6.nullable().optional()}).refine(($)=>!$.ctaLabel===!$.ctaUrl,{message:"ctaLabel and ctaUrl must be set together",path:["ctaUrl"]})});import{z as ww1}from"zod";function jw1($){let Z=$??{},Q=new Set([...Object.keys(sP.shape),...Object.keys(Z)]),X={};for(let Y of Q)X[Y]=n7(Z,Y);return{flags:Z,effective:X}}var Yi6,jG8;var EG8=D(()=>{i9();Yi6=ww1.string().min(1).max(64).regex(/^[a-z][a-z0-9]*(?:_[a-z0-9]+)*$/),jG8=ww1.record(Yi6,ww1.boolean())});function zG8($,Z,Q){let X=Q;for(;;){if(X=$.indexOf(Z,X),X===-1)return-1;let Y=$[X+Z.length];if(Y===void 0||Y===`
4641
+ (SELECT created_at, id FROM notifications WHERE id = ${Q.cursor})`);let G=await J.execute(),K=G.slice(0,X),W=await this.db.selectFrom("notifications").select((F)=>F.fn.countAll().as("count")).where("user_id","=",$).where("organization_id","=",Z).where("read_at","is",null).executeTakeFirst(),H=K[K.length-1];return{nextCursor:G.length>X&&H?H.id:null,notifications:K.map((F)=>({id:F.id,taskBoardItemId:F.task_board_item_id,type:F.type,data:Zm.parse(F.data),createdAt:gm6(F.created_at)})),unreadCount:Number(W?.count??0)}}async anchorExists($){return!!await this.db.selectFrom("notifications").select("id").where("id","=",$).executeTakeFirst()}async markRead($,Z,Q){if(Q&&Q.length===0)return 0;let X=this.db.updateTable("notifications").set({read_at:new Date}).where("user_id","=",$).where("organization_id","=",Z).where("read_at","is",null);if(Q)X=X.where("id","in",Q);let Y=await X.executeTakeFirst();return Number(Y.numUpdatedRows??0n)}async setSubscribed($,Z,Q){await this.db.insertInto("notification_subscriptions").values({id:x8("nsub"),user_id:$,task_board_item_id:Z,subscribed:Q}).onConflict((X)=>X.columns(["user_id","task_board_item_id"]).doUpdateSet({subscribed:Q,updated_at:new Date})).execute()}async notify($){await Qm({...$,db:this.db})}async notifyMentions($){await nJ8({...$,db:this.db})}async listSubscribers($){return(await this.db.selectFrom("notification_subscriptions").select("user_id").where("task_board_item_id","=",$).where("subscribed","=",!0).execute()).map((Q)=>Q.user_id)}}var bm6=20,ym6=50,gm6=($)=>$ instanceof Date?$.toISOString():$;var oJ8=D(()=>{CQ();Wq0();Hq0();tJ8()});class uL1{db;constructor($){this.db=$}async create($,Z,Q){await this.deleteExpired(Z);let X=crypto.randomUUID(),Y=new Date(Date.now()+600000);return await this.db.insertInto("oauth_pkce_states").values({id:X,organization_id:Z,user_id:Q,code_verifier:$,expires_at:Y,created_at:new Date}).execute(),X}async deleteExpired($){await this.db.deleteFrom("oauth_pkce_states").where("organization_id","=",$).where("expires_at","<",new Date).execute()}async consume($,Z,Q){let X=await this.db.deleteFrom("oauth_pkce_states").where("id","=",$).where("organization_id","=",Z).where("user_id","=",Q).returningAll().executeTakeFirst();if(!X)throw Error("Invalid or expired OAuth state token");if((X.expires_at instanceof Date?X.expires_at:new Date(X.expires_at))<new Date)throw Error("OAuth state token has expired");return X.code_verifier}}class lL1{db;vault;constructor($,Z){this.db=$;this.vault=Z}async upsert($){let Z=await this.vault.encrypt($.accessToken),Q=$.expiresAt??null,X=new Date;return await this.db.insertInto("claude_subscriptions").values({user_id:$.userId,encrypted_access_token:Z,expires_at:Q,created_at:X}).onConflict((Y)=>Y.column("user_id").doUpdateSet({encrypted_access_token:Z,expires_at:Q,created_at:X})).execute(),{linkedAt:X.toISOString(),expiresAt:Q?.toISOString()??null}}async find($){let Z=await this.db.selectFrom("claude_subscriptions").select(["created_at","expires_at"]).where("user_id","=",$).executeTakeFirst();if(!Z)return null;return{linkedAt:new Date(Z.created_at).toISOString(),expiresAt:Z.expires_at?new Date(Z.expires_at).toISOString():null}}async findLiveToken($){let Z=await this.db.selectFrom("claude_subscriptions").select(["encrypted_access_token","expires_at"]).where("user_id","=",$).executeTakeFirst();if(!Z)return null;if(Z.expires_at&&new Date(Z.expires_at).getTime()<=Date.now())return null;return this.vault.decrypt(Z.encrypted_access_token)}async delete($){await this.db.deleteFrom("claude_subscriptions").where("user_id","=",$).execute()}}function hm6($){return $.includes("/")?$.split("/").slice(1).join("/"):$}function um6($){let Z=$.supported_parameters?.includes("tools")??!1,Q=$.supported_parameters?.includes("reasoning")??!1;return{providerId:"openrouter",modelId:hm6($.id),title:$.name,description:$.description||null,logo:null,capabilities:[...new Set([...$.architecture.input_modalities.map((X)=>X==="image"?"vision":X),...$.architecture.output_modalities,...Z?["tools"]:[],...Q?["reasoning"]:[]])],limits:{contextWindow:$.context_length,maxOutputTokens:$.top_provider.max_completion_tokens||null},costs:{input:$.pricing.prompt,output:$.pricing.completion}}}function aJ8($){let Z=new Map;for(let Q of $){let X={description:Q.description,capabilities:Q.capabilities,limits:Q.limits,costs:Q.costs};Z.set(Q.modelId,X);let Y=Q.modelId.replace(/\./g,"-");if(Y!==Q.modelId)Z.set(Y,X)}return Z}async function lm6($){if($){let Z=await $.get(rJ8,"openrouter");if(Z)return aJ8(Z)}try{let Z=await fetch("https://openrouter.ai/api/v1/models",{signal:AbortSignal.timeout(1e4)});if(!Z.ok)return new Map;let{data:Q}=await Z.json(),X=Q.map(um6);if($)await $.set(rJ8,"openrouter",X);return aJ8(X)}catch{return new Map}}function cm6($){let Z=$.replace(/\./g,"-"),Q=$.replace(/-\d{8}$/,""),X=Q.replace(/\./g,"-");return[...new Set([$,Z,Q,X])]}function mm6($){return $.providerId==="anthropic"||$.modelId.startsWith("anthropic/")}function eJ8($,Z){if(mm6(Z)&&$.includes("vision")&&!$.includes("file"))return[...$,"file"];return $}function dm6($,Z){return $.map((Q)=>{let Y=cm6(Q.modelId).map((K)=>Z.get(K)).find(Boolean),J=Q.capabilities.length?Q.capabilities:Y?.capabilities??[],G=eJ8(J,Q);if(!Y)return G===J?Q:{...Q,capabilities:G};return{...Q,description:Q.description??Y.description??null,capabilities:G,limits:Q.limits??Y.limits??null,costs:Q.costs??Y.costs??null}})}class cL1{storage;cache;constructor($,Z){this.storage=$;this.cache=Z}async activate($,Z){let{keyInfo:Q,apiKey:X}=await this.storage.resolve($,Z),Y=XQ()[Q.providerId];if(!Y)throw Error(`Unknown provider: ${Q.providerId}`);return Y.create(X)}async listModels($,Z){let{keyInfo:Q,apiKey:X}=await this.storage.resolve($,Z),Y=Q.providerId,J=XQ()[Y];if(!J)throw Error(`Unknown provider: ${Y}`);if(this.cache){let U=await this.cache.get(Z,Y);if(U)return sJ8(U,J,X)}let K=await J.create(X).listModels(),W=new Set,H=K.filter((U)=>{if(U.deprecated)return!1;if(W.has(U.modelId))return!1;return W.add(U.modelId),!0});if(Y!=="openrouter"){let U=await lm6(this.cache);H=dm6(H,U)}else H=H.map((U)=>({...U,capabilities:eJ8(U.capabilities,U)}));let F=H.map((U)=>({...U,providerId:Y}));if(this.cache)await this.cache.set(Z,Y,F);return sJ8(F,J,X)}}function sJ8($,Z,Q){let Y=Z.create(Q).asyncResearch;if(!Y)return $;return $.map((J)=>Y.canHandle(J.modelId)?{...J,asyncResearch:!0}:J)}var rJ8="_global";var $38=D(()=>{vB()});import{SpanStatusCode as Z38}from"@opentelemetry/api";function pm6($){if(!$)return;try{let Z=JSON.parse($);if(typeof Z!=="object"||Z===null||Array.isArray(Z))return;let Q={};for(let[X,Y]of Object.entries(Z)){if(Object.keys(Q).length>=im6)break;if(typeof Y==="string"&&X.length<=Q38&&Y.length<=Q38)Q[X]=Y}return Object.keys(Q).length>0?Q:void 0}catch{return}}function nm6($,Z){return Z?.connectionId??$?.headers.get("x-caller-id")??void 0}function tm6($){try{let Z=new URL($.url).pathname.split("/").filter(Boolean);if(Z[0]==="api"&&Z[1])return decodeURIComponent(Z[1])}catch{}return}function iL1($){let{auth:Z,headers:Q,role:X,permissions:Y,userId:J,apiKeyId:G,organizationId:K}=$,W=!!G,H=Z.api.hasPermission;return{isApiKeyPrincipal:W,hasPermission:async(F,U)=>{if(W)return TL1(Y??{},F);let N=!!U?.organizationId&&!!K&&U.organizationId!==K,B=U?U.role:X;if(l9(B))return!0;if(Y&&!N)return TL1(Y,F);let O=_Y8(U?.role,F,vY8());if(O!=="fallback")return O==="grant";if(!H)return console.error("[Auth] hasPermission API not available"),!1;let L=U?.organizationId?{organizationId:U.organizationId}:{};try{if((await H({headers:Q,body:{permission:F,...L}}))?.success===!0)return!0;let j=NN$(F);return(await H({headers:Q,body:{permission:j,...L}}))?.success===!0}catch(w){let j=w?.statusCode;if(j!==401&&j!==403)console.error("[Auth] Permission check failed:",w instanceof Error?w.message:String(w));return!1}},organization:{create:async(F)=>{return Z.api.createOrganization({body:F})},update:async(F)=>{return Z.api.updateOrganization({headers:Q,body:F})},delete:async(F)=>{await Z.api.deleteOrganization({headers:Q,body:{organizationId:F}})},get:async(F)=>{return Z.api.getFullOrganization({headers:Q,query:F?{organizationId:F}:void 0})},list:async()=>{return(await Z.api.listOrganizations({headers:Q})).filter((U)=>!a5(U))},addMember:async(F)=>{return Z.api.addMember({body:F})},removeMember:async(F)=>{return Z.api.removeMember({headers:Q,body:F})},listMembers:async(F)=>{return Z.api.listMembers({headers:Q,query:F?{organizationId:F.organizationId,limit:F.limit,offset:F.offset,filterField:F.filterField,filterValue:F.filterValue}:void 0})},updateMemberRole:async(F)=>{return Z.api.updateMemberRole({headers:Q,body:F})}},apiKey:{create:async(F)=>{return Z.api.createApiKey({body:{...F,userId:J}})},list:async()=>{return Z.api.listApiKeys({headers:Q})},update:async(F)=>{return Z.api.updateApiKey({body:{...F,userId:J}})},delete:async(F)=>{await Z.api.deleteApiKey({headers:Q,body:{keyId:F}})}}}}async function dP($,Z,Q){if(yh.includes(Q))return;let X=await $.selectFrom("organizationRole").select(["permission"]).where("organizationId","=",Z).where("role","=",Q).executeTakeFirst();if(!X?.permission)return;try{return JSON.parse(X.permission)}catch{console.error(`[Auth] Failed to parse permissions for role: ${Q}`);return}}function rm6($,Z,Q){$.delete(Z),$.set(Z,{archived:Q,at:Date.now()})}function am6($,Z,Q){if($.size<=Z)return;let X=Date.now();for(let[Y,J]of $)if(X-J.at>=Q)$.delete(Y);if($.size>Z){let Y=$.size-Z,J=0;for(let G of $.keys()){if(J>=Y)break;$.delete(G),J++}}}async function Y38($,Z,Q,X){let Y=mL1.get(Q);if(Y&&Date.now()-Y.at<X38)return Y.archived;let J=await Z.measure(X,()=>$.selectFrom("organization").select(["metadata"]).where("id","=",Q).executeTakeFirst()),G=a5(J);return rm6(mL1,Q,G),am6(mL1,om6,X38),G}async function dL1($,Z,Q,X,Y){let J=Y?.get(Q,X);if(J)return J;let K=(await Z.measure("auth_query_membership",()=>$.selectFrom("member").select(["member.role"]).where("member.userId","=",Q).where("member.organizationId","=",X).executeTakeFirst()))?.role;if(K)Y?.set(Q,X,K);return K}function sm6($,Z){if(!$)return!0;return Z===$}async function em6($,Z,Q,X,Y){let J=EK0($.headers,"token");if(!J)return;let G=await Q.measure("auth_verify_onbehalf_studio_jwt",()=>ts0(J));if(!G?.sub)return;let K=G.metadata?.organizationId;if(!sm6(X,K))return;let W=X?await dL1(Z,Q,G.sub,X,Y):G.user?.role??void 0;return{id:G.sub,email:G.user?.email,name:G.user?.name,role:W}}async function $d6($,Z,Q,X=G38,Y){let J=$.headers.get("Authorization");try{let G=new Headers($.headers);G.set("X-MCP-Session-Auth","true");let K=await X.measure("auth_get_mcp_session",()=>Z.api.getMcpSession({headers:G}));if(K){let W=K.userId,H=$.headers.get("x-org-id"),F=$.headers.get("x-org-slug"),U=tm6($),N=await X.measure("auth_query_membership",()=>{let w=Q.selectFrom("member").innerJoin("organization","organization.id","member.organizationId").select(["member.role","member.organizationId","organization.id as orgId","organization.slug as orgSlug","organization.name as orgName","organization.metadata as orgMetadata"]).where("member.userId","=",W);if(U)return w.where("organization.slug","=",U).executeTakeFirst();if(H)return w.where("organization.id","=",H).executeTakeFirst();if(F)return w.where("organization.slug","=",F).executeTakeFirst();return w.orderBy("member.createdAt","asc").limit(2).execute().then((j)=>j.length===1?j[0]:void 0)});if(a5({metadata:N?.orgMetadata}))throw Error("Organization is archived");let B=N?.role,O=N?{id:N.orgId,slug:N.orgSlug,name:N.orgName}:void 0;if(N&&B)Y?.set(W,N.organizationId,B);let L;if(N&&B)L=await X.measure("auth_fetch_role_permissions",()=>dP(Q,N.organizationId,B));return{user:{id:W,role:B},role:B,permissions:L,organization:O}}}catch(G){console.error("[Auth] OAuth session check failed:",G)}if(J?.startsWith("Bearer ")){let G=J.replace("Bearer ","").trim();try{let K=await X.measure("auth_verify_studio_token",()=>ts0(G));if(K){let W,H=K.metadata?.organizationId;if(K.sub&&H)W=await dL1(Q,X,K.sub,H,Y);let F,U=K.metadata?.organizationId;if(U){let N=K.metadata?.organizationName,B=K.metadata?.organizationSlug;if(N||B){if(await Y38(Q,X,U,"auth_query_org_archived_for_studio_token"))return{user:void 0};F={id:U,name:N,slug:B}}else{let O=await X.measure("auth_query_org_for_studio_token",()=>Q.selectFrom("organization").select(["id","slug","name","metadata"]).where("id","=",U).executeTakeFirst());if(a5(O))return{user:void 0};F=O?{id:O.id,slug:O.slug,name:O.name}:{id:U}}}return{user:{id:K.sub,connectionId:K.metadata?.connectionId,role:W},role:W,permissions:K.permissions,tokenOrganizationId:H,organization:F}}}catch{}try{let K=await X.measure("auth_verify_api_key",()=>Z.api.verifyApiKey({body:{key:G}}));if(K?.valid&&K.key){let W=K.key.metadata?.organization;if(W?.id&&await Y38(Q,X,W.id,"auth_query_org_for_api_key"))return{user:void 0};let H=K.key.permissions,F,U=K.key.userId;if(U&&W?.id)F=await dL1(Q,X,U,W.id,Y);let N=await em6($,Q,X,W?.id,Y);return{apiKeyId:K.key.id,user:N??{id:K.key.userId,role:F},role:N?N.role:F,permissions:H,apiKey:{id:K.key.id,name:K.key.name??"",userId:K.key.userId,metadata:K.key.metadata},tokenOrganizationId:W?.id,organization:W?{id:W.id,slug:W.slug,name:W.name}:void 0}}}catch(K){let W=K;if(W.body?.code==="INVALID_API_KEY"||W.message?.includes("Invalid API key"))console.warn("[Auth] invalid API key (Bearer)",{path:new URL($.url).pathname,method:$.method,ua:$.headers.get("user-agent")??void 0,ip:$.headers.get("x-forwarded-for")??$.headers.get("x-real-ip")??void 0,tokenPrefix:G.slice(0,8)});else console.error("[Auth] API key check failed:",W)}}try{let G=new Headers($.headers);G.delete("Authorization");let K=await X.measure("auth_get_session",()=>Z.api.getSession({headers:G}));if(K){let W,H,F=$.headers.get("x-org-id"),U=$.headers.get("x-org-slug");if(!F&&!U&&$.method.toUpperCase()==="GET")try{let N=new URL($.url).searchParams;F=N.get("x-org-id"),U=N.get("x-org-slug")}catch{}if(F||U){let N=await X.measure("auth_query_membership_from_header",()=>{let B=Q.selectFrom("member").innerJoin("organization","organization.id","member.organizationId").select(["member.role","organization.id as orgId","organization.slug as orgSlug","organization.name as orgName","organization.metadata as orgMetadata"]).where("member.userId","=",K.user.id);if(F)B=B.where("organization.id","=",F);else if(U)B=B.where("organization.slug","=",U);return B.executeTakeFirst()});if(a5({metadata:N?.orgMetadata}))throw Error("Organization is archived");if(N)W={id:N.orgId,slug:N.orgSlug,name:N.orgName},H=N.role}else if(K.session.activeOrganizationId){let N=await X.measure("auth_get_full_organization",()=>Z.api.getFullOrganization({headers:G}).catch(()=>null));if(N){if(a5(N))throw Error("Organization is archived");W={id:N.id,slug:N.slug,name:N.name},H=N.members?.find((O)=>O.userId===K.user.id)?.role}else W={id:K.session.activeOrganizationId,slug:"",name:""}}return{user:{id:K.user.id,email:K.user.email,emailVerified:!!K.user.emailVerified,name:K.user.name,image:K.user.image??void 0,role:H},role:H,organization:W}}}catch(G){let K=G;console.error("[Auth] Session check failed:",JSON.stringify({message:K.message,body:K.body,stack:K.stack},null,2))}return{user:void 0}}async function K38($){let Z=new VX($.encryption.key),Q=k0(),X=Q.clickhouseUrl,Y=!!X,J=!Y&&!!Q.monitoringS3Bucket,G=Y?"clickhouse":"duckdb",{resolve:K}=await import("path"),W=K(IK()),H=K(YN()),F=(A)=>`read_ndjson('${W}/${A}/**/*.ndjson', auto_detect=true)`,U=(A)=>`read_ndjson('${H}/${A}/**/*.ndjson', auto_detect=true)`,N,B,O,L,w=!1;if($.monitoringEngines)N=$.monitoringEngines.monitoringEngine,B=$.monitoringEngines.metricEngine,O=F,L=U;else if(Y){let A=Q.clickhouseMaxMemoryUsage?{maxMemoryUsage:String(Q.clickhouseMaxMemoryUsage)}:void 0;N=new Ua(X,A),B=new Ua(X,A),O=(q)=>"studio_monitoring_logs",L=(q)=>"studio_monitoring_logs"}else if(J){let A=Q.monitoringS3AccessKeyId??Q.s3AccessKeyId,q=Q.monitoringS3SecretAccessKey??Q.s3SecretAccessKey,V=Q.duckdbExtensionDirectory;if(!A||!q||!V)throw Error("MONITORING_S3_BUCKET is set but the GCS monitoring path is misconfigured: MONITORING_S3_ACCESS_KEY_ID/S3_ACCESS_KEY_ID, MONITORING_S3_SECRET_ACCESS_KEY/S3_SECRET_ACCESS_KEY, and DUCKDB_EXTENSION_DIRECTORY are all required.");let I={endpoint:Q.monitoringS3Endpoint??Q.s3Endpoint??"storage.googleapis.com",region:Q.monitoringS3Region??Q.s3Region,accessKeyId:A,secretAccessKey:q,extensionDirectory:V},C=new Fa(I,{memoryLimit:Q.duckdbMemoryLimit,threads:Q.duckdbThreads});N=C,B=C;let d=Q.monitoringS3Bucket,x=Q.monitoringS3Prefix??"",b=(m,y)=>pU$({bucket:d,prefix:x,range:y});O=b,L=b,w=!0}else{let{engine:A}=await s81({basePath:IK()}),{engine:q}=await s81({basePath:YN()});N=A,B=q,O=F,L=U}let j=new ju($.db),E=new n80($.db),z=new Da($.db),P={connections:new so($.db,Z),connectionCredentialVault:new B$1($.db),organizationSettings:new OP($.db),userModelPreferences:new $41($.db),monitoring:new z$1(N,O,B,L,G,w),virtualMcps:new Eu($.db),users:new D41($.db),tags:new La($.db),organizationBilling:new aH($.db),virtualMcpPluginConfigs:new Z41($.db),aiProviderKeys:new ca($.db,Z,$.providerKeyCache),subsidizedGatewayKeys:new kL1($.db,Z),secrets:new oY1($.db,Z),orgFileConfigs:new SL1($.db,Z),orgSites:new ib($.db),orgRepoSyncs:new FA($.db),gitProviderAccounts:new $w($.db),gitProviderAccountCredentials:new bs($.db,Z),gitProviderOAuthStates:new fL1($.db),githubConnectFlows:new vL1($.db),repositories:new ys($.db),jiraIntegrations:new oB($.db,Z),taskBoard:new j3($.db),columnAutomations:new bL1($.db),taskBoardPrompts:new yL1($.db),notifications:new hL1($.db),orgFsEntries:new nt($.db),oauthPkceStates:new uL1($.db),claudeSubscriptions:new lL1($.db,Z),automations:JK0($.db),triggerCallbackTokens:new Ba($.db),orgSsoConfig:new W41($.db,Z),orgSsoSessions:new H41($.db),registry:{items:new wl($.db),publishRequests:new jl($.db),publishApiKeys:new El($.db),monitorRuns:new DK0($.db),monitorResults:new LK0($.db),monitorConnections:new wK0($.db)},brandContext:new Oa($.db),organizationDomains:new dJ($.db),organizationJoinRequests:new Ll($.db),kv:z,interests:new K41(z)};return async(A,q)=>{let V=q?.timings??G38,I=WC0(),C=A?await $.observability.tracer.startActiveSpan("studio.auth",async(E0)=>{try{let g0=await $d6(A,$.auth,$.db,V,$.memberRoleCache);return E0.setStatus({code:Z38.OK}),g0}catch(g0){throw E0.setStatus({code:Z38.ERROR,message:g0.message}),E0.recordException(g0),g0}finally{E0.end()}}):{user:void 0},d=nm6(A,C.user),x=iL1({auth:$.auth,headers:A?.headers??new Headers,role:C.role,permissions:C.permissions,userId:C.user?.id,apiKeyId:C.apiKeyId,organizationId:C.organization?.id}),b={user:C.user,tokenOrganizationId:C.tokenOrganizationId,permissions:C.permissions,permissionsOrganizationId:C.permissions?C.organization?.id:void 0};if(C.apiKey)b.apiKey=C.apiKey;let m=C.organization,y=A?k0().baseUrl??`${new URL(A.url).origin}`:w5(),p=new Tz(b.user?.id,void 0,x,C.role,"self",void 0,m?.id),Y0={...P,virtualMcps:HK$(P.virtualMcps),threads:new H$1(j,m?.id),asyncResearchJobs:new ML1(E,m?.id)},L0=new cL1(Y0.aiProviderKeys,$.modelListCache),s=x7(),r=!m?null:s?AX(s,m.id):new KG(m.id,y),O0=m&&r?new WG(r,Y0.orgFsEntries,m.id):null;Yp0(Y0,{objectStorage:r,baseUrl:y,orgSlug:m?.slug});let Z0={timings:V,auth:b,connectionId:d,organization:m,storage:Y0,vault:Z,authInstance:$.auth,boundAuth:x,access:p,db:$.db,tracer:$.observability.tracer,meter:$.observability.meter,baseUrl:y,objectStorage:r,orgFs:O0,metadata:{requestId:crypto.randomUUID(),timestamp:new Date,wellKnownForwardableHeaders:Object.fromEntries(Zd6.map((E0)=>[E0,A?.headers.get(E0)??null]).filter(([E0,g0])=>g0!==null)),userAgent:(A?EK0(A.headers,"client"):null)||A?.headers.get("User-Agent")||void 0,ipAddress:(A?.headers.get("CF-Connecting-IP")||A?.headers.get("X-Forwarded-For"))??void 0,properties:pm6(A?EK0(A.headers,"properties"):null)},aiProviders:L0,createMCPProxy:async(E0)=>{return await hJ8(E0,Z0)},invalidateMemberRole:$.memberRoleCache?(E0,g0)=>$.memberRoleCache.invalidate(E0,g0):void 0,getOrCreateClient:I,pendingRevalidations:[],firecrawlApiKey:k0().firecrawlApiKey};return Z0}}function pw($,Z){$.storage.threads.setOrganizationId(Z.id),$.storage.asyncResearchJobs.setOrganizationId(Z.id);let Q=x7();$.objectStorage=Q?AX(Q,Z.id):new KG(Z.id,$.baseUrl),$.orgFs=new WG($.objectStorage,$.storage.orgFsEntries,Z.id),Yp0($.storage,{objectStorage:$.objectStorage,baseUrl:$.baseUrl,orgSlug:Z.slug??void 0})}var im6=50,Q38=500,X38=60000,om6=1e4,mL1,J38,r7,G38,Zd6;var WF=D(()=>{ED();zD();A$();E5();F$1();WG0();O$1();DK$();nU$();$G();e81();tU$();Q41();X41();J41();FN$();O41();jK0();AN();w41();jW1();VQ();QL1();ao();VL1();EL1();y61();Y00();lJ8();CL1();AH0();gs();xL1();zB();oJ8();ls0();wN();$38();JN();qh();PX0();mL1=new Map;r7={set:($)=>{J38=$},create:async($,Z)=>{return await J38($,Z)}},G38={measure:async($,Z)=>{return await Z()}},Zd6=["x-hub-signature-256"]});import{DBOS as OC0,SchedulerMode as Qd6}from"@dbos-inc/dbos-sdk";function W38($){nL1=$}function H38(){if(!nL1)throw Error("[org-fs] org-repo-sync runtime not initialized \u2014 setOrgRepoSyncRuntime() must run before the workflow fires");return nL1}async function Yd6($,Z){let Q=await $.selectFrom("organization").select(["id","slug","name"]).where("id","=",Z).executeTakeFirst();if(!Q)return null;let X=await r7.create();return X.organization={id:Q.id,slug:Q.slug,name:Q.name},pw(X,{id:Q.id,slug:Q.slug}),X}async function Jd6($){try{let{db:Z}=H38(),Q=await Yd6(Z,$.organizationId);if(!Q)return{id:$.id,volume:$.volume,error:"organization no longer exists"};let X=await oH0(Q,$);return"error"in X?{id:X.id,volume:X.volume,error:X.error}:{id:X.id,volume:X.volume}}catch(Z){return{id:$.id,volume:$.volume,error:Z instanceof Error?Z.message:String(Z)}}}async function Gd6($,Z){let Q=await OC0.runStep(()=>new FA(H38().db).listEnabled(),{name:"loadOrgRepoSyncConfigs"});for(let X of Q){let Y=await OC0.runStep(()=>Jd6(X),{name:`syncOrgRepo:${X.id}`});if(Y.error)console.warn(`[org-fs] org repo sync ${Y.id} (${Y.volume}) failed: ${Y.error}`)}}function F38(){if(pL1)return;pL1=OC0.registerWorkflow(Gd6,{name:"orgRepoSyncWorkflow"}),OC0.registerScheduled(pL1,{name:"orgRepoSyncWorkflow",crontab:Xd6,mode:Qd6.ExactlyOncePerIntervalWhenActive})}var Xd6="7-59/10 * * * *",nL1=null,pL1=null;var U38=D(()=>{WF();rH0()});import{DBOS as DC0,SchedulerMode as Kd6}from"@dbos-inc/dbos-sdk";function N38($){oL1=$}function B38(){if(!oL1)throw Error("[task-board-archive] runtime not initialized \u2014 setTaskBoardArchiveSweepRuntime() must run before the workflow fires");return oL1}async function Ud6($,Z){try{let Q=await hF(B38().db,$);if(!Q)return{organizationId:$,archived:0};let{archived:X}=await Rh$(Q,$,Z);return{organizationId:$,archived:X}}catch(Q){return{organizationId:$,archived:0,error:Q instanceof Error?Q.message:String(Q)}}}async function Nd6($,Z){let Q=new Date($.getTime()-Hd6),X=await DC0.runStep(()=>new j3(B38().db).listItemsAwaitingArchive(Q,Fd6),{name:"loadArchiveCandidates"});if(X.length===0)return;let Y=await Promise.all(Nq0(X).map(({organizationId:G,itemIds:K})=>DC0.runStep(()=>Ud6(G,K),{name:`archiveMergedForOrg:${G}`})));for(let G of Y)if(G.error)console.warn(`[task-board-archive] org ${G.organizationId} failed: ${G.error}`);let J=Y.reduce((G,K)=>G+K.archived,0);if(J>0)console.log(`[task-board-archive] archived ${J} of ${X.length} candidates`)}function O38(){if(tL1)return;tL1=DC0.registerWorkflow(Nd6,{name:"taskBoardArchiveSweepWorkflow"}),DC0.registerScheduled(tL1,{name:"taskBoardArchiveSweepWorkflow",crontab:Wd6,mode:Kd6.ExactlyOncePerIntervalWhenActive})}var Wd6="23 * * * *",Hd6=432000000,Fd6=200,oL1=null,tL1=null;var D38=D(()=>{zB();Xm();Jm()});async function Bd6($,Z){let Q=await $.storage.tags.listOrgTags(Z),X=Q.find((J)=>J.name.toLowerCase()===LC0);if(X)return X.id;return(await $.storage.tags.createTag(Z,LC0,jH0(Q.length))).id}async function Od6($,Z,Q,X,Y){let J=await $.storage.taskBoard.getById(Q,Z);if(!J||!Vh$(J.status))return!1;let G=await $.storage.taskBoard.listPrs(Q,Z),K=await Promise.all(G.map(async(H)=>({...H,...await Y($,Z,H)})));if(!Ef(K))return!1;await $.storage.taskBoard.addItemTags(Q,[await X()],"system");let W=await $.storage.taskBoard.getById(Q,Z);if(!W)return!1;return await y6($,{taskBoardItemId:Q,action:"tags_changed",actorId:null,data:{from:J.tags,to:W.tags,reason:"merged_pr_auto_tag"}}),B8(Z,W),!0}async function L38($,Z,Q,X=Bq0){let Y=null,J=()=>Y??=Bd6($,Z),G=0;for(let K of Q)try{if(await Od6($,Z,K,J,X))G+=1}catch(W){console.error(`[task-board-merged-tag] ${K} failed`,W)}return{tagged:G}}var LC0="merged";var w38=D(()=>{R4();rQ();Xm();_W();gZ();O9()});import{DBOS as wC0,SchedulerMode as Dd6}from"@dbos-inc/dbos-sdk";function j38($){aL1=$}function E38(){if(!aL1)throw Error("[task-board-merged-tag] runtime not initialized \u2014 setTaskBoardMergedTagSweepRuntime() must run before the workflow fires");return aL1}async function jd6($,Z){try{let Q=await hF(E38().db,$);if(!Q)return{organizationId:$,tagged:0};let{tagged:X}=await L38(Q,$,Z);return{organizationId:$,tagged:X}}catch(Q){return{organizationId:$,tagged:0,error:Q instanceof Error?Q.message:String(Q)}}}async function Ed6(){let $=await wC0.runStep(()=>new j3(E38().db).listItemsAwaitingMergedTag(LC0,wd6),{name:"loadMergedTagCandidates"});if($.length===0)return;let Z=await Promise.all(Nq0($).map(({organizationId:X,itemIds:Y})=>wC0.runStep(()=>jd6(X,Y),{name:`tagMergedForOrg:${X}`})));for(let X of Z)if(X.error)console.warn(`[task-board-merged-tag] org ${X.organizationId} failed: ${X.error}`);let Q=Z.reduce((X,Y)=>X+Y.tagged,0);if(Q>0)console.log(`[task-board-merged-tag] tagged ${Q} of ${$.length} candidates`)}function z38(){if(rL1)return;rL1=wC0.registerWorkflow(Ed6,{name:"taskBoardMergedTagSweepWorkflow"}),wC0.registerScheduled(rL1,{name:"taskBoardMergedTagSweepWorkflow",crontab:Ld6,mode:Dd6.ExactlyOncePerIntervalWhenActive})}var Ld6="41 * * * *",wd6=200,aL1=null,rL1=null;var P38=D(()=>{zB();Xm();Jm();w38()});function T38($){if(!$)return!1;try{return new URL($).host==="api.decocms.com"&&$!=="https://studio.decocms.com/org/deco/registry/mcp"}catch{return!1}}var A38="https://studio.decocms.com/org/deco/registry/mcp";var q38,zd6,R38=($)=>{let Z=0,Q=$.length;while(Z<Q){let X=$.charCodeAt(Z);if(X!==32&&X!==9)break;Z++}while(Q>Z){let X=$.charCodeAt(Q-1);if(X!==32&&X!==9)break;Q--}return Z===0&&Q===$.length?$:$.slice(Z,Q)},sL1=($,Z)=>{if(Z&&$.indexOf(Z)===-1)return{};let Q=$.split(";"),X={};for(let Y of Q){let J=Y.indexOf("=");if(J===-1)continue;let G=R38(Y.substring(0,J));if(Z&&Z!==G||!q38.test(G))continue;let K=R38(Y.substring(J+1));if(K.startsWith('"')&&K.endsWith('"'))K=K.slice(1,-1);if(zd6.test(K)){if(X[G]=K.indexOf("%")!==-1?Pl(K,ja):K,Z)break}}return X},Pd6=($,Z,Q={})=>{if(!q38.test($))throw Error("Invalid cookie name");let X=`${$}=${Z}`;if($.startsWith("__Secure-")&&!Q.secure)throw Error("__Secure- Cookie must have Secure attributes");if($.startsWith("__Host-")){if(!Q.secure)throw Error("__Host- Cookie must have Secure attributes");if(Q.path!=="/")throw Error('__Host- Cookie must have Path attributes with "/"');if(Q.domain)throw Error("__Host- Cookie must not have Domain attributes")}for(let Y of["domain","path"])if(Q[Y]&&/[;\r\n]/.test(Q[Y]))throw Error(`${Y} must not contain ";", "\\r", or "\\n"`);if(Q&&typeof Q.maxAge==="number"&&Q.maxAge>=0){if(Q.maxAge>34560000)throw Error("Cookies Max-Age SHOULD NOT be greater than 400 days (34560000 seconds) in duration.");X+=`; Max-Age=${Q.maxAge|0}`}if(Q.domain&&Q.prefix!=="host")X+=`; Domain=${Q.domain}`;if(Q.path)X+=`; Path=${Q.path}`;if(Q.expires){if(Q.expires.getTime()-Date.now()>34560000000)throw Error("Cookies Expires SHOULD NOT be greater than 400 days (34560000 seconds) in the future.");X+=`; Expires=${Q.expires.toUTCString()}`}if(Q.httpOnly)X+="; HttpOnly";if(Q.secure)X+="; Secure";if(Q.sameSite)X+=`; SameSite=${Q.sameSite.charAt(0).toUpperCase()+Q.sameSite.slice(1)}`;if(Q.priority)X+=`; Priority=${Q.priority.charAt(0).toUpperCase()+Q.priority.slice(1)}`;if(Q.partitioned){if(!Q.secure)throw Error("Partitioned Cookie must have Secure attributes");X+="; Partitioned"}return X},jC0=($,Z,Q)=>{return Z=encodeURIComponent(Z),Pd6($,Z,Q)};var I38=D(()=>{EL();q38=/^[\w!#$%&'*.^`|~+-]+$/,zd6=/^[ !#-:<-[\]-~]*$/});var Ji=($,Z,Q)=>{let X=$.req.raw.headers.get("Cookie");if(typeof Z==="string"){if(!X)return;let J=Z;if(Q==="secure")J="__Secure-"+Z;else if(Q==="host")J="__Host-"+Z;return sL1(X,J)[J]}if(!X)return{};return sL1(X)},Ad6=($,Z,Q)=>{let X;if(Q?.prefix==="secure")X=jC0("__Secure-"+$,Z,{path:"/",...Q,secure:!0});else if(Q?.prefix==="host")X=jC0("__Host-"+$,Z,{...Q,path:"/",secure:!0,domain:void 0});else X=jC0($,Z,{path:"/",...Q});return X},r80=($,Z,Q,X)=>{let Y=Ad6(Z,Q,X);$.header("Set-Cookie",Y,{append:!0})};var EC0=D(()=>{I38()});var M38=($)=>{let Q={...{origin:"*",allowMethods:["GET","HEAD","PUT","POST","DELETE","PATCH"],allowHeaders:[],exposeHeaders:[]},...$},X=((J)=>{if(typeof J==="string")if(J==="*"){if(Q.credentials)return(G)=>G||null;return()=>J}else return(G)=>J===G?G:null;else if(typeof J==="function")return J;else return(G)=>J.includes(G)?G:null})(Q.origin),Y=((J)=>{if(typeof J==="function")return J;else if(Array.isArray(J))return()=>J;else return()=>[]})(Q.allowMethods);return async function(G,K){function W(F,U){G.res.headers.set(F,U)}let H=await X(G.req.header("origin")||"",G);if(H)W("Access-Control-Allow-Origin",H);if(Q.credentials)W("Access-Control-Allow-Credentials","true");if(Q.exposeHeaders?.length)W("Access-Control-Expose-Headers",Q.exposeHeaders.join(","));if(G.req.method==="OPTIONS"){if(Q.origin!=="*"||Q.credentials)W("Vary","Origin");if(Q.maxAge!=null)W("Access-Control-Max-Age",Q.maxAge.toString());let F=await Y(G.req.header("origin")||"",G);if(F.length)W("Access-Control-Allow-Methods",F.join(","));let U=Q.allowHeaders;if(!U?.length){let N=G.req.header("Access-Control-Request-Headers");if(N)U=N.split(/\s*,\s*/)}if(U?.length)W("Access-Control-Allow-Headers",U.join(",")),G.res.headers.append("Vary","Access-Control-Request-Headers");return G.res.headers.delete("Content-Length"),G.res.headers.delete("Content-Type"),new Response(null,{headers:G.res.headers,status:204,statusText:"No Content"})}if(await K(),Q.origin!=="*"||Q.credentials)G.header("Vary","Origin",{append:!0})}};var V38=()=>{};function eL1($,Z){return`${$}:${Z}`}function k38($){let Z=$?.ttlMs??120000,Q=$?.maxSize??1e4,X=new Map;function Y(){if(X.size<=Q)return;let J=Date.now();for(let[G,K]of X)if(K.expiresAt<=J)X.delete(G);if(X.size>Q){let G=X.size-Q,K=0;for(let W of X.keys()){if(K>=G)break;X.delete(W),K++}}}return{get(J,G){let K=eL1(J,G),W=X.get(K);if(!W)return;if(W.expiresAt<=Date.now()){X.delete(K);return}return W.role},set(J,G,K){let W=eL1(J,G);X.set(W,{role:K,expiresAt:Date.now()+Z}),Y()},invalidate(J,G){X.delete(eL1(J,G))}}}class $w1{options;subscriptions=[];localEmit=null;originId=crypto.randomUUID();encoder=new TextEncoder;seenMessageIds=new Set;constructor($){this.options=$}async start($){if($)this.localEmit=$;if(this.subscriptions.length>0)return;if(!this.localEmit)return;let Z=this.options.getConnection();if(!Z)return;let Q=new TextDecoder;this.subscriptions=S38.map((X)=>Z.subscribe(X));for(let X of this.subscriptions)(async()=>{for await(let Y of X)try{let J=JSON.parse(Q.decode(Y.data));if(typeof J?.originId!=="string"||typeof J?.organizationId!=="string"||typeof J?.event?.id!=="string"||typeof J?.event?.type!=="string")continue;if(J.originId===this.originId)continue;if(typeof J.messageId==="string"&&this.hasSeen(J.messageId))continue;this.localEmit?.(J.organizationId,J.event)}catch{}})().catch((Y)=>{console.error("[NatsSSEBroadcast] Subscription error:",Y)})}broadcast($,Z){this.localEmit?.($,Z);let Q={originId:this.originId,messageId:crypto.randomUUID(),organizationId:$,event:Z};try{let X=this.options.getConnection();if(!X)return;let Y=this.encoder.encode(JSON.stringify(Q));for(let J of S38)X.publish(J,Y)}catch(X){console.warn("[NatsSSEBroadcast] Publish failed (non-critical):",X)}}async stop(){for(let $ of this.subscriptions)$.unsubscribe();this.subscriptions=[],this.seenMessageIds.clear(),this.localEmit=null}hasSeen($){if(this.seenMessageIds.has($))return!0;if(this.seenMessageIds.add($),this.seenMessageIds.size>1000){let Z=this.seenMessageIds.values().next().value;if(Z)this.seenMessageIds.delete(Z)}return!1}}var S38;var C38=D(()=>{S38=["studio.sse.broadcast","mesh.sse.broadcast"]});async function Td6($,Z,Q=5){try{await q8(Z,{maxAttempts:Q,minTimeout:1000,maxTimeout:1e4,jitter:0})}catch(X){console.error(`${$} Deferred start failed:`,X instanceof i5?X.cause:X)}}function _38($){let Z=new $w1({getConnection:()=>$.getConnection()});l5.start(Z).catch((Q)=>{console.error("[SSEHub] Failed to start broadcast strategy:",Q)}),$.onReady(()=>{Td6("[NatsSSEBroadcast]",()=>Z.start())})}var Zw1=D(()=>{Z8();C38();A00();A00()});var v38=()=>{};var Qw1=()=>{};var x38=()=>{};var Rd6,tK7;var f38=D(()=>{v38();Qw1();EL();x38();Rd6={br:".br",zstd:".zst",gzip:".gz"},tK7=Object.keys(Rd6)});var b38=D(()=>{f38()});var y38=()=>{};var g38=D(()=>{y38()});var h38=()=>{};var u38=D(()=>{V41()});var Xw1=D(()=>{zL();u38()});var Yw1="x-hono-disable-ssg",BW7;var Jw1=D(()=>{Xw1();BW7=(()=>{try{return new Response("SSG is disabled",{status:404,headers:{[Yw1]:"true"}})}catch{return null}})()});var l38=D(()=>{VK0()});var Gw1=D(()=>{l38()});var c38=D(()=>{g38();h38();Qw1();Jw1();Gw1();Xw1()});var m38=D(()=>{Jw1();Gw1();c38()});var oW7;var d38=D(()=>{m38();({write:oW7}=Bun)});var Md6=class{#$;constructor($){this.#$=$,this.raw=$.raw,this.url=$.url?new URL($.url):null,this.protocol=$.protocol??null}send($,Z){this.#$.send($,Z??{})}raw;binaryType="arraybuffer";get readyState(){return this.#$.readyState}url;protocol;close($,Z){this.#$.close($,Z)}},i38=($)=>{return(...Z)=>{if(typeof Z[0]==="function"){let[Q,X]=Z;return async function(J,G){let K=await Q(J),W=await $(J,K,X);if(W)return W;await G()}}else{let[Q,X,Y]=Z;return(async()=>{let J=await $(Q,X,Y);if(!J)throw Error("Failed to upgrade WebSocket");return J})()}}};var p38=()=>{};var a80=($)=>("server"in $.env)?$.env.server:$.env;var zC0=()=>{};var Vd6;var n38=D(()=>{p38();zC0();Vd6=i38(($,Z)=>{let Q=a80($);if(!Q)throw TypeError("env has to include the 2nd argument of fetch.");if(Q.upgrade($.req.raw,{data:{events:Z,url:new URL($.req.url),protocol:$.req.url}}))return new Response(null);return})});var Kw1=($)=>{let Z=a80($);if(!Z)throw TypeError("env has to include the 2nd argument of fetch.");if(typeof Z.requestIP!=="function")throw TypeError("server.requestIP is not a function.");let Q=Z.requestIP($.req.raw);if(!Q)return{remote:{}};return{remote:{address:Q.address,addressType:Q.family==="IPv6"||Q.family==="IPv4"?Q.family:void 0,port:Q.port}}};var t38=D(()=>{zC0()});var o38=D(()=>{b38();d38();n38();t38();zC0()});var r38;var a38=D(()=>{r38={google:{name:"Google",icon:"https://assets.decocache.com/webdraw/eb7480aa-a68b-4ce4-98ff-36aa121762a7/google.svg"},github:{name:"GitHub",icon:"https://assets.decocache.com/decocms/e02ce92e-6684-41a6-acfc-432977eb4878/github.png"},microsoft:{name:"Microsoft",icon:"https://assets.decocache.com/mcp/aa6f6e1a-6526-4bca-99cc-82e2ec38b0e4/microsoft.png"}}});function s38(){let $=Object.keys(J4.socialProviders??{}),Z=$.length>0,Q=$.map((Y)=>({name:Y,icon:r38[Y].icon})),X=k0().localMode;return{emailAndPassword:{enabled:J4.emailAndPassword?.enabled??!1},magicLink:{enabled:J4.magicLinkConfig?.enabled??!1},emailOtp:{enabled:J4.emailOtpConfig?.enabled??!1},resetPassword:{enabled:JC0},socialProviders:{enabled:Z,providers:Q},sso:J4.ssoConfig?{enabled:!0,providerId:J4.ssoConfig.providerId}:{enabled:!1},stdioEnabled:X,localMode:AB()}}async function kd6($,Z,Q){try{if(!J4.inviteEmailProviderId||!J4.emailProviders||J4.emailProviders.length===0)return;let X=nJ(J4.emailProviders,J4.inviteEmailProviderId);if(!X)return;let Y=await $.selectFrom("member").innerJoin("user","user.id","member.userId").select(["user.email as email","member.role as role"]).where("member.organizationId","=",Z.id).execute(),J=Wo,G=Y.filter((H)=>(H.role??"").split(",").map((F)=>F.trim()).some((F)=>J.includes(F)));if(G.length===0)return;let K=pJ(X),W=`${w5()}/${Z.slug}/settings/members`;await Promise.allSettled(G.map((H)=>K({to:H.email,subject:`New request to join ${Z.name}`,html:tJ({preheader:`${Q} requested to join ${Z.name}.`,heading:"New join request",subheading:`<strong>${Q}</strong> requested to join <strong>${Z.name}</strong> on deco Studio.`,body:TP("Review request",W),footnote:"You can approve or deny this request from your members settings."})})))}catch(X){console.error("[Auth] Failed to notify admins of join request:",X)}}var rB,e38;var Ww1=D(()=>{m$();o38();v4();A$();eJ();TQ();KL1();q91();QC0();AP();VQ();E5();J41();a38();kf();bh();rB=new Q1;rB.post("/local-session",async($)=>{if(!AB())return $.json({success:!1,error:"Local mode is not active"},403);let Z;try{Z=Kw1($).remote.address}catch{}if(!(Z==="127.0.0.1"||Z==="::1"||Z==="::ffff:127.0.0.1"))return $.json({success:!1,error:"Forbidden"},403);try{let{waitForSeed:X}=await Promise.resolve().then(() => (kf(),fq0));await X();let{auth:Y}=await Promise.resolve().then(() => (eJ(),sY8)),J=await u31();if(!J)return $.json({success:!1,error:"Local admin user not found"},500);let G=await xq0();return await Y.api.signInEmail({body:{email:J.email,password:G},asResponse:!0})}catch(X){return console.error("Failed to create local session:",X),$.json({success:!1,error:X instanceof Error?X.message:"Failed to create local session"},500)}});rB.get("/my-capabilities/:slug",async($)=>{let Z=$.req.param("slug"),Q=await K8.api.getSession({headers:$.req.raw.headers});if(!Q?.user)return $.json({error:"Authentication required"},401);let X=l$().db,Y=await X.selectFrom("organization").select(["id"]).where("slug","=",Z).executeTakeFirst();if(!Y)return $.json({role:null,capabilities:{}});let G=(await X.selectFrom("member").select(["role"]).where("userId","=",Q.user.id).where("organizationId","=",Y.id).executeTakeFirst())?.role??null;if(!G)return $.json({role:null,capabilities:{}});if(l9(G))return $.json({role:G,capabilities:J7$()});if(G==="user")return $.json({role:G,capabilities:ke0({self:[...VJ0]})});let K=await X.selectFrom("organizationRole").select(["permission"]).where("role","=",G).where("organizationId","=",Y.id).executeTakeFirst(),W={},H=K?.permission;if(typeof H==="string")try{let F=JSON.parse(H);if(F&&typeof F==="object"&&!Array.isArray(F))W=F}catch{W={}}return $.json({role:G,capabilities:ke0(W)})});rB.get("/domain-lookup",async($)=>{let Z=await K8.api.getSession({headers:$.req.raw.headers});if(!Z?.user)return $.json({success:!1,error:"Authentication required"},401);if(!Z.user.emailVerified)return $.json({found:!1,organizations:[]});let Q=Z.user.email?.split("@")[1]?.toLowerCase();if(!Q||UW.has(Q))return $.json({found:!1,organizations:[]});try{let Y=(await new dJ(l$().db).getAllByDomain(Q)).filter(ZC0);if(Y.length===0)return $.json({found:!1,organizations:[]});let J=await l$().db.selectFrom("organization").select(["id","name","slug","logo","metadata"]).where("id","in",Y.map((W)=>W.organizationId)).execute(),G=new Map(J.map((W)=>[W.id,W])),K=Y.map((W)=>{let H=G.get(W.organizationId);if(!H)return null;if(a5(H))return null;return{id:H.id,name:H.name,slug:H.slug,logo:H.logo,joinMode:W.joinMode}}).filter((W)=>W!==null);return $.json({found:K.length>0,organizations:K})}catch(X){return console.error("[Auth] Domain lookup failed:",X),$.json({success:!1,error:"Domain lookup failed"},500)}});rB.post("/domain-join",async($)=>{let Z=await K8.api.getSession({headers:$.req.raw.headers});if(!Z?.user)return $.json({success:!1,error:"Authentication required"},401);if(!Z.user.emailVerified)return $.json({success:!1,error:"Email must be verified to join"},403);let Q=Z.user.email?.split("@")[1]?.toLowerCase();if(!Q||UW.has(Q))return $.json({success:!1,error:"Generic email domains cannot auto-join"},403);let X=await $.req.json().catch(()=>({})),Y=typeof X.organizationSlug==="string"&&X.organizationSlug.trim()?X.organizationSlug.trim():null;try{let J=l$().db,W=(await new dJ(J).getAllByDomain(Q)).filter((B)=>B.verificationStatus==="verified"&&B.joinMode==="auto");if(W.length===0)return $.json({success:!1,error:"Auto-join is not available for this domain"},403);let H=await J.selectFrom("organization").select(["id","slug","metadata"]).where("id","in",W.map((B)=>B.organizationId)).execute(),F=new Map(H.filter((B)=>!a5(B)).map((B)=>[B.id,{id:B.id,slug:B.slug}])),U=W.flatMap((B)=>{let O=F.get(B.organizationId);return O?[O]:[]});if(U.length===0)return $.json({success:!1,error:"Auto-join is not available for this domain"},403);let N;if(Y){let B=U.find((O)=>O.slug===Y);if(!B)return $.json({success:!1,error:"This organization is not available for auto-join with your email domain."},403);N=B}else if(U.length===1)N=U[0];else return $.json({success:!1,error:"Multiple organizations match this domain. Please pick one.",requiresSelection:!0},409);try{await K8.api.addMember({body:{userId:Z.user.id,role:"user",organizationId:N.id}})}catch(B){if(!tL(B))return console.error("[Auth] Domain join addMember failed:",B),$.json({success:!1,error:"Failed to join organization"},500)}return k1.capture({distinctId:Z.user.id,event:"organization_domain_joined",groups:{organization:N.id},properties:{organization_id:N.id,organization_slug:N.slug,email_domain:Q}}),$.json({success:!0,slug:N.slug})}catch(J){return k1.captureException(J,Z.user.id),console.error("[Auth] Domain join failed:",J),$.json({success:!1,error:"Failed to join organization"},500)}});rB.post("/domain-setup",async($)=>{let Z=await K8.api.getSession({headers:$.req.raw.headers});if(!Z?.user)return $.json({success:!1,error:"Authentication required"},401);if(!Z.user.emailVerified)return $.json({success:!1,error:"Email must be verified"},403);let Q=Z.user.email?.split("@")[1]?.toLowerCase();if(!Q||UW.has(Q))return $.json({success:!1,error:"Corporate email required"},403);let X=await $.req.json().catch(()=>({})),Y=typeof X.name==="string"&&X.name.trim().length>0?X.name.trim():null,J=typeof X.logo==="string"&&X.logo.length>0?X.logo:null,G=X.claimDomain!==!1;try{let K=l$().db,W=new dJ(K),H=await W.getAllByDomain(Q);if(H.length>0){let z=await K.selectFrom("member").innerJoin("organization","organization.id","member.organizationId").select(["organization.slug"]).where("member.userId","=",Z.user.id).where("member.organizationId","in",H.map((P)=>P.organizationId)).executeTakeFirst();if(z)return $.json({success:!0,slug:z.slug,alreadyExists:!0})}let F=Q.split(".")[0]??Q,U=Y??F.charAt(0).toUpperCase()+F.slice(1),N=(Y??F).toLowerCase().trim().replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")||F.toLowerCase().replace(/[^a-z0-9-]/g,""),B=null;for(let P=0;P<3;P++){let A=P===0?"":`-${Math.random().toString(36).slice(2,6)}`,q=P===0?U:`${U}${A}`,V=`${N}${A}`;try{B=await K8.api.createOrganization({body:{name:q,slug:V,userId:Z.user.id}});break}catch(I){if(!(I instanceof Error&&("body"in I)&&I.body?.code==="ORGANIZATION_ALREADY_EXISTS")||P===2)throw I}}if(!B?.id)throw Error("Failed to create organization");let O=B.id;if(G)await W.add(O,Q,{joinMode:"auto",verificationStatus:"verified",verificationMethod:"email"});let L=!1,w=null,j=null;try{let z=k0().firecrawlApiKey;if(z){let P=await BH0(Q,z,U);if(P){let A=new Oa(l$().db),q=await A.create(O,P);if(await A.setDefault(q.id,O),L=!0,P.name&&P.name!==U)w=P.name;j=P.favicon??P.logo??null}}}catch(z){console.error("[Auth] Brand extraction failed (non-fatal):",z)}let E={};if(!Y&&w)E.name=w;if(J)E.logo=J;else if(j)E.logo=j;if(Object.keys(E).length>0)try{await K8.api.updateOrganization({headers:$.req.raw.headers,body:{organizationId:O,data:E}})}catch(z){console.error("[Auth] Org update failed (non-fatal):",z)}return k1.identify({distinctId:Z.user.id,properties:{email:Z.user.email,$set:{email:Z.user.email},$set_once:{first_organization_created_at:new Date().toISOString()}}}),k1.groupIdentify({groupType:"organization",groupKey:O,properties:{name:B.slug??N,slug:B.slug??N,email_domain:Q,brand_extracted:L,created_at:new Date().toISOString()}}),k1.capture({distinctId:Z.user.id,event:"organization_created",groups:{organization:O},properties:{organization_id:O,organization_slug:B.slug??N,email_domain:Q,brand_extracted:L}}),$.json({success:!0,slug:B.slug??N,brandExtracted:L})}catch(K){return k1.captureException(K,Z.user?.id),console.error("[Auth] Domain setup failed:",K),$.json({success:!1,error:"Failed to set up organization"},500)}});rB.get("/org-access-status/:slug",async($)=>{let Z=$.req.param("slug"),Q=await K8.api.getSession({headers:$.req.raw.headers});if(!Q?.user)return $.json({success:!1,error:"Authentication required"},401);let X=l$().db,Y=await X.selectFrom("organization").select(["id","name","slug","logo"]).where("slug","=",Z).executeTakeFirst();if(!Y)return $.json({status:"not-found"});let J={id:Y.id,name:Y.name,slug:Y.slug,logo:Y.logo};if(await X.selectFrom("member").select(["id"]).where("userId","=",Q.user.id).where("organizationId","=",Y.id).executeTakeFirst())return $.json({status:"member",organization:J});try{let K=await K8.api.listUserInvitations({headers:$.req.raw.headers}),W=Date.now(),H=K.find((F)=>F.organizationId===Y.id&&F.status==="pending"&&new Date(F.expiresAt).getTime()>W);if(H)return $.json({status:"pending-invite",invitation:{id:H.id},organization:J})}catch(K){console.error("[Auth] listUserInvitations failed:",K)}if(Q.user.emailVerified){let K=Q.user.email?.split("@")[1]?.toLowerCase();if(K&&!UW.has(K)){let W=await new dJ(X).getByOrgAndDomain(Y.id,K);if(W?.verificationStatus==="verified"){if(W.joinMode==="auto")return $.json({status:"auto-domain-join",organization:{...J,domain:K}});if(W.joinMode==="request"){let H=await new Ll(X).getPending(Y.id,Q.user.id);return $.json({status:H?"request-pending":"can-request",organization:{...J,domain:K}})}}}}return $.json({status:"no-access",organization:J})});rB.post("/domain-request-join",async($)=>{let Z=await K8.api.getSession({headers:$.req.raw.headers});if(!Z?.user)return $.json({success:!1,error:"Authentication required"},401);if(!Z.user.emailVerified)return $.json({success:!1,error:"Email must be verified to request access"},403);let Q=Z.user.email?.split("@")[1]?.toLowerCase();if(!Q||UW.has(Q))return $.json({success:!1,error:"Generic email domains cannot request access"},403);let X=await $.req.json().catch(()=>({})),Y=typeof X.organizationSlug==="string"&&X.organizationSlug.trim()?X.organizationSlug.trim():null;if(!Y)return $.json({success:!1,error:"organizationSlug is required"},400);try{let J=l$().db,G=await J.selectFrom("organization").select(["id","slug","name"]).where("slug","=",Y).executeTakeFirst();if(!G)return $.json({success:!1,error:"Organization not found"},404);let K=await new dJ(J).getByOrgAndDomain(G.id,Q);if(!K||K.verificationStatus!=="verified"||K.joinMode!=="request")return $.json({success:!1,error:"This organization is not accepting requests for your domain."},403);if(await J.selectFrom("member").select(["id"]).where("userId","=",Z.user.id).where("organizationId","=",G.id).executeTakeFirst())return $.json({success:!0,slug:G.slug,alreadyMember:!0});return await new Ll(J).create(G.id,Z.user.id),await kd6(J,G,Z.user.email),k1.capture({distinctId:Z.user.id,event:"organization_join_requested",groups:{organization:G.id},properties:{organization_id:G.id,organization_slug:G.slug,email_domain:Q}}),$.json({success:!0,status:"pending"})}catch(J){return k1.captureException(J,Z.user.id),console.error("[Auth] Domain request-join failed:",J),$.json({success:!1,error:"Failed to request access"},500)}});rB.post("/ensure-organization",async($)=>{let Z=null;try{if(Z=await K8.api.getSession({headers:$.req.raw.headers}),!Z?.user)return $.json({success:!1,error:"Authentication required"},401);let Q=await XC0({db:l$().db,authApi:K8.api,user:{id:Z.user.id,email:Z.user.email,name:Z.user.name??null,emailVerified:!!Z.user.emailVerified},allowCreate:!0,createdVia:"commerce_onboarding_recovery"});if(Q.status==="ambiguous")return $.json({success:!1,status:Q.status,domain:Q.domain,organizations:Q.organizations});if(Q.status==="skipped")return $.json({success:!1,status:Q.status,reason:Q.reason,domain:Q.domain,error:"Organization creation is not available."},409);if(Q.status==="already_has_organization")return $.json({success:!0,status:Q.status,organization:Q.organization,domain:Q.domain});return $.json({success:!0,status:Q.status,organization:Q.organization,domain:Q.domain})}catch(Q){let X=Z?.user?.id;if(X)k1.captureException(Q,X);return console.error("[Auth] ensure organization failed:",Q),$.json({success:!1,error:"Failed to ensure organization"},500)}});e38=rB});import{createHmac as Sd6}from"crypto";function $G8($){return/^Bearer\s+(.+)$/i.exec($.get("authorization")??"")?.[1]?.trim()||null}function ZG8($){if(!$||typeof $!=="object"||!("userId"in $)||typeof $.userId!=="string")return null;return $.userId}function Cd6($){if(!$||typeof $!=="object"||!("user"in $))return null;let{user:Z}=$;if(!Z||typeof Z!=="object"||!("id"in Z)||typeof Z.id!=="string")return null;return Z.id}function _d6($){if(!$||typeof $!=="object"||!("valid"in $)||$.valid!==!0||!("key"in $))return null;return ZG8($.key)}async function QG8($){let Z=new Headers({authorization:`Bearer ${$}`,"X-MCP-Session-Auth":"true"}),Q=await K8.api.getMcpSession({headers:Z}).catch(()=>null),X=ZG8(Q);if(X)return X;let Y=await K8.api.verifyApiKey({body:{key:$}}).catch(()=>null);return _d6(Y)}function vd6($,Z){let Q=Sd6("sha256",Z).update($).digest("base64");return encodeURIComponent(`${$}.${Q}`)}var Hw1,XG8;var YG8=D(()=>{m$();eJ();Hw1=new Q1;Hw1.get("/me",async($)=>{let Z=$G8($.req.raw.headers),Q;if(Z)Q=await QG8(Z);else{let X=await K8.api.getSession({headers:$.req.raw.headers}).catch(()=>null);Q=Cd6(X)}if(!Q)return $.json({error:"unauthorized"},401);return $.json({userId:Q})});Hw1.post("/session-from-oauth",async($)=>{let Z=$G8($.req.raw.headers);if(!Z)return $.json({error:"unauthorized"},401);let Q=await QG8(Z);if(!Q)return $.json({error:"unauthorized"},401);try{let X=await K8.$context,Y=await X.internalAdapter.createSession(Q,!1),J=vd6(Y.token,X.secret);return $.json({sessionToken:J})}catch(X){return console.error("[desktop-auth] failed to mint a session from an OAuth bearer:",X instanceof Error?X.message:String(X)),$.json({error:"failed to mint a session"},500)}});XG8=Hw1});var Gi=($)=>{let Z=$.req.header("sec-fetch-dest");if(Z!==void 0)return Z==="document";let Q=$.req.header("accept")??"";return Q.includes("text/html")&&!/text\/html\s*;\s*q\s*=\s*0/.test(Q)};function xd6($){let Z=$.req.path;return $.req.method==="GET"&&/\/fs\/[^/]+\/read$/.test(Z)||$.req.method==="POST"&&/\/fs\/[^/]+\/unlock$/.test(Z)}function Fw1($){let Z=$.auth?.apiKey?.metadata;if(!Z||typeof Z!=="object"||Array.isArray(Z)||!("organization"in Z))return{present:!1};let Q=Z.organization;if(!Q||typeof Q!=="object"||Array.isArray(Q))return{present:!0};let X=Q.id;return{present:!0,id:typeof X==="string"?X:void 0}}function bd6($){let Z=$.split("/").filter(Boolean);if(Z[0]!=="api")return!1;let Q=Z.slice(2);return fd6.some((X)=>X.length===Q.length&&X.every((Y,J)=>Y==="*"||Y===Q[J]))}var fd6,Ki=async($,Z)=>{let Q=$.req.param("org");if(!Q)return $.json({error:"org slug missing in path"},400);let X=$.get("studioContext");if(!X?.db)return $.json({error:"studioContext not initialized"},500);let Y=X.db,J=bd6($.req.path),G=await Y.selectFrom("organization").select(["id","slug","name","metadata"]).where((F)=>J?F.or([F("slug","=",Q),F("id","=",Q)]):F("slug","=",Q)).executeTakeFirst();if(!G){if(Gi($))return $.redirect(`/${encodeURIComponent(Q)}`,302);return $.json({error:`organization "${Q}" not found`},404)}let K=Fw1(X);if(X.auth?.apiKey?.id&&K.present&&K.id!==G.id)return $.json({error:"forbidden: API key is scoped to another organization"},403);if(X.auth?.tokenOrganizationId&&X.auth.tokenOrganizationId!==G.id)return $.json({error:"forbidden: token is scoped to another organization"},403);if(a5(G)){if(Gi($))return $.redirect(`/${encodeURIComponent(Q)}`,302);return $.json({error:`organization "${Q}" not found`},404)}let W=X.auth?.user?.id,H;if(W){let F=await Y.selectFrom("member").select(["role"]).where("userId","=",W).where("organizationId","=",G.id).executeTakeFirst();if(!F){if(!xd6($)){if(Gi($))return $.redirect(`/${encodeURIComponent(G.slug)}`,302);return $.json({error:"forbidden: not a member of organization"},403)}}else H=F.role}return X.organization={id:G.id,slug:G.slug,name:G.name,role:H},X.access.setOrganizationId(G.id),X.access.setRole(H),pw(X,G),await Z()};var PC0=D(()=>{WF();fd6=[["vault","connections","*","access-token"],["vault","connections","*","configuration"],["internal","task-board","import"],["internal","commerce-diagnostic","share-invite"],["internal","organization-notices"]]});function yd6($){if(_Q($.id)!==null)return!0;if(CG$($.id))return!0;let Z=$.metadata?.liveAgentId;return typeof Z==="string"&&Z.length>0}function gd6($,Z){let Q=new Map,X=(Y)=>{let J=Q.get(Y);if(J)return J;let G=(async()=>{if(!(await $.storage.orgSsoConfig.getByOrgId(Y))?.enforced)return!0;return await $.storage.orgSsoSessions.isValid(Z,Y)})();return Q.set(Y,G),G};return async(Y)=>{let J=await Promise.all(Y.map((G)=>X(G.orgId)));return Y.filter((G,K)=>J[K]===!0)}}function hd6($){let Z=$.auth?.apiKey?.id?Fw1($):{present:!1,id:void 0};if(Z.present&&!Z.id)return AC0;let Q=$.auth?.tokenOrganizationId;if(Z.id&&Q&&Z.id!==Q)return AC0;let X=Z.id??Q??null;if(X===null&&$.auth?.apiKey?.id)return AC0;return X}var JG8="/api/_me",AC0,ud6=256,ld6=20,cd6=50,md6=10,dd6=5,GG8=()=>{let $=new Q1;return $.get("/projects/search",async(Z)=>{let Q=Z.get("studioContext");Z.header("Cache-Control","private, no-store");let X=o0(Q);if(!X)return Z.json({error:"Unauthorized"},401);let Y=hd6(Q);if(Y===AC0)return Z.json({error:"forbidden: credential is scoped to another organization"},403);let J=(Z.req.query("q")??"").trim();if(!J)return Z.json({items:[]});if(J.length>ud6)return Z.json({error:"query too long"},400);let G=Number.parseInt(Z.req.query("limit")??"",10),K=Number.isFinite(G)&&G>0?Math.min(G,cd6):ld6,W=gd6(Q,X),H=K+md6,F=[];for(let U=0;U<dd6&&F.length<K;U++){let N=await Q.storage.virtualMcps.searchAcrossMemberships({userId:X,term:J,limit:H,offset:U*H,organizationId:Y}),B=N.filter((O)=>!yd6(O)).filter((O)=>!a5({metadata:O.organization_metadata})).map((O)=>({id:O.id,title:O.title,icon:O.icon,orgId:O.organization_id,orgName:O.organization_name,orgSlug:O.organization_slug}));if(F.push(...await W(B)),N.length<H)break}return Z.json({items:F.slice(0,K)})}),$};var KG8=D(()=>{m$();f8();PC0();AC0=Symbol("deny")});var WG8="Payload Too Large",HG8,d5=($)=>{let Z=$.onError||(()=>{let X=new Response(WG8,{status:413});throw new G$(413,{res:X})}),Q=$.maxSize;return async function(Y,J){if(!Y.req.raw.body)return J();let G=Y.req.raw.headers.has("transfer-encoding"),K=Y.req.raw.headers.has("content-length");if(K&&!G)return parseInt(Y.req.raw.headers.get("content-length")||"0",10)>Q?Z(Y):J();let W=0,H=Y.req.raw.body.getReader(),U={body:new ReadableStream({async start(N){try{for(;;){let{done:B,value:O}=await H.read();if(B)break;if(W+=O.length,W>Q){N.error(new HG8(WG8));break}N.enqueue(O)}}finally{N.close()}}}),duplex:"half"};if(Y.req.raw=new Request(Y.req.raw,U),await J(),Y.error instanceof HG8)Y.res=await Z(Y)}};var ZH=D(()=>{QW();HG8=class extends Error{constructor($){super($);this.name="BodyLimitError"}}});import{createHash as id6}from"crypto";function s80($,Z,Q=0){return Z.every((X,Y)=>$[Q+Y]===X)}function UG8($){if(s80($,[137,80,78,71,13,10,26,10]))return{mime:"image/png",ext:"png"};if(s80($,[255,216,255]))return{mime:"image/jpeg",ext:"jpg"};if(s80($,[71,73,70,56])&&($[4]===55||$[4]===57)&&$[5]===97)return{mime:"image/gif",ext:"gif"};if(s80($,[82,73,70,70])&&s80($,[87,69,66,80],8))return{mime:"image/webp",ext:"webp"};return null}function Nw1($){return MH($)}function td6($,Z){let Q=id6("sha256").update($).digest("hex");return`${TC0}/${Q}.${Z}`}function qC0($,Z,Q){let X=new URLSearchParams({path:Q}).toString();return`${$.replace(/\/$/,"")}${RC0}/fs/${encodeURIComponent(Z)}/read?${X}`}function Wi($){let Z=x7(),Q=Z?AX(Z,Uw1):new KG(Uw1,$.baseUrl);return new WG(Q,$.storage.orgFsEntries,Uw1,pd6)}async function e80($,Z){return(await $.listDir(Z,TC0).catch(()=>[])).filter((X)=>X.kind==="file").sort((X,Y)=>Y.updatedAt.localeCompare(X.updatedAt))}async function NG8($,Z){return(await e80($,Z)).map((X)=>({path:X.path,current:X.readPublic,updatedAt:X.updatedAt}))}async function od6($,Z){if((await $.stat(Z,TC0))?.readPublic)await $.setReadPublic(Z,TC0,!1,{actor:Z})}async function Bw1($,Z,Q){let X=await e80($,Z);if(!X.some((Y)=>Y.path===Q))throw new MX(`No such avatar: ${Q}`);await od6($,Z),await $.setReadPublic(Z,Q,!0,{actor:Z}),await Promise.all(X.filter((Y)=>Y.path!==Q&&Y.readPublic).map((Y)=>$.setReadPublic(Z,Y.path,!1,{actor:Z})))}async function rd6($,Z,Q){try{let Y=(await e80($,Z)).filter((J)=>J.path!==Q).slice(nd6-1);await Promise.all(Y.map((J)=>$.delete(Z,J.path,{actor:Z})))}catch(X){console.warn("[user-fs] failed to evict old avatars",X)}}async function BG8($,Z){let{userId:Q,bytes:X,contentType:Y,ext:J}=Z,G=td6(X,J);return await $.write(Q,G,X,{actor:Q,contentType:Y}),await Bw1($,Q,G),await rd6($,Q,G),G}async function OG8($,Z,Q){if(!(await e80($,Z)).some((Y)=>Y.path===Q))throw new MX(`No such avatar: ${Q}`);await $.delete(Z,Q,{actor:Z})}async function DG8($,Z){try{let Q=await e80($,Z);await Promise.all(Q.map((X)=>$.delete(Z,X.path,{actor:Z})))}catch(Q){console.warn("[user-fs] failed to clear avatars",Q)}}var Uw1="org_user_fs",RC0="/api/_users",TC0="avatars",pd6,FG8=2097152,nd6=5;var Ow1=D(()=>{qh();JN();wN();Lz();pd6={maxFileBytes:5242880,volumeQuotaBytes:67108864}});function $40($,Z,Q,X){let Y=Z7(Q),J={"Content-Type":Y,"X-Content-Type-Options":"nosniff","Cache-Control":X?"public, max-age=0, must-revalidate":"private, max-age=0"};if(Y.startsWith("text/html"))J["Content-Security-Policy"]="sandbox allow-scripts allow-modals allow-same-origin allow-downloads";return $.body(Buffer.from(Z),200,J)}var Dw1=D(()=>{MK()});function IC0($,Z){if(Z instanceof MX)return $.json({error:Z.message},404);if(Z instanceof yJ)return $.json({error:Z.message},400);if(Z instanceof wz)return $.json({error:Z.message},413);return console.error("[user-fs] request failed",Z),$.json({error:"Internal error"},500)}function MC0($){let Q=$.get("studioContext").auth?.user?.id;if(!Q)return{ok:!1,res:$.json({error:"Unauthorized"},401)};if(!Nw1(Q))return{ok:!1,res:$.json({error:"Unsupported user id"},400)};return{ok:!0,userId:Q}}var LG8=()=>{let $=new Q1;return $.get("/fs/:userId/read",async(Z)=>{let Q=Z.req.param("userId"),X=Z.req.query("path")??"";if(!Nw1(Q))return Z.json({error:"Invalid user id"},400);let Y=Z.get("studioContext"),J=Wi(Y),K=(await J.resolveReadAccess(Q,X).catch(()=>({access:"private"}))).access==="public";if(!K&&Y.auth?.user?.id!==Q)return Z.json({error:"Not found"},404);try{return $40(Z,await J.read(Q,X),X,K)}catch(W){return IC0(Z,W)}}),$.post("/avatar",d5({maxSize:FG8,onError:(Z)=>Z.json({error:"Avatar exceeds the size limit"},413)}),async(Z)=>{let Q=MC0(Z);if(!Q.ok)return Q.res;let{userId:X}=Q,Y=Z.get("studioContext"),J=new Uint8Array(await Z.req.arrayBuffer());if(J.byteLength===0)return Z.json({error:"Empty request body"},400);let G=UG8(J);if(!G)return Z.json({error:"Avatar must be a PNG, JPEG, GIF or WebP image"},415);try{let K=await BG8(Wi(Y),{userId:X,bytes:J,contentType:G.mime,ext:G.ext});return Z.json({url:qC0(Y.baseUrl,X,K)})}catch(K){return IC0(Z,K)}}),$.get("/avatars",async(Z)=>{let Q=MC0(Z);if(!Q.ok)return Q.res;let X=Z.get("studioContext"),Y=await NG8(Wi(X),Q.userId);return Z.json({avatars:Y.map((J)=>({...J,url:qC0(X.baseUrl,Q.userId,J.path)}))})}),$.post("/avatar/select",async(Z)=>{let Q=MC0(Z);if(!Q.ok)return Q.res;let X=Z.get("studioContext"),Y=await Z.req.json().catch(()=>null);if(typeof Y?.path!=="string"||!Y.path)return Z.json({error:"Body must be { path: string }"},400);try{return await Bw1(Wi(X),Q.userId,Y.path),Z.json({url:qC0(X.baseUrl,Q.userId,Y.path)})}catch(J){return IC0(Z,J)}}),$.delete("/avatar",async(Z)=>{let Q=MC0(Z);if(!Q.ok)return Q.res;let X=Z.get("studioContext"),Y=Wi(X),J=Z.req.query("path");if(!J)return await DG8(Y,Q.userId),Z.json({ok:!0});try{return await OG8(Y,Q.userId,J),Z.json({ok:!0})}catch(G){return IC0(Z,G)}}),$};var wG8=D(()=>{m$();ZH();wN();Ow1();Dw1()});import{z as Hi}from"zod";var ad6,sd6,ed6=200,$i6=2000,Zi6=60,Qi6=2000,Xi6,VC0;var Lw1=D(()=>{ad6=["warn","block"],sd6=Hi.enum(ad6),Xi6=Hi.string().max(Qi6).refine(($)=>{try{let Z=new URL($);return Z.protocol==="https:"||Z.protocol==="http:"}catch{return!1}},{message:"ctaUrl must be an absolute http(s) URL"}),VC0=Hi.object({severity:sd6,title:Hi.string().trim().min(1).max(ed6),message:Hi.string().trim().min(1).max($i6),ctaLabel:Hi.string().trim().max(Zi6).nullable().optional(),ctaUrl:Xi6.nullable().optional()}).refine(($)=>!$.ctaLabel===!$.ctaUrl,{message:"ctaLabel and ctaUrl must be set together",path:["ctaUrl"]})});import{z as ww1}from"zod";function jw1($){let Z=$??{},Q=new Set([...Object.keys(sP.shape),...Object.keys(Z)]),X={};for(let Y of Q)X[Y]=n7(Z,Y);return{flags:Z,effective:X}}var Yi6,jG8;var EG8=D(()=>{i9();Yi6=ww1.string().min(1).max(64).regex(/^[a-z][a-z0-9]*(?:_[a-z0-9]+)*$/),jG8=ww1.record(Yi6,ww1.boolean())});function zG8($,Z,Q){let X=Q;for(;;){if(X=$.indexOf(Z,X),X===-1)return-1;let Y=$[X+Z.length];if(Y===void 0||Y===`
4642
4642
  `||Y==="\r")return X;X+=Z.length}}function PG8($,Z){let Q=zG8($,Ji6(Z),0);if(Q===-1)return null;let X=$.indexOf(`
4643
4643
  `,Q);if(X===-1)return null;let Y=zG8($,Gi6(Z),X);if(Y===-1)return null;let J=$.lastIndexOf(`
4644
4644
  `,Y);return{from:X+1,to:J+1}}function AG8($,Z){let Q=PG8($,Z);return Q?$.slice(Q.from,Q.to):null}function TG8($,Z,Q){let X=PG8($,Z);if(!X)throw Error(`prompt region "${Z}" not found in source`);let Y=Q.endsWith(`