decocms 4.333.1 → 4.334.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (252) hide show
  1. package/dist/client/assets/{AlertCircle-BTFy6BAW.js → AlertCircle-CV-giUxr.js} +1 -1
  2. package/dist/client/assets/{AreaChart-DSs8q5hW.js → AreaChart-lN8r7639.js} +1 -1
  3. package/dist/client/assets/{ArrowLeft-BFcs8--9.js → ArrowLeft-CjJ5E4xo.js} +1 -1
  4. package/dist/client/assets/{ArrowUp-B4MJgvoo.js → ArrowUp-BiBSfJbO.js} +1 -1
  5. package/dist/client/assets/{Check-DwjDJM-e.js → Check-BAhZZwGv.js} +1 -1
  6. package/dist/client/assets/{CheckCircle-yz9oH-hl.js → CheckCircle-662CAUP9.js} +1 -1
  7. package/dist/client/assets/{ChevronRight-DYEas-7w.js → ChevronRight-BAYGl5E2.js} +1 -1
  8. package/dist/client/assets/{ChevronSelectorVertical-CYA4row8.js → ChevronSelectorVertical-C0G4Obvu.js} +1 -1
  9. package/dist/client/assets/{ChevronUp-BJVPazTv.js → ChevronUp-BHtTEQxN.js} +1 -1
  10. package/dist/client/assets/{Copy01-B-BJTFHA.js → Copy01-BYq-ExT1.js} +1 -1
  11. package/dist/client/assets/{CreditCard01-DUaRmbQT.js → CreditCard01-DXMqr9eh.js} +1 -1
  12. package/dist/client/assets/{DotsVertical-BnLAk1HF.js → DotsVertical-D3YeOwRa.js} +1 -1
  13. package/dist/client/assets/{Download01-BeFD8RLb.js → Download01-QNxMLaP8.js} +1 -1
  14. package/dist/client/assets/{ErrorBarContext-B1DKdQyC.js → ErrorBarContext-CKkA6Ni-.js} +1 -1
  15. package/dist/client/assets/{Eye-CGydtoCl.js → Eye-nxfGsEQN.js} +1 -1
  16. package/dist/client/assets/{GitBranch01-B488OLBu.js → GitBranch01-s_Yn5-oJ.js} +1 -1
  17. package/dist/client/assets/{Globe01-DU-TjG2G.js → Globe01-DIavuh7O.js} +1 -1
  18. package/dist/client/assets/{HardDrive-QkBXYJpL.js → HardDrive-CTDq4FF0.js} +1 -1
  19. package/dist/client/assets/{Image01-BCVknkBI.js → Image01-gbRNIHjM.js} +1 -1
  20. package/dist/client/assets/{Key01-DKp7pFxH.js → Key01-CsDrkD8P.js} +1 -1
  21. package/dist/client/assets/{Link01-DmmpktbQ.js → Link01-Bz4qkUwj.js} +1 -1
  22. package/dist/client/assets/{LinkExternal01-D9h2hMLG.js → LinkExternal01-CXfVVleA.js} +1 -1
  23. package/dist/client/assets/{Monitor01-4ygKdvkY.js → Monitor01-BvsPeVCV.js} +1 -1
  24. package/dist/client/assets/{Package-CtUTNDbn.js → Package-2XuguJ_J.js} +1 -1
  25. package/dist/client/assets/{Palette-CuyACpQT.js → Palette-arYXI2Xd.js} +1 -1
  26. package/dist/client/assets/{Play-DmtHRxIa.js → Play-B5qLutkU.js} +1 -1
  27. package/dist/client/assets/{Plus-BwfD_uGX.js → Plus-CFvk5CG6.js} +1 -1
  28. package/dist/client/assets/{SearchMd-OYMERvDp.js → SearchMd-DJRgm6d0.js} +1 -1
  29. package/dist/client/assets/{Sector-Cxd5Vqw1.js → Sector-C-0RfDn5.js} +1 -1
  30. package/dist/client/assets/{Settings02-DHdkIaEO.js → Settings02-06ZyJnvo.js} +1 -1
  31. package/dist/client/assets/{Share07-DWyqd3EW.js → Share07-DVv3HOPs.js} +1 -1
  32. package/dist/client/assets/{Shield01-PuBIgAYu.js → Shield01-CQqsBDPU.js} +1 -1
  33. package/dist/client/assets/{Stars01-C0xoIEKM.js → Stars01-B27Utm2T.js} +1 -1
  34. package/dist/client/assets/{Sun-vpvyjwcu.js → Sun-B4Z2p_e8.js} +1 -1
  35. package/dist/client/assets/{Tool01-bT3k5A80.js → Tool01-B9qMNw1o.js} +1 -1
  36. package/dist/client/assets/{Tool02-DjVjeZBe.js → Tool02-gjEVZA1E.js} +1 -1
  37. package/dist/client/assets/{Trash01-DSQfDFOn.js → Trash01-BgUE6OcY.js} +1 -1
  38. package/dist/client/assets/{TrendUp01-Bud-Q_uE.js → TrendUp01-C3MlmS73.js} +1 -1
  39. package/dist/client/assets/{Upload01-4ExYT2oZ.js → Upload01-C_7CXPqo.js} +1 -1
  40. package/dist/client/assets/{User01-ByrqWXwf.js → User01-4VrbDHb4.js} +1 -1
  41. package/dist/client/assets/{UserSquare-CSuypI3s.js → UserSquare-wjGLOfQx.js} +1 -1
  42. package/dist/client/assets/{Users01-Dbi5hk9T.js → Users01-0S1rZm-Q.js} +1 -1
  43. package/dist/client/assets/{Users03-DbJ2AwbA.js → Users03-Be1NB2qI.js} +1 -1
  44. package/dist/client/assets/{XCircle-BKk3e_Pa.js → XCircle-Cvbq7uLb.js} +1 -1
  45. package/dist/client/assets/{XClose-ukOa_f_u.js → XClose-D5wi_B50.js} +1 -1
  46. package/dist/client/assets/{Zap-Rks6fV0P.js → Zap-CcoBSm8m.js} +1 -1
  47. package/dist/client/assets/{ZoomOut-BzikjErF.js → ZoomOut-D_9vnWrY.js} +1 -1
  48. package/dist/client/assets/{access-gate-f2VYxUVW.js → access-gate-Cn8HOeGp.js} +1 -1
  49. package/dist/client/assets/{agent-icon-4L9UdHrZ.js → agent-icon-BGdskHb_.js} +1 -1
  50. package/dist/client/assets/{agents-list-8XcVzC0a.js → agents-list-rz4s5qak.js} +1 -1
  51. package/dist/client/assets/{ai-providers-CmW2bDvE.js → ai-providers-DGzSlrwE.js} +1 -1
  52. package/dist/client/assets/{alert-DOZ50Qdr.js → alert-CTM_I22M.js} +1 -1
  53. package/dist/client/assets/{alert-dialog-CNWHKEKH.js → alert-dialog-DO0olvo6.js} +1 -1
  54. package/dist/client/assets/{analytics-tab-DhfgwWZN.js → analytics-tab-B59CdxLV.js} +1 -1
  55. package/dist/client/assets/{api-keys-CZVvqUk3.js → api-keys-6zho0qW1.js} +1 -1
  56. package/dist/client/assets/api-keys-Czk4fjH8.js +1 -0
  57. package/dist/client/assets/app-editor-BaUp2mVu.js +1 -0
  58. package/dist/client/assets/{auth-qDUFPtfK.js → auth-DsYHRRgJ.js} +1 -1
  59. package/dist/client/assets/{auth-catchall-B_cY4w7Q.js → auth-catchall-BBOJEUhC.js} +1 -1
  60. package/dist/client/assets/{auth-entry-CslryGGp.js → auth-entry-Cck8rYAq.js} +1 -1
  61. package/dist/client/assets/{auth-split-layout-zIPjfmlI.js → auth-split-layout-BNsF-m0P.js} +1 -1
  62. package/dist/client/assets/{authenticate-and-persist-oauth-Daei89hL.js → authenticate-and-persist-oauth-VNMcVWS8.js} +1 -1
  63. package/dist/client/assets/{automation-list-row-Dzx6wCBX.js → automation-list-row-B52rJbuL.js} +1 -1
  64. package/dist/client/assets/{automation-runs-D7GlyHC6.js → automation-runs-DADYD5sz.js} +1 -1
  65. package/dist/client/assets/{automations-CJZQ-sJv.js → automations-Fm0kNMgB.js} +1 -1
  66. package/dist/client/assets/{autosend-LylwcR5t.js → autosend-C1CKWKVC.js} +1 -1
  67. package/dist/client/assets/{avatar-CrEMeFKK.js → avatar-C8I-TQSH.js} +1 -1
  68. package/dist/client/assets/{badge-BNvTAGyB.js → badge-CL6qK5eA.js} +1 -1
  69. package/dist/client/assets/{block-document-DHwj6mHK.js → block-document-CRl5eChE.js} +1 -1
  70. package/dist/client/assets/{breadcrumb-DcTQk8wd.js → breadcrumb-Cmt3Z_GF.js} +1 -1
  71. package/dist/client/assets/{buckets-EIjTBTJi.js → buckets-DGojS77Z.js} +1 -1
  72. package/dist/client/assets/{bulk-category-panel-CVxDOey1.js → bulk-category-panel-Z0Y6PfEY.js} +1 -1
  73. package/dist/client/assets/{capability-load-error-D3JcMIIZ.js → capability-load-error-wRboJhXs.js} +1 -1
  74. package/dist/client/assets/{cards-EdAkV2cQ.js → cards-C1qd7cME.js} +1 -1
  75. package/dist/client/assets/{category-editor-DDVjfAV5.js → category-editor-ekV5lh52.js} +1 -1
  76. package/dist/client/assets/{cdn-tab-BacYnkrL.js → cdn-tab-D8r1QNCE.js} +1 -1
  77. package/dist/client/assets/{chart-CnL2iB1c.js → chart-wvSfK3Dt.js} +1 -1
  78. package/dist/client/assets/{chat-context-bHFZIJkS.js → chat-context-kUO4DGoE.js} +1 -1
  79. package/dist/client/assets/{checkbox-D-Q26Ekb.js → checkbox-CgktaZaB.js} +1 -1
  80. package/dist/client/assets/{choose-editor-MVFUACVx.js → choose-editor-CFWNURK9.js} +1 -1
  81. package/dist/client/assets/{cli-auth-success-BqbAQ7U8.js → cli-auth-success-CumiupXK.js} +1 -1
  82. package/dist/client/assets/{client-icons-BBY74FzQ.js → client-icons-BVLxnK_H.js} +1 -1
  83. package/dist/client/assets/{collection-detail-Du-XoszR.js → collection-detail-Cl1WHXte.js} +1 -1
  84. package/dist/client/assets/{collection-display-button-BdVWJHTi.js → collection-display-button-BS9bNs9X.js} +1 -1
  85. package/dist/client/assets/{collection-search-Cvc-x2kO.js → collection-search-DV3yfZAN.js} +1 -1
  86. package/dist/client/assets/{collection-table-wrapper-DG1e9CNr.js → collection-table-wrapper-CYK5Ilx0.js} +1 -1
  87. package/dist/client/assets/{collection-tabs-Ds4GfwrJ.js → collection-tabs-DyIhbMB3.js} +1 -1
  88. package/dist/client/assets/{command-Cnkz9b5I.js → command-v7qqPNmp.js} +1 -1
  89. package/dist/client/assets/{commerce-onboarding-CWyzcAv3.js → commerce-onboarding-DaO6Zl3U.js} +1 -1
  90. package/dist/client/assets/{connect-DapCvVwu.js → connect-CW7GM5Wu.js} +1 -1
  91. package/dist/client/assets/{connect-layout-J3BwhODa.js → connect-layout-BnLPfxWp.js} +1 -1
  92. package/dist/client/assets/{connection-Bd7s7-M5.js → connection-DRzC8flZ.js} +1 -1
  93. package/dist/client/assets/{connection-card-B-eJ6L9X.js → connection-card-CsBLYJh6.js} +1 -1
  94. package/dist/client/assets/{connection-detail-BC_TwmdR.js → connection-detail-s0Occhmk.js} +1 -1
  95. package/dist/client/assets/{connection-form-helpers-CEeoAidC.js → connection-form-helpers-CdT6kcM-.js} +1 -1
  96. package/dist/client/assets/{connections-37gbKaLU.js → connections-uRsJ1pWl.js} +1 -1
  97. package/dist/client/assets/{create-organization-dialog-B-BpfNrw.js → create-organization-dialog-BBCZLlBi.js} +1 -1
  98. package/dist/client/assets/{decopilot-sse-pool-B_LcTJNO.js → decopilot-sse-pool-iUQXiC52.js} +1 -1
  99. package/dist/client/assets/{dialog-CH-0rO0D.js → dialog-Bg3Pd9d8.js} +1 -1
  100. package/dist/client/assets/{domain-settings-Cuj44Cqa.js → domain-settings-1ylDJFHm.js} +1 -1
  101. package/dist/client/assets/{drawer-CGk2HWB4.js → drawer-D2CYAfty.js} +1 -1
  102. package/dist/client/assets/{dropdown-menu-D5fHrVh2.js → dropdown-menu-B7iTKmDJ.js} +1 -1
  103. package/dist/client/assets/{e2e-tab-DQTHSDSM.js → e2e-tab-DVC_SWE3.js} +1 -1
  104. package/dist/client/assets/{editor-BZLAQS2F.js → editor-DZrhxR2e.js} +1 -1
  105. package/dist/client/assets/{empty-state-BmNPLbpc.js → empty-state-SeXK7hgo.js} +1 -1
  106. package/dist/client/assets/{empty-state-Cz_Vrj2h.js → empty-state-xJkd9JpN.js} +1 -1
  107. package/dist/client/assets/{extract-connection-data-9CnRjsL7.js → extract-connection-data-DnsFjduT.js} +1 -1
  108. package/dist/client/assets/{file-explorer-CA8kCzXW.js → file-explorer-D_teMplQ.js} +1 -1
  109. package/dist/client/assets/{file-type-icon-CxKRWPrC.js → file-type-icon-RTug3PNy.js} +1 -1
  110. package/dist/client/assets/{folder-icon-WgiVurrr.js → folder-icon-DT95e-CT.js} +1 -1
  111. package/dist/client/assets/{form-BZnL3JbV.js → form-1eG5IcI3.js} +1 -1
  112. package/dist/client/assets/{general-ylVfpyeS.js → general-Bsy0zvM0.js} +1 -1
  113. package/dist/client/assets/{github-icon-D1HTxLVV.js → github-icon-BDI0Wa16.js} +1 -1
  114. package/dist/client/assets/{github-repo-picker-DWgD3Ont.js → github-repo-picker-CaMKpA-3.js} +1 -1
  115. package/dist/client/assets/{hooks-DU7Lnk4h.js → hooks-CorCI0TU.js} +1 -1
  116. package/dist/client/assets/{hosting-tab-Il_9SZH1.js → hosting-tab-DiJOzfS9.js} +1 -1
  117. package/dist/client/assets/{index-BHhIm7ma.js → index-BHGuUxMI.js} +4 -4
  118. package/dist/client/assets/{index-CoZzVb9L.js → index-BVt2U51R.js} +1 -1
  119. package/dist/client/assets/{index-Bq7Yyy_W.js → index-Bcw8ICf-.js} +1 -1
  120. package/dist/client/assets/{index-B2V_cELZ.js → index-CGuLjDsc.js} +1 -1
  121. package/dist/client/assets/{index-ngeOqo_9.js → index-CV0061TE.js} +1 -1
  122. package/dist/client/assets/{index-Bgjy4VL9.js → index-D8RuI_2X.js} +1 -1
  123. package/dist/client/assets/{index-BLGIODXV.js → index-DaThB4zB.js} +82 -81
  124. package/dist/client/assets/{index-Cb75tE4e.js → index-DmY-GM69.js} +1 -1
  125. package/dist/client/assets/index-X9REA_uV.css +1 -0
  126. package/dist/client/assets/{index-Ctv5km7_.js → index-pK8jf-DW.js} +1 -1
  127. package/dist/client/assets/{index-redirect-DGzmzmCo.js → index-redirect-CUH6u-X_.js} +1 -1
  128. package/dist/client/assets/{index-BukSeAl0.js → index-wluuZu9N.js} +1 -1
  129. package/dist/client/assets/{infra-billing-C9LpIybA.js → infra-billing-C7L1Kq6a.js} +1 -1
  130. package/dist/client/assets/{input-CNvHCeDs.js → input-B4mr_5tj.js} +1 -1
  131. package/dist/client/assets/{integration-icon-CH8e3gVK.js → integration-icon-mTtBOpEH.js} +1 -1
  132. package/dist/client/assets/{invite-member-dialog-BifrraOw.js → invite-member-dialog-W6hkoAT_.js} +1 -1
  133. package/dist/client/assets/{label-PBaYRRki.js → label-D9ImvrU-.js} +1 -1
  134. package/dist/client/assets/{layout-syCLZWd-.js → layout-CT63H4Pw.js} +1 -1
  135. package/dist/client/assets/{login-BUtaqiIl.js → login-Czi4admR.js} +1 -1
  136. package/dist/client/assets/{markdown-z-gnRvvL.js → markdown-DjvJA9k6.js} +1 -1
  137. package/dist/client/assets/{mcp-app-renderer-CRMlxj39.js → mcp-app-renderer-VbtThPaf.js} +1 -1
  138. package/dist/client/assets/{mcp-oauth-D0Lae-jo.js → mcp-oauth-CrPZafP8.js} +1 -1
  139. package/dist/client/assets/{members-BzTONOwn.js → members-BB-h0O7o.js} +1 -1
  140. package/dist/client/assets/{monaco-editor-3xHcN_JH.js → monaco-editor-CJ7jyFeD.js} +1 -1
  141. package/dist/client/assets/{monitoring-stats-row-EkzT5h5-.js → monitoring-stats-row-Dc76kH-r.js} +1 -1
  142. package/dist/client/assets/{multi-select-BpQiHKo4.js → multi-select-DNfMcFhQ.js} +1 -1
  143. package/dist/client/assets/{oauth-callback-CiTO-oBN.js → oauth-callback-D7E6zw9j.js} +1 -1
  144. package/dist/client/assets/{oauth-callback-ai-provider-BTYMf6vG.js → oauth-callback-ai-provider-DpMY5uRe.js} +1 -1
  145. package/dist/client/assets/{onboarding-DpP3li2K.js → onboarding-DwvlX6p5.js} +1 -1
  146. package/dist/client/assets/{org-layout-PpVzP9Y2.js → org-layout-BUW_TCrz.js} +1 -1
  147. package/dist/client/assets/{organization-choice-BEwurRMd.js → organization-choice-CxDL3eCm.js} +1 -1
  148. package/dist/client/assets/{orgs-BLqU6zd8.js → orgs-DWxetRMK.js} +1 -1
  149. package/dist/client/assets/{page-seo-form-D7vAQb5-.js → page-seo-form-BYq2LJKj.js} +1 -1
  150. package/dist/client/assets/{popover-B7Yd7fqk.js → popover-WnsySvxZ.js} +1 -1
  151. package/dist/client/assets/{post-calendar-BsHr4FVw.js → post-calendar-C9GNAahu.js} +1 -1
  152. package/dist/client/assets/{post-editor-BFrcSI2t.js → post-editor-Bfsc0nFQ.js} +1 -1
  153. package/dist/client/assets/{primitives-CS6lJ5h3.js → primitives-f02yjmLd.js} +1 -1
  154. package/dist/client/assets/{profile-DNe6fIOM.js → profile-CfkIp2Pa.js} +1 -1
  155. package/dist/client/assets/{project-app-view-BPELaq7t.js → project-app-view-k2h2Zwow.js} +1 -1
  156. package/dist/client/assets/{project-icon-D7I6A3_J.js → project-icon-21Osj9RN.js} +1 -1
  157. package/dist/client/assets/{prompts-C1RPZ82w.js → prompts-DD4VnprK.js} +1 -1
  158. package/dist/client/assets/record-editor-JAd7Y0_n.js +1 -0
  159. package/dist/client/assets/redirect-editor-CYqO3DdB.js +1 -0
  160. package/dist/client/assets/registry-Bshj5jqv.js +2 -0
  161. package/dist/client/assets/{registry-layout-D6IVakv4.js → registry-layout-BIvUiwA7.js} +1 -1
  162. package/dist/client/assets/{reports-C1UvSzxb.js → reports-DdEXu6X7.js} +1 -1
  163. package/dist/client/assets/{require-capability-B80Yv7le.js → require-capability-BKkZo8Sd.js} +1 -1
  164. package/dist/client/assets/{required-auth-layout-CZUnmZTh.js → required-auth-layout-CLXZ003m.js} +1 -1
  165. package/dist/client/assets/{reset-password-C7F_Yocf.js → reset-password-CFZAjW8-.js} +1 -1
  166. package/dist/client/assets/{review-settings-BVKaC_S6.js → review-settings-_pSnTmU3.js} +1 -1
  167. package/dist/client/assets/{roles-CNrNhe10.js → roles-Cf7qHEoX.js} +1 -1
  168. package/dist/client/assets/{schema-i1vhtuiw.js → schema-DiEZfOr9.js} +1 -1
  169. package/dist/client/assets/{scroll-area-ewoQOcUe.js → scroll-area-DbP8iPKf.js} +1 -1
  170. package/dist/client/assets/{search-input-DaEiOtLU.js → search-input-CE6hXPXR.js} +1 -1
  171. package/dist/client/assets/{secrets-eYjaEu1z.js → secrets-WuY8whNW.js} +1 -1
  172. package/dist/client/assets/{sections-editor-BPjMLfz0.js → sections-editor-0ROMLdU4.js} +1 -1
  173. package/dist/client/assets/{select-N7ZeidNI.js → select-9Nz_-3-N.js} +1 -1
  174. package/dist/client/assets/{select-model-g5mfrvhI.js → select-model-DaTccJZF.js} +1 -1
  175. package/dist/client/assets/{self-tool-result-DZ92b_i5.js → self-tool-result-DieURJOg.js} +1 -1
  176. package/dist/client/assets/{seo-editor-CFXqnb9O.js → seo-editor-BaTnIoXV.js} +1 -1
  177. package/dist/client/assets/settings-layout-BNcgVBPO.js +1 -0
  178. package/dist/client/assets/{settings-sidebar-zIWdEoeS.js → settings-sidebar-CyTE3ngs.js} +1 -1
  179. package/dist/client/assets/{shell-controls-BwSAKg0R.js → shell-controls-CErhGAjC.js} +1 -1
  180. package/dist/client/assets/{shell-layout-i77p36_F.js → shell-layout-BEBesml4.js} +1 -1
  181. package/dist/client/assets/{skill-preview-C2LzCwY6.js → skill-preview-Bt6xcVIi.js} +1 -1
  182. package/dist/client/assets/{skills-DOYEfzT9.js → skills-u_dQ8yyk.js} +1 -1
  183. package/dist/client/assets/{sso-Cy_zS9m2.js → sso-C_VwUf4C.js} +1 -1
  184. package/dist/client/assets/{store-BJvgDnnk.js → store-D_4BqbB4.js} +1 -1
  185. package/dist/client/assets/store-registry-CYM4Wa4I.js +2 -0
  186. package/dist/client/assets/{switch-BDvVFwZc.js → switch-CSGZy6nD.js} +1 -1
  187. package/dist/client/assets/{synced-repos-Dj4rk85W.js → synced-repos-BGQbuqh-.js} +1 -1
  188. package/dist/client/assets/{table-UAWDjAZv.js → table-CWi-HQod.js} +1 -1
  189. package/dist/client/assets/{tabs-BcGd4rfc.js → tabs-zftZOI0c.js} +1 -1
  190. package/dist/client/assets/{task-board-CGOlen4V.js → task-board-DwqPR9WE.js} +1 -1
  191. package/dist/client/assets/{task-route-DCzx2AsP.js → task-route-BLu3kYK2.js} +1 -1
  192. package/dist/client/assets/{tasks-CdIUQJjc.js → tasks-Bc_Jnaob.js} +1 -1
  193. package/dist/client/assets/{textarea-BQnZi6Mk.js → textarea-45PfB2eX.js} +1 -1
  194. package/dist/client/assets/{thread-intent-BEowo4Lh.js → thread-intent-BEfGORGz.js} +1 -1
  195. package/dist/client/assets/{thread-route-7_0yPXBi.js → thread-route-KRS7AdCW.js} +1 -1
  196. package/dist/client/assets/{toggle-group-DMBT7ISL.js → toggle-group-_Or2-cY6.js} +1 -1
  197. package/dist/client/assets/{toolbar-D67qKm6Z.js → toolbar-D_3gA2DY.js} +1 -1
  198. package/dist/client/assets/{toolbar-icon-button-BC0i6BCW.js → toolbar-icon-button-CIxhYT7u.js} +1 -1
  199. package/dist/client/assets/{track-CrXTf8e1.js → track-tGc8Tb5V.js} +1 -1
  200. package/dist/client/assets/{types-DelYfmpK.js → types-Dqzpzxxh.js} +1 -1
  201. package/dist/client/assets/{use-ai-providers-4I4ltuBS.js → use-ai-providers-BXqxLvUk.js} +1 -1
  202. package/dist/client/assets/{use-automations-DKPRSbzO.js → use-automations-B5GKdiRj.js} +1 -1
  203. package/dist/client/assets/{use-autosave-D6f-rMFX.js → use-autosave-C6qwFNiO.js} +1 -1
  204. package/dist/client/assets/{use-connection-CQKO8y6-.js → use-connection-Bdj1fHS2.js} +1 -1
  205. package/dist/client/assets/{use-copy-eESDyX8j.js → use-copy-CwOnHWNQ.js} +1 -1
  206. package/dist/client/assets/{use-create-virtual-mcp-CbTJUHL5.js → use-create-virtual-mcp-Cs5pENZv.js} +1 -1
  207. package/dist/client/assets/{use-debounced-autosave-DjdjKsh4.js → use-debounced-autosave-EH6-mV10.js} +1 -1
  208. package/dist/client/assets/{use-debounced-value-cslL_Hm7.js → use-debounced-value-DnYn-yP9.js} +1 -1
  209. package/dist/client/assets/{use-decopilot-events-BTZniLNe.js → use-decopilot-events-BG6GwoVX.js} +1 -1
  210. package/dist/client/assets/{use-delete-connection-oJOo-Hse.js → use-delete-connection-D7VGzfOB.js} +1 -1
  211. package/dist/client/assets/{use-deployment-admin-BtvwykxQ.js → use-deployment-admin-C8JhzzBy.js} +1 -1
  212. package/dist/client/assets/{use-destination-route-DsqQwnx_.js → use-destination-route-s2aNTi6Z.js} +1 -1
  213. package/dist/client/assets/{use-file-configs-xLONZ3FN.js → use-file-configs-DrNlY0AL.js} +1 -1
  214. package/dist/client/assets/{use-infinite-scroll-DtKOCBow.js → use-infinite-scroll-ByljmFvI.js} +1 -1
  215. package/dist/client/assets/{use-join-requests--e9FBTWa.js → use-join-requests-C-d1Ys47.js} +1 -1
  216. package/dist/client/assets/{use-mcp-auth-status-r1JszsrV.js → use-mcp-auth-status-Bsp_QeXg.js} +1 -1
  217. package/dist/client/assets/{use-mcp-client-COsTAu0Z.js → use-mcp-client-Ch4avHkG.js} +1 -1
  218. package/dist/client/assets/{use-mcp-prompts-6zzWtc8W.js → use-mcp-prompts-B-Jo3qr7.js} +1 -1
  219. package/dist/client/assets/{use-members-j-NCdySC.js → use-members-Bo-HKLs3.js} +1 -1
  220. package/dist/client/assets/{use-navigate-to-agent-BP_Y2M5A.js → use-navigate-to-agent-DZPQYNTD.js} +1 -1
  221. package/dist/client/assets/{use-org-auth-client-B2t1sLB6.js → use-org-auth-client-elwC7VGo.js} +1 -1
  222. package/dist/client/assets/{use-org-notice-D-n1tSdk.js → use-org-notice-8xH-kQw6.js} +1 -1
  223. package/dist/client/assets/{use-org-sso-BmWo5zsO.js → use-org-sso-DbB4yycj.js} +1 -1
  224. package/dist/client/assets/{use-organization-roles-EUKb-rJf.js → use-organization-roles-CTO63wnU.js} +1 -1
  225. package/dist/client/assets/{use-organization-settings-BsIJjAld.js → use-organization-settings-BOI1P2if.js} +1 -1
  226. package/dist/client/assets/{use-panel-navigate-D5cy0uKE.js → use-panel-navigate-CM-rxqz2.js} +1 -1
  227. package/dist/client/assets/{use-registry-connections-DSuA8Kly.js → use-registry-connections-XFUubrsy.js} +1 -1
  228. package/dist/client/assets/{use-secrets-DRXCbLBF.js → use-secrets-BikU4V0l.js} +1 -1
  229. package/dist/client/assets/{use-section-preview-base-CWwMJYkC.js → use-section-preview-base-CR6NIckw.js} +1 -1
  230. package/dist/client/assets/{use-status-sounds-DzjHc2GT.js → use-status-sounds-D_BN6J85.js} +1 -1
  231. package/dist/client/assets/{use-tags-B9Y9DMtO.js → use-tags-DAmQsyjL.js} +1 -1
  232. package/dist/client/assets/{use-view-mode-BLMqtyeU.js → use-view-mode-BRYqD5Ik.js} +1 -1
  233. package/dist/client/assets/{use-virtual-mcp-q0kRTctd.js → use-virtual-mcp-DRx68gmb.js} +1 -1
  234. package/dist/client/assets/useInfiniteQuery-CMU27zTA.js +1 -0
  235. package/dist/client/assets/useSuspenseInfiniteQuery-BC89BRZ1.js +1 -0
  236. package/dist/client/assets/{users-D7a7B9QB.js → users-DVYsM46f.js} +1 -1
  237. package/dist/client/assets/{variant-calendar-D6Y4I8eV.js → variant-calendar-B0cxMVHr.js} +1 -1
  238. package/dist/client/assets/{view-mode-toggle-BT1BtAOg.js → view-mode-toggle-Dg9ZxhSZ.js} +1 -1
  239. package/dist/client/index.html +2 -2
  240. package/dist/server/cli.js +2 -2
  241. package/dist/server/server.js +2 -2
  242. package/package.json +1 -1
  243. package/dist/client/assets/api-keys-Bl6B3w6F.js +0 -1
  244. package/dist/client/assets/app-editor-DjjwL1v8.js +0 -1
  245. package/dist/client/assets/index-Bj1-n2mq.css +0 -1
  246. package/dist/client/assets/record-editor-BNOGxoEg.js +0 -1
  247. package/dist/client/assets/redirect-editor-rngbGY5p.js +0 -1
  248. package/dist/client/assets/registry-D1LNW7pm.js +0 -2
  249. package/dist/client/assets/settings-layout-Ct4eIpaZ.js +0 -1
  250. package/dist/client/assets/store-registry-i1uqeqzC.js +0 -2
  251. package/dist/client/assets/useInfiniteQuery-DCkmSmSx.js +0 -1
  252. package/dist/client/assets/useSuspenseInfiniteQuery-CPPqBcZd.js +0 -1
@@ -1562,7 +1562,7 @@ Usage: deco services <up|down|status>`),process.exit(1)}}var jt1=D(()=>{Vb()});f
1562
1562
  `.execute($);if(Number(W.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${G}/${K}, keeping in old table`);continue}}await $g`
1563
1563
  DELETE FROM kysely_migration WHERE name = ${Q}
1564
1564
  `.execute($)}}async function Ve1($){await O14($),await D14($);let Z=new qe1({db:$,provider:{getMigrations:()=>Promise.resolve(Jt0)}}),{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 L14($){let{keepOpen:Z=!1,database:Q,skipBetterAuth:X=!1}=$??{},Y="skipped";if(!X&&!Q)Y=await um0();let J=Q??g$(),G=async()=>{if(!Z&&!Q)await DO(J).catch((K)=>{console.warn("Warning: Error closing database:",K)})};try{let K=await Ve1(J.db);return await G(),{betterAuth:Y,kysely:K}}catch(K){throw await G(),K}}async function w14(){let $=g$(),Z=new qe1({db:$.db,provider:{getMigrations:()=>Promise.resolve(Jt0)}}),{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 Se1=D(()=>{Ie1();cm0();WQ()});async function YQ0($){let Z={...process.env},Q=o80($,Z);console.log(zE1(Q.settings.encryptionKey));let X=Q.settings.betterAuthSecret||(Q.settings.localMode?ro1(Q.settings.dataDir):""),{ensureServices:Y}=await Promise.resolve().then(() => (K70(),G70)),{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(() => (cm0(),so1));await W(J.databaseUrl);let{createDatabase:H}=await Promise.resolve().then(() => (WQ(),Oo1)),{migrateToLatest:F}=await Promise.resolve().then(() => (Se1(),ke1)),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 Et1(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 Gt0=D(()=>{Vb();ao1();z$()});var xe1={};e(xe1,{updateService:()=>YE,subscribeCliState:()=>Ht0,setTuiConsoleIntercepted:()=>JQ0,setServerUrl:()=>ap,setMigrationsDone:()=>rp,setDevMode:()=>E14,resetCliStateForTests:()=>j14,isTuiConsoleIntercepted:()=>GQ0,getCliState:()=>Wt0,addLogEntry:()=>AO});function Ce1(){return[{name:"Postgres",status:"pending",port:0},{name:"NATS",status:"pending",port:0}]}function _e1(){return{services:Ce1(),migrationsStatus:"pending",serverUrl:null,logs:[]}}function j14(){rX=_e1()}function op(){for(let $ of Kt0)$()}function Wt0(){return rX}function Ht0($){return Kt0.add($),()=>Kt0.delete($)}function YE($){rX={...rX,services:rX.services.map((Z)=>Z.name===$.name?$:Z)},op()}function rp(){rX={...rX,migrationsStatus:"done"},op()}function ap($){rX={...rX,serverUrl:$},op()}function AO($){let Z=[...rX.logs,$];rX={...rX,logs:Z.length>500?Z.slice(-500):Z},op()}function E14(){rX={...rX,services:[...Ce1(),{name:"API",status:"pending",port:0},{name:"Vite",status:"pending",port:0}]},op()}function JQ0($){ve1=$}function GQ0(){return ve1}var rX,Kt0,ve1=!1;var JE=D(()=>{rX=_e1();Kt0=new Set});import{createServer as fe1}from"net";function z14($){return new Promise((Z)=>{let Q=fe1();Q.once("error",()=>Z(!1)),Q.listen($,"0.0.0.0",()=>{Q.close(()=>Z(!0))})})}async function sp($){if(await z14($))return $;let Z=await new Promise((Q,X)=>{let Y=fe1();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 Ft0=()=>{};var Nt0={};e(Nt0,{startDevServer:()=>A14,pipeToLogStore:()=>Ut0});import{join as P14}from"path";function Ut0($){let Z=$.getReader(),Q=new TextDecoder,X="";function Y(){let J=X.split(`
1565
- `);X=J.pop()??"";for(let G of J){let K=Bun.stripANSI(G).replace(/^\[\d+\]\s*/,"").trim();if(!K)continue;AO({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)AO({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:J})}})()}async function A14($){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 sp(Number(Y)+1):await sp(Number($.port)),{settings:K,services:W,managedServiceNames:H}=await YQ0({port:String(G),home:$.home,baseUrl:$.baseUrl,localMode:$.localMode,skipMigrations:$.skipMigrations,noTui:$.noTui,vitePort:$.vitePort});for(let L of W)YE({name:L.name,status:"ready",port:L.port});rp();let F=P14(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)Ut0(N.stdout),Ut0(N.stderr);ap(J),YE({name:"Vite",status:"ready",port:Number(Y)}),YE({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(() => (K70(),G70));await w(K.dataDir)}};return process.on("SIGINT",()=>O("SIGINT")),process.on("SIGTERM",()=>O("SIGTERM")),{port:Number(Y),process:N}}var Bt0=D(()=>{Gt0();JE();Ft0()});var KQ0;var Ot0=D(()=>{KQ0={name:"decocms",version:"4.333.1",description:"Deco CMS \u2014 Self-hostable MCP Gateway for managing AI connections and tools",author:"Deco team",repository:{type:"git",url:"git+https://github.com/decocms/studio.git",directory:"apps/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 R14,Text as be1}from"ink";import{jsx as I14,jsxs as ye1}from"react/jsx-runtime";function ge1({version:$}){return ye1(R14,{flexDirection:"column",marginTop:1,children:[S70.map((Z,Q)=>I14(be1,{color:C70[Q],children:Z},Q)),ye1(be1,{dimColor:!0,children:[" v",$]})]})}var he1=D(()=>{bp()});import{Box as GE,Text as TO}from"ink";import{Spinner as q14}from"@inkjs/ui";import{jsx as FJ,jsxs as Zg}from"react/jsx-runtime";function ue1({status:$}){if($==="pending")return FJ(q14,{label:""});return FJ(TO,{color:"green",children:"\u2713"})}function M14($){return`${$.name}: ${$.port||"...."}`}function ce1({services:$,migrationsStatus:Z,home:Q,serverUrl:X}){return Zg(GE,{flexDirection:"column",paddingBottom:1,children:[FJ(ge1,{version:KQ0.version}),FJ(GE,{marginBottom:1,children:FJ(TO,{dimColor:!0,children:"\u2500".repeat(80)})}),FJ(GE,{children:Zg(TO,{dimColor:!0,children:["Home: ",Q]})}),Zg(GE,{gap:2,children:[$.map((Y)=>Zg(GE,{gap:1,children:[FJ(TO,{children:M14(Y)}),FJ(ue1,{status:Y.status})]},Y.name)),Zg(GE,{gap:1,children:[FJ(TO,{children:"Migrations"}),FJ(ue1,{status:Z})]})]}),FJ(GE,{children:X?Zg(TO,{children:["Open in browser: ",FJ(TO,{color:"cyan",children:X})]}):FJ(TO,{dimColor:!0,children:"Starting..."})})]})}var le1=D(()=>{Ot0();he1()});import{Box as V14,Text as ep}from"ink";import{jsx as Dt0,jsxs as Lt0}from"react/jsx-runtime";function k14($){if($>=500)return"red";if($>=400)return"yellow";if($>=300)return"cyan";return"green"}function me1({logs:$}){return Dt0(V14,{flexDirection:"column",children:$.map((Z,Q)=>{if(Z.rawLine)return Dt0(ep,{dimColor:!0,children:Z.rawLine},Q);let X=Z.duration<1000?`${Z.duration}ms`:`${(Z.duration/1000).toFixed(1)}s`;return Lt0(ep,{children:[Lt0(ep,{dimColor:!0,children:[Z.method.padEnd(6)," ",Z.path.padEnd(30)," "]}),Dt0(ep,{color:k14(Z.status),children:Z.status}),Lt0(ep,{dimColor:!0,children:[" ",X.padStart(8)]})]},Q)})})}var de1=()=>{};var wt0={};e(wt0,{App:()=>_14});import{Box as S14}from"ink";import{useSyncExternalStore as C14}from"react";import{jsx as ie1,jsxs as v14}from"react/jsx-runtime";function _14({home:$}){let Z=C14(Ht0,Wt0);return v14(S14,{flexDirection:"column",children:[ie1(ce1,{services:Z.services,migrationsStatus:Z.migrationsStatus,home:$,serverUrl:Z.serverUrl}),ie1(me1,{logs:Z.logs})]})}var jt0=D(()=>{le1();de1();JE()});var s3="thread-gate",MU="decopilot-hosted-harness",VU="decopilot-hosted-harness-sandboxed",MG="automations",RO="background-tools",KE="task-board-github-reads";var pe1="11";function ne1($){return{name:"decocms",systemDatabaseUrl:$.systemDatabaseUrl,systemDatabaseSchemaName:"dbos",systemDatabasePoolSize:$.poolSize,runAdminServer:!1,executorID:$.executorID,applicationVersion:pe1,...$.listenQueues!==void 0?{listenQueues:$.listenQueues}:{}}}var te1=()=>{};import x14 from"pg";async function re1($,Z){let{databaseUrl:Q,lockTimeoutMs:X=f14}=$,Y=$.log??((W)=>console.log(W)),J=new x14.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",[oe1.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 U$(b14)}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)",[oe1.toString()])}catch{}await J.end().catch(()=>{})}}var oe1=8314027461559302n,f14=600000,b14=500;var ae1=D(()=>{t8()});function y14(){let $=(process.env.BUN_OPTIONS??"").split(/\s+/).filter(Boolean);return[...process.argv.slice(1),...$]}function Et0($,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 se1(){let $=y14();if($.includes("--cpu-prof")){console.log(JSON.stringify({msg:"cpu-profiling-active",dir:Et0($,"--cpu-prof-dir")??process.cwd(),name:Et0($,"--cpu-prof-name"),markdown:$.includes("--cpu-prof-md"),intervalUs:Number(Et0($,"--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 ee1(){if(process.env.HEAP_WATCH!=="1")return()=>{};let $=Number(process.env.HEAP_WATCH_INTERVAL_MS??60000),Z=async()=>{let Q=$E();if(!Q)return;let X={};try{let{heapStats:Y}=await import("bun:jsc"),J=Y(),G=Object.entries(J.objectTypeCounts).sort((K,W)=>W[1]-K[1]).slice(0,20);X={objectCount:J.objectCount,heapSize:J.heapSize,top:Object.fromEntries(G)}}catch{}console.log(JSON.stringify({msg:"heap-watch",ts:new Date().toISOString(),uptimeS:Math.round(process.uptime()),rss:Q.rss,heapUsed:Q.heapUsed,heapTotal:Q.heapTotal,external:Q.external,arrayBuffers:Q.arrayBuffers,...X}))};return Z().catch(()=>{}),WQ0=setInterval(()=>void Z().catch(()=>{}),$),WQ0.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(WQ0)clearInterval(WQ0)}}var WQ0;var $0$=()=>{};import*as g14 from"bun:jsc";function Z0$(){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{h14()}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=u14()?.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 h14,u14;var Q0$=D(()=>{({startSamplingProfiler:h14,samplingProfilerStackTraces:u14}=g14)});function X0$(){se1();let $=[ee1(),Go1(),Z0$()];return()=>{for(let Z of $)Z()}}var Y0$=D(()=>{Cm0();$0$();Q0$()});var WE=v((J0$)=>{Object.defineProperty(J0$,"__esModule",{value:!0});J0$.RepublishHeaders=J0$.DirectMsgHeaders=J0$.JsHeaders=J0$.AdvisoryKind=void 0;J0$.isOrderedPushConsumerOptions=c14;J0$.isPullConsumer=l14;J0$.isPushConsumer=m14;J0$.isBoundPushConsumerOptions=d14;function c14($){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 l14($){return $.isPullConsumer()}function m14($){return $.isPushConsumer()}function d14($){if($&&typeof $==="object")return"deliver_subject"in $||"deliver_group"in $||"idle_heartbeat"in $;return!1}J0$.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"};J0$.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"};J0$.DirectMsgHeaders={Stream:"Nats-Stream",Sequence:"Nats-Sequence",TimeStamp:"Nats-Time-Stamp",Subject:"Nats-Subject",LastSequence:"Nats-Last-Sequence",NumPending:"Nats-Num-Pending"};J0$.RepublishHeaders={Stream:"Nats-Stream",Subject:"Nats-Subject",Sequence:"Nats-Sequence",LastSequence:"Nats-Last-Sequence",Size:"Nats-Msg-Size"}});var UJ=v((K0$)=>{Object.defineProperty(K0$,"__esModule",{value:!0});K0$.TD=K0$.TE=K0$.Empty=void 0;K0$.encode=e14;K0$.decode=$$4;K0$.Empty=new Uint8Array(0);K0$.TE=new TextEncoder;K0$.TD=new TextDecoder;function s14(...$){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 e14(...$){let Z=[];for(let Q=0;Q<$.length;Q++)Z.push(K0$.TE.encode($[Q]));if(Z.length===0)return K0$.Empty;if(Z.length===1)return Z[0];return s14(...Z)}function $$4($){if(!$||$.length===0)return"";return K0$.TD.decode($)}});var NJ=v((F0$)=>{Object.defineProperty(F0$,"__esModule",{value:!0});F0$.errors=F0$.PermissionViolationError=F0$.NoRespondersError=F0$.TimeoutError=F0$.RequestError=F0$.ProtocolError=F0$.ConnectionError=F0$.DrainingConnectionError=F0$.ClosedConnectionError=F0$.AuthorizationError=F0$.UserAuthenticationExpiredError=F0$.InvalidOperationError=F0$.InvalidArgumentError=F0$.InvalidSubjectError=void 0;class Pt0 extends Error{constructor($,Z){super(`illegal subject: '${$}'`,Z);this.name="InvalidSubjectError"}}F0$.InvalidSubjectError=Pt0;class HQ0 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 HQ0(`${$} ${Z}`,Q)}}F0$.InvalidArgumentError=HQ0;class At0 extends Error{constructor($,Z){super($,Z);this.name="InvalidOperationError"}}F0$.InvalidOperationError=At0;class FQ0 extends Error{constructor($,Z){super($,Z);this.name="UserAuthenticationExpiredError"}static parse($){if($.toLowerCase().indexOf("user authentication expired")!==-1)return new FQ0($);return null}}F0$.UserAuthenticationExpiredError=FQ0;class UQ0 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 UQ0($);return null}}F0$.AuthorizationError=UQ0;class Tt0 extends Error{constructor(){super("closed connection");this.name="ClosedConnectionError"}}F0$.ClosedConnectionError=Tt0;class Rt0 extends Error{constructor(){super("connection draining");this.name="DrainingConnectionError"}}F0$.DrainingConnectionError=Rt0;class It0 extends Error{constructor($,Z){super($,Z);this.name="ConnectionError"}}F0$.ConnectionError=It0;class qt0 extends Error{constructor($,Z){super($,Z);this.name="ProtocolError"}}F0$.ProtocolError=qt0;class Mt0 extends Error{constructor($="",Z){super($,Z);this.name="RequestError"}isNoResponders(){return this.cause instanceof NQ0}}F0$.RequestError=Mt0;class Vt0 extends Error{constructor($){super("timeout",$);this.name="TimeoutError"}}F0$.TimeoutError=Vt0;class NQ0 extends Error{subject;constructor($,Z){super(`no responders: '${$}'`,Z);this.subject=$,this.name="NoResponders"}}F0$.NoRespondersError=NQ0;class BQ0 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 BQ0($,Q,X,Y)}}F0$.PermissionViolationError=BQ0;F0$.errors={AuthorizationError:UQ0,ClosedConnectionError:Tt0,ConnectionError:It0,DrainingConnectionError:Rt0,InvalidArgumentError:HQ0,InvalidOperationError:At0,InvalidSubjectError:Pt0,NoRespondersError:NQ0,PermissionViolationError:BQ0,ProtocolError:qt0,RequestError:Mt0,TimeoutError:Vt0,UserAuthenticationExpiredError:FQ0}});var e3=v((D0$)=>{Object.defineProperty(D0$,"__esModule",{value:!0});D0$.SimpleMutex=D0$.Perf=void 0;D0$.extend=w$4;D0$.render=j$4;D0$.timeout=E$4;D0$.delay=z$4;D0$.deadline=P$4;D0$.deferred=St0;D0$.debugDeferred=A$4;D0$.shuffle=T$4;D0$.collect=R$4;D0$.jitter=O0$;D0$.backoff=I$4;D0$.nanos=q$4;D0$.millis=M$4;D0$.randomToken=S$4;var L$4=UJ(),kt0=NJ();function w$4($,...Z){for(let Q=0;Q<Z.length;Q++){let X=Z[Q];Object.keys(X).forEach(function(Y){$[Y]=X[Y]})}return $}function j$4($){return L$4.TD.decode($).replace(/\n/g,"\u240A").replace(/\r/g,"\u240D")}function E$4($,Z=!0){let Q=Z?new kt0.TimeoutError:null,X,Y,J=new Promise((G,K)=>{X={cancel:()=>{if(Y)clearTimeout(Y)}},Y=setTimeout(()=>{if(Q===null)K(new kt0.TimeoutError);else K(Q)},$)});return Object.assign(J,X)}function z$4($=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 P$4($,Z=1000){let Q=St0(),X=setTimeout(()=>{Q.reject(new kt0.TimeoutError)},Z);try{return await Promise.race([$,Q])}finally{clearTimeout(X)}}function St0(){let $={},Z=new Promise((Q,X)=>{$={resolve:Q,reject:X}});return Object.assign(Z,$)}function A$4(){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 T$4($){for(let Z=$.length-1;Z>0;Z--){let Q=Math.floor(Math.random()*(Z+1));[$[Z],$[Q]]=[$[Q],$[Z]]}return $}async function R$4($){let Z=[];for await(let Q of $)Z.push(Q);return Z}class N0${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})}),$}}D0$.Perf=N0$;class B0${max;current;waiting;constructor($=1){this.max=$,this.current=0,this.waiting=[]}lock(){if(this.current++,this.current<=this.max)return Promise.resolve();let $=St0();return this.waiting.push($),$}unlock(){this.current--,this.waiting.pop()?.resolve()}}D0$.SimpleMutex=B0$;function O0$($){if($===0)return 0;return Math.floor($/2+Math.random()*$)}function I$4($=[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 O0$(Q>Z?$[Z]:$[Q])}}}function q$4($){return $*1e6}function M$4($){return Math.floor($/1e6)}var V$4="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",kU=new Uint8Array(62);for(let $=0;$<62;$++)kU[$]=V$4.charCodeAt($);var k$4=218340105584896;function S$4(){let $=Math.floor(Math.random()*k$4),Z=$%62,Q=kU[Z];$=($-Z)/62,Z=$%62;let X=kU[Z];$=($-Z)/62,Z=$%62;let Y=kU[Z];$=($-Z)/62,Z=$%62;let J=kU[Z];$=($-Z)/62,Z=$%62;let G=kU[Z];$=($-Z)/62,Z=$%62;let K=kU[Z];$=($-Z)/62,Z=$%62;let W=kU[Z];$=($-Z)/62;let H=kU[$];return String.fromCharCode(Q,X,Y,J,G,K,W,H)}});var T0$=v((P0$)=>{Object.defineProperty(P0$,"__esModule",{value:!0});P0$.nuid=P0$.NuidImpl=void 0;var p$4="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",IO=62,DQ0=12,E0$=10,w0$=33,n$4=333,j0$=DQ0+E0$,_t0=new Uint8Array(IO);for(let $=0;$<IO;$++)_t0[$]=p$4.charCodeAt($);var OQ0=4294967296,z0$=BigInt(IO)**BigInt(E0$),$n=Number(z0$/(1n<<32n)),Ct0=Number(z0$%(1n<<32n));function t$4($){for(let Z=0;Z<$.length;Z++)$[Z]=Math.floor(Math.random()*256)}function o$4($){if(globalThis?.crypto?.getRandomValues)globalThis.crypto.getRandomValues($);else t$4($)}class vt0{buf;cbuf;seqHi;seqLo;inc;inited;constructor(){this.buf=new Uint8Array(j0$),this.cbuf=new Uint8Array(DQ0),this.inited=!1}init(){this.inited=!0,this.setPre(),this.initSeqAndInc(),this.fillSeq()}initSeqAndInc(){let $=0;do this.seqHi=Math.floor(Math.random()*($n+1)),this.seqLo=Math.floor(Math.random()*OQ0);while($++<8&&this.seqHi===$n&&this.seqLo>=Ct0);if(this.seqHi===$n&&this.seqLo>=Ct0)this.seqLo=0;this.inc=Math.random()*(n$4-w0$)+w0$|0}setPre(){o$4(this.cbuf);for(let $=0;$<DQ0;$++)this.buf[$]=_t0[this.cbuf[$]%IO]}fillSeq(){let $=this.seqHi,Z=this.seqLo;for(let Q=j0$-1;Q>=DQ0;Q--){let X=Math.floor($/IO),J=($-X*IO)*OQ0+Z,G=Math.floor(J/IO),K=J-G*IO;this.buf[Q]=_t0[K],$=X,Z=G}}next(){if(!this.inited)this.init();if(this.seqLo+=this.inc,this.seqLo>=OQ0)this.seqLo-=OQ0,this.seqHi+=1;if(this.seqHi>$n||this.seqHi===$n&&this.seqLo>=Ct0)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()}}P0$.NuidImpl=vt0;P0$.nuid=new vt0});var M0$=v((I0$)=>{Object.defineProperty(I0$,"__esModule",{value:!0});I0$.nuid=I0$.Nuid=void 0;var R0$=T0$();I0$.Nuid=R0$.NuidImpl;I0$.nuid=R0$.nuid});var wQ0=v((LQ0)=>{Object.defineProperty(LQ0,"__esModule",{value:!0});LQ0.nuid=LQ0.Nuid=void 0;var V0$=M0$();Object.defineProperty(LQ0,"Nuid",{enumerable:!0,get:function(){return V0$.Nuid}});Object.defineProperty(LQ0,"nuid",{enumerable:!0,get:function(){return V0$.nuid}})});var qO=v((k0$)=>{Object.defineProperty(k0$,"__esModule",{value:!0});k0$.DEFAULT_HOST=k0$.DEFAULT_PORT=k0$.Match=void 0;k0$.syncIterator=Z84;k0$.createInbox=Q84;var e$4=wQ0(),$84=NJ();k0$.Match={Exact:"exact",CanonicalMIME:"canonical",IgnoreCase:"insensitive"};function Z84($){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 Q84($=""){if($=$||"_INBOX",typeof $!=="string")throw TypeError("prefix must be a string");return $.split(".").forEach((Z)=>{if(Z==="*"||Z===">")throw $84.InvalidArgumentError.format("prefix",`cannot have wildcards ('${$}')`)}),`${$}.${e$4.nuid.next()}`}k0$.DEFAULT_PORT=4222;k0$.DEFAULT_HOST="127.0.0.1"});var Zn=v((v0$)=>{Object.defineProperty(v0$,"__esModule",{value:!0});v0$.DataBuffer=void 0;var C0$=UJ();class _0${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 C0$.TE.encode($)}static toAscii($){return C0$.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}}v0$.DataBuffer=_0$});var HE=v((b0$)=>{Object.defineProperty(b0$,"__esModule",{value:!0});b0$.LF=b0$.CR=b0$.CRLF=b0$.CR_LF_LEN=b0$.CR_LF=void 0;b0$.setTransportFactory=F84;b0$.defaultPort=U84;b0$.getUrlParseFn=N84;b0$.newTransport=B84;b0$.getResolveFn=O84;b0$.protoLen=f0$;b0$.extractProtocolMessage=D84;var K84=UJ(),W84=qO(),H84=Zn(),BJ;function F84($){BJ=$}function U84(){return BJ!==void 0&&BJ.defaultPort!==void 0?BJ.defaultPort:W84.DEFAULT_PORT}function N84(){return BJ!==void 0&&BJ.urlParseFn?BJ.urlParseFn:void 0}function B84(){if(!BJ||typeof BJ.factory!=="function")throw Error("transport fn is not set");return BJ.factory()}function O84(){return BJ!==void 0&&BJ.dnsResolveFn?BJ.dnsResolveFn:void 0}b0$.CR_LF=`\r
1565
+ `);X=J.pop()??"";for(let G of J){let K=Bun.stripANSI(G).replace(/^\[\d+\]\s*/,"").trim();if(!K)continue;AO({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)AO({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:J})}})()}async function A14($){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 sp(Number(Y)+1):await sp(Number($.port)),{settings:K,services:W,managedServiceNames:H}=await YQ0({port:String(G),home:$.home,baseUrl:$.baseUrl,localMode:$.localMode,skipMigrations:$.skipMigrations,noTui:$.noTui,vitePort:$.vitePort});for(let L of W)YE({name:L.name,status:"ready",port:L.port});rp();let F=P14(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)Ut0(N.stdout),Ut0(N.stderr);ap(J),YE({name:"Vite",status:"ready",port:Number(Y)}),YE({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(() => (K70(),G70));await w(K.dataDir)}};return process.on("SIGINT",()=>O("SIGINT")),process.on("SIGTERM",()=>O("SIGTERM")),{port:Number(Y),process:N}}var Bt0=D(()=>{Gt0();JE();Ft0()});var KQ0;var Ot0=D(()=>{KQ0={name:"decocms",version:"4.334.0",description:"Deco CMS \u2014 Self-hostable MCP Gateway for managing AI connections and tools",author:"Deco team",repository:{type:"git",url:"git+https://github.com/decocms/studio.git",directory:"apps/api"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:"bun run migrate && bun run dev:server","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts",build:"bun run build:server","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","generate:tool-contracts":"bun run scripts/generate-tool-contracts.ts","db:migrate":"bun run ./dist/server/migrate.js","db:migrate:dbos":"bun run ./dist/server/migrate-dbos.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts","migrate:dbos":"bun run src/database/migrate-dbos.ts",test:"bun test src","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts",prepublishOnly:"bun run --cwd=../.. build:studio"},optionalDependencies:{"@duckdb/node-api":"^1.5.0-r.1"},dependencies:{"@ai-sdk/anthropic":"^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 R14,Text as be1}from"ink";import{jsx as I14,jsxs as ye1}from"react/jsx-runtime";function ge1({version:$}){return ye1(R14,{flexDirection:"column",marginTop:1,children:[S70.map((Z,Q)=>I14(be1,{color:C70[Q],children:Z},Q)),ye1(be1,{dimColor:!0,children:[" v",$]})]})}var he1=D(()=>{bp()});import{Box as GE,Text as TO}from"ink";import{Spinner as q14}from"@inkjs/ui";import{jsx as FJ,jsxs as Zg}from"react/jsx-runtime";function ue1({status:$}){if($==="pending")return FJ(q14,{label:""});return FJ(TO,{color:"green",children:"\u2713"})}function M14($){return`${$.name}: ${$.port||"...."}`}function ce1({services:$,migrationsStatus:Z,home:Q,serverUrl:X}){return Zg(GE,{flexDirection:"column",paddingBottom:1,children:[FJ(ge1,{version:KQ0.version}),FJ(GE,{marginBottom:1,children:FJ(TO,{dimColor:!0,children:"\u2500".repeat(80)})}),FJ(GE,{children:Zg(TO,{dimColor:!0,children:["Home: ",Q]})}),Zg(GE,{gap:2,children:[$.map((Y)=>Zg(GE,{gap:1,children:[FJ(TO,{children:M14(Y)}),FJ(ue1,{status:Y.status})]},Y.name)),Zg(GE,{gap:1,children:[FJ(TO,{children:"Migrations"}),FJ(ue1,{status:Z})]})]}),FJ(GE,{children:X?Zg(TO,{children:["Open in browser: ",FJ(TO,{color:"cyan",children:X})]}):FJ(TO,{dimColor:!0,children:"Starting..."})})]})}var le1=D(()=>{Ot0();he1()});import{Box as V14,Text as ep}from"ink";import{jsx as Dt0,jsxs as Lt0}from"react/jsx-runtime";function k14($){if($>=500)return"red";if($>=400)return"yellow";if($>=300)return"cyan";return"green"}function me1({logs:$}){return Dt0(V14,{flexDirection:"column",children:$.map((Z,Q)=>{if(Z.rawLine)return Dt0(ep,{dimColor:!0,children:Z.rawLine},Q);let X=Z.duration<1000?`${Z.duration}ms`:`${(Z.duration/1000).toFixed(1)}s`;return Lt0(ep,{children:[Lt0(ep,{dimColor:!0,children:[Z.method.padEnd(6)," ",Z.path.padEnd(30)," "]}),Dt0(ep,{color:k14(Z.status),children:Z.status}),Lt0(ep,{dimColor:!0,children:[" ",X.padStart(8)]})]},Q)})})}var de1=()=>{};var wt0={};e(wt0,{App:()=>_14});import{Box as S14}from"ink";import{useSyncExternalStore as C14}from"react";import{jsx as ie1,jsxs as v14}from"react/jsx-runtime";function _14({home:$}){let Z=C14(Ht0,Wt0);return v14(S14,{flexDirection:"column",children:[ie1(ce1,{services:Z.services,migrationsStatus:Z.migrationsStatus,home:$,serverUrl:Z.serverUrl}),ie1(me1,{logs:Z.logs})]})}var jt0=D(()=>{le1();de1();JE()});var s3="thread-gate",MU="decopilot-hosted-harness",VU="decopilot-hosted-harness-sandboxed",MG="automations",RO="background-tools",KE="task-board-github-reads";var pe1="11";function ne1($){return{name:"decocms",systemDatabaseUrl:$.systemDatabaseUrl,systemDatabaseSchemaName:"dbos",systemDatabasePoolSize:$.poolSize,runAdminServer:!1,executorID:$.executorID,applicationVersion:pe1,...$.listenQueues!==void 0?{listenQueues:$.listenQueues}:{}}}var te1=()=>{};import x14 from"pg";async function re1($,Z){let{databaseUrl:Q,lockTimeoutMs:X=f14}=$,Y=$.log??((W)=>console.log(W)),J=new x14.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",[oe1.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 U$(b14)}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)",[oe1.toString()])}catch{}await J.end().catch(()=>{})}}var oe1=8314027461559302n,f14=600000,b14=500;var ae1=D(()=>{t8()});function y14(){let $=(process.env.BUN_OPTIONS??"").split(/\s+/).filter(Boolean);return[...process.argv.slice(1),...$]}function Et0($,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 se1(){let $=y14();if($.includes("--cpu-prof")){console.log(JSON.stringify({msg:"cpu-profiling-active",dir:Et0($,"--cpu-prof-dir")??process.cwd(),name:Et0($,"--cpu-prof-name"),markdown:$.includes("--cpu-prof-md"),intervalUs:Number(Et0($,"--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 ee1(){if(process.env.HEAP_WATCH!=="1")return()=>{};let $=Number(process.env.HEAP_WATCH_INTERVAL_MS??60000),Z=async()=>{let Q=$E();if(!Q)return;let X={};try{let{heapStats:Y}=await import("bun:jsc"),J=Y(),G=Object.entries(J.objectTypeCounts).sort((K,W)=>W[1]-K[1]).slice(0,20);X={objectCount:J.objectCount,heapSize:J.heapSize,top:Object.fromEntries(G)}}catch{}console.log(JSON.stringify({msg:"heap-watch",ts:new Date().toISOString(),uptimeS:Math.round(process.uptime()),rss:Q.rss,heapUsed:Q.heapUsed,heapTotal:Q.heapTotal,external:Q.external,arrayBuffers:Q.arrayBuffers,...X}))};return Z().catch(()=>{}),WQ0=setInterval(()=>void Z().catch(()=>{}),$),WQ0.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(WQ0)clearInterval(WQ0)}}var WQ0;var $0$=()=>{};import*as g14 from"bun:jsc";function Z0$(){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{h14()}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=u14()?.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 h14,u14;var Q0$=D(()=>{({startSamplingProfiler:h14,samplingProfilerStackTraces:u14}=g14)});function X0$(){se1();let $=[ee1(),Go1(),Z0$()];return()=>{for(let Z of $)Z()}}var Y0$=D(()=>{Cm0();$0$();Q0$()});var WE=v((J0$)=>{Object.defineProperty(J0$,"__esModule",{value:!0});J0$.RepublishHeaders=J0$.DirectMsgHeaders=J0$.JsHeaders=J0$.AdvisoryKind=void 0;J0$.isOrderedPushConsumerOptions=c14;J0$.isPullConsumer=l14;J0$.isPushConsumer=m14;J0$.isBoundPushConsumerOptions=d14;function c14($){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 l14($){return $.isPullConsumer()}function m14($){return $.isPushConsumer()}function d14($){if($&&typeof $==="object")return"deliver_subject"in $||"deliver_group"in $||"idle_heartbeat"in $;return!1}J0$.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"};J0$.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"};J0$.DirectMsgHeaders={Stream:"Nats-Stream",Sequence:"Nats-Sequence",TimeStamp:"Nats-Time-Stamp",Subject:"Nats-Subject",LastSequence:"Nats-Last-Sequence",NumPending:"Nats-Num-Pending"};J0$.RepublishHeaders={Stream:"Nats-Stream",Subject:"Nats-Subject",Sequence:"Nats-Sequence",LastSequence:"Nats-Last-Sequence",Size:"Nats-Msg-Size"}});var UJ=v((K0$)=>{Object.defineProperty(K0$,"__esModule",{value:!0});K0$.TD=K0$.TE=K0$.Empty=void 0;K0$.encode=e14;K0$.decode=$$4;K0$.Empty=new Uint8Array(0);K0$.TE=new TextEncoder;K0$.TD=new TextDecoder;function s14(...$){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 e14(...$){let Z=[];for(let Q=0;Q<$.length;Q++)Z.push(K0$.TE.encode($[Q]));if(Z.length===0)return K0$.Empty;if(Z.length===1)return Z[0];return s14(...Z)}function $$4($){if(!$||$.length===0)return"";return K0$.TD.decode($)}});var NJ=v((F0$)=>{Object.defineProperty(F0$,"__esModule",{value:!0});F0$.errors=F0$.PermissionViolationError=F0$.NoRespondersError=F0$.TimeoutError=F0$.RequestError=F0$.ProtocolError=F0$.ConnectionError=F0$.DrainingConnectionError=F0$.ClosedConnectionError=F0$.AuthorizationError=F0$.UserAuthenticationExpiredError=F0$.InvalidOperationError=F0$.InvalidArgumentError=F0$.InvalidSubjectError=void 0;class Pt0 extends Error{constructor($,Z){super(`illegal subject: '${$}'`,Z);this.name="InvalidSubjectError"}}F0$.InvalidSubjectError=Pt0;class HQ0 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 HQ0(`${$} ${Z}`,Q)}}F0$.InvalidArgumentError=HQ0;class At0 extends Error{constructor($,Z){super($,Z);this.name="InvalidOperationError"}}F0$.InvalidOperationError=At0;class FQ0 extends Error{constructor($,Z){super($,Z);this.name="UserAuthenticationExpiredError"}static parse($){if($.toLowerCase().indexOf("user authentication expired")!==-1)return new FQ0($);return null}}F0$.UserAuthenticationExpiredError=FQ0;class UQ0 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 UQ0($);return null}}F0$.AuthorizationError=UQ0;class Tt0 extends Error{constructor(){super("closed connection");this.name="ClosedConnectionError"}}F0$.ClosedConnectionError=Tt0;class Rt0 extends Error{constructor(){super("connection draining");this.name="DrainingConnectionError"}}F0$.DrainingConnectionError=Rt0;class It0 extends Error{constructor($,Z){super($,Z);this.name="ConnectionError"}}F0$.ConnectionError=It0;class qt0 extends Error{constructor($,Z){super($,Z);this.name="ProtocolError"}}F0$.ProtocolError=qt0;class Mt0 extends Error{constructor($="",Z){super($,Z);this.name="RequestError"}isNoResponders(){return this.cause instanceof NQ0}}F0$.RequestError=Mt0;class Vt0 extends Error{constructor($){super("timeout",$);this.name="TimeoutError"}}F0$.TimeoutError=Vt0;class NQ0 extends Error{subject;constructor($,Z){super(`no responders: '${$}'`,Z);this.subject=$,this.name="NoResponders"}}F0$.NoRespondersError=NQ0;class BQ0 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 BQ0($,Q,X,Y)}}F0$.PermissionViolationError=BQ0;F0$.errors={AuthorizationError:UQ0,ClosedConnectionError:Tt0,ConnectionError:It0,DrainingConnectionError:Rt0,InvalidArgumentError:HQ0,InvalidOperationError:At0,InvalidSubjectError:Pt0,NoRespondersError:NQ0,PermissionViolationError:BQ0,ProtocolError:qt0,RequestError:Mt0,TimeoutError:Vt0,UserAuthenticationExpiredError:FQ0}});var e3=v((D0$)=>{Object.defineProperty(D0$,"__esModule",{value:!0});D0$.SimpleMutex=D0$.Perf=void 0;D0$.extend=w$4;D0$.render=j$4;D0$.timeout=E$4;D0$.delay=z$4;D0$.deadline=P$4;D0$.deferred=St0;D0$.debugDeferred=A$4;D0$.shuffle=T$4;D0$.collect=R$4;D0$.jitter=O0$;D0$.backoff=I$4;D0$.nanos=q$4;D0$.millis=M$4;D0$.randomToken=S$4;var L$4=UJ(),kt0=NJ();function w$4($,...Z){for(let Q=0;Q<Z.length;Q++){let X=Z[Q];Object.keys(X).forEach(function(Y){$[Y]=X[Y]})}return $}function j$4($){return L$4.TD.decode($).replace(/\n/g,"\u240A").replace(/\r/g,"\u240D")}function E$4($,Z=!0){let Q=Z?new kt0.TimeoutError:null,X,Y,J=new Promise((G,K)=>{X={cancel:()=>{if(Y)clearTimeout(Y)}},Y=setTimeout(()=>{if(Q===null)K(new kt0.TimeoutError);else K(Q)},$)});return Object.assign(J,X)}function z$4($=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 P$4($,Z=1000){let Q=St0(),X=setTimeout(()=>{Q.reject(new kt0.TimeoutError)},Z);try{return await Promise.race([$,Q])}finally{clearTimeout(X)}}function St0(){let $={},Z=new Promise((Q,X)=>{$={resolve:Q,reject:X}});return Object.assign(Z,$)}function A$4(){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 T$4($){for(let Z=$.length-1;Z>0;Z--){let Q=Math.floor(Math.random()*(Z+1));[$[Z],$[Q]]=[$[Q],$[Z]]}return $}async function R$4($){let Z=[];for await(let Q of $)Z.push(Q);return Z}class N0${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})}),$}}D0$.Perf=N0$;class B0${max;current;waiting;constructor($=1){this.max=$,this.current=0,this.waiting=[]}lock(){if(this.current++,this.current<=this.max)return Promise.resolve();let $=St0();return this.waiting.push($),$}unlock(){this.current--,this.waiting.pop()?.resolve()}}D0$.SimpleMutex=B0$;function O0$($){if($===0)return 0;return Math.floor($/2+Math.random()*$)}function I$4($=[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 O0$(Q>Z?$[Z]:$[Q])}}}function q$4($){return $*1e6}function M$4($){return Math.floor($/1e6)}var V$4="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",kU=new Uint8Array(62);for(let $=0;$<62;$++)kU[$]=V$4.charCodeAt($);var k$4=218340105584896;function S$4(){let $=Math.floor(Math.random()*k$4),Z=$%62,Q=kU[Z];$=($-Z)/62,Z=$%62;let X=kU[Z];$=($-Z)/62,Z=$%62;let Y=kU[Z];$=($-Z)/62,Z=$%62;let J=kU[Z];$=($-Z)/62,Z=$%62;let G=kU[Z];$=($-Z)/62,Z=$%62;let K=kU[Z];$=($-Z)/62,Z=$%62;let W=kU[Z];$=($-Z)/62;let H=kU[$];return String.fromCharCode(Q,X,Y,J,G,K,W,H)}});var T0$=v((P0$)=>{Object.defineProperty(P0$,"__esModule",{value:!0});P0$.nuid=P0$.NuidImpl=void 0;var p$4="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",IO=62,DQ0=12,E0$=10,w0$=33,n$4=333,j0$=DQ0+E0$,_t0=new Uint8Array(IO);for(let $=0;$<IO;$++)_t0[$]=p$4.charCodeAt($);var OQ0=4294967296,z0$=BigInt(IO)**BigInt(E0$),$n=Number(z0$/(1n<<32n)),Ct0=Number(z0$%(1n<<32n));function t$4($){for(let Z=0;Z<$.length;Z++)$[Z]=Math.floor(Math.random()*256)}function o$4($){if(globalThis?.crypto?.getRandomValues)globalThis.crypto.getRandomValues($);else t$4($)}class vt0{buf;cbuf;seqHi;seqLo;inc;inited;constructor(){this.buf=new Uint8Array(j0$),this.cbuf=new Uint8Array(DQ0),this.inited=!1}init(){this.inited=!0,this.setPre(),this.initSeqAndInc(),this.fillSeq()}initSeqAndInc(){let $=0;do this.seqHi=Math.floor(Math.random()*($n+1)),this.seqLo=Math.floor(Math.random()*OQ0);while($++<8&&this.seqHi===$n&&this.seqLo>=Ct0);if(this.seqHi===$n&&this.seqLo>=Ct0)this.seqLo=0;this.inc=Math.random()*(n$4-w0$)+w0$|0}setPre(){o$4(this.cbuf);for(let $=0;$<DQ0;$++)this.buf[$]=_t0[this.cbuf[$]%IO]}fillSeq(){let $=this.seqHi,Z=this.seqLo;for(let Q=j0$-1;Q>=DQ0;Q--){let X=Math.floor($/IO),J=($-X*IO)*OQ0+Z,G=Math.floor(J/IO),K=J-G*IO;this.buf[Q]=_t0[K],$=X,Z=G}}next(){if(!this.inited)this.init();if(this.seqLo+=this.inc,this.seqLo>=OQ0)this.seqLo-=OQ0,this.seqHi+=1;if(this.seqHi>$n||this.seqHi===$n&&this.seqLo>=Ct0)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()}}P0$.NuidImpl=vt0;P0$.nuid=new vt0});var M0$=v((I0$)=>{Object.defineProperty(I0$,"__esModule",{value:!0});I0$.nuid=I0$.Nuid=void 0;var R0$=T0$();I0$.Nuid=R0$.NuidImpl;I0$.nuid=R0$.nuid});var wQ0=v((LQ0)=>{Object.defineProperty(LQ0,"__esModule",{value:!0});LQ0.nuid=LQ0.Nuid=void 0;var V0$=M0$();Object.defineProperty(LQ0,"Nuid",{enumerable:!0,get:function(){return V0$.Nuid}});Object.defineProperty(LQ0,"nuid",{enumerable:!0,get:function(){return V0$.nuid}})});var qO=v((k0$)=>{Object.defineProperty(k0$,"__esModule",{value:!0});k0$.DEFAULT_HOST=k0$.DEFAULT_PORT=k0$.Match=void 0;k0$.syncIterator=Z84;k0$.createInbox=Q84;var e$4=wQ0(),$84=NJ();k0$.Match={Exact:"exact",CanonicalMIME:"canonical",IgnoreCase:"insensitive"};function Z84($){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 Q84($=""){if($=$||"_INBOX",typeof $!=="string")throw TypeError("prefix must be a string");return $.split(".").forEach((Z)=>{if(Z==="*"||Z===">")throw $84.InvalidArgumentError.format("prefix",`cannot have wildcards ('${$}')`)}),`${$}.${e$4.nuid.next()}`}k0$.DEFAULT_PORT=4222;k0$.DEFAULT_HOST="127.0.0.1"});var Zn=v((v0$)=>{Object.defineProperty(v0$,"__esModule",{value:!0});v0$.DataBuffer=void 0;var C0$=UJ();class _0${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 C0$.TE.encode($)}static toAscii($){return C0$.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}}v0$.DataBuffer=_0$});var HE=v((b0$)=>{Object.defineProperty(b0$,"__esModule",{value:!0});b0$.LF=b0$.CR=b0$.CRLF=b0$.CR_LF_LEN=b0$.CR_LF=void 0;b0$.setTransportFactory=F84;b0$.defaultPort=U84;b0$.getUrlParseFn=N84;b0$.newTransport=B84;b0$.getResolveFn=O84;b0$.protoLen=f0$;b0$.extractProtocolMessage=D84;var K84=UJ(),W84=qO(),H84=Zn(),BJ;function F84($){BJ=$}function U84(){return BJ!==void 0&&BJ.defaultPort!==void 0?BJ.defaultPort:W84.DEFAULT_PORT}function N84(){return BJ!==void 0&&BJ.urlParseFn?BJ.urlParseFn:void 0}function B84(){if(!BJ||typeof BJ.factory!=="function")throw Error("transport fn is not set");return BJ.factory()}function O84(){return BJ!==void 0&&BJ.dnsResolveFn?BJ.dnsResolveFn:void 0}b0$.CR_LF=`\r
1566
1566
  `;b0$.CR_LF_LEN=b0$.CR_LF.length;b0$.CRLF=H84.DataBuffer.fromAscii(b0$.CR_LF);b0$.CR=new Uint8Array(b0$.CRLF)[0];b0$.LF=new Uint8Array(b0$.CRLF)[1];function f0$($){for(let Z=0;Z<$.length;Z++){let Q=Z+1;if($.byteLength>Q&&$[Z]===b0$.CR&&$[Q]===b0$.LF)return Q+1}return 0}function D84($){let Z=f0$($);if(Z>0){let X=new Uint8Array($).slice(0,Z);return K84.TD.decode(X)}return""}});var gt0=v((d0$)=>{Object.defineProperty(d0$,"__esModule",{value:!0});d0$.ipV4=c0$;d0$.isIP=q84;d0$.parseIP=l0$;var Qn=4,FE=16,jQ0=48,u0$=57,g0$=65,R84=70,h0$=97,I84=102,yt0=16777215;function c0$($,Z,Q,X){let Y=new Uint8Array(FE);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 q84($){return l0$($)!==void 0}function l0$($){for(let Z=0;Z<$.length;Z++)switch($[Z]){case".":return m0$($);case":":return M84($)}return}function m0$($){let Z=new Uint8Array(Qn);for(let Q=0;Q<Qn;Q++){if($.length===0)return;if(Q>0){if($[0]!==".")return;$=$.substring(1)}let{n:X,c:Y,ok:J}=V84($);if(!J||X>255)return;$=$.substring(Y),Z[Q]=X}return c0$(Z[0],Z[1],Z[2],Z[3])}function M84($){let Z=new Uint8Array(FE),Q=-1;if($.length>=2&&$[0]===":"&&$[1]===":"){if(Q=0,$=$.substring(2),$.length===0)return Z}let X=0;while(X<FE){let{n:Y,c:J,ok:G}=k84($);if(!G||Y>65535)return;if(J<$.length&&$[J]==="."){if(Q<0&&X!=FE-Qn)return;if(X+Qn>FE)return;let K=m0$($);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+=Qn;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<FE){if(Q<0)return;let Y=FE-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 V84($){let Z=0,Q=0;for(Z=0;Z<$.length&&jQ0<=$.charCodeAt(Z)&&$.charCodeAt(Z)<=u0$;Z++)if(Q=Q*10+($.charCodeAt(Z)-jQ0),Q>=yt0)return{n:yt0,c:Z,ok:!1};if(Z===0)return{n:0,c:0,ok:!1};return{n:Q,c:Z,ok:!0}}function k84($){let Z=0,Q=0;for(Q=0;Q<$.length;Q++){if(jQ0<=$.charCodeAt(Q)&&$.charCodeAt(Q)<=u0$)Z*=16,Z+=$.charCodeAt(Q)-jQ0;else if(h0$<=$.charCodeAt(Q)&&$.charCodeAt(Q)<=I84)Z*=16,Z+=$.charCodeAt(Q)-h0$+10;else if(g0$<=$.charCodeAt(Q)&&$.charCodeAt(Q)<=R84)Z*=16,Z+=$.charCodeAt(Q)-g0$+10;else break;if(Z>=yt0)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 dt0=v((p0$)=>{Object.defineProperty(p0$,"__esModule",{value:!0});p0$.Servers=p0$.ServerImpl=void 0;p0$.isIPV4OrHostname=i0$;p0$.hostPort=mt0;var ht0=HE(),ut0=e3(),ct0=gt0(),v84=qO(),x84=NJ();function i0$($){if($.indexOf("[")!==-1||$.indexOf("::")!==-1)return!1;if($.indexOf(".")!==-1)return!0;if($.split(":").length<=2)return!0;return!1}function lt0($){return!i0$($)}function f84($){let Q=$.toUpperCase().indexOf("::FFFF:");if(Q!==-1&&$.indexOf(".")!==-1){let X=$.substring(Q+7);return X=X.replace("[",""),X.replace("]","")}return $}function mt0($){if($=$.trim(),$.match(/^(.*:\/\/)(.*)/m))$=$.replace(/^(.*:\/\/)(.*)/gm,"$2");if($=f84($),lt0($)&&$.indexOf("[")===-1)$=`[${$}]`;let Z=lt0($)?$.match(/(]:)(\d+)/):$.match(/(:)(\d+)/),Q=Z&&Z.length===3&&Z[1]&&Z[2]?parseInt(Z[2]):v84.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 Qg{src;listen;hostname;port;didConnect;reconnects;lastConnect;gossiped;tlsName;resolves;constructor($,Z=!1){this.src=$,this.tlsName="";let Q=mt0($);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,ct0.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}://${lt0(X)?"["+X+"]":X}`);J.port=`${this.port}`;let G=new Qg(J.host,!1);G.tlsName=this.hostname,Z.push(G)}}if($.randomize)(0,ut0.shuffle)(Z);return this.resolves=Z,Z}}p0$.ServerImpl=Qg;class EQ0{firstSelect;servers;currentServer;tlsName;randomize;constructor($={}){this.firstSelect=!0,this.servers=[],this.tlsName="",this.randomize=$.randomize||!1}setServers($){if(!Array.isArray($)||$.length===0)throw x84.InvalidArgumentError.format("servers","cannot be empty");let Z=(0,ht0.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}=mt0(Y),G=Q.get(J);if(G)G.gossiped=!1,X.push(G);else X.push(new Qg(Y))}if(this.randomize)(0,ut0.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,ct0.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,ht0.getUrlParseFn)();$=Q?Q($):$;let X=new Qg($,Z);if((0,ct0.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 EQ0.freezeAll(this.servers)}snapshotForHandler(){let $=this.currentServer;if(!$)return this.snapshot();let Z=this.servers.indexOf($);if(Z<=0)return this.snapshot();return EQ0.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,ht0.getUrlParseFn)(),J=new Map;if($.connect_urls&&$.connect_urls.length>0)$.connect_urls.forEach((K)=>{K=Y?Y(K,Z):K;let W=new Qg(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,ut0.shuffle)(W),this.servers=K?[K,...W]:W}return{added:Q,deleted:X}}}p0$.Servers=EQ0});var zQ0=v((r0$)=>{Object.defineProperty(r0$,"__esModule",{value:!0});r0$.QueuedIteratorImpl=void 0;var it0=e3(),t0$=NJ();class o0${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,it0.deferred)(),this.yields=[],this.iterClosed=(0,it0.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 t0$.InvalidOperationError("iterator cannot be used when a callback is registered");if(this.yielding)throw new t0$.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,it0.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}}r0$.QueuedIteratorImpl=o0$});var pt0=v(($1$)=>{Object.defineProperty($1$,"__esModule",{value:!0});$1$.MuxSubscription=void 0;var h84=qO(),s0$=NJ();class e0${baseInbox;reqs;constructor(){this.reqs=new Map}size(){return this.reqs.size}init($){return this.baseInbox=`${(0,h84.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 s0$.NoRespondersError(X.requestSubject):null;X.resolver($,Z)}}}}close(){let $=new s0$.RequestError("connection closed");this.reqs.forEach((Z)=>{Z.resolver($,{})})}}$1$.MuxSubscription=e0$});var nt0=v((X1$)=>{Object.defineProperty(X1$,"__esModule",{value:!0});X1$.Heartbeat=void 0;var u84=e3();class Q1${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,u84.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})}}X1$.Heartbeat=Q1$});var rt0=v((W1$)=>{Object.defineProperty(W1$,"__esModule",{value:!0});W1$.DenoBuffer=W1$.MAX_SIZE=W1$.AssertionError=void 0;W1$.assert=G1$;W1$.concat=K1$;W1$.append=l84;W1$.readAll=m84;W1$.writeAll=d84;var c84=UJ();class tt0 extends Error{constructor($){super($);this.name="AssertionError"}}W1$.AssertionError=tt0;function G1$($,Z="Assertion failed."){if(!$)throw new tt0(Z)}var J1$=32768;W1$.MAX_SIZE=4294967294;function PQ0($,Z,Q=0){let X=Z.byteLength-Q;if($.byteLength>X)$=$.subarray(0,X);return Z.set($,Q),$.byteLength}function K1$($,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 l84($,Z){return K1$($,Uint8Array.of(Z))}class ot0{_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($){G1$($<=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=PQ0(this._buf.subarray(this._off),$);return this._off+=Z,Z}writeByte($){return this.write(Uint8Array.of($))}writeString($){return this.write(c84.TE.encode($))}write($){let Z=this._grow($.byteLength);return PQ0($,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)PQ0(this._buf.subarray(this._off),this._buf);else if(X+$>W1$.MAX_SIZE)throw Error("The buffer cannot be grown beyond the maximum size.");else{let Y=new Uint8Array(Math.min(2*X+$,W1$.MAX_SIZE));PQ0(this._buf.subarray(this._off),Y),this._buf=Y}return this._off=0,this._reslice(Math.min(Z+$,W1$.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(J1$);while(!0){let X=this.capacity-this.length<J1$,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}}}W1$.DenoBuffer=ot0;function m84($){let Z=new ot0;return Z.readFrom($),Z.bytes()}function d84($,Z){let Q=0;while(Q<Z.length)Q+=$.write(Z.subarray(Q))}});var et0=v((B1$)=>{Object.defineProperty(B1$,"__esModule",{value:!0});B1$.cc=B1$.State=B1$.Parser=B1$.Kind=void 0;B1$.describe=a84;var at0=rt0(),st0=UJ();B1$.Kind={OK:0,ERR:1,MSG:2,INFO:3,PING:4,PONG:5};function a84($){let Z,Q="";switch($.kind){case B1$.Kind.MSG:Z="MSG";break;case B1$.Kind.OK:Z="OK";break;case B1$.Kind.ERR:Z="ERR",Q=st0.TD.decode($.data);break;case B1$.Kind.PING:Z="PING";break;case B1$.Kind.PONG:Z="PONG";break;case B1$.Kind.INFO:Z="INFO",Q=st0.TD.decode($.data)}return`${Z}: ${Q}`}function F1$(){let $={};return $.sid=-1,$.hdr=-1,$.size=-1,$}var U1$=48,s84=57,Xg=67108864;class N1${dispatcher;state;as;drop;hdr;ma;argBuf;msgBuf;constructor($){this.dispatcher=$,this.state=B1$.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 B1$.State.OP_START:switch(Q){case B1$.cc.M:case B1$.cc.m:this.state=B1$.State.OP_M,this.hdr=-1,this.ma=F1$();break;case B1$.cc.H:case B1$.cc.h:this.state=B1$.State.OP_H,this.hdr=0,this.ma=F1$();break;case B1$.cc.P:case B1$.cc.p:this.state=B1$.State.OP_P;break;case B1$.cc.PLUS:this.state=B1$.State.OP_PLUS;break;case B1$.cc.MINUS:this.state=B1$.State.OP_MINUS;break;case B1$.cc.I:case B1$.cc.i:this.state=B1$.State.OP_I;break;default:throw this.fail($.subarray(Z))}break;case B1$.State.OP_H:switch(Q){case B1$.cc.M:case B1$.cc.m:this.state=B1$.State.OP_M;break;default:throw this.fail($.subarray(Z))}break;case B1$.State.OP_M:switch(Q){case B1$.cc.S:case B1$.cc.s:this.state=B1$.State.OP_MS;break;default:throw this.fail($.subarray(Z))}break;case B1$.State.OP_MS:switch(Q){case B1$.cc.G:case B1$.cc.g:this.state=B1$.State.OP_MSG;break;default:throw this.fail($.subarray(Z))}break;case B1$.State.OP_MSG:switch(Q){case B1$.cc.SPACE:case B1$.cc.TAB:this.state=B1$.State.OP_MSG_SPC;break;default:throw this.fail($.subarray(Z))}break;case B1$.State.OP_MSG_SPC:switch(Q){case B1$.cc.SPACE:case B1$.cc.TAB:continue;default:this.state=B1$.State.MSG_ARG,this.as=Z}break;case B1$.State.MSG_ARG:switch(Q){case B1$.cc.CR:this.drop=1;break;case B1$.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=B1$.State.MSG_PAYLOAD,Z=this.as+this.ma.size-1;break}default:if(this.argBuf)this.argBuf.writeByte(Q)}break;case B1$.State.MSG_PAYLOAD:if(this.msgBuf)if(this.msgBuf.length>=this.ma.size){let X=this.msgBuf.bytes({copy:!1});this.dispatcher.push({kind:B1$.Kind.MSG,msg:this.ma,data:X}),this.argBuf=void 0,this.msgBuf=void 0,this.state=B1$.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:B1$.Kind.MSG,msg:this.ma,data:$.subarray(this.as,Z)}),this.argBuf=void 0,this.msgBuf=void 0,this.state=B1$.State.MSG_END;break;case B1$.State.MSG_END:switch(Q){case B1$.cc.NL:this.drop=0,this.as=Z+1,this.state=B1$.State.OP_START;break;default:continue}break;case B1$.State.OP_PLUS:switch(Q){case B1$.cc.O:case B1$.cc.o:this.state=B1$.State.OP_PLUS_O;break;default:throw this.fail($.subarray(Z))}break;case B1$.State.OP_PLUS_O:switch(Q){case B1$.cc.K:case B1$.cc.k:this.state=B1$.State.OP_PLUS_OK;break;default:throw this.fail($.subarray(Z))}break;case B1$.State.OP_PLUS_OK:switch(Q){case B1$.cc.NL:this.dispatcher.push({kind:B1$.Kind.OK}),this.drop=0,this.state=B1$.State.OP_START;break}break;case B1$.State.OP_MINUS:switch(Q){case B1$.cc.E:case B1$.cc.e:this.state=B1$.State.OP_MINUS_E;break;default:throw this.fail($.subarray(Z))}break;case B1$.State.OP_MINUS_E:switch(Q){case B1$.cc.R:case B1$.cc.r:this.state=B1$.State.OP_MINUS_ER;break;default:throw this.fail($.subarray(Z))}break;case B1$.State.OP_MINUS_ER:switch(Q){case B1$.cc.R:case B1$.cc.r:this.state=B1$.State.OP_MINUS_ERR;break;default:throw this.fail($.subarray(Z))}break;case B1$.State.OP_MINUS_ERR:switch(Q){case B1$.cc.SPACE:case B1$.cc.TAB:this.state=B1$.State.OP_MINUS_ERR_SPC;break;default:throw this.fail($.subarray(Z))}break;case B1$.State.OP_MINUS_ERR_SPC:switch(Q){case B1$.cc.SPACE:case B1$.cc.TAB:continue;default:this.state=B1$.State.MINUS_ERR_ARG,this.as=Z}break;case B1$.State.MINUS_ERR_ARG:switch(Q){case B1$.cc.CR:this.drop=1;break;case B1$.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:B1$.Kind.ERR,data:X}),this.drop=0,this.as=Z+1,this.state=B1$.State.OP_START;break}default:if(this.argBuf)this.argBuf.write(Uint8Array.of(Q))}break;case B1$.State.OP_P:switch(Q){case B1$.cc.I:case B1$.cc.i:this.state=B1$.State.OP_PI;break;case B1$.cc.O:case B1$.cc.o:this.state=B1$.State.OP_PO;break;default:throw this.fail($.subarray(Z))}break;case B1$.State.OP_PO:switch(Q){case B1$.cc.N:case B1$.cc.n:this.state=B1$.State.OP_PON;break;default:throw this.fail($.subarray(Z))}break;case B1$.State.OP_PON:switch(Q){case B1$.cc.G:case B1$.cc.g:this.state=B1$.State.OP_PONG;break;default:throw this.fail($.subarray(Z))}break;case B1$.State.OP_PONG:switch(Q){case B1$.cc.NL:this.dispatcher.push({kind:B1$.Kind.PONG}),this.drop=0,this.state=B1$.State.OP_START;break}break;case B1$.State.OP_PI:switch(Q){case B1$.cc.N:case B1$.cc.n:this.state=B1$.State.OP_PIN;break;default:throw this.fail($.subarray(Z))}break;case B1$.State.OP_PIN:switch(Q){case B1$.cc.G:case B1$.cc.g:this.state=B1$.State.OP_PING;break;default:throw this.fail($.subarray(Z))}break;case B1$.State.OP_PING:switch(Q){case B1$.cc.NL:this.dispatcher.push({kind:B1$.Kind.PING}),this.drop=0,this.state=B1$.State.OP_START;break}break;case B1$.State.OP_I:switch(Q){case B1$.cc.N:case B1$.cc.n:this.state=B1$.State.OP_IN;break;default:throw this.fail($.subarray(Z))}break;case B1$.State.OP_IN:switch(Q){case B1$.cc.F:case B1$.cc.f:this.state=B1$.State.OP_INF;break;default:throw this.fail($.subarray(Z))}break;case B1$.State.OP_INF:switch(Q){case B1$.cc.O:case B1$.cc.o:this.state=B1$.State.OP_INFO;break;default:throw this.fail($.subarray(Z))}break;case B1$.State.OP_INFO:switch(Q){case B1$.cc.SPACE:case B1$.cc.TAB:this.state=B1$.State.OP_INFO_SPC;break;default:throw this.fail($.subarray(Z))}break;case B1$.State.OP_INFO_SPC:switch(Q){case B1$.cc.SPACE:case B1$.cc.TAB:continue;default:this.state=B1$.State.INFO_ARG,this.as=Z}break;case B1$.State.INFO_ARG:switch(Q){case B1$.cc.CR:this.drop=1;break;case B1$.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:B1$.Kind.INFO,data:X}),this.drop=0,this.as=Z+1,this.state=B1$.State.OP_START;break}default:if(this.argBuf)this.argBuf.writeByte(Q)}break;default:throw this.fail($.subarray(Z))}}if((this.state===B1$.State.MSG_ARG||this.state===B1$.State.MINUS_ERR_ARG||this.state===B1$.State.INFO_ARG)&&!this.argBuf)this.argBuf=new at0.DenoBuffer($.subarray(this.as,Z-this.drop));if(this.state===B1$.State.MSG_PAYLOAD&&!this.msgBuf){if(!this.argBuf)this.cloneMsgArg();this.msgBuf=new at0.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 at0.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 B1$.cc.SPACE:case B1$.cc.TAB:case B1$.cc.CR:case B1$.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],Xg);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],Xg);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}: ${st0.TD.decode($)}`)}processHeaderMsgArgs($){let Z=[],Q=-1;for(let X=0;X<$.length;X++)switch($[X]){case B1$.cc.SPACE:case B1$.cc.TAB:case B1$.cc.CR:case B1$.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],Xg),this.ma.size=this.protoParseInt(Z[3],Xg);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],Xg),this.ma.size=this.protoParseInt(Z[4],Xg);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]<U1$||$[X]>s84)return-1;Q=Q*10+($[X]-U1$)}return Z!==void 0&&Q>Z?-1:Q}}B1$.Parser=N1$;B1$.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};B1$.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 RQ0=v((D1$)=>{Object.defineProperty(D1$,"__esModule",{value:!0});D1$.MsgHdrsImpl=void 0;D1$.canonicalMIMEHeaderKey=Zo0;D1$.headers=Z44;var O1$=UJ(),$K=qO(),TQ0=NJ();function Zo0($){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 TQ0.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 Z44($=0,Z=""){if($===0&&Z!=="")throw TQ0.InvalidArgumentError.format("code","is required");else if($>0&&Z==="")throw TQ0.InvalidArgumentError.format("description","is required");return new Yg($,Z)}var $o0="NATS/1.0";class Yg{_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 Yg,X=O1$.TD.decode($).split(`\r
1567
1567
  `),Y=X[0];if(Y!==$o0){let J=Y.replace($o0,"").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 $=$o0;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
1568
1568
  ${Z}: ${Q[X]}`;return`${$}\r
@@ -2822,7 +2822,7 @@ ${Y}`:Y}case"media":return"";case"mediaSingle":case"mediaGroup":return kc(eH(Q),
2822
2822
  when count(distinct up.metadata->'models'->'thinking'->>'provider') = 1
2823
2823
  then max(up.metadata->'models'->'thinking'->>'provider')
2824
2824
  end`.as("provider")]).whereRef("up.thread_id","=","link.thread_id").where("up.kind","=","finish").as("cost"),(G)=>G.onTrue()).select((G)=>["cost.usd as costUsd","cost.provider as costProvider","link.task_board_item_id as taskId","link.thread_id as threadId","link.created_at as createdAt","t.status as status","t.failure_kind as failureKind","t.title as title","t.virtual_mcp_id as virtualMcpId","t.metadata as metadata","t.updated_at as updatedAt","t.last_progress_at as lastProgressAt","lastmsg.payload as lastMessagePayload",G.or([G.exists(G.selectFrom("thread_message_parts as mp").select("mp.id").whereRef("mp.thread_id","=","link.thread_id")),G.exists(G.selectFrom("thread_messages as tm").select("tm.id").whereRef("tm.thread_id","=","link.thread_id"))]).as("hasMessages")]).where("link.organization_id","=",Q).where("link.task_board_item_id","in",X).orderBy("link.created_at","desc").execute(),J=new Map;for(let G of Y){let K={threadId:G.threadId,virtualMcpId:G.virtualMcpId??null,status:G.status??null,failureKind:G.failureKind??null,title:G.title??null,lastMessage:Qx$(G.lastMessagePayload),hasPreview:Qa4(G.metadata),hasMessages:!!G.hasMessages,lastActiveAt:Ya4(G.updatedAt,G.lastProgressAt),costUsd:Xa4(G.costUsd),costProvider:G.costProvider??null,createdAt:G.createdAt instanceof Date?G.createdAt.toISOString():G.createdAt},W=J.get(G.taskId);if(W)W.push(K);else J.set(G.taskId,[K])}for(let G of Z)G.threads=J.get(G.id)??[]}async attachTags($,Z){let Q=Z.map((J)=>J.id),X=await $.selectFrom("task_board_item_tags as link").innerJoin("organization_tags as tag","tag.id","link.id").select(["link.task_board_item_id as taskId","link.created_by as createdBy","link.created_at as createdAt","tag.id as id","tag.name as name","tag.color as color"]).where("link.task_board_item_id","in",Q).orderBy("tag.name","asc").execute(),Y=new Map;for(let J of X){let G={id:J.id,name:J.name,color:J.color??null,createdBy:J.createdBy,createdAt:J.createdAt instanceof Date?J.createdAt.toISOString():J.createdAt},K=Y.get(J.taskId);if(K)K.push(G);else Y.set(J.taskId,[G])}for(let J of Z)J.tags=Y.get(J.id)??[]}async attachReviewVerdicts($,Z){let Q=Z.map((J)=>J.id),X=await $.selectFrom("task_board_activity").select(["task_board_item_id as taskId","action","data","occurred_at"]).where("task_board_item_id","in",Q).where("action","in",["status_changed","review_approved","review_changes_requested"]).orderBy("occurred_at","asc").execute(),Y=new Map;for(let J of X){let G={action:J.action,data:J.data??null,occurredAt:J.occurred_at instanceof Date?J.occurred_at.toISOString():J.occurred_at},K=Y.get(J.taskId);if(K)K.push(G);else Y.set(J.taskId,[G])}for(let J of Z){let G=Y.get(J.id)??[],K=J.reviewCycleStartedAt,W=WL(G,{cycleStartedAt:K}),H=WL(G,{cycleStartedAt:K,verifiedOnly:!0});J.reviewVerdicts=vH.flatMap((F)=>{let U=W.get(F);if(!U)return[];return[{reviewer:F,verdict:U,verified:H.get(F)==="approved"}]})}}async recordActivity($){await this.db.insertInto("task_board_activity").values({id:k8("act"),task_board_item_id:$.taskBoardItemId,action:$.action,actor_id:$.actorId,data:$.data?JSON.stringify($.data):null,occurred_at:new Date().toISOString()}).execute(),await this.fanOut([$])}async fanOut($){for(let Z of $){let Q=er4(Z.action);if(!Q)continue;await _c({db:this.db,taskBoardItemId:Z.taskBoardItemId,type:Q,actorId:Z.actorId,alsoSubscribe:Z.alsoSubscribe})}}async resolveReviewClaimByToken($,Z){let Q=await this.db.selectFrom("task_board_review_claims").select(["reviewer","cycle_at"]).where("task_board_item_id","=",$).where("token","=",Z).executeTakeFirst();return Q?{reviewer:Q.reviewer,cycleAt:Q.cycle_at}:null}async recordActivities($){if($.length===0)return;let Z=new Date().toISOString(),Q=[];for(let X of $)if(!($a4.has(X.action)&&await this.touchRecentActivity(X,Z)))Q.push(X);if(Q.length===0)return;await this.db.insertInto("task_board_activity").values(Q.map((X)=>({id:k8("act"),task_board_item_id:X.taskBoardItemId,action:X.action,actor_id:X.actorId,data:X.data?JSON.stringify(X.data):null,occurred_at:Z}))).execute(),await this.fanOut(Q)}async touchRecentActivity($,Z){let Q=new Date(Date.parse(Z)-Za4).toISOString();return((await this.db.updateTable("task_board_activity").set({occurred_at:new Date(Z)}).where("id","=",this.db.selectFrom("task_board_activity").select("id").where("task_board_item_id","=",$.taskBoardItemId).where("action","=",$.action).where((Y)=>$.actorId===null?Y("actor_id","is",null):Y("actor_id","=",$.actorId)).where("occurred_at",">=",new Date(Q)).orderBy("occurred_at","desc").limit(1)).executeTakeFirst()).numUpdatedRows??0n)>0n}async listActivity($,Z){return(await this.db.selectFrom("task_board_activity as a").innerJoin("task_board_items as item","item.id","a.task_board_item_id").selectAll("a").where("item.organization_id","=",Z).where("a.task_board_item_id","=",$).orderBy("a.occurred_at","asc").execute()).map((X)=>({id:X.id,taskBoardItemId:X.task_board_item_id,action:X.action,actorId:X.actor_id,data:typeof X.data==="string"?JSON.parse(X.data):X.data??{},occurredAt:X.occurred_at instanceof Date?X.occurred_at.toISOString():X.occurred_at}))}async hasHumanRejectedDone($,Z){let Q=ZF`a.data->>'from'`,X=ZF`a.data->>'reason'`,Y="a.actor_id";return await this.db.selectFrom("task_board_activity as a").innerJoin("task_board_items as item","item.id","a.task_board_item_id").select("a.id").where("item.organization_id","=",Z).where("a.task_board_item_id","=",$).where("a.action","=","status_changed").where("a.actor_id","is not",null).where(Q,"in",["done","merged"]).where(X,"is",null).limit(1).executeTakeFirst()!==void 0}async listComments($,Z){return(await this.db.selectFrom("task_board_comments as c").innerJoin("task_board_items as item","item.id","c.task_board_item_id").selectAll("c").where("item.organization_id","=",Z).where("c.task_board_item_id","=",$).orderBy("c.created_at","asc").execute()).map((X)=>oT0(X))}async createComment($){if(!await this.db.selectFrom("task_board_items").select("id").where("id","=",$.taskBoardItemId).where("organization_id","=",$.organizationId).executeTakeFirst())return null;let Q=null;if($.parentId){let Y=await this.db.selectFrom("task_board_comments").select(["id","parent_id"]).where("id","=",$.parentId).where("task_board_item_id","=",$.taskBoardItemId).executeTakeFirst();if(!Y)return null;Q=Y.parent_id??Y.id}let X=await this.db.insertInto("task_board_comments").values({id:k8("cmt"),task_board_item_id:$.taskBoardItemId,parent_id:Q,author_id:$.authorId,thread_id:$.threadId??null,body:$.body}).returningAll().executeTakeFirstOrThrow();return oT0(X)}async updateComment($){let Z=await this.commentInOrg($.id,$.organizationId);if(!Z)return null;if($.body!==void 0&&Z.authorId!==$.callerId)return null;if($.resolved!==void 0&&Z.parentId!==null)return null;let Q=await this.db.updateTable("task_board_comments").set({...$.body===void 0?{}:{body:$.body},...$.resolved===void 0?{}:{resolved:$.resolved},updated_at:new Date().toISOString()}).where("id","=",$.id).returningAll().executeTakeFirst();return Q?oT0(Q):null}async deleteComment($,Z,Q){let X=await this.commentInOrg($,Z);if(!X)return!1;if(X.authorId!==Q&&X.authorId!==t$)return!1;return await this.db.deleteFrom("task_board_comments").where("id","=",$).execute(),!0}async getComment($,Z){let Q=await this.db.selectFrom("task_board_comments as c").innerJoin("task_board_items as item","item.id","c.task_board_item_id").selectAll("c").where("c.id","=",$).where("item.organization_id","=",Z).executeTakeFirst();return Q?oT0(Q):null}async commentInOrg($,Z){let Q=await this.db.selectFrom("task_board_comments as c").innerJoin("task_board_items as item","item.id","c.task_board_item_id").select(["c.id","c.author_id","c.parent_id"]).where("c.id","=",$).where("item.organization_id","=",Z).executeTakeFirst();return Q?{authorId:Q.author_id,parentId:Q.parent_id}:null}itemFromDbRow($){return{id:$.id,organizationId:$.organization_id,title:$.title,description:$.description,status:$.status,priority:$.priority,type:$.type??U61,assigneeId:$.assignee_id,assignedBy:$.assigned_by,repo:$.repo,dueDate:$.due_date instanceof Date?$.due_date.toISOString():$.due_date,externalUrl:$.external_url??null,source:$.source??null,sortOrder:$.sort_order,keySeq:$.key_seq,retryAttempts:$.retry_attempts??0,reviewCycleStartedAt:$.review_cycle_started_at instanceof Date?$.review_cycle_started_at.toISOString():$.review_cycle_started_at??null,threads:[],tags:[],reviewVerdicts:[],createdBy:$.created_by,createdAt:$.created_at instanceof Date?$.created_at.toISOString():$.created_at,updatedBy:$.updated_by,updatedAt:$.updated_at instanceof Date?$.updated_at.toISOString():$.updated_at}}}var sr4,$a4,Za4=600000,Xx$,Cs,Ja4;var bN=D(()=>{nG();DQ();P4();P4();MT0();mT0();pT0();tT0();sr4=new Set(lT0);$a4=new Set(["description_changed","title_changed"]);Xx$=new Set(["in_progress","in_review"]),Cs=new Set(["completed","failed","expired"]);Ja4=[...PK0,"done"]});function Yx$($){let Z=$[1],Q=$[2],X=Number($[3]);return{owner:Z,repo:Q,number:X,url:`https://github.com/${Z}/${Q}/pull/${X}`}}function dL($){let Z=$.length>200000?$.slice(0,200000):$,Q=Ga4.exec(Z);if(Q&&Number(Q[3])>0)return Yx$(Q);let X=Ka4.exec(Z);if(X&&Number(X[3])>0)return Yx$(X);return null}function rT0($){if($==null)return null;if(typeof $==="string")return dL($);let Z;try{Z=JSON.stringify($)}catch{return null}return Z?dL(Z):null}var Ga4,Ka4;var xc=D(()=>{Ga4=/https?:\/\/github\.com\/([^/\s"']+)\/([^/\s"']+)\/pull\/(\d+)/,Ka4=/https?:\/\/api\.github\.com\/repos\/([^/\s"']+)\/([^/\s"']+)\/pulls\/(\d+)/});import{z as aT0}from"zod";async function _6($,Z){try{await $.storage.taskBoard.recordActivity(Z)}catch(Q){console.error("[task-board] activity log write failed",Q)}}async function Jx$($,Z){if(Z.length===0)return;try{await $.storage.taskBoard.recordActivities(Z)}catch(Q){console.error("[task-board] activity log write failed",Q)}}var gQ1;var _Q=D(()=>{V0();X3();gQ1=h({name:"TASK_BOARD_ACTIVITY_LIST",description:"List a task board item's change history (timeline, oldest first).",annotations:{title:"List Task Activity",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:aT0.object({taskBoardItemId:aT0.string()}),outputSchema:aT0.object({activity:aT0.array(mS$)}),handler:async($,Z)=>{a(Z),await Z.access.check();let Q=Z.organization?.id;if(!Q)throw Error("Organization ID required (no active organization in context)");return{activity:await Z.storage.taskBoard.listActivity($.taskBoardItemId,Q)}}})});function Hx($){if($.length===0)return!1;let Z=new Map;for(let Q of $){let X=`${Q.repoOwner}/${Q.repoName}`.toLowerCase(),Y=Z.get(X);if(Y)Y.push(Q);else Z.set(X,[Q])}return[...Z.values()].every(Wa4)}function Wa4($){return $.some((Z)=>Z.merged===!0)&&$.every((Z)=>Z.merged===!0||Z.state==="closed")}async function Ha4($,Z,Q,X){let Y=await $.storage.taskBoard.getById(Q,Z);if(!Y||Y.status!=="done")return!1;let J=await $.storage.taskBoard.listPrs(Q,Z),G=await Promise.all(J.map(async(H)=>({...H,...await X($,Z,H)})));if(!Hx(G))return!1;let K=R$.archive,W=await $.storage.taskBoard.update(Q,Z,{status:K},Y.updatedBy);return await _6($,{taskBoardItemId:Q,action:"status_changed",actorId:null,data:{from:"done",to:K,reason:"merged_pr_auto_archive"}}),H8(Z,W),!0}async function Gx$($,Z,Q,X=eT0){let Y=0;for(let J of Q)try{if(await Ha4($,Z,J,X))Y+=1}catch(G){console.error(`[task-board-archive] ${J} failed`,G)}return{archived:Y}}function sT0($){let Z=new Map;for(let{id:Q,organizationId:X}of $){let Y=Z.get(X);if(Y)Y.push(Q);else Z.set(X,[Q])}return[...Z].map(([Q,X])=>({organizationId:Q,itemIds:X}))}var fc=D(()=>{P4();_Q();kZ();X9()});function Fx($){let Z=Ua4[$];if(Z===void 0)throw Error(`Unknown board column "${$}"`);return Z}function hQ1($){return Kx$.includes($)}function Wx$($,Z){return Fx(Z)>Fx($)}function Z20($,Z){return Fx($)<=Fx(Z)}function Fx$($){return $==="done"||Kx$.includes($)}function CY($){if(Fx($.status)>$20.in_review)return!1;return $.status===R$.review||Boolean($.reviewCycleStartedAt)}var Fa4,$20,Ua4,Kx$,Hx$;var sK=D(()=>{P4();Fa4=Object.fromEntries(bK.map(($,Z)=>[$,Z])),$20=Fa4,Ua4=$20;Kx$=PK0;Hx$=new Set(["in_review","approved"])});function Q20($){return $.replace(/\/api\/[^/\s)]+\/fs\/([^/\s)]+)\/read\?path=([^)\s]+)/g,(Z,Q,X)=>{let Y,J;try{Y=decodeURIComponent(Q),J=decodeURIComponent(X)}catch{return Z}let G=(K)=>K.startsWith("/")||K.split("/").includes("..");if(G(Y)||G(J))return Z;return pH(Y,J)})}function X20($,Z){return Z===$?null:"The image and file links in that description are real paths in this sandbox, not URLs \u2014 `Read` them. A screenshot the task points at is usually the clearest statement of what it wants."}var uQ1=D(()=>{LP()});function Na4($){let Z=new Map($.map((J)=>[J.id,J])),Q=new Map;for(let J of Pc($)){let G=Ux$(J.owner,J.repo);Q.set(G,[...Q.get(G)??[],J])}if(Q.size!==1)return null;let X=[...Q.values()][0],Y=X.find((J)=>{let G=Z.get(J.connectionId);return G?lz(G):!1})??X[0];return{connectionId:Y.connectionId,owner:Y.owner,name:Y.repo,installationId:Y.installationId,url:`https://github.com/${Y.owner}/${Y.repo}`}}async function Y20($,Z){if(!W70())return console.warn(`[task-board] claude-code skipped for org ${Z}: `+"hosted sandbox unavailable \u2014 running Decopilot"),null;try{let{items:Q}=await $.storage.connections.list(Z,{slug:"mcp-github"}),X=Na4(Q);if(X)return{repo:X};let Y=new Map;for(let G of Pc(Q)){let K=Ux$(G.owner,G.repo);if(!Y.has(K))Y.set(K,{connectionId:G.connectionId,repo:`${G.owner}/${G.repo}`})}let J=Y;if(J.size===0)return console.warn(`[task-board] claude-code skipped for org ${Z}: `+"no importable repos \u2014 running Decopilot"),null;return console.warn(`[task-board] claude-code for org ${Z}: ${J.size} importable repos \u2014 the run picks one with TASK_ADD_REPO`),{choices:[...J.values()]}}catch(Q){return console.warn("[task-board] repo lookup for claude-code failed",Q),null}}function Nx$($,Z,Q){let X=["You've been assigned this task. Complete it and finish with a pull request if it makes sense (like a coding task) or is explicitly requested.","","You are running AUTONOMOUSLY \u2014 no human is watching, so drive this to "+"completion yourself. Make reasonable decisions and move on; do not stop to ask for confirmation.","",`Title: ${$.title}`];if($.description){let Y=Q20($.description);X.push("","Description:",Y);let J=X20($.description,Y);if(J)X.push("",J)}if(X.push("",Z?`The repository ${Z.owner}/${Z.name} is already cloned at your working directory, on its own branch. \`git\` and \`gh\` are authenticated. ${Qa}`:["Your working directory is EMPTY: this organization has several repositories, so nothing has been cloned yet. FIRST call `mcp__studio__TASK_ADD_REPO` with the connectionId of the repository this task is about. It clones that repository into your working directory and waits for the checkout, so once it returns the repository is there on its own branch and `git` and `gh` are authenticated. Do not read files, run `git`, or run `gh` before it returns; there is nothing there yet.","","Repositories in this organization:",...(Q?.repoChoices??[]).map((Y)=>`- ${Y.repo} (connectionId: ${Y.connectionId})`),Q?.repoChoices?.length?"Start with the one the task is about. If it turns out to need a change in "+"another of them too, call `mcp__studio__TASK_ADD_REPO` again \u2014 repositories "+"accumulate, so a second call adds a checkout beside the first rather than replacing it. Each lands in its own directory and keeps its own git remote, so open one pull request per repository you changed.":"Call `mcp__studio__TASK_ADD_REPO` with no arguments to list them."].join(`
2825
- `),""),Q?.resolveConflict&&Q.pr)X.push(`Pull request #${Q.pr.number} (${Q.pr.url}) is approved but has a MERGE CONFLICT with its base branch.`,`Check that branch out (\`gh pr checkout ${Q.pr.number}\`), merge or rebase the base branch into it, resolve the conflicts, and push to update the SAME pull request \u2014 do NOT open a new one. Resolve by preserving BOTH sides' intent; never blindly discard either side, and change only what the conflict requires.`,"");else if(Q?.feedback)X.push(Q.pr?`A reviewer requested changes on pull request #${Q.pr.number} (${Q.pr.url}):`:"A reviewer requested changes on your previous work:",Q.feedback,Q.pr?`Check that branch out (\`gh pr checkout ${Q.pr.number}\`) before editing, address the feedback, then push to update the SAME pull request \u2014 do NOT open a new one.`:"Address this feedback.","");else if(Q?.pr)X.push(`This task already has an open pull request #${Q.pr.number} (${Q.pr.url}), and you are already on its branch.`,"Continue that work: commit and push to update the SAME pull request \u2014 do NOT open a new one. If it already does everything the task asks, say so and stop rather than changing it.","");return X.push("How to finish:","- Make the change, commit it, push the branch, and open a pull request"+(Q?.pr?" \u2014 or push to the existing one, per the instruction above.":"."),"- Change only what the task needs. Don't refactor around it.","- The change must be REACHABLE from the surface the task names: edit the component that route actually renders, not one that merely looks like the right place. A change nothing imports is the most common reason a task comes back rejected.","- Before handing over, VERIFY the task's outcome LOCALLY, in the sandbox: exercise the affected code path and confirm the behaviour actually happens. A green test suite is not the bar. Do NOT wait for, or verify against, the PR's deploy preview \u2014 a reviewer checks that after you hand over.",'- A browser is installed globally, NOT in the repo\'s `node_modules` \u2014 don\'t go looking for playwright there. `qa-screenshot <url> <path>.png [--mobile] [--full] [--selector=<css>]` renders any URL (localhost included) in headless Chromium, runs the page\'s JS, and writes a file you must then `Read` \u2014 a screenshot you never opened is not verification. To INTERACT (click, fill, `document.elementFromPoint`), write a throwaway node script: `const { chromium } = require("/usr/local/lib/node_modules/playwright-core"); chromium.launch({ executablePath: "/usr/bin/chromium", args: ["--no-sandbox"] })`.',"- Open the pull request from the branch you were given \u2014 the board finds it by that branch. Don't move the work to a differently-named one.",'- If the task turns out to need no code change, do NOT open a PR: explain why in a comment on the task (`mcp__studio__TASK_BOARD_COMMENT_CREATE`) and move it to "done". There is nothing for a reviewer to review, so leaving it for one would strand it.',`- Anything a reviewer should know (a decision you made, something you found and deliberately left alone, a question) goes on the task as a comment: \`mcp__studio__TASK_BOARD_COMMENT_CREATE\` with taskBoardItemId "${$.id}". Read what's already there first with \`mcp__studio__TASK_BOARD_COMMENT_LIST\` \u2014 a comment may be addressed to you.`,"",`(task id: ${$.id})`),X.join(`
2825
+ `),""),Q?.resolveConflict&&Q.pr)X.push(`Pull request #${Q.pr.number} (${Q.pr.url}) is approved but has a MERGE CONFLICT with its base branch.`,`Check that branch out (\`gh pr checkout ${Q.pr.number}\`), merge or rebase the base branch into it, resolve the conflicts, and push to update the SAME pull request \u2014 do NOT open a new one. Resolve by preserving BOTH sides' intent; never blindly discard either side, and change only what the conflict requires.`,"");else if(Q?.feedback)X.push(Q.pr?`A reviewer requested changes on pull request #${Q.pr.number} (${Q.pr.url}):`:"A reviewer requested changes on your previous work:",Q.feedback,Q.pr?`Check that branch out (\`gh pr checkout ${Q.pr.number}\`) before editing, address the feedback, then push to update the SAME pull request \u2014 do NOT open a new one.`:"Address this feedback.","");else if(Q?.pr)X.push(`This task already has an open pull request #${Q.pr.number} (${Q.pr.url}), and you are already on its branch.`,"Continue that work: commit and push to update the SAME pull request \u2014 do NOT open a new one. If it already does everything the task asks, say so and stop rather than changing it.","");return X.push("How to finish:","- Make the change, commit it, push the branch, and open a pull request"+(Q?.pr?" \u2014 or push to the existing one, per the instruction above.":"."),"- Change only what the task needs. Don't refactor around it.","- The change must be REACHABLE from the surface the task names: edit the component that route actually renders, not one that merely looks like the right place. A change nothing imports is the most common reason a task comes back rejected.","- Before handing over, VERIFY the task's outcome LOCALLY, in the sandbox: exercise the affected code path and confirm the behaviour actually happens. A green test suite is not the bar. Do NOT wait for, or verify against, the PR's deploy preview \u2014 a reviewer checks that after you hand over.",'- A browser is installed globally, NOT in the repo\'s `node_modules` \u2014 don\'t go looking for playwright there. `qa-screenshot <url> <path>.png [--mobile] [--full] [--selector=<css>]` renders any URL (localhost included) in headless Chromium, runs the page\'s JS, and writes a file you must then `Read` \u2014 a screenshot you never opened is not verification. To INTERACT (click, fill, `document.elementFromPoint`), write a throwaway node script: `const { chromium } = require("/usr/local/lib/node_modules/playwright-core"); chromium.launch({ executablePath: "/usr/bin/chromium", args: ["--no-sandbox"] })`.',"- Open the pull request from the branch you were given \u2014 the board finds it by that branch. Don't move the work to a differently-named one.","- If your change adds or edits pages a person can open, name them in the pull request body on a `Route:` line, or on a `Preview routes:` line followed by one `- /path` bullet per page \u2014 paths only, no host. Skip it when the change has no visible route.",'- If the task turns out to need no code change, do NOT open a PR: explain why in a comment on the task (`mcp__studio__TASK_BOARD_COMMENT_CREATE`) and move it to "done". There is nothing for a reviewer to review, so leaving it for one would strand it.',`- Anything a reviewer should know (a decision you made, something you found and deliberately left alone, a question) goes on the task as a comment: \`mcp__studio__TASK_BOARD_COMMENT_CREATE\` with taskBoardItemId "${$.id}". Read what's already there first with \`mcp__studio__TASK_BOARD_COMMENT_LIST\` \u2014 a comment may be addressed to you.`,"",`(task id: ${$.id})`),X.join(`
2826
2826
  `)}var Ux$=($,Z)=>`${$}/${Z}`.toLowerCase();var cQ1=D(()=>{oA0();NY();P4();z$();uQ1()});import{createHmac as Ba4,timingSafeEqual as Oa4}from"crypto";function lQ1($,Z,Q){return`rtok_${Ba4("sha256",kT0()).update(`${$}:${Z}:${Q.toISOString()}`).digest("base64url")}`}function Bx$($,Z,Q,X){let Y=Buffer.from($),J=Buffer.from(lQ1(Z,Q,X));return Y.length===J.length&&Oa4(Y,J)}var mQ1=D(()=>{XQ1()});import{createHash as Da4}from"crypto";function _s($,Z){if($.status===null||Ox$.has($.status))return!1;return!Is({updated_at:$.lastActiveAt,last_progress_at:null},Z)}function La4($,Z){return $.threads.some((Q)=>!vH.some((X)=>KL(Q.title,X))&&_s(Q,Z))}function Ea4($,Z){return Z-$>=ja4}function za4($,Z,Q,X){if($||Z!==!1)return!1;return Ea4(Q,X)}async function J20($,Z,Q){let X=await $.storage.organizationSettings.get(Z.organizationId),Y=HN(X?.flags);if(Y.length===0)return;if(La4(Z,Date.now()))return;let J=IX(X?.flags,"cheap_reviewer_model")?"reviewer":"default",G=await $.storage.taskBoard.listActivity(Z.id,Z.organizationId),K=Z.reviewCycleStartedAt,W=FN(G,K),H=new Date(W),F=WL(G,{cycleStartedAt:K});await Promise.all(Y.map(async(U)=>{let N=F.has(U);if(!N){let O=Ma4(G,W),L=qa4(Z,U,W,O);if(L){await Ca4($,Z,U,L).catch((w)=>console.error(`[task-board] ${U} verdict nudge failed`,w));return}if(ka4(O,Date.now()))return}if(Ra4(Z,U,W,Date.now(),N)){await QF($,Z,`${xH[U]} failed ${dQ1} times on `+"this review \u2014 it will not be retried");return}if(Q?.previewMatchesHead===!1){if(za4(N,Q.previewMatchesHead,W,Date.now()))await QF($,Z,"the pull request's deploy preview is not showing its latest commit (its checks never went green), so the Reviewer cannot verify this change against what the PR actually does");return}if(Ia4(Z,U,W,Date.now(),N))return;let B=Pa4(Z,U,W,Date.now(),N);await xa4($,Z,U,H,B,J).catch((O)=>console.error(`[task-board] ${U} reviewer enqueue failed`,O))}))}function Pa4($,Z,Q,X=Date.now(),Y=!0){return $.threads.filter((J)=>KL(J.title,Z)&&iQ1(J,X,Y)&&new Date(J.createdAt).getTime()>=Q).length}function Aa4($,Z){if(!$||!Z||!("choices"in Z))return null;return Z.choices.find((Q)=>Q.repo===$)?.connectionId??null}function Ta4($,Z,Q){let X=$.threads.filter((Y)=>KL(Y.title,Z)&&Y.status==="completed"&&new Date(Y.createdAt).getTime()<Q).map((Y)=>new Date(Y.lastActiveAt).getTime()).filter((Y)=>Number.isFinite(Y));return X.length===0?0:Math.max(...X)}function iQ1($,Z,Q=!0){if($.status==="failed")return!0;if($.status!==null&&Ox$.has($.status))return!Q;return $.status!==null&&!_s($,Z)}function Dx$($,Z,Q,X=Date.now()){return $.threads.filter((Y)=>{if(!KL(Y.title,Z))return!1;return _s(Y,X)||new Date(Y.createdAt).getTime()>=Q})}function Ra4($,Z,Q,X=Date.now(),Y=!0){let J=Dx$($,Z,Q,X);return J.length>0&&J.every((G)=>iQ1(G,X,Y))&&J.length>=dQ1}function Ia4($,Z,Q,X=Date.now(),Y=!0){let J=Dx$($,Z,Q,X);if(J.length===0)return!1;if(J.some((K)=>_s(K,X)))return!0;let G=J.filter((K)=>iQ1(K,X,Y));if(G.length>=dQ1)return!0;return G.length!==J.length}function qa4($,Z,Q,X,Y=Date.now()){return $.threads.find((J)=>KL(J.title,Z)&&J.status==="completed"&&!_s(J,Y)&&new Date(J.createdAt).getTime()>=Q&&!X.has(J.threadId))??null}function Ma4($,Z){let Q=new Map;for(let X of $){if(X.action!=="review_verdict_requested")continue;let Y=new Date(X.occurredAt).getTime();if(Y<Z)continue;let J=X.data?.threadId;if(typeof J==="string")Q.set(J,Y)}return Q}function ka4($,Z){for(let Q of $.values())if(Z-Q<Va4)return!0;return!1}function Sa4($){return[`Your ${xH[$]} run ended without recording a decision, so the task is stuck: nothing ships and nobody is told why. A review that reaches no verdict is not a review.`,"","Do exactly ONE thing in this run and then stop:","- Call `TASK_BOARD_REVIEW_DECISION` now, with the verdict your review already reached and notes that say what you checked.","- Approve ONLY if you actually exercised the change and it holds. If you could not finish \u2014 a check never came back, a preview never rendered, you ran out of room \u2014 `request_changes` and say exactly what is unresolved. That hands the card to a person, which is the correct outcome for an unfinished review.","- Do NOT re-run the review, do NOT change any code, and do NOT wait on any background task: whatever you know right now is the verdict."].join(`
2827
2827
  `)}async function Ca4($,Z,Q,X){let Y=await $.storage.threads.get(X.threadId);if(!Y||Y.message_storage_version!==2)return;await $.storage.taskBoard.recordActivity({taskBoardItemId:Z.id,action:"review_verdict_requested",actorId:null,data:{reviewer:Q,threadId:X.threadId}}),console.warn(`[task-board] ${Q} reviewer on ${Z.id} completed with no verdict \u2014 `+"asking for one"),await Sc($,Z,Y,{messageId:`review-verdict-${X.threadId}`,prompt:Sa4(Q),workflowID:`review-verdict:${X.threadId}`,runClass:"reviewer"})}function _a4($,Z,Q,X){return`review:${$}:${Z}:${Q.toISOString()}:${X}`}function va4($){return`thrd_${Da4("sha256").update($).digest("hex").slice(0,32)}`}async function xa4($,Z,Q,X,Y,J){let G=Z.organizationId,K=lQ1(Z.id,Q,X),W=await Y20($,G),H=W&&"repo"in W?W.repo:null,F=W!==null,U=Ta4(Z,Q,X.getTime()),N=Aa4(Z.repo,W),B=F?"mcp__studio__TASK_BOARD_ITEM_PRS_GET":"TASK_BOARD_ITEM_PRS_GET",O=F?"mcp__studio__TASK_BOARD_REVIEW_DECISION":"TASK_BOARD_REVIEW_DECISION",L=F?"mcp__studio__TASK_BOARD_COMMENT_CREATE":"TASK_BOARD_COMMENT_CREATE",w=F?"mcp__studio__TASK_BOARD_COMMENT_LIST":"TASK_BOARD_COMMENT_LIST",j=[wa4[Q],"","You are running AUTONOMOUSLY \u2014 no human is watching this run. Making the "+'approve / request-changes call IS your job; you are the decision-maker, not an assistant asking a human to decide. NEVER use `user_ask` to ask whether to approve, or to confirm an obvious call ("Approve the PR?"). Reserve `user_ask` for a genuine, unresolvable blocker only a human can clear (e.g. a missing credential, or a requirement so ambiguous you '+"truly cannot judge the outcome) \u2014 that should be rare. When in doubt "+"between asking and deciding, DECIDE.","","Do NOT merge the pull request \u2014 the board does that itself once your "+"approval is in. Pushing fixes to the PR's own branch is expected of you; opening a second pull request, force-pushing, or touching any other ref is not."].join(`
2828
2828
  `),E=Z.description&&F?Q20(Z.description):Z.description,z=Z.description&&E?X20(Z.description,E):null,P=[...F?[]:[j,""],`Task title: ${Z.title}`,E?`