decocms 4.175.0 → 4.175.1

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 (220) hide show
  1. package/dist/client/assets/{AlertCircle-D9z4DwqY.js → AlertCircle-gBgC-IDj.js} +1 -1
  2. package/dist/client/assets/{AreaChart-DvL8v73U.js → AreaChart-DF037x7j.js} +1 -1
  3. package/dist/client/assets/{ArrowUp-DEXuZtmX.js → ArrowUp-v9chKyHK.js} +1 -1
  4. package/dist/client/assets/{ArrowUpRight-Dna0UAHv.js → ArrowUpRight-DQ-en6iJ.js} +1 -1
  5. package/dist/client/assets/{Check-GvvZYRsI.js → Check-Cm0N5Xp1.js} +1 -1
  6. package/dist/client/assets/{CheckCircle-CJUp01GU.js → CheckCircle-DNkhRFtL.js} +1 -1
  7. package/dist/client/assets/{ChevronDown-Dsl-h0Bd.js → ChevronDown-CGpzF5Tp.js} +1 -1
  8. package/dist/client/assets/{ChevronRight-Cn3Rdh2g.js → ChevronRight-uYqx7PHp.js} +1 -1
  9. package/dist/client/assets/{ChevronUp-BysRSee5.js → ChevronUp-BbYR_cV6.js} +1 -1
  10. package/dist/client/assets/{Copy01-KWnB_oGG.js → Copy01-B9wS1vC-.js} +1 -1
  11. package/dist/client/assets/{CpuChip01-BbiyMAVI.js → CpuChip01-AWVpXsY4.js} +1 -1
  12. package/dist/client/assets/{DotsVertical-DC7ObWYv.js → DotsVertical-D_I0FzwU.js} +1 -1
  13. package/dist/client/assets/{Eye-BlnDBJl4.js → Eye-Dg_Cwp5s.js} +1 -1
  14. package/dist/client/assets/{FilterLines-LQO_dShY.js → FilterLines-BaP3cCYD.js} +1 -1
  15. package/dist/client/assets/{HardDrive-DIV7E2BK.js → HardDrive-BpCOR94X.js} +1 -1
  16. package/dist/client/assets/{Key01-DZC-pqnV.js → Key01-DeHkxCcX.js} +1 -1
  17. package/dist/client/assets/{LayoutLeft-Bag7CII4.js → LayoutLeft-wIcrY_QM.js} +1 -1
  18. package/dist/client/assets/{LinkExternal01-Dz8KLg3g.js → LinkExternal01-BKiT6Lg5.js} +1 -1
  19. package/dist/client/assets/{LogOut01-BJxKLuNC.js → LogOut01-THqSoWGX.js} +1 -1
  20. package/dist/client/assets/{Monitor01-uObDYoTB.js → Monitor01-CaaXe9Ty.js} +1 -1
  21. package/dist/client/assets/{Palette-CxnqGidx.js → Palette-BFT2IxVH.js} +1 -1
  22. package/dist/client/assets/{Play-C9qq5I9o.js → Play-D6dqRBBL.js} +1 -1
  23. package/dist/client/assets/{Plus-CJp_CDz4.js → Plus-CzX8ksPj.js} +1 -1
  24. package/dist/client/assets/{SearchLg-Ci53DDg4.js → SearchLg-ClRKcOmG.js} +1 -1
  25. package/dist/client/assets/{SearchMd-DsQMM__Y.js → SearchMd-CChGc0qj.js} +1 -1
  26. package/dist/client/assets/{Settings02-Dttjrqg3.js → Settings02-Cndba0CR.js} +1 -1
  27. package/dist/client/assets/{Shield01-uwUJeNcU.js → Shield01-BcYc_LI3.js} +1 -1
  28. package/dist/client/assets/{Star01-C90-UaWE.js → Star01-DrbVBTPI.js} +1 -1
  29. package/dist/client/assets/{Stars01-6rAs6Pdr.js → Stars01-2HJFeMi3.js} +1 -1
  30. package/dist/client/assets/{Stars02-BVT4iEEW.js → Stars02-BBw_PSwc.js} +1 -1
  31. package/dist/client/assets/{Sun-DyMoczDd.js → Sun-CMRBSsx9.js} +1 -1
  32. package/dist/client/assets/{SwitchHorizontal01-uNX11AV2.js → SwitchHorizontal01-jLNSp4oB.js} +1 -1
  33. package/dist/client/assets/{Tool01-CEfxgIRv.js → Tool01-EzL5AMRE.js} +1 -1
  34. package/dist/client/assets/{Tool02-DqSguwet.js → Tool02-7CeN_eX3.js} +1 -1
  35. package/dist/client/assets/{Trash01-C5iKDmdI.js → Trash01-DI04PDkF.js} +1 -1
  36. package/dist/client/assets/{TrendUp01-c515c7D6.js → TrendUp01-rmhNgtoT.js} +1 -1
  37. package/dist/client/assets/{Upload01-DoCt_EF5.js → Upload01-BfNUVrdU.js} +1 -1
  38. package/dist/client/assets/{User01-CdsXH39B.js → User01-BpfKnMCd.js} +1 -1
  39. package/dist/client/assets/{Users01-D5y4A7Ko.js → Users01-Biz3dQtc.js} +1 -1
  40. package/dist/client/assets/{Users03-CLD-wiRl.js → Users03-B7VhAJ6s.js} +1 -1
  41. package/dist/client/assets/{X-Dnq5chel.js → X-BeHJXMOX.js} +1 -1
  42. package/dist/client/assets/{XCircle-BpXLVCtl.js → XCircle-DsfZK6Fi.js} +1 -1
  43. package/dist/client/assets/{XClose-By5aTFhI.js → XClose-yEy6wJCH.js} +1 -1
  44. package/dist/client/assets/{Zap-BtulaO-a.js → Zap-B_be8ugm.js} +1 -1
  45. package/dist/client/assets/{ZapSquare-CorwJv8h.js → ZapSquare-0UHU2E1-.js} +1 -1
  46. package/dist/client/assets/{access-gate-Bm8LeI99.js → access-gate-arSA2CqL.js} +1 -1
  47. package/dist/client/assets/{add-section-modal-B0vKHhgJ.js → add-section-modal-Dyf6Zk_Q.js} +1 -1
  48. package/dist/client/assets/{agent-icon-By2CIqs2.js → agent-icon-BB8mzMQ9.js} +1 -1
  49. package/dist/client/assets/{agents-list-CzlaehRX.js → agents-list-Dpi4dokW.js} +1 -1
  50. package/dist/client/assets/{ai-providers-CrdsrS1o.js → ai-providers-ouqrsg4Y.js} +1 -1
  51. package/dist/client/assets/{alert-C84tvxCH.js → alert-CNw5Haa7.js} +1 -1
  52. package/dist/client/assets/{alert-dialog-BDRJpDqS.js → alert-dialog-C2Nzx1YE.js} +1 -1
  53. package/dist/client/assets/{app-editor-3hFVXY1h.js → app-editor-DoKHzAzj.js} +1 -1
  54. package/dist/client/assets/{auth-Co6vGQQB.js → auth-B48EtwHB.js} +1 -1
  55. package/dist/client/assets/{auth-catchall-CTTfklVQ.js → auth-catchall-fbg8isTq.js} +1 -1
  56. package/dist/client/assets/{auth-entry-Cxfejntu.js → auth-entry-jx5uMJTi.js} +1 -1
  57. package/dist/client/assets/{auth-split-layout-V2c0lLtt.js → auth-split-layout-eaae3FHA.js} +1 -1
  58. package/dist/client/assets/{authenticate-and-persist-oauth-BAduBfYL.js → authenticate-and-persist-oauth-Di8-syFQ.js} +1 -1
  59. package/dist/client/assets/{automation-list-row-C90J7qWf.js → automation-list-row-VQ5g6Dhp.js} +1 -1
  60. package/dist/client/assets/{automation-runs-DIY-tOkv.js → automation-runs-T-6LDbI3.js} +1 -1
  61. package/dist/client/assets/{automations-B9Q3MODG.js → automations-5RUzkP69.js} +1 -1
  62. package/dist/client/assets/{avatar-fTyWPkcT.js → avatar-JHFTWNp7.js} +1 -1
  63. package/dist/client/assets/{badge-DEG52kZb.js → badge-CttcUU9Z.js} +1 -1
  64. package/dist/client/assets/{block-document-CmitKHWv.js → block-document-DF1N1JC6.js} +1 -1
  65. package/dist/client/assets/{brand-context-B6IKZfuo.js → brand-context-49-nr2gz.js} +1 -1
  66. package/dist/client/assets/{buckets-BS2nv8Uk.js → buckets-DD20ONF1.js} +1 -1
  67. package/dist/client/assets/{bulk-category-panel-BP0ZhgGL.js → bulk-category-panel-Bxz1yeRr.js} +1 -1
  68. package/dist/client/assets/{calendar-DsVIFc5p.js → calendar-Bi3Ui_zb.js} +1 -1
  69. package/dist/client/assets/{capability-load-error-DUDcEC3l.js → capability-load-error-C36707hz.js} +1 -1
  70. package/dist/client/assets/{card-D0CgKqJX.js → card-CkiEgOp1.js} +1 -1
  71. package/dist/client/assets/{category-editor-DmSDhjT7.js → category-editor-7Es3bqJO.js} +1 -1
  72. package/dist/client/assets/{chat-context-BgeeD5Jl.js → chat-context-ZANxeYW1.js} +1 -1
  73. package/dist/client/assets/{checkbox-C1J8T7sH.js → checkbox-oXBpggwR.js} +1 -1
  74. package/dist/client/assets/{cli-auth-success-3wyZ78BT.js → cli-auth-success-DA5i-h2V.js} +1 -1
  75. package/dist/client/assets/{collection-detail-DC-PKE8R.js → collection-detail-DjjIpN3b.js} +1 -1
  76. package/dist/client/assets/{collection-display-button-BBdACffh.js → collection-display-button-CzlQ3-Ru.js} +1 -1
  77. package/dist/client/assets/{collection-search-cFXzws2z.js → collection-search-BECJRGvb.js} +1 -1
  78. package/dist/client/assets/{collection-table-wrapper-C1GjpG6Y.js → collection-table-wrapper-Dqudguu6.js} +1 -1
  79. package/dist/client/assets/{collection-tabs-Q1HFTFag.js → collection-tabs-DLgcQ9vN.js} +1 -1
  80. package/dist/client/assets/{command-9zwhH25D.js → command-BwpPSuEK.js} +1 -1
  81. package/dist/client/assets/{commerce-onboarding-DOrRTV18.js → commerce-onboarding-CpUDWDPF.js} +1 -1
  82. package/dist/client/assets/{companions-core-JbMztE77.js → companions-core-CZj6AdLP.js} +1 -1
  83. package/dist/client/assets/{connect-BnNAxIWl.js → connect-pkqfGkBp.js} +1 -1
  84. package/dist/client/assets/{connection-CdIB5kfz.js → connection-Cp9yA2cA.js} +1 -1
  85. package/dist/client/assets/{connection-card-SFhKV-rF.js → connection-card-CHCG5YLX.js} +1 -1
  86. package/dist/client/assets/{connection-detail-DCa4io88.js → connection-detail-BgdGMvJ-.js} +1 -1
  87. package/dist/client/assets/{connection-form-helpers-CCpQ5GRM.js → connection-form-helpers-BTPKH1hE.js} +1 -1
  88. package/dist/client/assets/{connections-BuE94CFd.js → connections-VPa6zhqx.js} +1 -1
  89. package/dist/client/assets/{decopilot-sse-pool-Bz3npBcG.js → decopilot-sse-pool-CdUwcdgN.js} +1 -1
  90. package/dist/client/assets/{dialog-BUJG_M8-.js → dialog-3W-8IScJ.js} +1 -1
  91. package/dist/client/assets/{domain-settings-k6_EiE5D.js → domain-settings-DFOMNmtP.js} +1 -1
  92. package/dist/client/assets/{drawer-xlaEza8M.js → drawer-BfyjUlUf.js} +1 -1
  93. package/dist/client/assets/{dropdown-menu-CfdP22tm.js → dropdown-menu-D6c-yNXN.js} +1 -1
  94. package/dist/client/assets/{empty-state-Bmr6t-f_.js → empty-state-DSeXLvMa.js} +1 -1
  95. package/dist/client/assets/{extract-connection-data-DcIg-Yv2.js → extract-connection-data-916x9paw.js} +1 -1
  96. package/dist/client/assets/{file-explorer-i0mdzQXi.js → file-explorer-DKbMJMdh.js} +1 -1
  97. package/dist/client/assets/{form-0yMXXEtB.js → form-DN_EVxGu.js} +1 -1
  98. package/dist/client/assets/{general-ikXoHMOd.js → general-DDGPXHK7.js} +1 -1
  99. package/dist/client/assets/{github-repo-picker-gVGqqhGc.js → github-repo-picker-BMroiuBR.js} +1 -1
  100. package/dist/client/assets/{hooks-CPwHlqqx.js → hooks-BzCUuOns.js} +2 -2
  101. package/dist/client/assets/{index-GqWUnG2u.js → index-B9SJSEs8.js} +3 -3
  102. package/dist/client/assets/{index-CEZvKOcG.js → index-B9Sd5SNY.js} +1 -1
  103. package/dist/client/assets/{index-ClWNVcaq.js → index-BmfagrE5.js} +1 -1
  104. package/dist/client/assets/{index-DAWMEIYQ.js → index-Ci2-WeDM.js} +3 -3
  105. package/dist/client/assets/{index-DJgcTTFd.js → index-Ck3OddUp.js} +1 -1
  106. package/dist/client/assets/{index-BnnQKZWm.js → index-CxLtShDr.js} +1 -1
  107. package/dist/client/assets/{index-BAvYhkb6.js → index-D1Wg8_dp.js} +5 -5
  108. package/dist/client/assets/{index-H1qScfPU.js → index-DHH-tyXp.js} +1 -1
  109. package/dist/client/assets/{index-CAqMXrlV.js → index-DiTRDbD6.js} +1 -1
  110. package/dist/client/assets/{index-Dbs1XRiR.js → index-DyLXmCq2.js} +1 -1
  111. package/dist/client/assets/{index-C11fXaOI.js → index-cyN-8TNg.js} +1 -1
  112. package/dist/client/assets/{index-redirect-COrA22Pb.js → index-redirect-BAIh-u-t.js} +1 -1
  113. package/dist/client/assets/{input-DcVMV6ej.js → input-CSbRtiVQ.js} +1 -1
  114. package/dist/client/assets/{integration-icon-DXRixRzA.js → integration-icon-CUPPNkWn.js} +1 -1
  115. package/dist/client/assets/{invite-member-dialog-B11aMG2B.js → invite-member-dialog-DxNsaS30.js} +1 -1
  116. package/dist/client/assets/{label-BY0IhX_r.js → label-DGvaEu-Z.js} +1 -1
  117. package/dist/client/assets/{layout-D_Is8miC.js → layout-BhCe4UGa.js} +1 -1
  118. package/dist/client/assets/{login-F3JA8LX0.js → login-CytzYVev.js} +1 -1
  119. package/dist/client/assets/{mcp-oauth-ByGjTfpo.js → mcp-oauth-BDiXNpWl.js} +1 -1
  120. package/dist/client/assets/{members-CamiMB8c.js → members-N9Lk_KYA.js} +1 -1
  121. package/dist/client/assets/{monaco-editor-DmjM4ddM.js → monaco-editor-CppjdLmN.js} +1 -1
  122. package/dist/client/assets/{monitoring-stats-row-CH8Dvtr6.js → monitoring-stats-row-CDiSTj0B.js} +1 -1
  123. package/dist/client/assets/{multi-select-DKNtFOG8.js → multi-select-DPkl-fQc.js} +1 -1
  124. package/dist/client/assets/{oauth-callback-ai-provider-DRResbOB.js → oauth-callback-ai-provider-D4vEiIZK.js} +1 -1
  125. package/dist/client/assets/{oauth-callback-DN0KtnCp.js → oauth-callback-urJEesdj.js} +1 -1
  126. package/dist/client/assets/{onboarding-C748bdsl.js → onboarding-NMD7Rgsh.js} +1 -1
  127. package/dist/client/assets/{org-layout-CqP0LRlT.js → org-layout-3FbPnKCH.js} +1 -1
  128. package/dist/client/assets/{organization-choice-aL35gqMT.js → organization-choice-DRlimkmR.js} +1 -1
  129. package/dist/client/assets/{orgs-CC_Jmq_t.js → orgs-BS-I92U-.js} +1 -1
  130. package/dist/client/assets/{page-seo-form-D0KkS_Yj.js → page-seo-form--knIJHxX.js} +1 -1
  131. package/dist/client/assets/{popover-CcimhQkR.js → popover-C5IHpjj7.js} +1 -1
  132. package/dist/client/assets/{post-editor-BUd4hDTs.js → post-editor-Cyb7CBZu.js} +1 -1
  133. package/dist/client/assets/{primitives-tFkpOjRN.js → primitives-eKxr__L-.js} +1 -1
  134. package/dist/client/assets/{profile-D6juYVAI.js → profile-BLo-8uaY.js} +1 -1
  135. package/dist/client/assets/project-app-view-DI33Uf1W.js +1 -0
  136. package/dist/client/assets/record-editor-DASq4Mkh.js +1 -0
  137. package/dist/client/assets/{redirect-editor-6F2IudGB.js → redirect-editor-pTxMMIka.js} +1 -1
  138. package/dist/client/assets/registry-BC2bizEu.js +2 -0
  139. package/dist/client/assets/{registry-layout-BMjtGwu1.js → registry-layout-CCN-tAs-.js} +1 -1
  140. package/dist/client/assets/{reports-DfRFFUe4.js → reports-N2zbxBuL.js} +1 -1
  141. package/dist/client/assets/{require-capability-DuMTlzFk.js → require-capability-C0gWEvXs.js} +1 -1
  142. package/dist/client/assets/{required-auth-layout-Cs9bOvZM.js → required-auth-layout-Cadc6LjF.js} +1 -1
  143. package/dist/client/assets/{reset-password-BmpYYJMS.js → reset-password-BwyQEavx.js} +1 -1
  144. package/dist/client/assets/{roles-BEV1A-tW.js → roles-CnA68_xi.js} +1 -1
  145. package/dist/client/assets/{search-input-DBycbMJP.js → search-input-DwPTNKRK.js} +1 -1
  146. package/dist/client/assets/{secrets-DTjj9y7W.js → secrets-C4eJ6A5S.js} +1 -1
  147. package/dist/client/assets/{sections-editor-DCWInB5K.js → sections-editor-BK545TXJ.js} +1 -1
  148. package/dist/client/assets/{select-model-yOmJI8SP.js → select-model-DF2yexj8.js} +1 -1
  149. package/dist/client/assets/{select-3aXc2X12.js → select-ntnc0DeD.js} +1 -1
  150. package/dist/client/assets/{self-tool-result-DCPt_VUo.js → self-tool-result-CUYnn309.js} +1 -1
  151. package/dist/client/assets/{seo-editor-BAx1QC35.js → seo-editor-D8ISmwI0.js} +1 -1
  152. package/dist/client/assets/{settings-layout-dpvFesRB.js → settings-layout-BuncGk0j.js} +1 -1
  153. package/dist/client/assets/{settings-section-CbQ1wg-O.js → settings-section-DLpWTC0i.js} +1 -1
  154. package/dist/client/assets/{shell-controls-ByvlYzST.js → shell-controls-DXy1fqcy.js} +1 -1
  155. package/dist/client/assets/{shell-layout-WtD-c0s_.js → shell-layout-C8vXpdx8.js} +1 -1
  156. package/dist/client/assets/{sidebar-BtPsDNvG.js → sidebar-gTBPMKXv.js} +1 -1
  157. package/dist/client/assets/{skeleton-m47UDa87.js → skeleton-DB9zRkhz.js} +1 -1
  158. package/dist/client/assets/{spinner-YY2IUgV6.js → spinner-CoHgFrQQ.js} +1 -1
  159. package/dist/client/assets/{sso-CEzqPA5d.js → sso-RvH9UTzx.js} +1 -1
  160. package/dist/client/assets/{store-Cud44RMC.js → store-DMSKzAh9.js} +1 -1
  161. package/dist/client/assets/store-registry-tM2ZixeZ.js +2 -0
  162. package/dist/client/assets/{studio-tools-D1ncXiNn.js → studio-tools-CMu0zejY.js} +1 -1
  163. package/dist/client/assets/{switch-C-FZcR4l.js → switch-D3xcu-F2.js} +1 -1
  164. package/dist/client/assets/{tab-id-DDAdtcVl.js → tab-id-zqDmuOai.js} +1 -1
  165. package/dist/client/assets/{table-CxMBXEbk.js → table-0P2Wc2TK.js} +1 -1
  166. package/dist/client/assets/{tabs-N0GUzc3c.js → tabs-Bx87nE6V.js} +1 -1
  167. package/dist/client/assets/{textarea-BKISZGyx.js → textarea-DZs2CdHW.js} +1 -1
  168. package/dist/client/assets/{toggle-group-DIfDOM7d.js → toggle-group-skqXoHrg.js} +1 -1
  169. package/dist/client/assets/{toolbar-DDss6XUx.js → toolbar-MZ2ylwjL.js} +1 -1
  170. package/dist/client/assets/{tooltip-CCw8gRXU.js → tooltip-C5kLfH4m.js} +1 -1
  171. package/dist/client/assets/{use-ai-providers-BFDad-4v.js → use-ai-providers-5zLZx5j1.js} +1 -1
  172. package/dist/client/assets/{use-automations-BUlYNhu1.js → use-automations-4THjPRL2.js} +1 -1
  173. package/dist/client/assets/{use-autosave-CxE1tLQh.js → use-autosave-CFwkwQtT.js} +1 -1
  174. package/dist/client/assets/{use-capability-BxXucS2e.js → use-capability-Bk-mxsYF.js} +1 -1
  175. package/dist/client/assets/{use-clock-tick-eORZDs3Q.js → use-clock-tick-DiU5xSPA.js} +1 -1
  176. package/dist/client/assets/{use-connection-DgzNE2yF.js → use-connection-VGJh4zjw.js} +1 -1
  177. package/dist/client/assets/{use-copy-x4i8LsdT.js → use-copy-ugNCdSAD.js} +1 -1
  178. package/dist/client/assets/{use-create-virtual-mcp-CJjCt69L.js → use-create-virtual-mcp-D5NOiXHC.js} +1 -1
  179. package/dist/client/assets/{use-debounced-autosave-Bz0cYUXO.js → use-debounced-autosave-BmApGYN6.js} +1 -1
  180. package/dist/client/assets/{use-debounced-value-BwM7FZ7B.js → use-debounced-value-CfDM0Jhq.js} +1 -1
  181. package/dist/client/assets/{use-deco-credits-Dd1kijyo.js → use-deco-credits-B4UjorXb.js} +1 -1
  182. package/dist/client/assets/{use-decopilot-events-BZI63chs.js → use-decopilot-events-D5dgQ5AI.js} +1 -1
  183. package/dist/client/assets/{use-delete-connection-D2HvaOsD.js → use-delete-connection-CUR9j-BP.js} +1 -1
  184. package/dist/client/assets/{use-deployment-admin-o1IYehdi.js → use-deployment-admin-BixrzrZ5.js} +1 -1
  185. package/dist/client/assets/{use-file-configs-Bi5Rxkba.js → use-file-configs-CHUmsqsc.js} +1 -1
  186. package/dist/client/assets/{use-infinite-scroll-BVFCd5xL.js → use-infinite-scroll-BthWIatn.js} +1 -1
  187. package/dist/client/assets/{use-join-requests-BzvB_z43.js → use-join-requests-BTozyIE4.js} +1 -1
  188. package/dist/client/assets/{use-mcp-auth-status-CQG1GpAj.js → use-mcp-auth-status-B6ROc3dd.js} +1 -1
  189. package/dist/client/assets/{use-mcp-client-UyVI2Ncc.js → use-mcp-client-CaVVZEYW.js} +1 -1
  190. package/dist/client/assets/{use-mcp-tools-DWz5pwhb.js → use-mcp-tools-DvuJ8P5F.js} +1 -1
  191. package/dist/client/assets/{use-members-_wt30skE.js → use-members-Csv5Hp9l.js} +1 -1
  192. package/dist/client/assets/{use-mobile-B0QJzA1A.js → use-mobile-CsZZ5Bco.js} +1 -1
  193. package/dist/client/assets/{use-navigate-to-agent-B70RHUEJ.js → use-navigate-to-agent-D3FDvvrd.js} +1 -1
  194. package/dist/client/assets/{use-org-auth-client-DIsKxOJl.js → use-org-auth-client-DJ5wJM3W.js} +1 -1
  195. package/dist/client/assets/{use-org-sso-LJQLgxsp.js → use-org-sso-aOrIhTdJ.js} +1 -1
  196. package/dist/client/assets/{use-organization-roles-BBV3R82H.js → use-organization-roles-Bl34Q4rS.js} +1 -1
  197. package/dist/client/assets/{use-organization-settings-Cy18Qg6k.js → use-organization-settings-Teu3tLzq.js} +1 -1
  198. package/dist/client/assets/{use-registry-connections-TBFAcKW1.js → use-registry-connections-Y3AY23BD.js} +1 -1
  199. package/dist/client/assets/{use-secrets-BtoQNov0.js → use-secrets-BPoLBbik.js} +1 -1
  200. package/dist/client/assets/{use-status-sounds-Y4vRylUr.js → use-status-sounds-BhdAWgIR.js} +1 -1
  201. package/dist/client/assets/{use-tags-CenrBmPy.js → use-tags-DaZQsGJQ.js} +1 -1
  202. package/dist/client/assets/{use-view-mode-odLNdA2j.js → use-view-mode-Dm0_QE6W.js} +1 -1
  203. package/dist/client/assets/{use-virtual-mcp-BN1akK5b.js → use-virtual-mcp-6nLwy6c-.js} +1 -1
  204. package/dist/client/assets/useInfiniteQuery-BsbZizup.js +1 -0
  205. package/dist/client/assets/{useQueries-DYF41JbC.js → useQueries-DEhpvmrD.js} +1 -1
  206. package/dist/client/assets/{useRouterState-B7SdwuRi.js → useRouterState-DHCxiPwV.js} +1 -1
  207. package/dist/client/assets/useSuspenseInfiniteQuery-__xFXx7Y.js +1 -0
  208. package/dist/client/assets/{users-CtOQYO3X.js → users-CzCIQeS6.js} +1 -1
  209. package/dist/client/assets/{variant-calendar-DYlB4VJq.js → variant-calendar-Ct0BNjVX.js} +1 -1
  210. package/dist/client/assets/{view-mode-toggle-DARAjcXX.js → view-mode-toggle-CA1P05si.js} +1 -1
  211. package/dist/client/index.html +1 -1
  212. package/dist/server/cli.js +3 -3
  213. package/dist/server/server.js +3 -3
  214. package/package.json +1 -1
  215. package/dist/client/assets/project-app-view-DY5aaTXj.js +0 -1
  216. package/dist/client/assets/record-editor-Bxpoji1t.js +0 -1
  217. package/dist/client/assets/registry-k_T2DRjZ.js +0 -2
  218. package/dist/client/assets/store-registry-DuMc_sgG.js +0 -2
  219. package/dist/client/assets/useInfiniteQuery-B7fXLmuh.js +0 -1
  220. package/dist/client/assets/useSuspenseInfiniteQuery-BCK1N3zY.js +0 -1
@@ -1286,7 +1286,7 @@ Usage: deco services <up|down|status>`),process.exit(1)}}var Xu1=O(()=>{Uv()});f
1286
1286
  `.execute($);if(Number(W.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${J}/${K}, keeping in old table`);continue}}await gf`
1287
1287
  DELETE FROM kysely_migration WHERE name = ${X}
1288
1288
  `.execute($)}}async function Hm1($){await jg6($),await Pg6($);let Z=new Km1({db:$,provider:{getMigrations:()=>Promise.resolve(tc0)}}),{error:X,results:Q}=await Z.migrateToLatest(),Y=0;if(Q?.forEach((G)=>{if(G.status==="Success")Y++;else if(G.status==="Error")console.error(`Failed to execute migration "${G.migrationName}"`)}),X)throw console.error("Failed to migrate"),console.error(X),X;return Y}async function Ag6($){let{keepOpen:Z=!1,database:X,skipBetterAuth:Q=!1}=$??{},Y="skipped";if(!Q&&!X)Y=await Sg0();let G=X??w6(),J=async()=>{if(!Z&&!X)await sF(G).catch((K)=>{console.warn("Warning: Error closing database:",K)})};try{let K=await Hm1(G.db);return await J(),{betterAuth:Y,kysely:K}}catch(K){throw await J(),K}}async function Tg6(){let $=w6(),Z=new Km1({db:$.db,provider:{getMigrations:()=>Promise.resolve(tc0)}}),{error:X,results:Q}=await Z.migrateDown();if(Q?.forEach((Y)=>{if(Y.status==="Success")console.log(`\u2705 Migration "${Y.migrationName}" rolled back successfully`);else if(Y.status==="Error")console.error(`\u274C Failed to rollback migration "${Y.migrationName}"`)}),X)throw console.error("Failed to rollback migration"),console.error(X),X}var Um1=O(()=>{Jm1();Vg0();m7()});async function R50($){let Z={...process.env},X=z00($,Z);console.log(bN1(X.settings.encryptionKey));let{ensureServices:Q}=await Promise.resolve().then(() => (b$0(),f$0)),{outputs:Y,services:G}=await Q({home:X.settings.dataDir,externalDatabaseUrl:X.externalDatabaseUrl,externalNatsUrl:X.externalNatsUrl});if(!X.skipMigrations){let{migrateBetterAuth:K}=await Promise.resolve().then(() => (Vg0(),xc1));await K(Y.databaseUrl);let{createDatabase:W}=await Promise.resolve().then(() => (m7(),au1)),{migrateToLatest:H}=await Promise.resolve().then(() => (Um1(),Nm1)),N=W(Y.databaseUrl);await H({keepOpen:!0,database:N,skipBetterAuth:!0})}let J={...X.settings,databaseUrl:Y.databaseUrl,natsUrls:Y.natsUrls,...Y.s3?{s3Endpoint:Y.s3.endpoint,s3Bucket:Y.s3.bucket,s3AccessKeyId:Y.s3.accessKeyId,s3SecretAccessKey:Y.s3.secretAccessKey,s3ForcePathStyle:Y.s3.forcePathStyle}:{},...Y.natsTunnel?{natsPublicUrl:Y.natsTunnel.publicUrl,natsAccountJwt:Y.natsTunnel.accountJwt,natsAccountSigningKey:Y.natsTunnel.accountSigningKey,natsOperatorJwt:Y.natsTunnel.operatorJwt,natsTunnelPublicEnabled:!0,natsCredsPath:Y.natsTunnel.credsPath}:{}};return Qu1(J),{settings:J,services:G.map((K)=>({name:K.name==="PostgreSQL"?"Postgres":K.name,port:K.port})),managedServiceNames:G.filter((K)=>K.owner==="managed").map((K)=>K.name)}}var oc0=O(()=>{Uv();y8()});var Bm1={};z0(Bm1,{updateService:()=>_D,subscribeCliState:()=>sc0,setTuiConsoleIntercepted:()=>I50,setServerUrl:()=>Um,setMigrationsDone:()=>Nm,setDevMode:()=>qg6,resetCliStateForTests:()=>Rg6,isTuiConsoleIntercepted:()=>q50,getCliState:()=>ac0,addLogEntry:()=>Qw});function Fm1(){return{services:[{name:"Postgres",status:"pending",port:0},{name:"NATS",status:"pending",port:0}],migrationsStatus:"pending",serverUrl:null,logs:[]}}function Rg6(){qQ=Fm1()}function Ig6(){return[{name:"Postgres",status:"pending",port:0},{name:"NATS",status:"pending",port:0}]}function Hm(){for(let $ of rc0)$()}function ac0(){return qQ}function sc0($){return rc0.add($),()=>rc0.delete($)}function _D($){qQ={...qQ,services:qQ.services.map((Z)=>Z.name===$.name?$:Z)},Hm()}function Nm(){qQ={...qQ,migrationsStatus:"done"},Hm()}function Um($){qQ={...qQ,serverUrl:$},Hm()}function Qw($){let Z=[...qQ.logs,$];qQ={...qQ,logs:Z.length>500?Z.slice(-500):Z},Hm()}function qg6(){qQ={...qQ,services:[...Ig6(),{name:"API",status:"pending",port:0},{name:"Vite",status:"pending",port:0}]},Hm()}function I50($){wm1=$}function q50(){return wm1}var qQ,rc0,wm1=!1;var xD=O(()=>{qQ=Fm1();rc0=new Set});import{createServer as Om1}from"net";function Mg6($){return new Promise((Z)=>{let X=Om1();X.once("error",()=>Z(!1)),X.listen($,"0.0.0.0",()=>{X.close(()=>Z(!0))})})}async function Fm($){if(await Mg6($))return $;let Z=await new Promise((X,Q)=>{let Y=Om1();Y.once("error",Q),Y.listen(0,"0.0.0.0",()=>{let G=Y.address(),J=typeof G==="object"&&G?G.port:0;Y.close(()=>X(J))})});return console.warn(`Port ${$} is in use, using port ${Z} instead.`),Z}var ec0=()=>{};function wm($){return $.replace(/\x1b\[[0-9;]*m/g,"")}var $l0={};z0($l0,{startDevServer:()=>Sg6});import{join as kg6}from"path";function Lm1($){let Z=$.getReader(),X=new TextDecoder,Q="";function Y(){let G=Q.split(`
1289
- `);Q=G.pop()??"";for(let J of G){let K=wm(J).replace(/^\[\d+\]\s*/,"").trim();if(!K)continue;Qw({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:K})}}(async()=>{for(;;){let{done:G,value:J}=await Z.read();if(G)break;Q+=X.decode(J,{stream:!0}),Y()}if(Q.trim()){let G=wm(Q).replace(/^\[\d+\]\s*/,"").trim();if(G)Qw({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:G})}})()}async function Sg6($){let{baseUrl:Z,noTui:X}=$,Q=process.env.HOST==="0.0.0.0"&&Boolean(process.env.PORT),Y=Q?process.env.PORT:$.vitePort,G=Z||`http://localhost:${Y}`,J=Q?await Fm(Number(Y)+1):await Fm(Number($.port)),{settings:K,services:W,managedServiceNames:H}=await R50({port:String(J),home:$.home,baseUrl:$.baseUrl,localMode:$.localMode,skipMigrations:$.skipMigrations,noTui:$.noTui,vitePort:$.vitePort});for(let L of W)_D({name:L.name,status:"ready",port:L.port});Nm();let N=kg6(import.meta.dir,"..","..","..","..",".."),U=X===!0,F=Bun.spawn(["bun","run","dev:servers"],{cwd:N,env:{...process.env,PORT:String(K.port),VITE_PORT:String(Y),DATABASE_URL:K.databaseUrl,NATS_URL:K.natsUrls.join(","),NODE_ENV:K.nodeEnv,BASE_URL:G,DECOCMS_LOCAL_MODE:String(K.localMode),DECOCMS_HOME:K.dataDir,DATA_DIR:K.dataDir,DECO_CLI:"1",...K.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.natsPublicUrl&&K.natsAccountJwt&&K.natsAccountSigningKey?{NATS_PUBLIC_URL:K.natsPublicUrl,NATS_ACCOUNT_JWT:K.natsAccountJwt,NATS_ACCOUNT_SIGNING_KEY:K.natsAccountSigningKey,NATS_OPERATOR_JWT:K.natsOperatorJwt??"",NATS_TUNNEL_PUBLIC_ENABLED:"true",...K.natsCredsPath?{NATS_CREDS:K.natsCredsPath}:{}}:{}},stdio:["inherit",U?"inherit":"pipe",U?"inherit":"pipe"]});if(!U)Lm1(F.stdout),Lm1(F.stderr);Um(G),_D({name:"Vite",status:"ready",port:Number(Y)}),_D({name:"API",status:"ready",port:Number(K.port)});let B=async(L)=>{if(F.kill(L),await F.exited,H.length>0){let{stopServices:D}=await Promise.resolve().then(() => (b$0(),f$0));await D(K.dataDir)}};return process.on("SIGINT",()=>B("SIGINT")),process.on("SIGTERM",()=>B("SIGTERM")),{port:Number(Y),process:F}}var Zl0=O(()=>{oc0();xD();ec0()});var M50;var Xl0=O(()=>{M50={name:"decocms",version:"4.175.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",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.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","@nats-io/jwt":"0.0.10-5","@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 Cg6,Text as Dm1}from"ink";import{jsx as _g6,jsxs as Em1}from"react/jsx-runtime";function zm1({version:$}){return Em1(Cg6,{flexDirection:"column",marginTop:1,children:[Q50.map((Z,X)=>_g6(Dm1,{color:Y50[X],children:Z},X)),Em1(Dm1,{dimColor:!0,children:[" v",$]})]})}var jm1=O(()=>{sd()});import{Box as vD,Text as Yw}from"ink";import{Spinner as xg6}from"@inkjs/ui";import{jsx as vY,jsxs as hf}from"react/jsx-runtime";function Pm1({status:$}){if($==="pending")return vY(xg6,{label:""});return vY(Yw,{color:"green",children:"\u2713"})}function vg6($){return`${$.name}: ${$.port||"...."}`}function Am1({services:$,migrationsStatus:Z,home:X,serverUrl:Q}){return hf(vD,{flexDirection:"column",paddingBottom:1,children:[vY(zm1,{version:M50.version}),vY(vD,{marginBottom:1,children:vY(Yw,{dimColor:!0,children:"\u2500".repeat(80)})}),vY(vD,{children:hf(Yw,{dimColor:!0,children:["Home: ",X]})}),hf(vD,{gap:2,children:[$.map((Y)=>hf(vD,{gap:1,children:[vY(Yw,{children:vg6(Y)}),vY(Pm1,{status:Y.status})]},Y.name)),hf(vD,{gap:1,children:[vY(Yw,{children:"Migrations"}),vY(Pm1,{status:Z})]})]}),vY(vD,{children:Q?hf(Yw,{children:["Open in browser: ",vY(Yw,{color:"cyan",children:Q})]}):vY(Yw,{dimColor:!0,children:"Starting..."})})]})}var Tm1=O(()=>{Xl0();jm1()});import{Box as fg6,Text as Bm}from"ink";import{jsx as Ql0,jsxs as Yl0}from"react/jsx-runtime";function bg6($){if($>=500)return"red";if($>=400)return"yellow";if($>=300)return"cyan";return"green"}function Rm1({logs:$}){return Ql0(fg6,{flexDirection:"column",children:$.map((Z,X)=>{if(Z.rawLine)return Ql0(Bm,{dimColor:!0,children:Z.rawLine},X);let Q=Z.duration<1000?`${Z.duration}ms`:`${(Z.duration/1000).toFixed(1)}s`;return Yl0(Bm,{children:[Yl0(Bm,{dimColor:!0,children:[Z.method.padEnd(6)," ",Z.path.padEnd(30)," "]}),Ql0(Bm,{color:bg6(Z.status),children:Z.status}),Yl0(Bm,{dimColor:!0,children:[" ",Q.padStart(8)]})]},X)})})}var Im1=()=>{};var Gl0={};z0(Gl0,{App:()=>hg6});import{Box as yg6}from"ink";import{useSyncExternalStore as gg6}from"react";import{jsx as qm1,jsxs as ug6}from"react/jsx-runtime";function hg6({home:$}){let Z=gg6(sc0,ac0);return ug6(yg6,{flexDirection:"column",children:[qm1(Am1,{services:Z.services,migrationsStatus:Z.migrationsStatus,home:$,serverUrl:Z.serverUrl}),qm1(Rm1,{logs:Z.logs})]})}var Jl0=O(()=>{Tm1();Im1();xD()});var QJ="thread-gate",LN="decopilot-hosted-harness",cG="automations",Gw="background-tools";var Mm1="7";function km1($){return{name:"decocms",systemDatabaseUrl:$.systemDatabaseUrl,systemDatabaseSchemaName:"dbos",systemDatabasePoolSize:$.poolSize,runAdminServer:!1,executorID:$.executorID,applicationVersion:Mm1,...$.listenQueues!==void 0?{listenQueues:$.listenQueues}:{}}}var Sm1=()=>{};function cg6(){let $=(process.env.BUN_OPTIONS??"").split(/\s+/).filter(Boolean);return[...process.argv.slice(1),...$]}function Kl0($,Z){for(let X=0;X<$.length;X++){let Q=$[X];if(Q===void 0)continue;if(Q===Z)return $[X+1];if(Q.startsWith(`${Z}=`))return Q.slice(Z.length+1)}return}function Vm1(){let $=cg6();if($.includes("--cpu-prof")){console.log(JSON.stringify({msg:"cpu-profiling-active",dir:Kl0($,"--cpu-prof-dir")??process.cwd(),name:Kl0($,"--cpu-prof-name"),markdown:$.includes("--cpu-prof-md"),intervalUs:Number(Kl0($,"--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 Cm1(){if(process.env.HEAP_WATCH!=="1")return()=>{};let $=Number(process.env.HEAP_WATCH_INTERVAL_MS??60000),Z=async()=>{let X=kD();if(!X)return;let Q={};try{let{heapStats:Y}=await import("bun:jsc"),G=Y(),J=Object.entries(G.objectTypeCounts).sort((K,W)=>W[1]-K[1]).slice(0,20);Q={objectCount:G.objectCount,heapSize:G.heapSize,top:Object.fromEntries(J)}}catch{}console.log(JSON.stringify({msg:"heap-watch",ts:new Date().toISOString(),uptimeS:Math.round(process.uptime()),rss:X.rss,heapUsed:X.heapUsed,heapTotal:X.heapTotal,external:X.external,arrayBuffers:X.arrayBuffers,...Q}))};return Z().catch(()=>{}),k50=setInterval(()=>void Z().catch(()=>{}),$),k50.unref?.(),process.on("SIGUSR2",()=>{try{let X=Bun.generateHeapSnapshot("v8"),Q=typeof X==="string"?X:JSON.stringify(X),Y=`/tmp/heap-${process.pid}-${Date.now()}.heapsnapshot`;Bun.write(Y,Q),console.log(JSON.stringify({msg:"heap-snapshot-written",path:Y}))}catch(X){console.error("[heap-watch] snapshot failed:",X)}}),()=>{if(k50)clearInterval(k50)}}var k50;var _m1=()=>{};import*as lg6 from"bun:jsc";function xm1(){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{dg6()}catch(G){return console.error("[stall-watchdog] failed to start sampling profiler:",G),()=>{}}let X,Q=performance.now()+Z,Y=()=>{let G=performance.now(),J=G-Q;Q=G+Z;let K=[];try{K=mg6()?.traces??[]}catch{}if(J>$&&K.length>0){let W=new Map;for(let N of K){let U=N.frames.find((B)=>B.sourceURL&&!/Unknown Executable/.test(B.category??""))??N.frames[0];if(!U)continue;let F=(U.sourceURL??"?").replace(/^.*\/node_modules\//,"node_modules/"),w=`${U.name??"?"} @ ${F}:${U.line??"?"}`;W.set(w,(W.get(w)??0)+1)}let H=[...W.entries()].sort((N,U)=>U[1]-N[1]).slice(0,8).map(([N,U])=>({frame:N,count:U}));console.warn(JSON.stringify({msg:"stall-stack",ts:new Date().toISOString(),lagMs:Math.round(J),samplesInWindow:K.length,top:H}))}X=setTimeout(Y,Z),X.unref?.()};return X=setTimeout(Y,Z),X.unref?.(),()=>{if(X)clearTimeout(X)}}var dg6,mg6;var vm1=O(()=>{({startSamplingProfiler:dg6,samplingProfilerStackTraces:mg6}=lg6)});function fm1(){Vm1();let $=[Cm1(),du1(),xm1()];return()=>{for(let Z of $)Z()}}var bm1=O(()=>{zg0();_m1();vm1()});var fD=_((ym1)=>{Object.defineProperty(ym1,"__esModule",{value:!0});ym1.RepublishHeaders=ym1.DirectMsgHeaders=ym1.JsHeaders=ym1.AdvisoryKind=void 0;ym1.isOrderedPushConsumerOptions=ig6;ym1.isPullConsumer=ng6;ym1.isPushConsumer=pg6;ym1.isBoundPushConsumerOptions=tg6;function ig6($){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 ng6($){return $.isPullConsumer()}function pg6($){return $.isPushConsumer()}function tg6($){if($&&typeof $==="object")return"deliver_subject"in $||"deliver_group"in $||"idle_heartbeat"in $;return!1}ym1.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"};ym1.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"};ym1.DirectMsgHeaders={Stream:"Nats-Stream",Sequence:"Nats-Sequence",TimeStamp:"Nats-Time-Stamp",Subject:"Nats-Subject",LastSequence:"Nats-Last-Sequence",NumPending:"Nats-Num-Pending"};ym1.RepublishHeaders={Stream:"Nats-Stream",Subject:"Nats-Subject",Sequence:"Nats-Sequence",LastSequence:"Nats-Last-Sequence",Size:"Nats-Msg-Size"}});var fY=_((hm1)=>{Object.defineProperty(hm1,"__esModule",{value:!0});hm1.TD=hm1.TE=hm1.Empty=void 0;hm1.encode=Qh6;hm1.decode=Yh6;hm1.Empty=new Uint8Array(0);hm1.TE=new TextEncoder;hm1.TD=new TextDecoder;function Xh6(...$){let Z=0;for(let Y=0;Y<$.length;Y++)Z+=$[Y].length;let X=new Uint8Array(Z),Q=0;for(let Y=0;Y<$.length;Y++)X.set($[Y],Q),Q+=$[Y].length;return X}function Qh6(...$){let Z=[];for(let X=0;X<$.length;X++)Z.push(hm1.TE.encode($[X]));if(Z.length===0)return hm1.Empty;if(Z.length===1)return Z[0];return Xh6(...Z)}function Yh6($){if(!$||$.length===0)return"";return hm1.TD.decode($)}});var bY=_((lm1)=>{Object.defineProperty(lm1,"__esModule",{value:!0});lm1.errors=lm1.PermissionViolationError=lm1.NoRespondersError=lm1.TimeoutError=lm1.RequestError=lm1.ProtocolError=lm1.ConnectionError=lm1.DrainingConnectionError=lm1.ClosedConnectionError=lm1.AuthorizationError=lm1.UserAuthenticationExpiredError=lm1.InvalidOperationError=lm1.InvalidArgumentError=lm1.InvalidSubjectError=void 0;class Hl0 extends Error{constructor($,Z){super(`illegal subject: '${$}'`,Z);this.name="InvalidSubjectError"}}lm1.InvalidSubjectError=Hl0;class S50 extends Error{constructor($,Z){super($,Z);this.name="InvalidArgumentError"}static format($,Z,X){if(Array.isArray(Z)&&Z.length>1)Z=Z[0];if(Array.isArray($))$=$.map((Q)=>`'${Q}'`),$=$.join(",");else $=`'${$}'`;return new S50(`${$} ${Z}`,X)}}lm1.InvalidArgumentError=S50;class Nl0 extends Error{constructor($,Z){super($,Z);this.name="InvalidOperationError"}}lm1.InvalidOperationError=Nl0;class V50 extends Error{constructor($,Z){super($,Z);this.name="UserAuthenticationExpiredError"}static parse($){if($.toLowerCase().indexOf("user authentication expired")!==-1)return new V50($);return null}}lm1.UserAuthenticationExpiredError=V50;class C50 extends Error{constructor($,Z){super($,Z);this.name="AuthorizationError"}static parse($){let Z=["authorization violation","account authentication expired","authentication timeout"],X=$.toLowerCase();for(let Q=0;Q<Z.length;Q++)if(X.indexOf(Z[Q])!==-1)return new C50($);return null}}lm1.AuthorizationError=C50;class Ul0 extends Error{constructor(){super("closed connection");this.name="ClosedConnectionError"}}lm1.ClosedConnectionError=Ul0;class Fl0 extends Error{constructor(){super("connection draining");this.name="DrainingConnectionError"}}lm1.DrainingConnectionError=Fl0;class wl0 extends Error{constructor($,Z){super($,Z);this.name="ConnectionError"}}lm1.ConnectionError=wl0;class Bl0 extends Error{constructor($,Z){super($,Z);this.name="ProtocolError"}}lm1.ProtocolError=Bl0;class Ol0 extends Error{constructor($="",Z){super($,Z);this.name="RequestError"}isNoResponders(){return this.cause instanceof _50}}lm1.RequestError=Ol0;class Ll0 extends Error{constructor($){super("timeout",$);this.name="TimeoutError"}}lm1.TimeoutError=Ll0;class _50 extends Error{subject;constructor($,Z){super(`no responders: '${$}'`,Z);this.subject=$,this.name="NoResponders"}}lm1.NoRespondersError=_50;class x50 extends Error{operation;subject;queue;constructor($,Z,X,Q,Y){super($,Y);this.name="PermissionViolationError",this.operation=Z,this.subject=X,this.queue=Q}static parse($){if(($?$.toLowerCase():"").indexOf("permissions violation")===-1)return null;let X="publish",Q="",Y=void 0,G=$.match(/(Publish|Subscription) to "(\S+)"/);if(G){if(X=G[1].toLowerCase(),Q=G[2],X==="subscription"){let J=$.match(/using queue "(\S+)"/);if(J)Y=J[1]}}return new x50($,X,Q,Y)}}lm1.PermissionViolationError=x50;lm1.errors={AuthorizationError:C50,ClosedConnectionError:Ul0,ConnectionError:wl0,DrainingConnectionError:Fl0,InvalidArgumentError:S50,InvalidOperationError:Nl0,InvalidSubjectError:Hl0,NoRespondersError:_50,PermissionViolationError:x50,ProtocolError:Bl0,RequestError:Ol0,TimeoutError:Ll0,UserAuthenticationExpiredError:V50}});var YJ=_((pm1)=>{Object.defineProperty(pm1,"__esModule",{value:!0});pm1.SimpleMutex=pm1.Perf=void 0;pm1.extend=Ph6;pm1.render=Ah6;pm1.timeout=Th6;pm1.delay=Rh6;pm1.deadline=Ih6;pm1.deferred=El0;pm1.debugDeferred=qh6;pm1.shuffle=Mh6;pm1.collect=kh6;pm1.jitter=nm1;pm1.backoff=Sh6;pm1.nanos=Vh6;pm1.millis=Ch6;pm1.randomToken=vh6;var jh6=fY(),Dl0=bY();function Ph6($,...Z){for(let X=0;X<Z.length;X++){let Q=Z[X];Object.keys(Q).forEach(function(Y){$[Y]=Q[Y]})}return $}function Ah6($){return jh6.TD.decode($).replace(/\n/g,"\u240A").replace(/\r/g,"\u240D")}function Th6($,Z=!0){let X=Z?new Dl0.TimeoutError:null,Q,Y,G=new Promise((J,K)=>{Q={cancel:()=>{if(Y)clearTimeout(Y)}},Y=setTimeout(()=>{if(X===null)K(new Dl0.TimeoutError);else K(X)},$)});return Object.assign(G,Q)}function Rh6($=0){let Z,X=new Promise((Q)=>{let Y=setTimeout(()=>{Q()},$);Z={cancel:()=>{if(Y)clearTimeout(Y),Q()}}});return Object.assign(X,Z)}async function Ih6($,Z=1000){let X=El0(),Q=setTimeout(()=>{X.reject(new Dl0.TimeoutError)},Z);try{return await Promise.race([$,X])}finally{clearTimeout(Q)}}function El0(){let $={},Z=new Promise((X,Q)=>{$={resolve:X,reject:Q}});return Object.assign(Z,$)}function qh6(){let $={},Z=new Promise((X,Q)=>{$={resolve:(Y)=>{console.trace("resolve",Y),X(Y)},reject:(Y)=>{console.trace("reject"),Q(Y)}}});return Object.assign(Z,$)}function Mh6($){for(let Z=$.length-1;Z>0;Z--){let X=Math.floor(Math.random()*(Z+1));[$[Z],$[X]]=[$[X],$[Z]]}return $}async function kh6($){let Z=[];for await(let X of $)Z.push(X);return Z}class mm1{timers;measures;constructor(){this.timers=new Map,this.measures=new Map}mark($){this.timers.set($,performance.now())}measure($,Z,X){let Q=this.timers.get(Z);if(Q===void 0)throw Error(`${Z} is not defined`);let Y=this.timers.get(X);if(Y===void 0)throw Error(`${X} is not defined`);this.measures.set($,Y-Q)}getEntries(){let $=[];return this.measures.forEach((Z,X)=>{$.push({name:X,duration:Z})}),$}}pm1.Perf=mm1;class im1{max;current;waiting;constructor($=1){this.max=$,this.current=0,this.waiting=[]}lock(){if(this.current++,this.current<=this.max)return Promise.resolve();let $=El0();return this.waiting.push($),$}unlock(){this.current--,this.waiting.pop()?.resolve()}}pm1.SimpleMutex=im1;function nm1($){if($===0)return 0;return Math.floor($/2+Math.random()*$)}function Sh6($=[0,250,250,500,500,3000,5000]){if(!Array.isArray($))$=[0,250,250,500,500,3000,5000];let Z=$.length-1;return{backoff(X){return nm1(X>Z?$[Z]:$[X])}}}function Vh6($){return $*1e6}function Ch6($){return Math.floor($/1e6)}var _h6="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",DN=new Uint8Array(62);for(let $=0;$<62;$++)DN[$]=_h6.charCodeAt($);var xh6=218340105584896;function vh6(){let $=Math.floor(Math.random()*xh6),Z=$%62,X=DN[Z];$=($-Z)/62,Z=$%62;let Q=DN[Z];$=($-Z)/62,Z=$%62;let Y=DN[Z];$=($-Z)/62,Z=$%62;let G=DN[Z];$=($-Z)/62,Z=$%62;let J=DN[Z];$=($-Z)/62,Z=$%62;let K=DN[Z];$=($-Z)/62,Z=$%62;let W=DN[Z];$=($-Z)/62;let H=DN[$];return String.fromCharCode(X,Q,Y,G,J,K,W,H)}});var Zi1=_((em1)=>{Object.defineProperty(em1,"__esModule",{value:!0});em1.nuid=em1.NuidImpl=void 0;var rh6="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",Jw=62,f50=12,am1=10,om1=33,ah6=333,rm1=f50+am1,jl0=new Uint8Array(Jw);for(let $=0;$<Jw;$++)jl0[$]=rh6.charCodeAt($);var v50=4294967296,sm1=BigInt(Jw)**BigInt(am1),Om=Number(sm1/(1n<<32n)),zl0=Number(sm1%(1n<<32n));function sh6($){for(let Z=0;Z<$.length;Z++)$[Z]=Math.floor(Math.random()*256)}function eh6($){if(globalThis?.crypto?.getRandomValues)globalThis.crypto.getRandomValues($);else sh6($)}class Pl0{buf;cbuf;seqHi;seqLo;inc;inited;constructor(){this.buf=new Uint8Array(rm1),this.cbuf=new Uint8Array(f50),this.inited=!1}init(){this.inited=!0,this.setPre(),this.initSeqAndInc(),this.fillSeq()}initSeqAndInc(){let $=0;do this.seqHi=Math.floor(Math.random()*(Om+1)),this.seqLo=Math.floor(Math.random()*v50);while($++<8&&this.seqHi===Om&&this.seqLo>=zl0);if(this.seqHi===Om&&this.seqLo>=zl0)this.seqLo=0;this.inc=Math.random()*(ah6-om1)+om1|0}setPre(){eh6(this.cbuf);for(let $=0;$<f50;$++)this.buf[$]=jl0[this.cbuf[$]%Jw]}fillSeq(){let $=this.seqHi,Z=this.seqLo;for(let X=rm1-1;X>=f50;X--){let Q=Math.floor($/Jw),G=($-Q*Jw)*v50+Z,J=Math.floor(G/Jw),K=G-J*Jw;this.buf[X]=jl0[K],$=Q,Z=J}}next(){if(!this.inited)this.init();if(this.seqLo+=this.inc,this.seqLo>=v50)this.seqLo-=v50,this.seqHi+=1;if(this.seqHi>Om||this.seqHi===Om&&this.seqLo>=zl0)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()}}em1.NuidImpl=Pl0;em1.nuid=new Pl0});var Gi1=_((Qi1)=>{Object.defineProperty(Qi1,"__esModule",{value:!0});Qi1.nuid=Qi1.Nuid=void 0;var Xi1=Zi1();Qi1.Nuid=Xi1.NuidImpl;Qi1.nuid=Xi1.nuid});var y50=_((b50)=>{Object.defineProperty(b50,"__esModule",{value:!0});b50.nuid=b50.Nuid=void 0;var Ji1=Gi1();Object.defineProperty(b50,"Nuid",{enumerable:!0,get:function(){return Ji1.Nuid}});Object.defineProperty(b50,"nuid",{enumerable:!0,get:function(){return Ji1.nuid}})});var Kw=_((Ki1)=>{Object.defineProperty(Ki1,"__esModule",{value:!0});Ki1.DEFAULT_HOST=Ki1.DEFAULT_PORT=Ki1.Match=void 0;Ki1.syncIterator=Gu6;Ki1.createInbox=Ju6;var Qu6=y50(),Yu6=bY();Ki1.Match={Exact:"exact",CanonicalMIME:"canonical",IgnoreCase:"insensitive"};function Gu6($){let Z=$[Symbol.asyncIterator]();return{async next(){let X=await Z.next();if(X.done)return Promise.resolve(null);return Promise.resolve(X.value)}}}function Ju6($=""){if($=$||"_INBOX",typeof $!=="string")throw TypeError("prefix must be a string");return $.split(".").forEach((Z)=>{if(Z==="*"||Z===">")throw Yu6.InvalidArgumentError.format("prefix",`cannot have wildcards ('${$}')`)}),`${$}.${Qu6.nuid.next()}`}Ki1.DEFAULT_PORT=4222;Ki1.DEFAULT_HOST="127.0.0.1"});var Lm=_((Ui1)=>{Object.defineProperty(Ui1,"__esModule",{value:!0});Ui1.DataBuffer=void 0;var Hi1=fY();class Ni1{buffers;byteLength;constructor(){this.buffers=[],this.byteLength=0}static concat(...$){let Z=0;for(let Y=0;Y<$.length;Y++)Z+=$[Y].length;let X=new Uint8Array(Z),Q=0;for(let Y=0;Y<$.length;Y++)X.set($[Y],Q),Q+=$[Y].length;return X}static fromAscii($){if(!$)$="";return Hi1.TE.encode($)}static toAscii($){return Hi1.TD.decode($)}reset(){this.buffers.length=0,this.byteLength=0}pack(){if(this.buffers.length>1){let $=new Uint8Array(this.byteLength),Z=0;for(let X=0;X<this.buffers.length;X++)$.set(this.buffers[X],Z),Z+=this.buffers[X].length;this.buffers.length=0,this.buffers.push($)}}shift(){if(this.buffers.length){let $=this.buffers.shift();if($)return this.byteLength-=$.length,$}return new Uint8Array(0)}drain($){if(this.buffers.length){this.pack();let Z=this.buffers.pop();if(Z){let X=this.byteLength;if($===void 0||$>X)$=X;let Q=Z.subarray(0,$);if(X>$)this.buffers.push(Z.subarray($));return this.byteLength=X-$,Q}}return new Uint8Array(0)}fill($,...Z){if($)this.buffers.push($),this.byteLength+=$.length;for(let X=0;X<Z.length;X++)if(Z[X]&&Z[X].length)this.buffers.push(Z[X]),this.byteLength+=Z[X].length}peek(){if(this.buffers.length)return this.pack(),this.buffers[0];return new Uint8Array(0)}size(){return this.byteLength}length(){return this.buffers.length}}Ui1.DataBuffer=Ni1});var bD=_((Bi1)=>{Object.defineProperty(Bi1,"__esModule",{value:!0});Bi1.LF=Bi1.CR=Bi1.CRLF=Bi1.CR_LF_LEN=Bi1.CR_LF=void 0;Bi1.setTransportFactory=Bu6;Bi1.defaultPort=Ou6;Bi1.getUrlParseFn=Lu6;Bi1.newTransport=Du6;Bi1.getResolveFn=Eu6;Bi1.protoLen=wi1;Bi1.extractProtocolMessage=zu6;var Uu6=fY(),Fu6=Kw(),wu6=Lm(),yY;function Bu6($){yY=$}function Ou6(){return yY!==void 0&&yY.defaultPort!==void 0?yY.defaultPort:Fu6.DEFAULT_PORT}function Lu6(){return yY!==void 0&&yY.urlParseFn?yY.urlParseFn:void 0}function Du6(){if(!yY||typeof yY.factory!=="function")throw Error("transport fn is not set");return yY.factory()}function Eu6(){return yY!==void 0&&yY.dnsResolveFn?yY.dnsResolveFn:void 0}Bi1.CR_LF=`\r
1289
+ `);Q=G.pop()??"";for(let J of G){let K=wm(J).replace(/^\[\d+\]\s*/,"").trim();if(!K)continue;Qw({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:K})}}(async()=>{for(;;){let{done:G,value:J}=await Z.read();if(G)break;Q+=X.decode(J,{stream:!0}),Y()}if(Q.trim()){let G=wm(Q).replace(/^\[\d+\]\s*/,"").trim();if(G)Qw({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:G})}})()}async function Sg6($){let{baseUrl:Z,noTui:X}=$,Q=process.env.HOST==="0.0.0.0"&&Boolean(process.env.PORT),Y=Q?process.env.PORT:$.vitePort,G=Z||`http://localhost:${Y}`,J=Q?await Fm(Number(Y)+1):await Fm(Number($.port)),{settings:K,services:W,managedServiceNames:H}=await R50({port:String(J),home:$.home,baseUrl:$.baseUrl,localMode:$.localMode,skipMigrations:$.skipMigrations,noTui:$.noTui,vitePort:$.vitePort});for(let L of W)_D({name:L.name,status:"ready",port:L.port});Nm();let N=kg6(import.meta.dir,"..","..","..","..",".."),U=X===!0,F=Bun.spawn(["bun","run","dev:servers"],{cwd:N,env:{...process.env,PORT:String(K.port),VITE_PORT:String(Y),DATABASE_URL:K.databaseUrl,NATS_URL:K.natsUrls.join(","),NODE_ENV:K.nodeEnv,BASE_URL:G,DECOCMS_LOCAL_MODE:String(K.localMode),DECOCMS_HOME:K.dataDir,DATA_DIR:K.dataDir,DECO_CLI:"1",...K.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.natsPublicUrl&&K.natsAccountJwt&&K.natsAccountSigningKey?{NATS_PUBLIC_URL:K.natsPublicUrl,NATS_ACCOUNT_JWT:K.natsAccountJwt,NATS_ACCOUNT_SIGNING_KEY:K.natsAccountSigningKey,NATS_OPERATOR_JWT:K.natsOperatorJwt??"",NATS_TUNNEL_PUBLIC_ENABLED:"true",...K.natsCredsPath?{NATS_CREDS:K.natsCredsPath}:{}}:{}},stdio:["inherit",U?"inherit":"pipe",U?"inherit":"pipe"]});if(!U)Lm1(F.stdout),Lm1(F.stderr);Um(G),_D({name:"Vite",status:"ready",port:Number(Y)}),_D({name:"API",status:"ready",port:Number(K.port)});let B=async(L)=>{if(F.kill(L),await F.exited,H.length>0){let{stopServices:D}=await Promise.resolve().then(() => (b$0(),f$0));await D(K.dataDir)}};return process.on("SIGINT",()=>B("SIGINT")),process.on("SIGTERM",()=>B("SIGTERM")),{port:Number(Y),process:F}}var Zl0=O(()=>{oc0();xD();ec0()});var M50;var Xl0=O(()=>{M50={name:"decocms",version:"4.175.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",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.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","@nats-io/jwt":"0.0.10-5","@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 Cg6,Text as Dm1}from"ink";import{jsx as _g6,jsxs as Em1}from"react/jsx-runtime";function zm1({version:$}){return Em1(Cg6,{flexDirection:"column",marginTop:1,children:[Q50.map((Z,X)=>_g6(Dm1,{color:Y50[X],children:Z},X)),Em1(Dm1,{dimColor:!0,children:[" v",$]})]})}var jm1=O(()=>{sd()});import{Box as vD,Text as Yw}from"ink";import{Spinner as xg6}from"@inkjs/ui";import{jsx as vY,jsxs as hf}from"react/jsx-runtime";function Pm1({status:$}){if($==="pending")return vY(xg6,{label:""});return vY(Yw,{color:"green",children:"\u2713"})}function vg6($){return`${$.name}: ${$.port||"...."}`}function Am1({services:$,migrationsStatus:Z,home:X,serverUrl:Q}){return hf(vD,{flexDirection:"column",paddingBottom:1,children:[vY(zm1,{version:M50.version}),vY(vD,{marginBottom:1,children:vY(Yw,{dimColor:!0,children:"\u2500".repeat(80)})}),vY(vD,{children:hf(Yw,{dimColor:!0,children:["Home: ",X]})}),hf(vD,{gap:2,children:[$.map((Y)=>hf(vD,{gap:1,children:[vY(Yw,{children:vg6(Y)}),vY(Pm1,{status:Y.status})]},Y.name)),hf(vD,{gap:1,children:[vY(Yw,{children:"Migrations"}),vY(Pm1,{status:Z})]})]}),vY(vD,{children:Q?hf(Yw,{children:["Open in browser: ",vY(Yw,{color:"cyan",children:Q})]}):vY(Yw,{dimColor:!0,children:"Starting..."})})]})}var Tm1=O(()=>{Xl0();jm1()});import{Box as fg6,Text as Bm}from"ink";import{jsx as Ql0,jsxs as Yl0}from"react/jsx-runtime";function bg6($){if($>=500)return"red";if($>=400)return"yellow";if($>=300)return"cyan";return"green"}function Rm1({logs:$}){return Ql0(fg6,{flexDirection:"column",children:$.map((Z,X)=>{if(Z.rawLine)return Ql0(Bm,{dimColor:!0,children:Z.rawLine},X);let Q=Z.duration<1000?`${Z.duration}ms`:`${(Z.duration/1000).toFixed(1)}s`;return Yl0(Bm,{children:[Yl0(Bm,{dimColor:!0,children:[Z.method.padEnd(6)," ",Z.path.padEnd(30)," "]}),Ql0(Bm,{color:bg6(Z.status),children:Z.status}),Yl0(Bm,{dimColor:!0,children:[" ",Q.padStart(8)]})]},X)})})}var Im1=()=>{};var Gl0={};z0(Gl0,{App:()=>hg6});import{Box as yg6}from"ink";import{useSyncExternalStore as gg6}from"react";import{jsx as qm1,jsxs as ug6}from"react/jsx-runtime";function hg6({home:$}){let Z=gg6(sc0,ac0);return ug6(yg6,{flexDirection:"column",children:[qm1(Am1,{services:Z.services,migrationsStatus:Z.migrationsStatus,home:$,serverUrl:Z.serverUrl}),qm1(Rm1,{logs:Z.logs})]})}var Jl0=O(()=>{Tm1();Im1();xD()});var QJ="thread-gate",LN="decopilot-hosted-harness",cG="automations",Gw="background-tools";var Mm1="7";function km1($){return{name:"decocms",systemDatabaseUrl:$.systemDatabaseUrl,systemDatabaseSchemaName:"dbos",systemDatabasePoolSize:$.poolSize,runAdminServer:!1,executorID:$.executorID,applicationVersion:Mm1,...$.listenQueues!==void 0?{listenQueues:$.listenQueues}:{}}}var Sm1=()=>{};function cg6(){let $=(process.env.BUN_OPTIONS??"").split(/\s+/).filter(Boolean);return[...process.argv.slice(1),...$]}function Kl0($,Z){for(let X=0;X<$.length;X++){let Q=$[X];if(Q===void 0)continue;if(Q===Z)return $[X+1];if(Q.startsWith(`${Z}=`))return Q.slice(Z.length+1)}return}function Vm1(){let $=cg6();if($.includes("--cpu-prof")){console.log(JSON.stringify({msg:"cpu-profiling-active",dir:Kl0($,"--cpu-prof-dir")??process.cwd(),name:Kl0($,"--cpu-prof-name"),markdown:$.includes("--cpu-prof-md"),intervalUs:Number(Kl0($,"--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 Cm1(){if(process.env.HEAP_WATCH!=="1")return()=>{};let $=Number(process.env.HEAP_WATCH_INTERVAL_MS??60000),Z=async()=>{let X=kD();if(!X)return;let Q={};try{let{heapStats:Y}=await import("bun:jsc"),G=Y(),J=Object.entries(G.objectTypeCounts).sort((K,W)=>W[1]-K[1]).slice(0,20);Q={objectCount:G.objectCount,heapSize:G.heapSize,top:Object.fromEntries(J)}}catch{}console.log(JSON.stringify({msg:"heap-watch",ts:new Date().toISOString(),uptimeS:Math.round(process.uptime()),rss:X.rss,heapUsed:X.heapUsed,heapTotal:X.heapTotal,external:X.external,arrayBuffers:X.arrayBuffers,...Q}))};return Z().catch(()=>{}),k50=setInterval(()=>void Z().catch(()=>{}),$),k50.unref?.(),process.on("SIGUSR2",()=>{try{let X=Bun.generateHeapSnapshot("v8"),Q=typeof X==="string"?X:JSON.stringify(X),Y=`/tmp/heap-${process.pid}-${Date.now()}.heapsnapshot`;Bun.write(Y,Q),console.log(JSON.stringify({msg:"heap-snapshot-written",path:Y}))}catch(X){console.error("[heap-watch] snapshot failed:",X)}}),()=>{if(k50)clearInterval(k50)}}var k50;var _m1=()=>{};import*as lg6 from"bun:jsc";function xm1(){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{dg6()}catch(G){return console.error("[stall-watchdog] failed to start sampling profiler:",G),()=>{}}let X,Q=performance.now()+Z,Y=()=>{let G=performance.now(),J=G-Q;Q=G+Z;let K=[];try{K=mg6()?.traces??[]}catch{}if(J>$&&K.length>0){let W=new Map;for(let N of K){let U=N.frames.find((B)=>B.sourceURL&&!/Unknown Executable/.test(B.category??""))??N.frames[0];if(!U)continue;let F=(U.sourceURL??"?").replace(/^.*\/node_modules\//,"node_modules/"),w=`${U.name??"?"} @ ${F}:${U.line??"?"}`;W.set(w,(W.get(w)??0)+1)}let H=[...W.entries()].sort((N,U)=>U[1]-N[1]).slice(0,8).map(([N,U])=>({frame:N,count:U}));console.warn(JSON.stringify({msg:"stall-stack",ts:new Date().toISOString(),lagMs:Math.round(J),samplesInWindow:K.length,top:H}))}X=setTimeout(Y,Z),X.unref?.()};return X=setTimeout(Y,Z),X.unref?.(),()=>{if(X)clearTimeout(X)}}var dg6,mg6;var vm1=O(()=>{({startSamplingProfiler:dg6,samplingProfilerStackTraces:mg6}=lg6)});function fm1(){Vm1();let $=[Cm1(),du1(),xm1()];return()=>{for(let Z of $)Z()}}var bm1=O(()=>{zg0();_m1();vm1()});var fD=_((ym1)=>{Object.defineProperty(ym1,"__esModule",{value:!0});ym1.RepublishHeaders=ym1.DirectMsgHeaders=ym1.JsHeaders=ym1.AdvisoryKind=void 0;ym1.isOrderedPushConsumerOptions=ig6;ym1.isPullConsumer=ng6;ym1.isPushConsumer=pg6;ym1.isBoundPushConsumerOptions=tg6;function ig6($){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 ng6($){return $.isPullConsumer()}function pg6($){return $.isPushConsumer()}function tg6($){if($&&typeof $==="object")return"deliver_subject"in $||"deliver_group"in $||"idle_heartbeat"in $;return!1}ym1.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"};ym1.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"};ym1.DirectMsgHeaders={Stream:"Nats-Stream",Sequence:"Nats-Sequence",TimeStamp:"Nats-Time-Stamp",Subject:"Nats-Subject",LastSequence:"Nats-Last-Sequence",NumPending:"Nats-Num-Pending"};ym1.RepublishHeaders={Stream:"Nats-Stream",Subject:"Nats-Subject",Sequence:"Nats-Sequence",LastSequence:"Nats-Last-Sequence",Size:"Nats-Msg-Size"}});var fY=_((hm1)=>{Object.defineProperty(hm1,"__esModule",{value:!0});hm1.TD=hm1.TE=hm1.Empty=void 0;hm1.encode=Qh6;hm1.decode=Yh6;hm1.Empty=new Uint8Array(0);hm1.TE=new TextEncoder;hm1.TD=new TextDecoder;function Xh6(...$){let Z=0;for(let Y=0;Y<$.length;Y++)Z+=$[Y].length;let X=new Uint8Array(Z),Q=0;for(let Y=0;Y<$.length;Y++)X.set($[Y],Q),Q+=$[Y].length;return X}function Qh6(...$){let Z=[];for(let X=0;X<$.length;X++)Z.push(hm1.TE.encode($[X]));if(Z.length===0)return hm1.Empty;if(Z.length===1)return Z[0];return Xh6(...Z)}function Yh6($){if(!$||$.length===0)return"";return hm1.TD.decode($)}});var bY=_((lm1)=>{Object.defineProperty(lm1,"__esModule",{value:!0});lm1.errors=lm1.PermissionViolationError=lm1.NoRespondersError=lm1.TimeoutError=lm1.RequestError=lm1.ProtocolError=lm1.ConnectionError=lm1.DrainingConnectionError=lm1.ClosedConnectionError=lm1.AuthorizationError=lm1.UserAuthenticationExpiredError=lm1.InvalidOperationError=lm1.InvalidArgumentError=lm1.InvalidSubjectError=void 0;class Hl0 extends Error{constructor($,Z){super(`illegal subject: '${$}'`,Z);this.name="InvalidSubjectError"}}lm1.InvalidSubjectError=Hl0;class S50 extends Error{constructor($,Z){super($,Z);this.name="InvalidArgumentError"}static format($,Z,X){if(Array.isArray(Z)&&Z.length>1)Z=Z[0];if(Array.isArray($))$=$.map((Q)=>`'${Q}'`),$=$.join(",");else $=`'${$}'`;return new S50(`${$} ${Z}`,X)}}lm1.InvalidArgumentError=S50;class Nl0 extends Error{constructor($,Z){super($,Z);this.name="InvalidOperationError"}}lm1.InvalidOperationError=Nl0;class V50 extends Error{constructor($,Z){super($,Z);this.name="UserAuthenticationExpiredError"}static parse($){if($.toLowerCase().indexOf("user authentication expired")!==-1)return new V50($);return null}}lm1.UserAuthenticationExpiredError=V50;class C50 extends Error{constructor($,Z){super($,Z);this.name="AuthorizationError"}static parse($){let Z=["authorization violation","account authentication expired","authentication timeout"],X=$.toLowerCase();for(let Q=0;Q<Z.length;Q++)if(X.indexOf(Z[Q])!==-1)return new C50($);return null}}lm1.AuthorizationError=C50;class Ul0 extends Error{constructor(){super("closed connection");this.name="ClosedConnectionError"}}lm1.ClosedConnectionError=Ul0;class Fl0 extends Error{constructor(){super("connection draining");this.name="DrainingConnectionError"}}lm1.DrainingConnectionError=Fl0;class wl0 extends Error{constructor($,Z){super($,Z);this.name="ConnectionError"}}lm1.ConnectionError=wl0;class Bl0 extends Error{constructor($,Z){super($,Z);this.name="ProtocolError"}}lm1.ProtocolError=Bl0;class Ol0 extends Error{constructor($="",Z){super($,Z);this.name="RequestError"}isNoResponders(){return this.cause instanceof _50}}lm1.RequestError=Ol0;class Ll0 extends Error{constructor($){super("timeout",$);this.name="TimeoutError"}}lm1.TimeoutError=Ll0;class _50 extends Error{subject;constructor($,Z){super(`no responders: '${$}'`,Z);this.subject=$,this.name="NoResponders"}}lm1.NoRespondersError=_50;class x50 extends Error{operation;subject;queue;constructor($,Z,X,Q,Y){super($,Y);this.name="PermissionViolationError",this.operation=Z,this.subject=X,this.queue=Q}static parse($){if(($?$.toLowerCase():"").indexOf("permissions violation")===-1)return null;let X="publish",Q="",Y=void 0,G=$.match(/(Publish|Subscription) to "(\S+)"/);if(G){if(X=G[1].toLowerCase(),Q=G[2],X==="subscription"){let J=$.match(/using queue "(\S+)"/);if(J)Y=J[1]}}return new x50($,X,Q,Y)}}lm1.PermissionViolationError=x50;lm1.errors={AuthorizationError:C50,ClosedConnectionError:Ul0,ConnectionError:wl0,DrainingConnectionError:Fl0,InvalidArgumentError:S50,InvalidOperationError:Nl0,InvalidSubjectError:Hl0,NoRespondersError:_50,PermissionViolationError:x50,ProtocolError:Bl0,RequestError:Ol0,TimeoutError:Ll0,UserAuthenticationExpiredError:V50}});var YJ=_((pm1)=>{Object.defineProperty(pm1,"__esModule",{value:!0});pm1.SimpleMutex=pm1.Perf=void 0;pm1.extend=Ph6;pm1.render=Ah6;pm1.timeout=Th6;pm1.delay=Rh6;pm1.deadline=Ih6;pm1.deferred=El0;pm1.debugDeferred=qh6;pm1.shuffle=Mh6;pm1.collect=kh6;pm1.jitter=nm1;pm1.backoff=Sh6;pm1.nanos=Vh6;pm1.millis=Ch6;pm1.randomToken=vh6;var jh6=fY(),Dl0=bY();function Ph6($,...Z){for(let X=0;X<Z.length;X++){let Q=Z[X];Object.keys(Q).forEach(function(Y){$[Y]=Q[Y]})}return $}function Ah6($){return jh6.TD.decode($).replace(/\n/g,"\u240A").replace(/\r/g,"\u240D")}function Th6($,Z=!0){let X=Z?new Dl0.TimeoutError:null,Q,Y,G=new Promise((J,K)=>{Q={cancel:()=>{if(Y)clearTimeout(Y)}},Y=setTimeout(()=>{if(X===null)K(new Dl0.TimeoutError);else K(X)},$)});return Object.assign(G,Q)}function Rh6($=0){let Z,X=new Promise((Q)=>{let Y=setTimeout(()=>{Q()},$);Z={cancel:()=>{if(Y)clearTimeout(Y),Q()}}});return Object.assign(X,Z)}async function Ih6($,Z=1000){let X=El0(),Q=setTimeout(()=>{X.reject(new Dl0.TimeoutError)},Z);try{return await Promise.race([$,X])}finally{clearTimeout(Q)}}function El0(){let $={},Z=new Promise((X,Q)=>{$={resolve:X,reject:Q}});return Object.assign(Z,$)}function qh6(){let $={},Z=new Promise((X,Q)=>{$={resolve:(Y)=>{console.trace("resolve",Y),X(Y)},reject:(Y)=>{console.trace("reject"),Q(Y)}}});return Object.assign(Z,$)}function Mh6($){for(let Z=$.length-1;Z>0;Z--){let X=Math.floor(Math.random()*(Z+1));[$[Z],$[X]]=[$[X],$[Z]]}return $}async function kh6($){let Z=[];for await(let X of $)Z.push(X);return Z}class mm1{timers;measures;constructor(){this.timers=new Map,this.measures=new Map}mark($){this.timers.set($,performance.now())}measure($,Z,X){let Q=this.timers.get(Z);if(Q===void 0)throw Error(`${Z} is not defined`);let Y=this.timers.get(X);if(Y===void 0)throw Error(`${X} is not defined`);this.measures.set($,Y-Q)}getEntries(){let $=[];return this.measures.forEach((Z,X)=>{$.push({name:X,duration:Z})}),$}}pm1.Perf=mm1;class im1{max;current;waiting;constructor($=1){this.max=$,this.current=0,this.waiting=[]}lock(){if(this.current++,this.current<=this.max)return Promise.resolve();let $=El0();return this.waiting.push($),$}unlock(){this.current--,this.waiting.pop()?.resolve()}}pm1.SimpleMutex=im1;function nm1($){if($===0)return 0;return Math.floor($/2+Math.random()*$)}function Sh6($=[0,250,250,500,500,3000,5000]){if(!Array.isArray($))$=[0,250,250,500,500,3000,5000];let Z=$.length-1;return{backoff(X){return nm1(X>Z?$[Z]:$[X])}}}function Vh6($){return $*1e6}function Ch6($){return Math.floor($/1e6)}var _h6="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",DN=new Uint8Array(62);for(let $=0;$<62;$++)DN[$]=_h6.charCodeAt($);var xh6=218340105584896;function vh6(){let $=Math.floor(Math.random()*xh6),Z=$%62,X=DN[Z];$=($-Z)/62,Z=$%62;let Q=DN[Z];$=($-Z)/62,Z=$%62;let Y=DN[Z];$=($-Z)/62,Z=$%62;let G=DN[Z];$=($-Z)/62,Z=$%62;let J=DN[Z];$=($-Z)/62,Z=$%62;let K=DN[Z];$=($-Z)/62,Z=$%62;let W=DN[Z];$=($-Z)/62;let H=DN[$];return String.fromCharCode(X,Q,Y,G,J,K,W,H)}});var Zi1=_((em1)=>{Object.defineProperty(em1,"__esModule",{value:!0});em1.nuid=em1.NuidImpl=void 0;var rh6="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",Jw=62,f50=12,am1=10,om1=33,ah6=333,rm1=f50+am1,jl0=new Uint8Array(Jw);for(let $=0;$<Jw;$++)jl0[$]=rh6.charCodeAt($);var v50=4294967296,sm1=BigInt(Jw)**BigInt(am1),Om=Number(sm1/(1n<<32n)),zl0=Number(sm1%(1n<<32n));function sh6($){for(let Z=0;Z<$.length;Z++)$[Z]=Math.floor(Math.random()*256)}function eh6($){if(globalThis?.crypto?.getRandomValues)globalThis.crypto.getRandomValues($);else sh6($)}class Pl0{buf;cbuf;seqHi;seqLo;inc;inited;constructor(){this.buf=new Uint8Array(rm1),this.cbuf=new Uint8Array(f50),this.inited=!1}init(){this.inited=!0,this.setPre(),this.initSeqAndInc(),this.fillSeq()}initSeqAndInc(){let $=0;do this.seqHi=Math.floor(Math.random()*(Om+1)),this.seqLo=Math.floor(Math.random()*v50);while($++<8&&this.seqHi===Om&&this.seqLo>=zl0);if(this.seqHi===Om&&this.seqLo>=zl0)this.seqLo=0;this.inc=Math.random()*(ah6-om1)+om1|0}setPre(){eh6(this.cbuf);for(let $=0;$<f50;$++)this.buf[$]=jl0[this.cbuf[$]%Jw]}fillSeq(){let $=this.seqHi,Z=this.seqLo;for(let X=rm1-1;X>=f50;X--){let Q=Math.floor($/Jw),G=($-Q*Jw)*v50+Z,J=Math.floor(G/Jw),K=G-J*Jw;this.buf[X]=jl0[K],$=Q,Z=J}}next(){if(!this.inited)this.init();if(this.seqLo+=this.inc,this.seqLo>=v50)this.seqLo-=v50,this.seqHi+=1;if(this.seqHi>Om||this.seqHi===Om&&this.seqLo>=zl0)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()}}em1.NuidImpl=Pl0;em1.nuid=new Pl0});var Gi1=_((Qi1)=>{Object.defineProperty(Qi1,"__esModule",{value:!0});Qi1.nuid=Qi1.Nuid=void 0;var Xi1=Zi1();Qi1.Nuid=Xi1.NuidImpl;Qi1.nuid=Xi1.nuid});var y50=_((b50)=>{Object.defineProperty(b50,"__esModule",{value:!0});b50.nuid=b50.Nuid=void 0;var Ji1=Gi1();Object.defineProperty(b50,"Nuid",{enumerable:!0,get:function(){return Ji1.Nuid}});Object.defineProperty(b50,"nuid",{enumerable:!0,get:function(){return Ji1.nuid}})});var Kw=_((Ki1)=>{Object.defineProperty(Ki1,"__esModule",{value:!0});Ki1.DEFAULT_HOST=Ki1.DEFAULT_PORT=Ki1.Match=void 0;Ki1.syncIterator=Gu6;Ki1.createInbox=Ju6;var Qu6=y50(),Yu6=bY();Ki1.Match={Exact:"exact",CanonicalMIME:"canonical",IgnoreCase:"insensitive"};function Gu6($){let Z=$[Symbol.asyncIterator]();return{async next(){let X=await Z.next();if(X.done)return Promise.resolve(null);return Promise.resolve(X.value)}}}function Ju6($=""){if($=$||"_INBOX",typeof $!=="string")throw TypeError("prefix must be a string");return $.split(".").forEach((Z)=>{if(Z==="*"||Z===">")throw Yu6.InvalidArgumentError.format("prefix",`cannot have wildcards ('${$}')`)}),`${$}.${Qu6.nuid.next()}`}Ki1.DEFAULT_PORT=4222;Ki1.DEFAULT_HOST="127.0.0.1"});var Lm=_((Ui1)=>{Object.defineProperty(Ui1,"__esModule",{value:!0});Ui1.DataBuffer=void 0;var Hi1=fY();class Ni1{buffers;byteLength;constructor(){this.buffers=[],this.byteLength=0}static concat(...$){let Z=0;for(let Y=0;Y<$.length;Y++)Z+=$[Y].length;let X=new Uint8Array(Z),Q=0;for(let Y=0;Y<$.length;Y++)X.set($[Y],Q),Q+=$[Y].length;return X}static fromAscii($){if(!$)$="";return Hi1.TE.encode($)}static toAscii($){return Hi1.TD.decode($)}reset(){this.buffers.length=0,this.byteLength=0}pack(){if(this.buffers.length>1){let $=new Uint8Array(this.byteLength),Z=0;for(let X=0;X<this.buffers.length;X++)$.set(this.buffers[X],Z),Z+=this.buffers[X].length;this.buffers.length=0,this.buffers.push($)}}shift(){if(this.buffers.length){let $=this.buffers.shift();if($)return this.byteLength-=$.length,$}return new Uint8Array(0)}drain($){if(this.buffers.length){this.pack();let Z=this.buffers.pop();if(Z){let X=this.byteLength;if($===void 0||$>X)$=X;let Q=Z.subarray(0,$);if(X>$)this.buffers.push(Z.subarray($));return this.byteLength=X-$,Q}}return new Uint8Array(0)}fill($,...Z){if($)this.buffers.push($),this.byteLength+=$.length;for(let X=0;X<Z.length;X++)if(Z[X]&&Z[X].length)this.buffers.push(Z[X]),this.byteLength+=Z[X].length}peek(){if(this.buffers.length)return this.pack(),this.buffers[0];return new Uint8Array(0)}size(){return this.byteLength}length(){return this.buffers.length}}Ui1.DataBuffer=Ni1});var bD=_((Bi1)=>{Object.defineProperty(Bi1,"__esModule",{value:!0});Bi1.LF=Bi1.CR=Bi1.CRLF=Bi1.CR_LF_LEN=Bi1.CR_LF=void 0;Bi1.setTransportFactory=Bu6;Bi1.defaultPort=Ou6;Bi1.getUrlParseFn=Lu6;Bi1.newTransport=Du6;Bi1.getResolveFn=Eu6;Bi1.protoLen=wi1;Bi1.extractProtocolMessage=zu6;var Uu6=fY(),Fu6=Kw(),wu6=Lm(),yY;function Bu6($){yY=$}function Ou6(){return yY!==void 0&&yY.defaultPort!==void 0?yY.defaultPort:Fu6.DEFAULT_PORT}function Lu6(){return yY!==void 0&&yY.urlParseFn?yY.urlParseFn:void 0}function Du6(){if(!yY||typeof yY.factory!=="function")throw Error("transport fn is not set");return yY.factory()}function Eu6(){return yY!==void 0&&yY.dnsResolveFn?yY.dnsResolveFn:void 0}Bi1.CR_LF=`\r
1290
1290
  `;Bi1.CR_LF_LEN=Bi1.CR_LF.length;Bi1.CRLF=wu6.DataBuffer.fromAscii(Bi1.CR_LF);Bi1.CR=new Uint8Array(Bi1.CRLF)[0];Bi1.LF=new Uint8Array(Bi1.CRLF)[1];function wi1($){for(let Z=0;Z<$.length;Z++){let X=Z+1;if($.byteLength>X&&$[Z]===Bi1.CR&&$[X]===Bi1.LF)return X+1}return 0}function zu6($){let Z=wi1($);if(Z>0){let Q=new Uint8Array($).slice(0,Z);return Uu6.TD.decode(Q)}return""}});var ql0=_((Ai1)=>{Object.defineProperty(Ai1,"__esModule",{value:!0});Ai1.ipV4=zi1;Ai1.isIP=Vu6;Ai1.parseIP=ji1;var Dm=4,yD=16,g50=48,Ei1=57,Li1=65,ku6=70,Di1=97,Su6=102,Il0=16777215;function zi1($,Z,X,Q){let Y=new Uint8Array(yD);return[0,0,0,0,0,0,0,0,0,0,255,255].forEach((J,K)=>{Y[K]=J}),Y[12]=$,Y[13]=Z,Y[14]=X,Y[15]=Q,Y}function Vu6($){return ji1($)!==void 0}function ji1($){for(let Z=0;Z<$.length;Z++)switch($[Z]){case".":return Pi1($);case":":return Cu6($)}return}function Pi1($){let Z=new Uint8Array(Dm);for(let X=0;X<Dm;X++){if($.length===0)return;if(X>0){if($[0]!==".")return;$=$.substring(1)}let{n:Q,c:Y,ok:G}=_u6($);if(!G||Q>255)return;$=$.substring(Y),Z[X]=Q}return zi1(Z[0],Z[1],Z[2],Z[3])}function Cu6($){let Z=new Uint8Array(yD),X=-1;if($.length>=2&&$[0]===":"&&$[1]===":"){if(X=0,$=$.substring(2),$.length===0)return Z}let Q=0;while(Q<yD){let{n:Y,c:G,ok:J}=xu6($);if(!J||Y>65535)return;if(G<$.length&&$[G]==="."){if(X<0&&Q!=yD-Dm)return;if(Q+Dm>yD)return;let K=Pi1($);if(K===void 0)return;Z[Q]=K[12],Z[Q+1]=K[13],Z[Q+2]=K[14],Z[Q+3]=K[15],$="",Q+=Dm;break}if(Z[Q]=Y>>8,Z[Q+1]=Y,Q+=2,$=$.substring(G),$.length===0)break;if($[0]!==":"||$.length==1)return;if($=$.substring(1),$[0]===":"){if(X>=0)return;if(X=Q,$=$.substring(1),$.length===0)break}}if($.length!==0)return;if(Q<yD){if(X<0)return;let Y=yD-Q;for(let G=Q-1;G>=X;G--)Z[G+Y]=Z[G];for(let G=X+Y-1;G>=X;G--)Z[G]=0}else if(X>=0)return;return Z}function _u6($){let Z=0,X=0;for(Z=0;Z<$.length&&g50<=$.charCodeAt(Z)&&$.charCodeAt(Z)<=Ei1;Z++)if(X=X*10+($.charCodeAt(Z)-g50),X>=Il0)return{n:Il0,c:Z,ok:!1};if(Z===0)return{n:0,c:0,ok:!1};return{n:X,c:Z,ok:!0}}function xu6($){let Z=0,X=0;for(X=0;X<$.length;X++){if(g50<=$.charCodeAt(X)&&$.charCodeAt(X)<=Ei1)Z*=16,Z+=$.charCodeAt(X)-g50;else if(Di1<=$.charCodeAt(X)&&$.charCodeAt(X)<=Su6)Z*=16,Z+=$.charCodeAt(X)-Di1+10;else if(Li1<=$.charCodeAt(X)&&$.charCodeAt(X)<=ku6)Z*=16,Z+=$.charCodeAt(X)-Li1+10;else break;if(Z>=Il0)return{n:0,c:X,ok:!1}}if(X===0)return{n:0,c:X,ok:!1};return{n:Z,c:X,ok:!0}}});var _l0=_((Ri1)=>{Object.defineProperty(Ri1,"__esModule",{value:!0});Ri1.Servers=Ri1.ServerImpl=void 0;Ri1.isIPV4OrHostname=Ti1;Ri1.hostPort=Cl0;var Ml0=bD(),kl0=YJ(),Sl0=ql0(),yu6=Kw(),gu6=bY();function Ti1($){if($.indexOf("[")!==-1||$.indexOf("::")!==-1)return!1;if($.indexOf(".")!==-1)return!0;if($.split(":").length<=2)return!0;return!1}function Vl0($){return!Ti1($)}function hu6($){let X=$.toUpperCase().indexOf("::FFFF:");if(X!==-1&&$.indexOf(".")!==-1){let Q=$.substring(X+7);return Q=Q.replace("[",""),Q.replace("]","")}return $}function Cl0($){if($=$.trim(),$.match(/^(.*:\/\/)(.*)/m))$=$.replace(/^(.*:\/\/)(.*)/gm,"$2");if($=hu6($),Vl0($)&&$.indexOf("[")===-1)$=`[${$}]`;let Z=Vl0($)?$.match(/(]:)(\d+)/):$.match(/(:)(\d+)/),X=Z&&Z.length===3&&Z[1]&&Z[2]?parseInt(Z[2]):yu6.DEFAULT_PORT,Y=new URL(`${X===80?"https":"http"}://${$}`);Y.port=`${X}`;let G=Y.hostname;if(G.charAt(0)==="[")G=G.substring(1,G.length-1);return{listen:Y.host,hostname:G,port:X}}class uf{src;listen;hostname;port;didConnect;reconnects;lastConnect;gossiped;tlsName;resolves;constructor($,Z=!1){this.src=$,this.tlsName="";let X=Cl0($);this.listen=X.listen,this.hostname=X.hostname,this.port=X.port,this.didConnect=!1,this.reconnects=0,this.lastConnect=0,this.gossiped=Z}toString(){return this.listen}async resolve($){if(!$.fn||$.resolve===!1)return[this];let Z=[];if((0,Sl0.isIP)(this.hostname))return[this];else{let X=await $.fn(this.hostname);if($.debug)console.log(`resolve ${this.hostname} = ${X.join(",")}`);for(let Q of X){let Y=this.port===80?"https":"http",G=new URL(`${Y}://${Vl0(Q)?"["+Q+"]":Q}`);G.port=`${this.port}`;let J=new uf(G.host,!1);J.tlsName=this.hostname,Z.push(J)}}if($.randomize)(0,kl0.shuffle)(Z);return this.resolves=Z,Z}}Ri1.ServerImpl=uf;class h50{firstSelect;servers;currentServer;tlsName;randomize;constructor($={}){this.firstSelect=!0,this.servers=[],this.tlsName="",this.randomize=$.randomize||!1}setServers($){if(!Array.isArray($)||$.length===0)throw gu6.InvalidArgumentError.format("servers","cannot be empty");let Z=(0,Ml0.getUrlParseFn)(),X=new Map;for(let Y of this.servers)X.set(Y.listen,Y);let Q=[];for(let Y of $){Y=Z?Z(Y):Y;let{listen:G}=Cl0(Y),J=X.get(G);if(J)J.gossiped=!1,Q.push(J);else Q.push(new uf(Y))}if(this.randomize)(0,kl0.shuffle)(Q);if(this.servers=Q,this.currentServer===void 0||!Q.includes(this.currentServer))this.currentServer=Q[0],this.firstSelect=!0}clear(){this.servers.length=0}updateTLSName(){let $=this.getCurrentServer();if(!(0,Sl0.isIP)($.hostname))this.tlsName=$.hostname,this.servers.forEach((Z)=>{if(Z.gossiped)Z.tlsName=this.tlsName})}getCurrentServer(){return this.currentServer}addServer($,Z=!1){let X=(0,Ml0.getUrlParseFn)();$=X?X($):$;let Q=new uf($,Z);if((0,Sl0.isIP)(Q.hostname))Q.tlsName=this.tlsName;this.servers.push(Q)}selectServer(){if(this.firstSelect)return this.firstSelect=!1,this.currentServer;let $=this.servers.shift();if($)this.servers.push($),this.currentServer=$;return $}removeCurrentServer(){this.removeServer(this.currentServer)}removeServer($){if($){let Z=this.servers.indexOf($);this.servers.splice(Z,1)}}snapshot(){return h50.freezeAll(this.servers)}snapshotForHandler(){let $=this.currentServer;if(!$)return this.snapshot();let Z=this.servers.indexOf($);if(Z<=0)return this.snapshot();return h50.freezeAll([$,...this.servers.slice(0,Z),...this.servers.slice(Z+1)])}static freezeAll($){return $.map((Z)=>Object.freeze({hostname:Z.hostname,port:Z.port,listen:Z.listen,src:Z.src,tlsName:Z.tlsName,reconnects:Z.reconnects,lastConnect:Z.lastConnect,gossiped:Z.gossiped,didConnect:Z.didConnect}))}find($){return this.servers.find((Z)=>Z.listen===$.listen)}setCurrent($){this.currentServer=$}length(){return this.servers.length}next(){return this.servers.length?this.servers[0]:void 0}getServers(){return this.servers}update($,Z){let X=[],Q=[],Y=(0,Ml0.getUrlParseFn)(),G=new Map;if($.connect_urls&&$.connect_urls.length>0)$.connect_urls.forEach((K)=>{K=Y?Y(K,Z):K;let W=new uf(K,!0);G.set(K,W)});let J=[];if(this.servers.forEach((K,W)=>{let H=K.listen;if(K.gossiped&&this.currentServer.listen!==H&&G.get(H)===void 0)J.push(W);G.delete(H)}),J.reverse(),J.forEach((K)=>{let W=this.servers.splice(K,1);Q=Q.concat(W[0].listen)}),G.forEach((K,W)=>{this.servers.push(K),X.push(W)}),this.randomize&&X.length>0){let K=this.currentServer,W=this.servers.filter((H)=>H!==K);(0,kl0.shuffle)(W),this.servers=K?[K,...W]:W}return{added:X,deleted:Q}}}Ri1.Servers=h50});var u50=_((ki1)=>{Object.defineProperty(ki1,"__esModule",{value:!0});ki1.QueuedIteratorImpl=void 0;var xl0=YJ(),qi1=bY();class Mi1{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,xl0.deferred)(),this.yields=[],this.iterClosed=(0,xl0.deferred)(),this.time=0,this.yielding=!1,this.didBreak=!1,this.profile=!1}[Symbol.asyncIterator](){return this.iterate()}push($){if(this.done)return;if(this.didBreak){if(typeof $==="function"){let Z=$;try{Z()}catch(X){}}return}if(typeof $==="function")this.pendingFiltered++;this.yields.push($),this.signal.resolve()}async*iterate(){if(this.noIterator)throw new qi1.InvalidOperationError("iterator cannot be used when a callback is registered");if(this.yielding)throw new qi1.InvalidOperationError("iterator is already yielding");this.yielding=!0;try{while(!0){if(this.yields.length===0)await this.signal;if(this.err)throw this.err;let $=this.yields;this.inflight=$.length,this.yields=[];for(let Z=0;Z<$.length;Z++){if(typeof $[Z]==="function"){this.pendingFiltered--;let Q=$[Z];try{Q()}catch(Y){throw Y}if(this.err)throw this.err;continue}this.processed++,this.inflight--;let X=this.profile?Date.now():0;yield $[Z],this.time=this.profile?Date.now()-X:0}if(this.done)break;else if(this.yields.length===0)$.length=0,this.yields=$,this.signal=(0,xl0.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}}ki1.QueuedIteratorImpl=Mi1});var vl0=_((_i1)=>{Object.defineProperty(_i1,"__esModule",{value:!0});_i1.MuxSubscription=void 0;var du6=Kw(),Vi1=bY();class Ci1{baseInbox;reqs;constructor(){this.reqs=new Map}size(){return this.reqs.size}init($){return this.baseInbox=`${(0,du6.createInbox)($)}.`,this.baseInbox}add($){if(!isNaN($.received))$.received=0;this.reqs.set($.token,$)}get($){return this.reqs.get($)}cancel($){this.reqs.delete($.token)}getToken($){let Z=$.subject||"";if(Z.indexOf(this.baseInbox)===0)return Z.substring(this.baseInbox.length);return null}all(){return Array.from(this.reqs.values())}handleError($,Z){if($)return this.all().forEach((X)=>{X.resolver(Z,{})}),!0;if(Z.operation==="publish"){let X=this.all().find((Q)=>{return Q.requestSubject===Z.subject});if(X)return X.resolver(Z,{}),!0}return!1}dispatcher(){return($,Z)=>{let X=this.getToken(Z);if(X){let Q=this.get(X);if(Q){if($===null)$=Z?.data?.length===0&&Z.headers?.code===503?new Vi1.NoRespondersError(Q.requestSubject):null;Q.resolver($,Z)}}}}close(){let $=new Vi1.RequestError("connection closed");this.reqs.forEach((Z)=>{Z.resolver($,{})})}}_i1.MuxSubscription=Ci1});var fl0=_((fi1)=>{Object.defineProperty(fi1,"__esModule",{value:!0});fi1.Heartbeat=void 0;var mu6=YJ();class vi1{ph;interval;maxOut;timer;pendings;constructor($,Z,X){this.ph=$,this.interval=Z,this.maxOut=X,this.pendings=[]}start(){this.cancel(),this._schedule()}cancel($){if(this.timer)clearTimeout(this.timer),this.timer=void 0;if(this._reset(),$)this.ph.disconnect()}_schedule(){this.timer=setTimeout(()=>{if(this.ph.dispatchStatus({type:"ping",pendingPings:this.pendings.length+1}),this.pendings.length===this.maxOut){this.cancel(!0);return}let $=(0,mu6.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})}}fi1.Heartbeat=vi1});var gl0=_((ui1)=>{Object.defineProperty(ui1,"__esModule",{value:!0});ui1.DenoBuffer=ui1.MAX_SIZE=ui1.AssertionError=void 0;ui1.assert=gi1;ui1.concat=hi1;ui1.append=nu6;ui1.readAll=pu6;ui1.writeAll=tu6;var iu6=fY();class bl0 extends Error{constructor($){super($);this.name="AssertionError"}}ui1.AssertionError=bl0;function gi1($,Z="Assertion failed."){if(!$)throw new bl0(Z)}var yi1=32768;ui1.MAX_SIZE=4294967294;function c50($,Z,X=0){let Q=Z.byteLength-X;if($.byteLength>Q)$=$.subarray(0,Q);return Z.set($,X),$.byteLength}function hi1($,Z){if($===void 0&&Z===void 0)return new Uint8Array(0);if($===void 0)return Z;if(Z===void 0)return $;let X=new Uint8Array($.length+Z.length);return X.set($,0),X.set(Z,$.length),X}function nu6($,Z){return hi1($,Uint8Array.of(Z))}class yl0{_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($){gi1($<=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=c50(this._buf.subarray(this._off),$);return this._off+=Z,Z}writeByte($){return this.write(Uint8Array.of($))}writeString($){return this.write(iu6.TE.encode($))}write($){let Z=this._grow($.byteLength);return c50($,this._buf,Z)}_grow($){let Z=this.length;if(Z===0&&this._off!==0)this.reset();let X=this._tryGrowByReslice($);if(X>=0)return X;let Q=this.capacity;if($<=Math.floor(Q/2)-Z)c50(this._buf.subarray(this._off),this._buf);else if(Q+$>ui1.MAX_SIZE)throw Error("The buffer cannot be grown beyond the maximum size.");else{let Y=new Uint8Array(Math.min(2*Q+$,ui1.MAX_SIZE));c50(this._buf.subarray(this._off),Y),this._buf=Y}return this._off=0,this._reslice(Math.min(Z+$,ui1.MAX_SIZE)),Z}grow($){if($<0)throw Error("Buffer._grow: negative count");let Z=this._grow($);this._reslice(Z)}readFrom($){let Z=0,X=new Uint8Array(yi1);while(!0){let Q=this.capacity-this.length<yi1,Y=Q?X:new Uint8Array(this._buf.buffer,this.length),G=$.read(Y);if(G===null)return Z;if(Q)this.write(Y.subarray(0,G));else this._reslice(this.length+G);Z+=G}}}ui1.DenoBuffer=yl0;function pu6($){let Z=new yl0;return Z.readFrom($),Z.bytes()}function tu6($,Z){let X=0;while(X<Z.length)X+=$.write(Z.subarray(X))}});var cl0=_((ii1)=>{Object.defineProperty(ii1,"__esModule",{value:!0});ii1.cc=ii1.State=ii1.Parser=ii1.Kind=void 0;ii1.describe=Zc6;var hl0=gl0(),ul0=fY();ii1.Kind={OK:0,ERR:1,MSG:2,INFO:3,PING:4,PONG:5};function Zc6($){let Z,X="";switch($.kind){case ii1.Kind.MSG:Z="MSG";break;case ii1.Kind.OK:Z="OK";break;case ii1.Kind.ERR:Z="ERR",X=ul0.TD.decode($.data);break;case ii1.Kind.PING:Z="PING";break;case ii1.Kind.PONG:Z="PONG";break;case ii1.Kind.INFO:Z="INFO",X=ul0.TD.decode($.data)}return`${Z}: ${X}`}function li1(){let $={};return $.sid=-1,$.hdr=-1,$.size=-1,$}var di1=48,Xc6=57,cf=67108864;class mi1{dispatcher;state;as;drop;hdr;ma;argBuf;msgBuf;constructor($){this.dispatcher=$,this.state=ii1.State.OP_START,this.as=0,this.drop=0,this.hdr=0}parse($){let Z;for(Z=0;Z<$.length;Z++){let X=$[Z];switch(this.state){case ii1.State.OP_START:switch(X){case ii1.cc.M:case ii1.cc.m:this.state=ii1.State.OP_M,this.hdr=-1,this.ma=li1();break;case ii1.cc.H:case ii1.cc.h:this.state=ii1.State.OP_H,this.hdr=0,this.ma=li1();break;case ii1.cc.P:case ii1.cc.p:this.state=ii1.State.OP_P;break;case ii1.cc.PLUS:this.state=ii1.State.OP_PLUS;break;case ii1.cc.MINUS:this.state=ii1.State.OP_MINUS;break;case ii1.cc.I:case ii1.cc.i:this.state=ii1.State.OP_I;break;default:throw this.fail($.subarray(Z))}break;case ii1.State.OP_H:switch(X){case ii1.cc.M:case ii1.cc.m:this.state=ii1.State.OP_M;break;default:throw this.fail($.subarray(Z))}break;case ii1.State.OP_M:switch(X){case ii1.cc.S:case ii1.cc.s:this.state=ii1.State.OP_MS;break;default:throw this.fail($.subarray(Z))}break;case ii1.State.OP_MS:switch(X){case ii1.cc.G:case ii1.cc.g:this.state=ii1.State.OP_MSG;break;default:throw this.fail($.subarray(Z))}break;case ii1.State.OP_MSG:switch(X){case ii1.cc.SPACE:case ii1.cc.TAB:this.state=ii1.State.OP_MSG_SPC;break;default:throw this.fail($.subarray(Z))}break;case ii1.State.OP_MSG_SPC:switch(X){case ii1.cc.SPACE:case ii1.cc.TAB:continue;default:this.state=ii1.State.MSG_ARG,this.as=Z}break;case ii1.State.MSG_ARG:switch(X){case ii1.cc.CR:this.drop=1;break;case ii1.cc.NL:{let Q=this.argBuf?this.argBuf.bytes():$.subarray(this.as,Z-this.drop);this.processMsgArgs(Q),this.drop=0,this.as=Z+1,this.state=ii1.State.MSG_PAYLOAD,Z=this.as+this.ma.size-1;break}default:if(this.argBuf)this.argBuf.writeByte(X)}break;case ii1.State.MSG_PAYLOAD:if(this.msgBuf)if(this.msgBuf.length>=this.ma.size){let Q=this.msgBuf.bytes({copy:!1});this.dispatcher.push({kind:ii1.Kind.MSG,msg:this.ma,data:Q}),this.argBuf=void 0,this.msgBuf=void 0,this.state=ii1.State.MSG_END}else{let Q=this.ma.size-this.msgBuf.length,Y=$.length-Z;if(Y<Q)Q=Y;if(Q>0)this.msgBuf.write($.subarray(Z,Z+Q)),Z=Z+Q-1;else this.msgBuf.writeByte(X)}else if(Z-this.as>=this.ma.size)this.dispatcher.push({kind:ii1.Kind.MSG,msg:this.ma,data:$.subarray(this.as,Z)}),this.argBuf=void 0,this.msgBuf=void 0,this.state=ii1.State.MSG_END;break;case ii1.State.MSG_END:switch(X){case ii1.cc.NL:this.drop=0,this.as=Z+1,this.state=ii1.State.OP_START;break;default:continue}break;case ii1.State.OP_PLUS:switch(X){case ii1.cc.O:case ii1.cc.o:this.state=ii1.State.OP_PLUS_O;break;default:throw this.fail($.subarray(Z))}break;case ii1.State.OP_PLUS_O:switch(X){case ii1.cc.K:case ii1.cc.k:this.state=ii1.State.OP_PLUS_OK;break;default:throw this.fail($.subarray(Z))}break;case ii1.State.OP_PLUS_OK:switch(X){case ii1.cc.NL:this.dispatcher.push({kind:ii1.Kind.OK}),this.drop=0,this.state=ii1.State.OP_START;break}break;case ii1.State.OP_MINUS:switch(X){case ii1.cc.E:case ii1.cc.e:this.state=ii1.State.OP_MINUS_E;break;default:throw this.fail($.subarray(Z))}break;case ii1.State.OP_MINUS_E:switch(X){case ii1.cc.R:case ii1.cc.r:this.state=ii1.State.OP_MINUS_ER;break;default:throw this.fail($.subarray(Z))}break;case ii1.State.OP_MINUS_ER:switch(X){case ii1.cc.R:case ii1.cc.r:this.state=ii1.State.OP_MINUS_ERR;break;default:throw this.fail($.subarray(Z))}break;case ii1.State.OP_MINUS_ERR:switch(X){case ii1.cc.SPACE:case ii1.cc.TAB:this.state=ii1.State.OP_MINUS_ERR_SPC;break;default:throw this.fail($.subarray(Z))}break;case ii1.State.OP_MINUS_ERR_SPC:switch(X){case ii1.cc.SPACE:case ii1.cc.TAB:continue;default:this.state=ii1.State.MINUS_ERR_ARG,this.as=Z}break;case ii1.State.MINUS_ERR_ARG:switch(X){case ii1.cc.CR:this.drop=1;break;case ii1.cc.NL:{let Q;if(this.argBuf)Q=this.argBuf.bytes(),this.argBuf=void 0;else Q=$.subarray(this.as,Z-this.drop);this.dispatcher.push({kind:ii1.Kind.ERR,data:Q}),this.drop=0,this.as=Z+1,this.state=ii1.State.OP_START;break}default:if(this.argBuf)this.argBuf.write(Uint8Array.of(X))}break;case ii1.State.OP_P:switch(X){case ii1.cc.I:case ii1.cc.i:this.state=ii1.State.OP_PI;break;case ii1.cc.O:case ii1.cc.o:this.state=ii1.State.OP_PO;break;default:throw this.fail($.subarray(Z))}break;case ii1.State.OP_PO:switch(X){case ii1.cc.N:case ii1.cc.n:this.state=ii1.State.OP_PON;break;default:throw this.fail($.subarray(Z))}break;case ii1.State.OP_PON:switch(X){case ii1.cc.G:case ii1.cc.g:this.state=ii1.State.OP_PONG;break;default:throw this.fail($.subarray(Z))}break;case ii1.State.OP_PONG:switch(X){case ii1.cc.NL:this.dispatcher.push({kind:ii1.Kind.PONG}),this.drop=0,this.state=ii1.State.OP_START;break}break;case ii1.State.OP_PI:switch(X){case ii1.cc.N:case ii1.cc.n:this.state=ii1.State.OP_PIN;break;default:throw this.fail($.subarray(Z))}break;case ii1.State.OP_PIN:switch(X){case ii1.cc.G:case ii1.cc.g:this.state=ii1.State.OP_PING;break;default:throw this.fail($.subarray(Z))}break;case ii1.State.OP_PING:switch(X){case ii1.cc.NL:this.dispatcher.push({kind:ii1.Kind.PING}),this.drop=0,this.state=ii1.State.OP_START;break}break;case ii1.State.OP_I:switch(X){case ii1.cc.N:case ii1.cc.n:this.state=ii1.State.OP_IN;break;default:throw this.fail($.subarray(Z))}break;case ii1.State.OP_IN:switch(X){case ii1.cc.F:case ii1.cc.f:this.state=ii1.State.OP_INF;break;default:throw this.fail($.subarray(Z))}break;case ii1.State.OP_INF:switch(X){case ii1.cc.O:case ii1.cc.o:this.state=ii1.State.OP_INFO;break;default:throw this.fail($.subarray(Z))}break;case ii1.State.OP_INFO:switch(X){case ii1.cc.SPACE:case ii1.cc.TAB:this.state=ii1.State.OP_INFO_SPC;break;default:throw this.fail($.subarray(Z))}break;case ii1.State.OP_INFO_SPC:switch(X){case ii1.cc.SPACE:case ii1.cc.TAB:continue;default:this.state=ii1.State.INFO_ARG,this.as=Z}break;case ii1.State.INFO_ARG:switch(X){case ii1.cc.CR:this.drop=1;break;case ii1.cc.NL:{let Q;if(this.argBuf)Q=this.argBuf.bytes(),this.argBuf=void 0;else Q=$.subarray(this.as,Z-this.drop);this.dispatcher.push({kind:ii1.Kind.INFO,data:Q}),this.drop=0,this.as=Z+1,this.state=ii1.State.OP_START;break}default:if(this.argBuf)this.argBuf.writeByte(X)}break;default:throw this.fail($.subarray(Z))}}if((this.state===ii1.State.MSG_ARG||this.state===ii1.State.MINUS_ERR_ARG||this.state===ii1.State.INFO_ARG)&&!this.argBuf)this.argBuf=new hl0.DenoBuffer($.subarray(this.as,Z-this.drop));if(this.state===ii1.State.MSG_PAYLOAD&&!this.msgBuf){if(!this.argBuf)this.cloneMsgArg();this.msgBuf=new hl0.DenoBuffer($.subarray(this.as))}}cloneMsgArg(){let $=this.ma.subject.length,Z=this.ma.reply?this.ma.reply.length:0,X=new Uint8Array($+Z);if(X.set(this.ma.subject),this.ma.reply)X.set(this.ma.reply,$);if(this.argBuf=new hl0.DenoBuffer(X),this.ma.subject=X.subarray(0,$),this.ma.reply)this.ma.reply=X.subarray($)}processMsgArgs($){if(this.hdr>=0)return this.processHeaderMsgArgs($);let Z=[],X=-1;for(let Q=0;Q<$.length;Q++)switch($[Q]){case ii1.cc.SPACE:case ii1.cc.TAB:case ii1.cc.CR:case ii1.cc.NL:if(X>=0)Z.push($.subarray(X,Q)),X=-1;break;default:if(X<0)X=Q}if(X>=0)Z.push($.subarray(X));switch(Z.length){case 3:this.ma.subject=Z[0],this.ma.sid=this.protoParseInt(Z[1]),this.ma.reply=void 0,this.ma.size=this.protoParseInt(Z[2],cf);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],cf);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}: ${ul0.TD.decode($)}`)}processHeaderMsgArgs($){let Z=[],X=-1;for(let Q=0;Q<$.length;Q++)switch($[Q]){case ii1.cc.SPACE:case ii1.cc.TAB:case ii1.cc.CR:case ii1.cc.NL:if(X>=0)Z.push($.subarray(X,Q)),X=-1;break;default:if(X<0)X=Q}if(X>=0)Z.push($.subarray(X));switch(Z.length){case 4:this.ma.subject=Z[0],this.ma.sid=this.protoParseInt(Z[1]),this.ma.reply=void 0,this.ma.hdr=this.protoParseInt(Z[2],cf),this.ma.size=this.protoParseInt(Z[3],cf);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],cf),this.ma.size=this.protoParseInt(Z[4],cf);break;default:throw this.fail($,"processHeaderMsgArgs Parse Error")}if(this.ma.sid<0)throw this.fail($,"processHeaderMsgArgs Bad or Missing Sid Error");if(this.ma.hdr<0||this.ma.hdr>this.ma.size)throw this.fail($,"processHeaderMsgArgs Bad or Missing Header Size Error");if(this.ma.size<0)throw this.fail($,"processHeaderMsgArgs Bad or Missing Size Error")}protoParseInt($,Z){if($.length===0||$.length>15)return-1;let X=0;for(let Q=0;Q<$.length;Q++){if($[Q]<di1||$[Q]>Xc6)return-1;X=X*10+($[Q]-di1)}return Z!==void 0&&X>Z?-1:X}}ii1.Parser=mi1;ii1.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};ii1.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 m50=_((pi1)=>{Object.defineProperty(pi1,"__esModule",{value:!0});pi1.MsgHdrsImpl=void 0;pi1.canonicalMIMEHeaderKey=dl0;pi1.headers=Gc6;var ni1=fY(),GJ=Kw(),d50=bY();function dl0($){let N=!0,U=Array($.length);for(let F=0;F<$.length;F++){let w=$.charCodeAt(F);if(w===58||w<33||w>126)throw d50.InvalidArgumentError.format("header",`'${$[F]}' is not a valid character in a header name`);if(N&&97<=w&&w<=122)w-=32;else if(!N&&65<=w&&w<=90)w+=32;U[F]=w,N=w==45}return String.fromCharCode(...U)}function Gc6($=0,Z=""){if($===0&&Z!=="")throw d50.InvalidArgumentError.format("code","is required");else if($>0&&Z==="")throw d50.InvalidArgumentError.format("description","is required");return new lf($,Z)}var ll0="NATS/1.0";class lf{_code;headers;_description;constructor($=0,Z=""){this._code=$,this._description=Z,this.headers=new Map}[Symbol.iterator](){return this.headers.entries()}size(){return this.headers.size}equals($){if($&&this.headers.size===$.headers.size&&this._code===$._code){for(let[Z,X]of this.headers){let Q=$.values(Z);if(X.length!==Q.length)return!1;let Y=[...X].sort(),G=[...Q].sort();for(let J=0;J<Y.length;J++)if(Y[J]!==G[J])return!1}return!0}return!1}static decode($){let Z=new lf,Q=ni1.TD.decode($).split(`\r
1291
1291
  `),Y=Q[0];if(Y!==ll0){let G=Y.replace(ll0,"").trim();if(G.length>0){if(Z._code=parseInt(G,10),isNaN(Z._code))Z._code=0;let J=Z._code.toString();G=G.replace(J,""),Z._description=G.trim()}}if(Q.length>=1)Q.slice(1).map((G)=>{if(G){let J=G.indexOf(":");if(J>-1){let K=G.slice(0,J),W=G.slice(J+1).trim();Z.append(K,W)}}});return Z}toString(){if(this.headers.size===0&&this._code===0)return"";let $=ll0;if(this._code>0&&this._description!=="")$+=` ${this._code} ${this._description}`;for(let[Z,X]of this.headers)for(let Q=0;Q<X.length;Q++)$=`${$}\r
1292
1292
  ${Z}: ${X[Q]}`;return`${$}\r
@@ -2270,7 +2270,7 @@ Keep both indexes concise \u2014 a curated list of durable facts and one-line po
2270
2270
  - \`org/public/<set>/\` \u2014 curated read-only skill sets, mounted here. Your skills are listed in the <available-skills> catalog; load one with the \`skill\` tool before applying it.
2271
2271
  - \`org/upload/\` \u2014 files the user attached to this conversation are already here; read them directly (no copy step needed).
2272
2272
  - \`org/output/\` \u2014 write final deliverables here; they are shared back to the organization under this run's folder.
2273
- </organization-filesystem>`}var MB=O(()=>{Zz();xa0()});function va0($){let Z=new Map;for(let Q of $){let Y=Z.get(Q.message_id);if(Y)Y.push(Q);else Z.set(Q.message_id,[Q])}let X=[];for(let[Q,Y]of Z){let G=[...Y].sort((K,W)=>K.seq-W.seq),J=G[0];X.push({id:Q,role:J.role,parts:G.filter((K)=>K.kind!=="finish").map((K)=>K.payload&&typeof K.payload==="object"&&!Array.isArray(K.payload)?{...K.payload,created_at:K.created_at}:K.payload),created_at:J.created_at,status:G.some((K)=>K.kind==="finish")?"complete":"in_progress",metadata:G.find((K)=>K.kind==="finish")?.metadata??null})}return X.sort((Q,Y)=>Q.created_at<Y.created_at?-1:Q.created_at>Y.created_at?1:0),X}function JN4($,Z){let X=0,Q=0,Y=[$];while(Y.length>0){if(X>Z||++Q>YN4)return 1/0;let G=Y.pop();if(typeof G==="string")X+=G.length;else if(Array.isArray(G))for(let J of G)Y.push(J);else if(G!==null&&typeof G==="object")for(let J of Object.values(G))Y.push(J)}return X}function HN4($){return $.replace(KN4,"").replace(WN4,"\uFFFD")}function XJ8($){if(JN4($,ZJ8)>ZJ8)return JSON.stringify({truncated:!0,reason:"payload exceeds max stored size"});return JSON.stringify($,(Z,X)=>typeof X==="string"?HN4(X):X)}class fa0{db;constructor($){this.db=$}async serializeParts($){let Z=new Set,X=[],Q=new Map;for(let Y=0;Y<$.length;Y++){let G=$[Y];if(Z.has(G.id))continue;if(Z.add(G.id),Q.set(G.id,G),X.push({id:G.id,seq:G.seq,org_id:G.org_id,thread_id:G.thread_id,run_id:G.run_id,message_id:G.message_id,role:G.role,kind:G.kind,payload:XJ8(G.payload),payload_ref:G.payload_ref??null,metadata:G.metadata!=null?XJ8(G.metadata):null,created_at:G.created_at}),(Y+1)%GN4===0)await h8(0)}return{rows:X,partsById:Q}}async appendParts($){if($.length===0)return[];let{rows:Z,partsById:X}=await this.serializeParts($);return(await this.db.insertInto("thread_message_parts").values(Z).onConflict((Y)=>Y.column("id").doNothing()).returning("id").execute()).map((Y)=>X.get(Y.id)).filter((Y)=>Y!==void 0)}async replaceMessageParts($,Z,X){let{rows:Q}=await this.serializeParts(X);return await this.db.transaction().execute(async(Y)=>{let G=await Y.selectFrom("thread_message_parts").select((W)=>W.fn.min("created_at").as("created_at")).where("thread_id","=",$).where("message_id","=",Z).executeTakeFirst(),J=G?.created_at!=null?new Date(G.created_at).getTime():null,K=J!=null&&Number.isFinite(J)?Q.map((W)=>({...W,created_at:new Date(J+W.seq).toISOString()})):Q;if(await Y.deleteFrom("thread_message_parts").where("thread_id","=",$).where("message_id","=",Z).execute(),K.length>0)await Y.insertInto("thread_message_parts").values(K).onConflict((W)=>W.column("id").doUpdateSet((H)=>({seq:H.ref("excluded.seq"),role:H.ref("excluded.role"),kind:H.ref("excluded.kind"),payload:H.ref("excluded.payload"),payload_ref:H.ref("excluded.payload_ref"),metadata:H.ref("excluded.metadata"),created_at:H.ref("excluded.created_at")}))).execute()}),X}async deleteMessageParts($,Z){await this.db.deleteFrom("thread_message_parts").where("thread_id","=",$).where("message_id","=",Z).execute()}async maxCreatedAtMsForRun($){let Z=await this.db.selectFrom("thread_message_parts").select((Q)=>Q.fn.max("created_at").as("max")).where("run_id","=",$).executeTakeFirst();if(!Z?.max)return null;let X=new Date(Z.max).getTime();return Number.isFinite(X)?X:null}async maxCreatedAtMsForMessage($,Z){let X=await this.db.selectFrom("thread_message_parts").select((Y)=>Y.fn.max("created_at").as("max")).where("run_id","=",$).where("message_id","=",Z).executeTakeFirst();if(!X?.max)return null;let Q=new Date(X.max).getTime();return Number.isFinite(Q)?Q:null}async loadWindow($,Z){let X=await this.db.selectFrom("thread_message_parts").select(["message_id"]).where("thread_id","=",$).where("kind","=","finish").orderBy("created_at","desc").orderBy("id","desc").limit(Z.limit).offset(Z.offset??0).execute(),Q=await this.db.selectFrom("thread_message_parts").select((W)=>W.fn.count("id").as("count")).where("thread_id","=",$).where("kind","=","finish").executeTakeFirst(),Y=Number(Q?.count??0),G=Z.includeInFlight&&(Z.offset??0)===0?await this.db.selectFrom("thread_message_parts as p").select("p.message_id").distinct().where("p.thread_id","=",$).where((W)=>W.not(W.exists(W.selectFrom("thread_message_parts as f").select("f.id").whereRef("f.message_id","=","p.message_id").where("f.thread_id","=",$).where("f.kind","=","finish")))).execute():[],J=[...X.map((W)=>W.message_id),...G.map((W)=>W.message_id)];if(J.length===0)return{messages:[],total:Y};let K=await this.db.selectFrom("thread_message_parts").selectAll().where("thread_id","=",$).where("message_id","in",J).orderBy("seq","asc").execute();return{messages:va0(K),total:Y}}async backfillFromMessages($,Z){let X=[],Q=0;for(let Y of $)X.push({id:`${Z.runId}:${Y.id}:content`,seq:Q++,org_id:Z.orgId,thread_id:Z.threadId,run_id:Z.runId,message_id:Y.id,role:Y.role,kind:"text",payload:Y.parts,payload_ref:null,metadata:Y.metadata??null,created_at:Y.created_at}),X.push({id:`${Z.runId}:${Y.id}:finish`,seq:Q++,org_id:Z.orgId,thread_id:Z.threadId,run_id:Z.runId,message_id:Y.id,role:Y.role,kind:"finish",payload:{},payload_ref:null,metadata:null,created_at:Y.created_at});await this.appendParts(X)}}var ZJ8=50000000,YN4=1e5,GN4=25,KN4,WN4;var QJ8=O(()=>{a$();KN4=/\u0000/g,WN4=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g});import{sql as Lg}from"kysely";function Xz($){return typeof $==="string"?$:$.toISOString()}function YJ8($){return $.replace(/[\\%_]/g,"\\$&")}class ba0{inner;organizationId;constructor($,Z){this.inner=$;this.organizationId=Z}requireOrg(){if(!this.organizationId)throw Error("OrgScopedThreadStorage: thread operations require an authenticated organization");return this.organizationId}setOrganizationId($){this.organizationId=$}getOrganizationId(){return this.organizationId}create($){let Z=this.requireOrg();return this.inner.create({...$,organization_id:Z})}get($){return this.inner.get($,this.requireOrg())}update($,Z){return this.inner.update($,this.requireOrg(),Z)}pinRuntimeIfUnset($,Z){return this.inner.pinRuntimeIfUnset($,this.requireOrg(),Z)}completeRunIfNotCompleted($){return this.inner.completeRunIfNotCompleted($,this.requireOrg())}markRunFailed($,Z,X){return this.inner.markRunFailed($,this.requireOrg(),Z,X)}requiresActionIfInProgress($){return this.inner.requiresActionIfInProgress($,this.requireOrg())}forceFailIfInProgress($,Z){return this.inner.forceFailIfInProgress($,this.requireOrg(),Z)}delete($){return this.inner.delete($,this.requireOrg())}list($,Z){return this.inner.list(this.requireOrg(),$,Z)}listByTriggerIds($,Z){return this.inner.listByTriggerIds(this.requireOrg(),$,Z)}findLastUsedByVirtualMcpIds($){return this.inner.findLastUsedByVirtualMcpIds(this.requireOrg(),$)}bumpProgress($){return this.inner.bumpProgress($,this.requireOrg())}getProgress($){return this.inner.getProgress($,this.requireOrg())}listMessages($,Z){return this.inner.listMessages($,this.requireOrg(),Z)}listWithLastMessage($){return this.inner.listWithLastMessage(this.requireOrg(),$)}messageParts(){return this.inner.messageParts()}getRunFence($){return this.inner.getRunFence($)}setRunFence($,Z){return this.inner.setRunFence($,Z)}setCancelRequested($,Z){return this.inner.setCancelRequested($,Z)}getCancelRequestedAt($){return this.inner.getCancelRequestedAt($)}clearCancelRequested($){return this.inner.clearCancelRequested($)}bumpAckedSeq($,Z,X){return this.inner.bumpAckedSeq($,this.requireOrg(),Z,X)}getAckedSeq($){return this.inner.getAckedSeq($,this.requireOrg())}}class Dg{db;constructor($){this.db=$}messageParts(){return new fa0(this.db)}async create($){let Z=$.id??$4("thrd"),X=new Date().toISOString();if(!$.organization_id)throw Error("organization_id is required");if(!$.created_by)throw Error("created_by is required");if(!$.title)$.title=qB;let Q={id:Z,organization_id:$.organization_id,title:$.title,description:$.description??null,status:$.status??"completed",trigger_id:$.trigger_id??null,virtual_mcp_id:$.virtual_mcp_id??"",branch:$.branch??null,sandbox_provider_kind:$.sandbox_provider_kind??null,harness_id:$.harness_id??null,created_at:X,updated_at:X,created_by:$.created_by,updated_by:$.updated_by??null,...$.message_storage_version!==void 0?{message_storage_version:$.message_storage_version}:{},...$.metadata!==void 0?{metadata:JSON.stringify($.metadata)}:{}},Y=await this.db.insertInto("threads").values(Q).onConflict((J)=>J.column("id").doNothing()).returningAll().executeTakeFirst();if(Y)return{...this.threadFromDbRow(Y),isNew:!0};let G=await this.db.selectFrom("threads").selectAll().where("id","=",Z).where("organization_id","=",$.organization_id).executeTakeFirstOrThrow();return{...this.threadFromDbRow(G),isNew:!1}}async get($,Z){let X=await this.db.selectFrom("threads").selectAll().where("id","=",$).where("organization_id","=",Z).executeTakeFirst();return X?this.threadFromDbRow(X):null}async update($,Z,X){let Y={updated_at:new Date().toISOString()};if(X.title!==void 0)Y.title=X.title;if(X.description!==void 0)Y.description=X.description;if(X.updated_by!==void 0)Y.updated_by=X.updated_by;if(X.hidden!==void 0)Y.hidden=X.hidden;if(X.status!==void 0)Y.status=X.status;if(X.context_start_message_id!==void 0)Y.context_start_message_id=X.context_start_message_id;if(X.run_owner_pod!==void 0)Y.run_owner_pod=X.run_owner_pod;if(X.run_config!==void 0)Y.run_config=X.run_config?JSON.stringify(X.run_config):null;if(X.run_started_at!==void 0)Y.run_started_at=X.run_started_at;if(X.last_progress_at!==void 0)Y.last_progress_at=X.last_progress_at;if(X.failure_reason!==void 0)Y.failure_reason=X.failure_reason;if(X.failure_kind!==void 0)Y.failure_kind=X.failure_kind;if(X.metadata!==void 0)Y.metadata=JSON.stringify(X.metadata);if(X.branch!==void 0)Y.branch=X.branch;if(X.virtual_mcp_id!==void 0)Y.virtual_mcp_id=X.virtual_mcp_id;if(X.sandbox_provider_kind!==void 0)Y.sandbox_provider_kind=X.sandbox_provider_kind;if(X.harness_id!==void 0)Y.harness_id=X.harness_id;if(X.message_storage_version!==void 0)Y.message_storage_version=X.message_storage_version;await this.db.updateTable("threads").set(Y).where("id","=",$).where("organization_id","=",Z).execute();let G=await this.get($,Z);if(!G)throw Error("Thread not found after update");return G}async pinRuntimeIfUnset($,Z,X){let Q=await this.db.updateTable("threads").set({harness_id:X.harnessId,sandbox_provider_kind:Lg`coalesce(${Lg.ref("sandbox_provider_kind")}, ${X.sandboxProviderKind})`,branch:Lg`coalesce(${Lg.ref("branch")}, ${X.branch})`,updated_at:new Date().toISOString(),...X.messageStorageVersion!==void 0?{message_storage_version:X.messageStorageVersion}:{}}).where("id","=",$).where("organization_id","=",Z).where("harness_id","is",null).where((Y)=>X.sandboxProviderKind===null?Y("sandbox_provider_kind","is",null):Y.or([Y("sandbox_provider_kind","is",null),Y("sandbox_provider_kind","=",X.sandboxProviderKind)])).returningAll().executeTakeFirst();if(Q)return{thread:this.threadFromDbRow(Q),claimed:!0};return{thread:await this.get($,Z),claimed:!1}}async completeRunIfNotCompleted($,Z){let Q=(await this.db.updateTable("threads").set({status:"completed",run_owner_pod:null,run_config:null,run_started_at:null,updated_at:new Date().toISOString()}).where("id","=",$).where("organization_id","=",Z).where("status","=","in_progress").returningAll().execute())[0];return Q?this.threadFromDbRow(Q):null}async markRunFailed($,Z,X,Q){let G=(await this.db.updateTable("threads").set({status:"failed",failure_reason:X,failure_kind:Q,run_owner_pod:null,run_config:null,run_started_at:null,updated_at:new Date().toISOString()}).where("id","=",$).where("organization_id","=",Z).where("status","=","in_progress").returningAll().execute())[0];return G?this.threadFromDbRow(G):null}async requiresActionIfInProgress($,Z){let Q=(await this.db.updateTable("threads").set({status:"requires_action",run_config:null,run_started_at:null,updated_at:new Date().toISOString()}).where("id","=",$).where("organization_id","=",Z).where("status","=","in_progress").returningAll().execute())[0];return Q?this.threadFromDbRow(Q):null}async forceFailIfInProgress($,Z,X){let Q=new Date().toISOString(),Y=this.db.updateTable("threads").set({status:"failed",updated_at:Q}).where("id","=",$).where("organization_id","=",Z).where("status","=","in_progress");if(X!=null)Y=Y.where("run_fence_token","=",X);return((await Y.executeTakeFirst()).numUpdatedRows??BigInt(0))>BigInt(0)}async delete($,Z){await this.db.deleteFrom("threads").where("id","=",$).where("organization_id","=",Z).execute()}async list($,Z,X){let Q=X?.includeArchived===!0,Y=this.db.selectFrom("threads").selectAll().where("organization_id","=",$).where("hidden","=",Q).orderBy("updated_at","desc");if(Z)Y=Y.where("created_by","=",Z);let G=X?.virtualMcpId??X?.agentId;if(G)Y=Y.where("virtual_mcp_id","=",G);if(X?.hasTrigger===!0)Y=Y.where("trigger_id","is not",null);else if(X?.hasTrigger===!1)Y=Y.where("trigger_id","is",null);if(X?.startDate)Y=Y.where("updated_at",">=",X.startDate);if(X?.endDate)Y=Y.where("updated_at","<=",X.endDate);if(X?.search)Y=Y.where("title","ilike",`%${YJ8(X.search)}%`);if(X?.status)Y=Y.where("status","=",X.status);let J=this.db.selectFrom("threads").select((H)=>H.fn.count("id").as("count")).where("organization_id","=",$).where("hidden","=",Q);if(Z)J=J.where("created_by","=",Z);if(G)J=J.where("virtual_mcp_id","=",G);if(X?.hasTrigger===!0)J=J.where("trigger_id","is not",null);else if(X?.hasTrigger===!1)J=J.where("trigger_id","is",null);if(X?.startDate)J=J.where("updated_at",">=",X.startDate);if(X?.endDate)J=J.where("updated_at","<=",X.endDate);if(X?.search)J=J.where("title","ilike",`%${YJ8(X.search)}%`);if(X?.status)J=J.where("status","=",X.status);if(X?.limit)Y=Y.limit(X.limit);if(X?.offset)Y=Y.offset(X.offset);let[K,W]=await Promise.all([Y.execute(),J.executeTakeFirst()]);return{threads:K.map((H)=>this.threadFromDbRow(H)),total:Number(W?.count||0)}}async listByTriggerIds($,Z,X){if(Z.length===0)return{threads:[],total:0};let Q=this.db.selectFrom("threads").selectAll().where("organization_id","=",$).where("hidden","=",!1).where("trigger_id","in",Z).orderBy("updated_at","desc"),Y=this.db.selectFrom("threads").select((K)=>K.fn.count("id").as("count")).where("organization_id","=",$).where("hidden","=",!1).where("trigger_id","in",Z);if(X?.limit)Q=Q.limit(X.limit);if(X?.offset)Q=Q.offset(X.offset);let[G,J]=await Promise.all([Q.execute(),Y.executeTakeFirst()]);return{threads:G.map((K)=>this.threadFromDbRow(K)),total:Number(J?.count||0)}}async findLastUsedByVirtualMcpIds($,Z){let X=new Map;if(Z.length===0)return X;let Q=await this.db.selectFrom("threads").distinctOn("virtual_mcp_id").select(["virtual_mcp_id","created_by","created_at"]).where("organization_id","=",$).where("virtual_mcp_id","in",Z).orderBy("virtual_mcp_id").orderBy("created_at","desc").execute();for(let Y of Q)X.set(Y.virtual_mcp_id,{last_used_at:Xz(Y.created_at),last_used_by:Y.created_by});return X}async listWithLastMessage($,Z){let X=this.db.selectFrom("threads as t").innerJoinLateral((Y)=>Y.selectFrom("thread_messages as m").selectAll().whereRef("m.thread_id","=","t.id").orderBy("m.created_at","desc").orderBy("m.id","desc").limit(1).as("lm"),(Y)=>Y.onTrue()).selectAll("t").select(["lm.id as lm_id","lm.thread_id as lm_thread_id","lm.metadata as lm_metadata","lm.parts as lm_parts","lm.role as lm_role","lm.created_at as lm_created_at","lm.updated_at as lm_updated_at"]).where("t.organization_id","=",$).where("t.hidden","=",!1).where("lm.role","=",Z.lastMessageRole).orderBy("lm.created_at","desc").limit(Z.limit);if(Z.createdBy)X=X.where("t.created_by","=",Z.createdBy);return(await X.execute()).map((Y)=>({thread:this.threadFromDbRow(Y),lastMessage:this.messageFromDbRow({id:Y.lm_id,thread_id:Y.lm_thread_id,metadata:Y.lm_metadata,parts:Y.lm_parts,role:Y.lm_role,created_at:Y.lm_created_at,updated_at:Y.lm_updated_at})}))}async listMessages($,Z,X){if(!await this.get($,Z))return{messages:[],total:0};let Y=X?.sort??"asc",G=this.db.selectFrom("thread_messages").selectAll().where("thread_id","=",$).orderBy("created_at",Y).orderBy("id",Y),J=this.db.selectFrom("thread_messages").select((H)=>H.fn.count("id").as("count")).where("thread_id","=",$);if(X?.limit)G=G.limit(X.limit);if(X?.offset)G=G.offset(X.offset);let[K,W]=await Promise.all([G.execute(),J.executeTakeFirst()]);return{messages:K.map((H)=>this.messageFromDbRow(H)),total:Number(W?.count||0)}}async bumpProgress($,Z){await this.db.updateTable("threads").set({last_progress_at:Lg`now()`}).where("id","=",$).where("organization_id","=",Z).execute()}async getProgress($,Z){let X=await this.db.selectFrom("threads").select(["last_progress_at","run_started_at"]).where("id","=",$).where("organization_id","=",Z).executeTakeFirst();if(!X)return null;let Q=(Y)=>{if(Y==null)return null;let G=(Y instanceof Date?Y:new Date(Y)).getTime();return Number.isNaN(G)?null:G};return{lastProgressAt:Q(X.last_progress_at),runStartedAt:Q(X.run_started_at)}}async getRunFence($){return(await this.db.selectFrom("threads").select("run_fence_token").where("id","=",$).executeTakeFirst())?.run_fence_token??null}async setRunFence($,Z){await this.db.updateTable("threads").set(Z===null?{run_fence_token:null,run_acked_seq:null}:{run_fence_token:Z,run_acked_seq:null,status:"in_progress"}).where("id","=",$).execute()}async setCancelRequested($,Z){await this.db.updateTable("threads").set({cancel_requested_at:Lg`now()`}).where("id","=",$).where("organization_id","=",Z).execute()}async getCancelRequestedAt($){let X=(await this.db.selectFrom("threads").select("cancel_requested_at").where("id","=",$).executeTakeFirst())?.cancel_requested_at;if(X==null)return null;return X instanceof Date?X:new Date(X)}async clearCancelRequested($){await this.db.updateTable("threads").set({cancel_requested_at:null}).where("id","=",$).execute()}async bumpAckedSeq($,Z,X,Q){await this.db.updateTable("threads").set({run_acked_seq:Q}).where("id","=",$).where("organization_id","=",Z).where((Y)=>Y.or([Y("run_acked_seq","is",null),Y("run_acked_seq","<",Q)])).execute()}async getAckedSeq($,Z){return(await this.db.selectFrom("threads").select("run_acked_seq").where("id","=",$).where("organization_id","=",Z).executeTakeFirst())?.run_acked_seq??0}threadFromDbRow($){let Z={};if($.metadata!=null)if(typeof $.metadata==="string")try{Z=JSON.parse($.metadata)}catch(X){console.error(`Failed to parse metadata for thread ${$.id}:`,$.metadata,X)}else Z=$.metadata;return{id:$.id,organization_id:$.organization_id,title:$.title,description:$.description,status:$.status,trigger_id:$.trigger_id??null,context_start_message_id:$.context_start_message_id??null,run_owner_pod:$.run_owner_pod??null,run_config:$.run_config??null,run_started_at:$.run_started_at?Xz($.run_started_at):null,last_progress_at:$.last_progress_at?Xz($.last_progress_at):null,virtual_mcp_id:$.virtual_mcp_id??"",branch:$.branch??null,sandbox_provider_kind:$.sandbox_provider_kind??null,harness_id:$.harness_id??null,metadata:Z,created_at:Xz($.created_at),updated_at:Xz($.updated_at),created_by:$.created_by,updated_by:$.updated_by??void 0,hidden:!!$.hidden,message_storage_version:$.message_storage_version??1,link_transport:$.link_transport??null}}messageFromDbRow($){let Z,X;try{Z=$.metadata?JSON.parse($.metadata):void 0}catch(Q){console.error(`Failed to parse metadata for message ${$.id}:`,$.metadata,Q),Z=void 0}try{X=typeof $.parts==="string"?JSON.parse($.parts):$.parts}catch(Q){console.error(`Failed to parse parts for message ${$.id}:`,$.parts,Q),X=[]}return{id:$.id,thread_id:$.thread_id,metadata:Z,parts:X,role:$.role,created_at:Xz($.created_at),updated_at:Xz($.updated_at)}}}var ya0=O(()=>{dX();MB();QJ8()});import{sql as ga0}from"kysely";function eQ0($){if($==null)return null;return typeof $==="string"?$:$.toISOString()}function $Y0($){return`msg_async_stub_${$}`}async function ha0($,Z){await $.deleteFrom("thread_messages").where("id","=",$Y0(Z)).execute(),await $.deleteFrom("thread_message_parts").where("message_id","=",$Y0(Z)).execute()}function NN4($){if($==null)return null;if(typeof $!=="string")return $;try{return JSON.parse($)}catch{return null}}function ua0($){return{id:$.id,interactionId:$.interaction_id??null,toolCallId:$.tool_call_id,organizationId:$.organization_id,threadId:$.thread_id,messageId:$.message_id??null,provider:$.provider,modelId:$.model_id,query:$.query,status:$.status,attempts:$.attempts??0,lastPolledAt:eQ0($.last_polled_at),lastError:$.last_error??null,inputTokens:$.input_tokens??null,outputTokens:$.output_tokens??null,citations:NN4($.citations),resultUri:$.result_uri??null,resultPreview:$.result_preview??null,resultContent:$.result_content??null,createdAt:eQ0($.created_at)??"",updatedAt:eQ0($.updated_at)??"",completedAt:eQ0($.completed_at)}}class ca0{inner;organizationId;constructor($,Z){this.inner=$;this.organizationId=Z}requireOrg(){if(!this.organizationId)throw Error("OrgScopedAsyncResearchJobStorage: requires an authenticated organization");return this.organizationId}setOrganizationId($){this.organizationId=$}upsertPending($){return this.inner.upsertPending({organizationId:this.requireOrg(),...$})}findByToolCall($){return this.inner.findByToolCall(this.requireOrg(),$)}markPolling($,Z,X){return this.inner.markPolling(this.requireOrg(),$,Z,X)}recordPoll($,Z){return this.inner.recordPoll(this.requireOrg(),$,Z)}markCompleted($,Z){return this.inner.markCompleted(this.requireOrg(),$,Z)}markFailed($,Z){return this.inner.markFailed(this.requireOrg(),$,Z)}markCancelled($,Z){return this.inner.markCancelled(this.requireOrg(),$,Z)}}class tp{db;constructor($){this.db=$}async upsertPending($){let Z=new Date().toISOString(),X=await this.db.insertInto("async_research_jobs").values({organization_id:$.organizationId,thread_id:$.threadId,tool_call_id:$.toolCallId,message_id:$.messageId??null,provider:$.provider,model_id:$.modelId,query:$.query,status:"pending",attempts:0,updated_at:Z}).onConflict((Y)=>Y.columns(["organization_id","tool_call_id"]).doNothing()).returningAll().executeTakeFirst();if(X)return ua0(X);let Q=await this.db.selectFrom("async_research_jobs").selectAll().where("organization_id","=",$.organizationId).where("tool_call_id","=",$.toolCallId).executeTakeFirstOrThrow();return ua0(Q)}async findByToolCall($,Z){let X=await this.db.selectFrom("async_research_jobs").selectAll().where("organization_id","=",$).where("tool_call_id","=",Z).executeTakeFirst();return X?ua0(X):null}async markPolling($,Z,X,Q){let Y=new Date().toISOString();await this.db.transaction().execute(async(G)=>{if(await G.updateTable("async_research_jobs").set({status:"polling",interaction_id:X,last_polled_at:Y,updated_at:Y}).where("organization_id","=",$).where("tool_call_id","=",Z).execute(),(await G.selectFrom("threads").select("message_storage_version").where("id","=",Q.threadId).where("organization_id","=",$).executeTakeFirst())?.message_storage_version!==2)return;let K=$Y0(Z);await G.insertInto("thread_message_parts").values([{id:`${Q.threadId}:${K}:0`,seq:0,org_id:$,thread_id:Q.threadId,run_id:Q.threadId,message_id:K,role:"assistant",kind:"tool_call",payload:JSON.stringify({type:`tool-${Q.toolName}`,toolCallId:Z,state:"input-available",input:{query:Q.query}}),payload_ref:null,metadata:null,created_at:Y},{id:`${Q.threadId}:${K}:finish`,seq:1,org_id:$,thread_id:Q.threadId,run_id:Q.threadId,message_id:K,role:"assistant",kind:"finish",payload:JSON.stringify({}),payload_ref:null,metadata:null,created_at:Y}]).onConflict((W)=>W.column("id").doNothing()).execute()})}async recordPoll($,Z,X){let Q=new Date().toISOString();await this.db.updateTable("async_research_jobs").set({attempts:ga0`attempts + 1`,last_polled_at:Q,...X!==void 0?{last_error:X}:{},updated_at:Q}).where("organization_id","=",$).where("tool_call_id","=",Z).execute()}async markCompleted($,Z,X){let Q=new Date().toISOString();await this.db.transaction().execute(async(Y)=>{await Y.updateTable("async_research_jobs").set({status:"completed",input_tokens:X.inputTokens,output_tokens:X.outputTokens,citations:JSON.stringify(X.citations),result_uri:X.resultUri,result_preview:X.resultPreview,result_content:X.resultContent,completed_at:Q,updated_at:Q}).where("organization_id","=",$).where("tool_call_id","=",Z).execute(),await ha0(Y,Z)})}async markFailed($,Z,X){let Q=new Date().toISOString();await this.db.transaction().execute(async(Y)=>{await Y.updateTable("async_research_jobs").set({status:"failed",last_error:X,completed_at:Q,updated_at:Q}).where("organization_id","=",$).where("tool_call_id","=",Z).execute(),await ha0(Y,Z)})}async markCancelled($,Z,X){let Q=new Date().toISOString();await this.db.transaction().execute(async(Y)=>{await Y.updateTable("async_research_jobs").set({status:"cancelled",last_error:X??null,completed_at:Q,updated_at:Q}).where("organization_id","=",$).where("tool_call_id","=",Z).execute(),await ha0(Y,Z)})}async sweepAbandoned($){let Z=new Date(Date.now()-$).toISOString(),X=new Date().toISOString();return await this.db.transaction().execute(async(Q)=>{let Y=await Q.updateTable("async_research_jobs").set({status:"abandoned",completed_at:X,updated_at:X,last_error:ga0`COALESCE(last_error, '') || ' [abandoned by sweeper]'`}).where("status","in",["pending","polling"]).where(ga0`COALESCE(last_polled_at, created_at) < ${Z}::timestamptz`).returning(["tool_call_id"]).execute();if(Y.length===0)return 0;let G=Y.map((J)=>$Y0(J.tool_call_id));return await Q.deleteFrom("thread_messages").where("id","in",G).execute(),await Q.deleteFrom("thread_message_parts").where("message_id","in",G).execute(),Y.length})}}var la0=()=>{};function ZY0(){let $=new Map;function Z(Q,Y){let G=$.get(Y);if(G)return G;let J=new h9({name:`outbound-client-${Y}`,version:"1.0.0"},{capabilities:{tasks:{list:{},cancel:{},requests:{tool:{call:{}}}}},jsonSchemaValidator:w5});J.onclose=()=>{$.delete(Y)};let K=J.connect(Q).then(()=>J).catch((W)=>{throw $.delete(Y),W});return $.set(Y,K),K}return Object.assign(Z,{[Symbol.asyncDispose]:async()=>{let Q=[];for(let[Y,G]of $)Q.push(G.then((J)=>J.close()).catch(()=>{}));await Promise.all(Q),$.clear()}})}var da0=O(()=>{BW();tX()});class ma0{db;vault;constructor($,Z){this.db=$;this.vault=Z}async get($){let Z=await this.db.selectFrom("subsidized_gateway_keys").select("encrypted_key").where("organization_id","=",$).executeTakeFirst();if(!Z)return null;return await this.vault.decrypt(Z.encrypted_key)}async put($,Z){let X=await this.vault.encrypt(Z);await this.db.insertInto("subsidized_gateway_keys").values({organization_id:$,encrypted_key:X}).onConflict((Q)=>Q.column("organization_id").doUpdateSet({encrypted_key:X})).execute()}}import{sql as UN4}from"kysely";function GJ8($){return $ instanceof Date?$.toISOString():String($)}class ia0{db;vault;constructor($,Z){this.db=$;this.vault=Z}rowToInfo($){return{id:$.id,organizationId:$.organization_id,scope:$.scope,userId:$.user_id,name:$.name,description:$.description,createdBy:$.created_by,createdAt:GJ8($.created_at),updatedBy:$.updated_by,updatedAt:GJ8($.updated_at)}}assertVisible($,Z){if($.scope==="user"&&$.user_id!==Z)throw new kB($.id)}async create($){let Z=$4("sec"),X=await this.vault.encrypt($.value),Q=new Date,Y=await this.db.insertInto("secrets").values({id:Z,organization_id:$.organizationId,scope:$.scope.kind,user_id:$.scope.kind==="user"?$.scope.userId:null,name:$.name,encrypted_value:X,description:$.description??null,created_by:$.createdBy,created_at:Q,updated_by:$.createdBy,updated_at:Q}).returning(XY0).executeTakeFirstOrThrow();return this.rowToInfo(Y)}async update($){let Z=await this.db.selectFrom("secrets").where("id","=",$.id).where("organization_id","=",$.organizationId).select(["id","scope","user_id"]).executeTakeFirst();if(!Z)throw new Y3($.id);this.assertVisible(Z,$.callerUserId);let X={updated_by:$.updatedBy,updated_at:new Date};if($.value!==void 0)X.encrypted_value=await this.vault.encrypt($.value);if($.description!==void 0)X.description=$.description;let Q=await this.db.updateTable("secrets").set(X).where("id","=",$.id).where("organization_id","=",$.organizationId).returning(XY0).executeTakeFirstOrThrow();return this.rowToInfo(Q)}async delete($,Z,X){let Q=await this.db.selectFrom("secrets").where("id","=",$).where("organization_id","=",Z).select(["id","scope","user_id"]).executeTakeFirst();if(!Q)throw new Y3($);this.assertVisible(Q,X),await this.db.deleteFrom("secrets").where("id","=",$).where("organization_id","=",Z).execute()}async list($){let Z=this.db.selectFrom("secrets").where("organization_id","=",$.organizationId).select(XY0);if($.scope?.kind==="user")Z=Z.where("scope","=","user").where("user_id","=",$.scope.userId);else if($.scope?.kind==="organization")Z=Z.where("scope","=","organization");else Z=Z.where((Q)=>Q.or([Q("scope","=","organization"),Q.and([Q("scope","=","user"),Q("user_id","=",$.callerUserId)])]));return(await Z.orderBy("created_at","desc").execute()).map((Q)=>this.rowToInfo(Q))}async findById($,Z,X){let Q=await this.db.selectFrom("secrets").where("id","=",$).where("organization_id","=",Z).select(XY0).executeTakeFirst();if(!Q)throw new Y3($);return this.assertVisible(Q,X),this.rowToInfo(Q)}async resolveById($,Z,X){let Q=await this.db.selectFrom("secrets").where("id","=",$).where("organization_id","=",Z).selectAll().executeTakeFirst();if(!Q)throw new Y3($);this.assertVisible(Q,X);let Y=await this.vault.decrypt(Q.encrypted_value);return{info:this.rowToInfo(Q),value:Y}}async resolveByName($){let Z=this.db.selectFrom("secrets").where("organization_id","=",$.organizationId).where("scope","=",$.scope.kind).where(UN4`lower(name) = lower(${$.name})`).selectAll();if($.scope.kind==="user")Z=Z.where("user_id","=",$.scope.userId);let X=await Z.executeTakeFirst();if(!X)throw new Y3(`${$.scope.kind}:${$.name}`);let Q=await this.vault.decrypt(X.encrypted_value);return{info:this.rowToInfo(X),value:Q}}}var XY0,Y3,kB;var op=O(()=>{dX();XY0=["id","organization_id","scope","user_id","name","description","created_by","created_at","updated_by","updated_at"];Y3=class Y3 extends Error{constructor($){super(`Secret ${$} not found`);this.name="SecretNotFoundError"}};kB=class kB extends Error{constructor($){super(`Access denied for secret ${$}`);this.name="SecretAccessDeniedError"}}});import{sql as FN4}from"kysely";function JJ8($){return $ instanceof Date?$.toISOString():String($)}class na0{db;vault;constructor($,Z){this.db=$;this.vault=Z}rowToInfo($){return{id:$.id,organizationId:$.organization_id,name:$.name,description:$.description,bucket:$.bucket,region:$.region,endpoint:$.endpoint,forcePathStyle:$.force_path_style,prefix:$.prefix,publicUrlBase:$.public_url_base,credentialType:$.credential_type??"static",refreshUrl:$.refresh_url,siteSlug:$.site_slug,createdBy:$.created_by,createdAt:JJ8($.created_at),updatedBy:$.updated_by,updatedAt:JJ8($.updated_at)}}async create($){let Z=$4("fcfg"),X=await this.vault.encrypt(JSON.stringify($.credentials)),Q=new Date,Y=await this.db.insertInto("org_file_configs").values({id:Z,organization_id:$.organizationId,name:$.name,description:$.description??null,bucket:$.bucket,region:$.region,endpoint:$.endpoint??null,force_path_style:$.forcePathStyle??!1,prefix:$.prefix??null,public_url_base:$.publicUrlBase??null,credential_type:$.credentials.type,refresh_url:$.refreshUrl??null,site_slug:$.siteSlug??null,encrypted_credentials:X,created_by:$.createdBy,created_at:Q,updated_by:$.createdBy,updated_at:Q}).returning(QY0).executeTakeFirstOrThrow();return this.rowToInfo(Y)}async update($){if(!await this.db.selectFrom("org_file_configs").where("id","=",$.id).where("organization_id","=",$.organizationId).select(["id"]).executeTakeFirst())throw new Eg($.id);let X={updated_by:$.updatedBy,updated_at:new Date};if($.name!==void 0)X.name=$.name;if($.description!==void 0)X.description=$.description;if($.bucket!==void 0)X.bucket=$.bucket;if($.region!==void 0)X.region=$.region;if($.endpoint!==void 0)X.endpoint=$.endpoint;if($.forcePathStyle!==void 0)X.force_path_style=$.forcePathStyle;if($.prefix!==void 0)X.prefix=$.prefix;if($.publicUrlBase!==void 0)X.public_url_base=$.publicUrlBase;if($.refreshUrl!==void 0)X.refresh_url=$.refreshUrl;if($.siteSlug!==void 0)X.site_slug=$.siteSlug;if($.credentials!==void 0)X.credential_type=$.credentials.type,X.encrypted_credentials=await this.vault.encrypt(JSON.stringify($.credentials));let Q=await this.db.updateTable("org_file_configs").set(X).where("id","=",$.id).where("organization_id","=",$.organizationId).returning(QY0).executeTakeFirstOrThrow();return this.rowToInfo(Q)}async delete($,Z){if(!await this.db.selectFrom("org_file_configs").where("id","=",$).where("organization_id","=",Z).select(["id"]).executeTakeFirst())throw new Eg($);await this.db.deleteFrom("org_file_configs").where("id","=",$).where("organization_id","=",Z).execute()}async list($){return(await this.db.selectFrom("org_file_configs").where("organization_id","=",$).select(QY0).orderBy("created_at","desc").execute()).map((X)=>this.rowToInfo(X))}async findById($,Z){let X=await this.db.selectFrom("org_file_configs").where("id","=",$).where("organization_id","=",Z).select(QY0).executeTakeFirst();if(!X)throw new Eg($);return this.rowToInfo(X)}async resolveById($,Z){let X=await this.db.selectFrom("org_file_configs").where("id","=",$).where("organization_id","=",Z).selectAll().executeTakeFirst();if(!X)throw new Eg($);return{info:this.rowToInfo(X),credentials:await this.decodeCredentials(X)}}async resolveByName($){let Z=await this.db.selectFrom("org_file_configs").where("organization_id","=",$.organizationId).where(FN4`lower(name) = lower(${$.name})`).selectAll().executeTakeFirst();if(!Z)throw new Eg($.name);return{info:this.rowToInfo(Z),credentials:await this.decodeCredentials(Z)}}async decodeCredentials($){if($.credential_type==="managed")return{type:"managed"};let Z=await this.vault.decrypt($.encrypted_credentials),X=JSON.parse(Z);if(($.credential_type??"static")==="sts-session")return{type:"sts-session",apiKey:String(X.apiKey)};return{type:"static",accessKeyId:String(X.accessKeyId),secretAccessKey:String(X.secretAccessKey)}}}var QY0,Eg;var KJ8=O(()=>{dX();QY0=["id","organization_id","name","description","bucket","region","endpoint","force_path_style","prefix","public_url_base","credential_type","refresh_url","site_slug","created_by","created_at","updated_by","updated_at"];Eg=class Eg extends Error{constructor($){super(`File config ${$} not found`);this.name="OrgFileConfigNotFoundError"}}});function YY0($){return pa0.test($)}var pa0;var GY0=O(()=>{pa0=/^[a-z0-9][a-z0-9-]{0,59}$/});function WJ8($){return $ instanceof Date?$.toISOString():String($)}function ta0($){return{slug:$.slug,organizationId:$.organization_id,source:$.source,createdBy:$.created_by,createdAt:WJ8($.created_at),updatedBy:$.updated_by,updatedAt:WJ8($.updated_at)}}class ra0{db;constructor($){this.db=$}async claimSite($){if(!YY0($.slug))throw Error(`Invalid site slug "${$.slug}" \u2014 must be 1-60 chars of lowercase letters, digits, or hyphens, starting with a letter or digit`);let Z=new Date,X=await this.db.insertInto("org_sites").values({slug:$.slug,organization_id:$.organizationId,source:$.source??"deco-import",created_by:$.by,created_at:Z,updated_by:$.by,updated_at:Z}).onConflict((G)=>G.column("slug").doNothing()).returningAll().executeTakeFirst();if(X)return ta0(X);let Q=await this.getBySlug($.slug);if(!Q)throw new oa0($.slug,"unknown");if(Q.organizationId!==$.organizationId)throw new oa0($.slug,Q.organizationId);let Y=await this.db.updateTable("org_sites").set({source:$.source??Q.source,updated_by:$.by,updated_at:Z}).where("slug","=",$.slug).where("organization_id","=",$.organizationId).returningAll().executeTakeFirstOrThrow();return ta0(Y)}async getBySlug($){let Z=await this.db.selectFrom("org_sites").selectAll().where("slug","=",$).executeTakeFirst();return Z?ta0(Z):null}async isOwnedBy($,Z){return!!await this.db.selectFrom("org_sites").select("slug").where("slug","=",$).where("organization_id","=",Z).executeTakeFirst()}}var oa0;var HJ8=O(()=>{GY0();oa0=class oa0 extends Error{slug;ownerOrganizationId;constructor($,Z){super(`Site slug "${$}" is already owned by another organization`);this.slug=$;this.ownerOrganizationId=Z;this.name="OrgSiteConflictError"}}});function NJ8($,Z){return $?.startsWith(`${rp[Z]}:`)??!1}function aa0($){let Z=0;for(let X of $){if(X.action!=="status_changed")continue;if(X.data?.to!=="in_review")continue;Z=Math.max(Z,new Date(X.occurredAt).getTime())}return Z}function wN4($,Z){let X=aa0($),Q=new Map;for(let Y of $){if(Y.action!=="review_approved"&&Y.action!=="review_changes_requested")continue;if(new Date(Y.occurredAt).getTime()<X)continue;let G=Y.data??{};if(G.reviewer!=="qa"&&G.reviewer!=="code_review")continue;if(Y.action==="review_approved"){if(Z?.verifiedOnly&&G.verified!==!0)continue;Q.set(G.reviewer,"approved")}else Q.set(G.reviewer,"changes_requested")}return Q}function zg($,Z,X){if(Z.length===0)return!1;let Q=wN4($,X);return Z.every((Y)=>Q.get(Y)==="approved")}var B5="super-agent",SB,rp,VB,UJ8="task-board.item.updated",FJ8="task-board.item.deleted";var G3=O(()=>{SB=["qa","code_review"],rp={qa:"QA Agent",code_review:"Code Reviewer"},VB={qa:"qa_agent_enabled",code_review:"code_reviewer_enabled"}});function sa0($){let Z=(X)=>X instanceof Date?X.toISOString():X;return{id:$.id,taskBoardItemId:$.task_board_item_id,parentId:$.parent_id,authorId:$.author_id,body:$.body,resolved:$.resolved,createdAt:Z($.created_at),updatedAt:Z($.updated_at)}}function BN4($){if($&&typeof $==="object"&&!Array.isArray($)){let Z=$.text;if(typeof Z==="string"&&Z.trim())return Z.trim()}return null}function $s0($){if($.status!=="in_progress")return!1;let Z=$.threads.filter((X)=>X.hasMessages);if(Z.length===0)return!1;return Z.every((X)=>X.status!==null&&ea0.has(X.status))}function ON4($){let Z=typeof $==="string"?(()=>{try{return JSON.parse($)}catch{return null}})():$;if(!Z||typeof Z!=="object")return!1;let X=Z.githubRepo?.url;return typeof X==="string"&&X.length>0}class CB{db;constructor($){this.db=$}inTransaction($){return this.db.isTransaction?$(this.db):this.db.transaction().execute($)}async list($){let X=(await this.db.selectFrom("task_board_items").selectAll().where("organization_id","=",$).orderBy("sort_order","asc").execute()).map((Q)=>this.itemFromDbRow(Q));return await this.attachRefs(X,$),X}async getById($,Z){let X=await this.db.selectFrom("task_board_items").selectAll().where("id","=",$).where("organization_id","=",Z).executeTakeFirst();if(!X)return null;let Q=this.itemFromDbRow(X);return await this.attachRefs([Q],Z),Q}async create($){let Z=$4("board"),X=new Date().toISOString(),Q=$.status??"triage",{minOrder:Y}=await this.db.selectFrom("task_board_items").select((J)=>J.fn.min("sort_order").as("minOrder")).where("organization_id","=",$.organizationId).where("status","=",Q).executeTakeFirstOrThrow(),G=await this.db.insertInto("task_board_items").values({id:Z,organization_id:$.organizationId,title:$.title,description:$.description??null,status:Q,priority:$.priority??"medium",assignee_id:$.assigneeId??null,assigned_by:$.assignedBy??null,due_date:$.dueDate??null,external_key:$.externalKey??null,sort_order:(Y??0)-1,created_by:$.by,created_at:X,updated_by:$.by,updated_at:X}).returningAll().executeTakeFirstOrThrow();return this.itemFromDbRow(G)}async update($,Z,X,Q){let Y=await this.db.updateTable("task_board_items").set({...X.title!==void 0?{title:X.title}:{},...X.description!==void 0?{description:X.description}:{},...X.status!==void 0?{status:X.status}:{},...X.priority!==void 0?{priority:X.priority}:{},...X.assigneeId!==void 0?{assignee_id:X.assigneeId}:{},...X.assignedBy!==void 0?{assigned_by:X.assignedBy}:{},...X.dueDate!==void 0?{due_date:X.dueDate}:{},...X.sortOrder!==void 0?{sort_order:X.sortOrder}:{},updated_by:Q,updated_at:new Date().toISOString()}).where("id","=",$).where("organization_id","=",Z).returningAll().executeTakeFirstOrThrow(),G=this.itemFromDbRow(Y);return await this.attachRefs([G],Z),G}async delete($,Z){await this.inTransaction(async(X)=>{await X.deleteFrom("task_board_item_threads").where("task_board_item_id","=",$).where("organization_id","=",Z).execute(),await X.deleteFrom("task_board_item_prs").where("task_board_item_id","=",$).where("organization_id","=",Z).execute(),await X.deleteFrom("task_board_items").where("id","=",$).where("organization_id","=",Z).execute()})}async setItemTags($,Z,X){await this.inTransaction(async(Q)=>{if(await Q.deleteFrom("task_board_item_tags").where("task_board_item_id","=",$).$if(Z.length>0,(Y)=>Y.where("id","not in",Z)).execute(),Z.length>0)await Q.insertInto("task_board_item_tags").values(Z.map((Y)=>({task_board_item_id:$,id:Y,created_by:X,created_at:new Date().toISOString()}))).onConflict((Y)=>Y.doNothing()).execute()})}async linkThread($,Z,X){await this.db.insertInto("task_board_item_threads").values({task_board_item_id:$,thread_id:Z,organization_id:X}).onConflict((Q)=>Q.columns(["task_board_item_id","thread_id"]).doNothing()).execute()}async linkedTaskIds($,Z){return(await this.db.selectFrom("task_board_item_threads").select("task_board_item_id as taskId").where("thread_id","=",$).where("organization_id","=",Z).execute()).map((Q)=>Q.taskId)}async linkPr($){await this.db.insertInto("task_board_item_prs").values({task_board_item_id:$.taskBoardItemId,organization_id:$.organizationId,url:$.url,pr_number:$.prNumber,repo_owner:$.repoOwner,repo_name:$.repoName,connection_id:$.connectionId??null}).onConflict((Z)=>Z.columns(["task_board_item_id","url"]).doNothing()).execute()}async listPrs($,Z){return(await this.db.selectFrom("task_board_item_prs").select(["url","pr_number as prNumber","repo_owner as repoOwner","repo_name as repoName","connection_id as connectionId","created_at as createdAt"]).where("task_board_item_id","=",$).where("organization_id","=",Z).orderBy("created_at","desc").execute()).map((Q)=>({url:Q.url,number:Q.prNumber,repoOwner:Q.repoOwner,repoName:Q.repoName,connectionId:Q.connectionId??null,createdAt:Q.createdAt instanceof Date?Q.createdAt.toISOString():Q.createdAt}))}async advanceLinkedTasksToReviewOnThreadFinish($,Z){let X=[];for(let Q of await this.linkedTaskIds($,Z)){let Y=await this.getById(Q,Z);if(!Y||!$s0(Y))continue;X.push(await this.update(Q,Z,{status:"in_review"},Y.updatedBy)),await this.recordActivity({taskBoardItemId:Q,action:"status_changed",actorId:null,data:{from:Y.status,to:"in_review"}}).catch((G)=>console.error("[task-board] in_review activity write failed",G))}return X}async reopenLinkedTasksOnThreadRun($,Z){let X=[];for(let Q of await this.linkedTaskIds($,Z)){let Y=await this.getById(Q,Z);if(!Y||Y.status!=="in_review")continue;X.push(await this.update(Q,Z,{status:"in_progress"},Y.updatedBy))}return X}async claimConflictResolution($,Z,X){let Q=await this.db.updateTable("task_board_items").set({status:"in_progress",updated_by:X,updated_at:new Date().toISOString()}).where("id","=",$).where("organization_id","=",Z).where("status","=","in_review").where("assignee_id","=",B5).returningAll().executeTakeFirst();if(!Q)return null;let Y=this.itemFromDbRow(Q);return await this.attachRefs([Y],Z),Y}async claimReviewChangesBounce($,Z,X){let Q=await this.db.updateTable("task_board_items").set({status:"in_progress",updated_by:X,updated_at:new Date().toISOString()}).where("id","=",$).where("organization_id","=",Z).where("status","=","in_review").where("assignee_id","=",B5).returningAll().executeTakeFirst();if(!Q)return null;let Y=this.itemFromDbRow(Q);return await this.attachRefs([Y],Z),Y}async attachRefs($,Z){if($.length===0)return;await this.inTransaction(async(X)=>{await this.attachThreads(X,$,Z),await this.attachTags(X,$)})}async attachThreads($,Z,X){let Q=Z.map((J)=>J.id),Y=await $.selectFrom("task_board_item_threads as link").innerJoin("threads as t","t.id","link.thread_id").leftJoinLateral((J)=>J.selectFrom("thread_message_parts as p").select("p.payload as payload").whereRef("p.thread_id","=","link.thread_id").where("p.role","=","assistant").where("p.kind","=","text").orderBy("p.created_at","desc").limit(1).as("lastmsg"),(J)=>J.onTrue()).select((J)=>["link.task_board_item_id as taskId","link.thread_id as threadId","link.created_at as createdAt","t.status as status","t.title as title","t.virtual_mcp_id as virtualMcpId","t.metadata as metadata","lastmsg.payload as lastMessagePayload",J.or([J.exists(J.selectFrom("thread_message_parts as mp").select("mp.id").whereRef("mp.thread_id","=","link.thread_id")),J.exists(J.selectFrom("thread_messages as tm").select("tm.id").whereRef("tm.thread_id","=","link.thread_id"))]).as("hasMessages")]).where("link.organization_id","=",X).where("link.task_board_item_id","in",Q).orderBy("link.created_at","desc").execute(),G=new Map;for(let J of Y){let K={threadId:J.threadId,virtualMcpId:J.virtualMcpId??null,status:J.status??null,title:J.title??null,lastMessage:BN4(J.lastMessagePayload),hasPreview:ON4(J.metadata),hasMessages:!!J.hasMessages,createdAt:J.createdAt instanceof Date?J.createdAt.toISOString():J.createdAt},W=G.get(J.taskId);if(W)W.push(K);else G.set(J.taskId,[K])}for(let J of Z)J.threads=G.get(J.id)??[]}async attachTags($,Z){let X=Z.map((G)=>G.id),Q=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",X).orderBy("tag.name","asc").execute(),Y=new Map;for(let G of Q){let J={id:G.id,name:G.name,color:G.color??null,createdBy:G.createdBy,createdAt:G.createdAt instanceof Date?G.createdAt.toISOString():G.createdAt},K=Y.get(G.taskId);if(K)K.push(J);else Y.set(G.taskId,[J])}for(let G of Z)G.tags=Y.get(G.id)??[]}async recordActivity($){await this.db.insertInto("task_board_activity").values({id:$4("act"),task_board_item_id:$.taskBoardItemId,action:$.action,actor_id:$.actorId,data:$.data?JSON.stringify($.data):null,occurred_at:new Date().toISOString()}).execute()}async claimReviewer($,Z,X){let Q=`rtok_${crypto.randomUUID()}`,Y=await this.db.insertInto("task_board_review_claims").values({task_board_item_id:$,reviewer:Z,cycle_at:X,token:Q}).onConflict((J)=>J.columns(["task_board_item_id","reviewer","cycle_at"]).doNothing()).returning("token").executeTakeFirst();if(Y)return{claimed:!0,token:Y.token};return{claimed:!1,token:(await this.db.selectFrom("task_board_review_claims").select("token").where("task_board_item_id","=",$).where("reviewer","=",Z).where("cycle_at","=",X).executeTakeFirst())?.token??Q}}async resolveReviewClaimByToken($,Z){let X=await this.db.selectFrom("task_board_review_claims").select(["reviewer","cycle_at"]).where("task_board_item_id","=",$).where("token","=",Z).executeTakeFirst();return X?{reviewer:X.reviewer,cycleAt:X.cycle_at}:null}async recordActivities($){if($.length===0)return;let Z=new Date().toISOString();await this.db.insertInto("task_board_activity").values($.map((X)=>({id:$4("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()}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((Q)=>({id:Q.id,taskBoardItemId:Q.task_board_item_id,action:Q.action,actorId:Q.actor_id,data:typeof Q.data==="string"?JSON.parse(Q.data):Q.data??{},occurredAt:Q.occurred_at instanceof Date?Q.occurred_at.toISOString():Q.occurred_at}))}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((Q)=>sa0(Q))}async createComment($){if(!await this.db.selectFrom("task_board_items").select("id").where("id","=",$.taskBoardItemId).where("organization_id","=",$.organizationId).executeTakeFirst())return null;let X=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;X=Y.parent_id??Y.id}let Q=await this.db.insertInto("task_board_comments").values({id:$4("cmt"),task_board_item_id:$.taskBoardItemId,parent_id:X,author_id:$.authorId,body:$.body}).returningAll().executeTakeFirstOrThrow();return sa0(Q)}async updateComment($){let Z=await this.commentInOrg($.id,$.organizationId);if(!Z)return null;if($.body!==void 0&&Z.authorId!==$.callerId)return null;let X=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 X?sa0(X):null}async deleteComment($,Z,X){let Q=await this.commentInOrg($,Z);if(!Q||Q.authorId!==X)return!1;return await this.db.deleteFrom("task_board_comments").where("id","=",$).execute(),!0}async commentInOrg($,Z){let X=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"]).where("c.id","=",$).where("item.organization_id","=",Z).executeTakeFirst();return X?{authorId:X.author_id}:null}itemFromDbRow($){return{id:$.id,organizationId:$.organization_id,title:$.title,description:$.description,status:$.status,priority:$.priority,assigneeId:$.assignee_id,assignedBy:$.assigned_by,dueDate:$.due_date instanceof Date?$.due_date.toISOString():$.due_date,sortOrder:$.sort_order,threads:[],tags:[],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 ea0;var jg=O(()=>{dX();G3();ea0=new Set(["completed","failed","expired"])});class Zs0{db;constructor($){this.db=$}async create($,Z,X){let Q=crypto.randomUUID(),Y=new Date(Date.now()+600000);return await this.db.insertInto("oauth_pkce_states").values({id:Q,organization_id:Z,user_id:X,code_verifier:$,expires_at:Y,created_at:new Date}).execute(),Q}async consume($,Z,X){let Q=await this.db.deleteFrom("oauth_pkce_states").where("id","=",$).where("organization_id","=",Z).where("user_id","=",X).returningAll().executeTakeFirst();if(!Q)throw Error("Invalid or expired OAuth state token");if((Q.expires_at instanceof Date?Q.expires_at:new Date(Q.expires_at))<new Date)throw Error("OAuth state token has expired");return Q.code_verifier}}function kW($){if($==null)return"unknown error";if(typeof $==="string")return $;if($ instanceof Error)return $.message;return JSON.stringify($)}function JY0($){if($===null||typeof $==="string"||typeof $==="number"||typeof $==="boolean")return!0;if(Array.isArray($))return $.every(JY0);if(typeof $==="object")return Object.entries($).every(([Z,X])=>typeof Z==="string"&&(X===void 0||JY0(X)));return!1}function Xs0($){return Array.isArray($)&&$.every(JY0)}function ap($){return $!=null&&typeof $==="object"&&Object.entries($).every(([Z,X])=>typeof Z==="string"&&(X===void 0||JY0(X)))}var cJ8="vercel.ai.error",LN4,wJ8,BJ8,D1,lJ8="AI_APICallError",dJ8,DN4,OJ8,LJ8,N4,mJ8="AI_EmptyResponseBodyError",iJ8,EN4,DJ8,EJ8,KY0,nJ8="AI_InvalidArgumentError",pJ8,zN4,zJ8,jJ8,_B,tJ8="AI_InvalidPromptError",oJ8,jN4,PJ8,AJ8,J3,rJ8="AI_InvalidResponseDataError",aJ8,PN4,TJ8,RJ8,Pg,sJ8="AI_JSONParseError",eJ8,AN4,IJ8,qJ8,rN,$K8="AI_LoadAPIKeyError",ZK8,TN4,MJ8,kJ8,Qz,XK8="AI_LoadSettingError",QK8,RN4,SJ8,VJ8,YK8,GK8="AI_NoContentGeneratedError",JK8,IN4,CJ8,_J8,KK8,WK8="AI_NoSuchModelError",HK8,qN4,xJ8,vJ8,h5,NK8="AI_TooManyEmbeddingValuesForCallError",UK8,MN4,fJ8,bJ8,Ag,FK8="AI_TypeValidationError",wK8,kN4,yJ8,gJ8,O5,BK8="AI_UnsupportedFunctionalityError",OK8,SN4,hJ8,uJ8,v4;var Q8=O(()=>{LN4=Symbol.for(cJ8),D1=class $ extends(BJ8=Error,wJ8=LN4,BJ8){constructor({name:Z,message:X,cause:Q}){super(X);this[wJ8]=!0,this.name=Z,this.cause=Q}static isInstance(Z){return $.hasMarker(Z,cJ8)}static hasMarker(Z,X){let Q=Symbol.for(X);return Z!=null&&typeof Z==="object"&&Q in Z&&typeof Z[Q]==="boolean"&&Z[Q]===!0}},dJ8=`vercel.ai.error.${lJ8}`,DN4=Symbol.for(dJ8),N4=class extends(LJ8=D1,OJ8=DN4,LJ8){constructor({message:$,url:Z,requestBodyValues:X,statusCode:Q,responseHeaders:Y,responseBody:G,cause:J,isRetryable:K=Q!=null&&(Q===408||Q===409||Q===429||Q>=500),data:W}){super({name:lJ8,message:$,cause:J});this[OJ8]=!0,this.url=Z,this.requestBodyValues=X,this.statusCode=Q,this.responseHeaders=Y,this.responseBody=G,this.isRetryable=K,this.data=W}static isInstance($){return D1.hasMarker($,dJ8)}},iJ8=`vercel.ai.error.${mJ8}`,EN4=Symbol.for(iJ8),KY0=class extends(EJ8=D1,DJ8=EN4,EJ8){constructor({message:$="Empty response body"}={}){super({name:mJ8,message:$});this[DJ8]=!0}static isInstance($){return D1.hasMarker($,iJ8)}};pJ8=`vercel.ai.error.${nJ8}`,zN4=Symbol.for(pJ8),_B=class extends(jJ8=D1,zJ8=zN4,jJ8){constructor({message:$,cause:Z,argument:X}){super({name:nJ8,message:$,cause:Z});this[zJ8]=!0,this.argument=X}static isInstance($){return D1.hasMarker($,pJ8)}},oJ8=`vercel.ai.error.${tJ8}`,jN4=Symbol.for(oJ8),J3=class extends(AJ8=D1,PJ8=jN4,AJ8){constructor({prompt:$,message:Z,cause:X}){super({name:tJ8,message:`Invalid prompt: ${Z}`,cause:X});this[PJ8]=!0,this.prompt=$}static isInstance($){return D1.hasMarker($,oJ8)}},aJ8=`vercel.ai.error.${rJ8}`,PN4=Symbol.for(aJ8),Pg=class extends(RJ8=D1,TJ8=PN4,RJ8){constructor({data:$,message:Z=`Invalid response data: ${JSON.stringify($)}.`}){super({name:rJ8,message:Z});this[TJ8]=!0,this.data=$}static isInstance($){return D1.hasMarker($,aJ8)}},eJ8=`vercel.ai.error.${sJ8}`,AN4=Symbol.for(eJ8),rN=class extends(qJ8=D1,IJ8=AN4,qJ8){constructor({text:$,cause:Z}){super({name:sJ8,message:`JSON parsing failed: Text: ${$}.
2273
+ </organization-filesystem>`}var MB=O(()=>{Zz();xa0()});function va0($){let Z=new Map;for(let Q of $){let Y=Z.get(Q.message_id);if(Y)Y.push(Q);else Z.set(Q.message_id,[Q])}let X=[];for(let[Q,Y]of Z){let G=[...Y].sort((K,W)=>K.seq-W.seq),J=G[0];X.push({id:Q,role:J.role,parts:G.filter((K)=>K.kind!=="finish").map((K)=>K.payload&&typeof K.payload==="object"&&!Array.isArray(K.payload)?{...K.payload,created_at:K.created_at}:K.payload),created_at:J.created_at,status:G.some((K)=>K.kind==="finish")?"complete":"in_progress",metadata:G.find((K)=>K.kind==="finish")?.metadata??null})}return X.sort((Q,Y)=>Q.created_at<Y.created_at?-1:Q.created_at>Y.created_at?1:0),X}function JN4($,Z){let X=0,Q=0,Y=[$];while(Y.length>0){if(X>Z||++Q>YN4)return 1/0;let G=Y.pop();if(typeof G==="string")X+=G.length;else if(Array.isArray(G))for(let J of G)Y.push(J);else if(G!==null&&typeof G==="object")for(let J of Object.values(G))Y.push(J)}return X}function HN4($){return $.replace(KN4,"").replace(WN4,"\uFFFD")}function XJ8($){if(JN4($,ZJ8)>ZJ8)return JSON.stringify({truncated:!0,reason:"payload exceeds max stored size"});return JSON.stringify($,(Z,X)=>typeof X==="string"?HN4(X):X)}class fa0{db;constructor($){this.db=$}async serializeParts($){let Z=new Set,X=[],Q=new Map;for(let Y=0;Y<$.length;Y++){let G=$[Y];if(Z.has(G.id))continue;if(Z.add(G.id),Q.set(G.id,G),X.push({id:G.id,seq:G.seq,org_id:G.org_id,thread_id:G.thread_id,run_id:G.run_id,message_id:G.message_id,role:G.role,kind:G.kind,payload:XJ8(G.payload),payload_ref:G.payload_ref??null,metadata:G.metadata!=null?XJ8(G.metadata):null,created_at:G.created_at}),(Y+1)%GN4===0)await h8(0)}return{rows:X,partsById:Q}}async appendParts($){if($.length===0)return[];let{rows:Z,partsById:X}=await this.serializeParts($);return(await this.db.insertInto("thread_message_parts").values(Z).onConflict((Y)=>Y.column("id").doNothing()).returning("id").execute()).map((Y)=>X.get(Y.id)).filter((Y)=>Y!==void 0)}async replaceMessageParts($,Z,X){let{rows:Q}=await this.serializeParts(X);return await this.db.transaction().execute(async(Y)=>{let G=await Y.selectFrom("thread_message_parts").select((W)=>W.fn.min("created_at").as("created_at")).where("thread_id","=",$).where("message_id","=",Z).executeTakeFirst(),J=G?.created_at!=null?new Date(G.created_at).getTime():null,K=J!=null&&Number.isFinite(J)?Q.map((W)=>({...W,created_at:new Date(J+W.seq).toISOString()})):Q;if(await Y.deleteFrom("thread_message_parts").where("thread_id","=",$).where("message_id","=",Z).execute(),K.length>0)await Y.insertInto("thread_message_parts").values(K).onConflict((W)=>W.column("id").doUpdateSet((H)=>({seq:H.ref("excluded.seq"),role:H.ref("excluded.role"),kind:H.ref("excluded.kind"),payload:H.ref("excluded.payload"),payload_ref:H.ref("excluded.payload_ref"),metadata:H.ref("excluded.metadata"),created_at:H.ref("excluded.created_at")}))).execute()}),X}async deleteMessageParts($,Z){await this.db.deleteFrom("thread_message_parts").where("thread_id","=",$).where("message_id","=",Z).execute()}async maxCreatedAtMsForRun($){let Z=await this.db.selectFrom("thread_message_parts").select((Q)=>Q.fn.max("created_at").as("max")).where("run_id","=",$).executeTakeFirst();if(!Z?.max)return null;let X=new Date(Z.max).getTime();return Number.isFinite(X)?X:null}async maxCreatedAtMsForMessage($,Z){let X=await this.db.selectFrom("thread_message_parts").select((Y)=>Y.fn.max("created_at").as("max")).where("run_id","=",$).where("message_id","=",Z).executeTakeFirst();if(!X?.max)return null;let Q=new Date(X.max).getTime();return Number.isFinite(Q)?Q:null}async loadWindow($,Z){let X=await this.db.selectFrom("thread_message_parts").select(["message_id"]).where("thread_id","=",$).where("kind","=","finish").orderBy("created_at","desc").orderBy("id","desc").limit(Z.limit).offset(Z.offset??0).execute(),Q=await this.db.selectFrom("thread_message_parts").select((W)=>W.fn.count("id").as("count")).where("thread_id","=",$).where("kind","=","finish").executeTakeFirst(),Y=Number(Q?.count??0),G=Z.includeInFlight&&(Z.offset??0)===0?await this.db.selectFrom("thread_message_parts as p").select("p.message_id").distinct().where("p.thread_id","=",$).where((W)=>W.not(W.exists(W.selectFrom("thread_message_parts as f").select("f.id").whereRef("f.message_id","=","p.message_id").where("f.thread_id","=",$).where("f.kind","=","finish")))).execute():[],J=[...X.map((W)=>W.message_id),...G.map((W)=>W.message_id)];if(J.length===0)return{messages:[],total:Y};let K=await this.db.selectFrom("thread_message_parts").selectAll().where("thread_id","=",$).where("message_id","in",J).orderBy("seq","asc").execute();return{messages:va0(K),total:Y}}async backfillFromMessages($,Z){let X=[],Q=0;for(let Y of $)X.push({id:`${Z.runId}:${Y.id}:content`,seq:Q++,org_id:Z.orgId,thread_id:Z.threadId,run_id:Z.runId,message_id:Y.id,role:Y.role,kind:"text",payload:Y.parts,payload_ref:null,metadata:Y.metadata??null,created_at:Y.created_at}),X.push({id:`${Z.runId}:${Y.id}:finish`,seq:Q++,org_id:Z.orgId,thread_id:Z.threadId,run_id:Z.runId,message_id:Y.id,role:Y.role,kind:"finish",payload:{},payload_ref:null,metadata:null,created_at:Y.created_at});await this.appendParts(X)}}var ZJ8=50000000,YN4=1e5,GN4=25,KN4,WN4;var QJ8=O(()=>{a$();KN4=/\u0000/g,WN4=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g});import{sql as Lg}from"kysely";function Xz($){return typeof $==="string"?$:$.toISOString()}function YJ8($){return $.replace(/[\\%_]/g,"\\$&")}class ba0{inner;organizationId;constructor($,Z){this.inner=$;this.organizationId=Z}requireOrg(){if(!this.organizationId)throw Error("OrgScopedThreadStorage: thread operations require an authenticated organization");return this.organizationId}setOrganizationId($){this.organizationId=$}getOrganizationId(){return this.organizationId}create($){let Z=this.requireOrg();return this.inner.create({...$,organization_id:Z})}get($){return this.inner.get($,this.requireOrg())}update($,Z){return this.inner.update($,this.requireOrg(),Z)}pinRuntimeIfUnset($,Z){return this.inner.pinRuntimeIfUnset($,this.requireOrg(),Z)}completeRunIfNotCompleted($){return this.inner.completeRunIfNotCompleted($,this.requireOrg())}markRunFailed($,Z,X){return this.inner.markRunFailed($,this.requireOrg(),Z,X)}requiresActionIfInProgress($){return this.inner.requiresActionIfInProgress($,this.requireOrg())}forceFailIfInProgress($,Z){return this.inner.forceFailIfInProgress($,this.requireOrg(),Z)}delete($){return this.inner.delete($,this.requireOrg())}list($,Z){return this.inner.list(this.requireOrg(),$,Z)}listByTriggerIds($,Z){return this.inner.listByTriggerIds(this.requireOrg(),$,Z)}findLastUsedByVirtualMcpIds($){return this.inner.findLastUsedByVirtualMcpIds(this.requireOrg(),$)}bumpProgress($){return this.inner.bumpProgress($,this.requireOrg())}getProgress($){return this.inner.getProgress($,this.requireOrg())}listMessages($,Z){return this.inner.listMessages($,this.requireOrg(),Z)}listWithLastMessage($){return this.inner.listWithLastMessage(this.requireOrg(),$)}messageParts(){return this.inner.messageParts()}getRunFence($){return this.inner.getRunFence($)}setRunFence($,Z){return this.inner.setRunFence($,Z)}setCancelRequested($,Z){return this.inner.setCancelRequested($,Z)}getCancelRequestedAt($){return this.inner.getCancelRequestedAt($)}clearCancelRequested($){return this.inner.clearCancelRequested($)}bumpAckedSeq($,Z,X){return this.inner.bumpAckedSeq($,this.requireOrg(),Z,X)}getAckedSeq($){return this.inner.getAckedSeq($,this.requireOrg())}}class Dg{db;constructor($){this.db=$}messageParts(){return new fa0(this.db)}async create($){let Z=$.id??$4("thrd"),X=new Date().toISOString();if(!$.organization_id)throw Error("organization_id is required");if(!$.created_by)throw Error("created_by is required");if(!$.title)$.title=qB;let Q={id:Z,organization_id:$.organization_id,title:$.title,description:$.description??null,status:$.status??"completed",trigger_id:$.trigger_id??null,virtual_mcp_id:$.virtual_mcp_id??"",branch:$.branch??null,sandbox_provider_kind:$.sandbox_provider_kind??null,harness_id:$.harness_id??null,created_at:X,updated_at:X,created_by:$.created_by,updated_by:$.updated_by??null,...$.message_storage_version!==void 0?{message_storage_version:$.message_storage_version}:{},...$.metadata!==void 0?{metadata:JSON.stringify($.metadata)}:{}},Y=await this.db.insertInto("threads").values(Q).onConflict((J)=>J.column("id").doNothing()).returningAll().executeTakeFirst();if(Y)return{...this.threadFromDbRow(Y),isNew:!0};let G=await this.db.selectFrom("threads").selectAll().where("id","=",Z).where("organization_id","=",$.organization_id).executeTakeFirstOrThrow();return{...this.threadFromDbRow(G),isNew:!1}}async get($,Z){let X=await this.db.selectFrom("threads").selectAll().where("id","=",$).where("organization_id","=",Z).executeTakeFirst();return X?this.threadFromDbRow(X):null}async update($,Z,X){let Y={updated_at:new Date().toISOString()};if(X.title!==void 0)Y.title=X.title;if(X.description!==void 0)Y.description=X.description;if(X.updated_by!==void 0)Y.updated_by=X.updated_by;if(X.hidden!==void 0)Y.hidden=X.hidden;if(X.status!==void 0)Y.status=X.status;if(X.context_start_message_id!==void 0)Y.context_start_message_id=X.context_start_message_id;if(X.run_owner_pod!==void 0)Y.run_owner_pod=X.run_owner_pod;if(X.run_config!==void 0)Y.run_config=X.run_config?JSON.stringify(X.run_config):null;if(X.run_started_at!==void 0)Y.run_started_at=X.run_started_at;if(X.last_progress_at!==void 0)Y.last_progress_at=X.last_progress_at;if(X.failure_reason!==void 0)Y.failure_reason=X.failure_reason;if(X.failure_kind!==void 0)Y.failure_kind=X.failure_kind;if(X.metadata!==void 0)Y.metadata=JSON.stringify(X.metadata);if(X.branch!==void 0)Y.branch=X.branch;if(X.virtual_mcp_id!==void 0)Y.virtual_mcp_id=X.virtual_mcp_id;if(X.sandbox_provider_kind!==void 0)Y.sandbox_provider_kind=X.sandbox_provider_kind;if(X.harness_id!==void 0)Y.harness_id=X.harness_id;if(X.message_storage_version!==void 0)Y.message_storage_version=X.message_storage_version;await this.db.updateTable("threads").set(Y).where("id","=",$).where("organization_id","=",Z).execute();let G=await this.get($,Z);if(!G)throw Error("Thread not found after update");return G}async pinRuntimeIfUnset($,Z,X){let Q=await this.db.updateTable("threads").set({harness_id:X.harnessId,sandbox_provider_kind:Lg`coalesce(${Lg.ref("sandbox_provider_kind")}, ${X.sandboxProviderKind})`,branch:Lg`coalesce(${Lg.ref("branch")}, ${X.branch})`,updated_at:new Date().toISOString(),...X.messageStorageVersion!==void 0?{message_storage_version:X.messageStorageVersion}:{}}).where("id","=",$).where("organization_id","=",Z).where("harness_id","is",null).where((Y)=>X.sandboxProviderKind===null?Y("sandbox_provider_kind","is",null):Y.or([Y("sandbox_provider_kind","is",null),Y("sandbox_provider_kind","=",X.sandboxProviderKind)])).returningAll().executeTakeFirst();if(Q)return{thread:this.threadFromDbRow(Q),claimed:!0};return{thread:await this.get($,Z),claimed:!1}}async completeRunIfNotCompleted($,Z){let Q=(await this.db.updateTable("threads").set({status:"completed",run_owner_pod:null,run_config:null,run_started_at:null,updated_at:new Date().toISOString()}).where("id","=",$).where("organization_id","=",Z).where("status","=","in_progress").returningAll().execute())[0];return Q?this.threadFromDbRow(Q):null}async markRunFailed($,Z,X,Q){let G=(await this.db.updateTable("threads").set({status:"failed",failure_reason:X,failure_kind:Q,run_owner_pod:null,run_config:null,run_started_at:null,updated_at:new Date().toISOString()}).where("id","=",$).where("organization_id","=",Z).where("status","=","in_progress").returningAll().execute())[0];return G?this.threadFromDbRow(G):null}async requiresActionIfInProgress($,Z){let Q=(await this.db.updateTable("threads").set({status:"requires_action",run_config:null,run_started_at:null,updated_at:new Date().toISOString()}).where("id","=",$).where("organization_id","=",Z).where("status","=","in_progress").returningAll().execute())[0];return Q?this.threadFromDbRow(Q):null}async forceFailIfInProgress($,Z,X){let Q=new Date().toISOString(),Y=this.db.updateTable("threads").set({status:"failed",updated_at:Q}).where("id","=",$).where("organization_id","=",Z).where("status","=","in_progress");if(X!=null)Y=Y.where("run_fence_token","=",X);return((await Y.executeTakeFirst()).numUpdatedRows??BigInt(0))>BigInt(0)}async delete($,Z){await this.db.deleteFrom("threads").where("id","=",$).where("organization_id","=",Z).execute()}async list($,Z,X){let Q=X?.includeArchived===!0,Y=this.db.selectFrom("threads").selectAll().where("organization_id","=",$).where("hidden","=",Q).orderBy("updated_at","desc");if(Z)Y=Y.where("created_by","=",Z);let G=X?.virtualMcpId??X?.agentId;if(G)Y=Y.where("virtual_mcp_id","=",G);if(X?.hasTrigger===!0)Y=Y.where("trigger_id","is not",null);else if(X?.hasTrigger===!1)Y=Y.where("trigger_id","is",null);if(X?.startDate)Y=Y.where("updated_at",">=",X.startDate);if(X?.endDate)Y=Y.where("updated_at","<=",X.endDate);if(X?.search)Y=Y.where("title","ilike",`%${YJ8(X.search)}%`);if(X?.status)Y=Y.where("status","=",X.status);let J=this.db.selectFrom("threads").select((H)=>H.fn.count("id").as("count")).where("organization_id","=",$).where("hidden","=",Q);if(Z)J=J.where("created_by","=",Z);if(G)J=J.where("virtual_mcp_id","=",G);if(X?.hasTrigger===!0)J=J.where("trigger_id","is not",null);else if(X?.hasTrigger===!1)J=J.where("trigger_id","is",null);if(X?.startDate)J=J.where("updated_at",">=",X.startDate);if(X?.endDate)J=J.where("updated_at","<=",X.endDate);if(X?.search)J=J.where("title","ilike",`%${YJ8(X.search)}%`);if(X?.status)J=J.where("status","=",X.status);if(X?.limit)Y=Y.limit(X.limit);if(X?.offset)Y=Y.offset(X.offset);let[K,W]=await Promise.all([Y.execute(),J.executeTakeFirst()]);return{threads:K.map((H)=>this.threadFromDbRow(H)),total:Number(W?.count||0)}}async listByTriggerIds($,Z,X){if(Z.length===0)return{threads:[],total:0};let Q=this.db.selectFrom("threads").selectAll().where("organization_id","=",$).where("hidden","=",!1).where("trigger_id","in",Z).orderBy("updated_at","desc"),Y=this.db.selectFrom("threads").select((K)=>K.fn.count("id").as("count")).where("organization_id","=",$).where("hidden","=",!1).where("trigger_id","in",Z);if(X?.limit)Q=Q.limit(X.limit);if(X?.offset)Q=Q.offset(X.offset);let[G,J]=await Promise.all([Q.execute(),Y.executeTakeFirst()]);return{threads:G.map((K)=>this.threadFromDbRow(K)),total:Number(J?.count||0)}}async findLastUsedByVirtualMcpIds($,Z){let X=new Map;if(Z.length===0)return X;let Q=await this.db.selectFrom("threads").distinctOn("virtual_mcp_id").select(["virtual_mcp_id","created_by","created_at"]).where("organization_id","=",$).where("virtual_mcp_id","in",Z).orderBy("virtual_mcp_id").orderBy("created_at","desc").execute();for(let Y of Q)X.set(Y.virtual_mcp_id,{last_used_at:Xz(Y.created_at),last_used_by:Y.created_by});return X}async listWithLastMessage($,Z){let X=this.db.selectFrom("threads as t").innerJoinLateral((Y)=>Y.selectFrom("thread_messages as m").selectAll().whereRef("m.thread_id","=","t.id").orderBy("m.created_at","desc").orderBy("m.id","desc").limit(1).as("lm"),(Y)=>Y.onTrue()).selectAll("t").select(["lm.id as lm_id","lm.thread_id as lm_thread_id","lm.metadata as lm_metadata","lm.parts as lm_parts","lm.role as lm_role","lm.created_at as lm_created_at","lm.updated_at as lm_updated_at"]).where("t.organization_id","=",$).where("t.hidden","=",!1).where("lm.role","=",Z.lastMessageRole).orderBy("lm.created_at","desc").limit(Z.limit);if(Z.createdBy)X=X.where("t.created_by","=",Z.createdBy);return(await X.execute()).map((Y)=>({thread:this.threadFromDbRow(Y),lastMessage:this.messageFromDbRow({id:Y.lm_id,thread_id:Y.lm_thread_id,metadata:Y.lm_metadata,parts:Y.lm_parts,role:Y.lm_role,created_at:Y.lm_created_at,updated_at:Y.lm_updated_at})}))}async listMessages($,Z,X){if(!await this.get($,Z))return{messages:[],total:0};let Y=X?.sort??"asc",G=this.db.selectFrom("thread_messages").selectAll().where("thread_id","=",$).orderBy("created_at",Y).orderBy("id",Y),J=this.db.selectFrom("thread_messages").select((H)=>H.fn.count("id").as("count")).where("thread_id","=",$);if(X?.limit)G=G.limit(X.limit);if(X?.offset)G=G.offset(X.offset);let[K,W]=await Promise.all([G.execute(),J.executeTakeFirst()]);return{messages:K.map((H)=>this.messageFromDbRow(H)),total:Number(W?.count||0)}}async bumpProgress($,Z){await this.db.updateTable("threads").set({last_progress_at:Lg`now()`}).where("id","=",$).where("organization_id","=",Z).execute()}async getProgress($,Z){let X=await this.db.selectFrom("threads").select(["last_progress_at","run_started_at"]).where("id","=",$).where("organization_id","=",Z).executeTakeFirst();if(!X)return null;let Q=(Y)=>{if(Y==null)return null;let G=(Y instanceof Date?Y:new Date(Y)).getTime();return Number.isNaN(G)?null:G};return{lastProgressAt:Q(X.last_progress_at),runStartedAt:Q(X.run_started_at)}}async getRunFence($){return(await this.db.selectFrom("threads").select("run_fence_token").where("id","=",$).executeTakeFirst())?.run_fence_token??null}async setRunFence($,Z){await this.db.updateTable("threads").set(Z===null?{run_fence_token:null,run_acked_seq:null}:{run_fence_token:Z,run_acked_seq:null,status:"in_progress"}).where("id","=",$).execute()}async setCancelRequested($,Z){await this.db.updateTable("threads").set({cancel_requested_at:Lg`now()`}).where("id","=",$).where("organization_id","=",Z).execute()}async getCancelRequestedAt($){let X=(await this.db.selectFrom("threads").select("cancel_requested_at").where("id","=",$).executeTakeFirst())?.cancel_requested_at;if(X==null)return null;return X instanceof Date?X:new Date(X)}async clearCancelRequested($){await this.db.updateTable("threads").set({cancel_requested_at:null}).where("id","=",$).execute()}async bumpAckedSeq($,Z,X,Q){await this.db.updateTable("threads").set({run_acked_seq:Q}).where("id","=",$).where("organization_id","=",Z).where((Y)=>Y.or([Y("run_acked_seq","is",null),Y("run_acked_seq","<",Q)])).execute()}async getAckedSeq($,Z){return(await this.db.selectFrom("threads").select("run_acked_seq").where("id","=",$).where("organization_id","=",Z).executeTakeFirst())?.run_acked_seq??0}threadFromDbRow($){let Z={};if($.metadata!=null)if(typeof $.metadata==="string")try{Z=JSON.parse($.metadata)}catch(X){console.error(`Failed to parse metadata for thread ${$.id}:`,$.metadata,X)}else Z=$.metadata;return{id:$.id,organization_id:$.organization_id,title:$.title,description:$.description,status:$.status,trigger_id:$.trigger_id??null,context_start_message_id:$.context_start_message_id??null,run_owner_pod:$.run_owner_pod??null,run_config:$.run_config??null,run_started_at:$.run_started_at?Xz($.run_started_at):null,last_progress_at:$.last_progress_at?Xz($.last_progress_at):null,virtual_mcp_id:$.virtual_mcp_id??"",branch:$.branch??null,sandbox_provider_kind:$.sandbox_provider_kind??null,harness_id:$.harness_id??null,metadata:Z,created_at:Xz($.created_at),updated_at:Xz($.updated_at),created_by:$.created_by,updated_by:$.updated_by??void 0,hidden:!!$.hidden,message_storage_version:$.message_storage_version??1,link_transport:$.link_transport??null}}messageFromDbRow($){let Z,X;try{Z=$.metadata?JSON.parse($.metadata):void 0}catch(Q){console.error(`Failed to parse metadata for message ${$.id}:`,$.metadata,Q),Z=void 0}try{X=typeof $.parts==="string"?JSON.parse($.parts):$.parts}catch(Q){console.error(`Failed to parse parts for message ${$.id}:`,$.parts,Q),X=[]}return{id:$.id,thread_id:$.thread_id,metadata:Z,parts:X,role:$.role,created_at:Xz($.created_at),updated_at:Xz($.updated_at)}}}var ya0=O(()=>{dX();MB();QJ8()});import{sql as ga0}from"kysely";function eQ0($){if($==null)return null;return typeof $==="string"?$:$.toISOString()}function $Y0($){return`msg_async_stub_${$}`}async function ha0($,Z){await $.deleteFrom("thread_messages").where("id","=",$Y0(Z)).execute(),await $.deleteFrom("thread_message_parts").where("message_id","=",$Y0(Z)).execute()}function NN4($){if($==null)return null;if(typeof $!=="string")return $;try{return JSON.parse($)}catch{return null}}function ua0($){return{id:$.id,interactionId:$.interaction_id??null,toolCallId:$.tool_call_id,organizationId:$.organization_id,threadId:$.thread_id,messageId:$.message_id??null,provider:$.provider,modelId:$.model_id,query:$.query,status:$.status,attempts:$.attempts??0,lastPolledAt:eQ0($.last_polled_at),lastError:$.last_error??null,inputTokens:$.input_tokens??null,outputTokens:$.output_tokens??null,citations:NN4($.citations),resultUri:$.result_uri??null,resultPreview:$.result_preview??null,resultContent:$.result_content??null,createdAt:eQ0($.created_at)??"",updatedAt:eQ0($.updated_at)??"",completedAt:eQ0($.completed_at)}}class ca0{inner;organizationId;constructor($,Z){this.inner=$;this.organizationId=Z}requireOrg(){if(!this.organizationId)throw Error("OrgScopedAsyncResearchJobStorage: requires an authenticated organization");return this.organizationId}setOrganizationId($){this.organizationId=$}upsertPending($){return this.inner.upsertPending({organizationId:this.requireOrg(),...$})}findByToolCall($){return this.inner.findByToolCall(this.requireOrg(),$)}markPolling($,Z,X){return this.inner.markPolling(this.requireOrg(),$,Z,X)}recordPoll($,Z){return this.inner.recordPoll(this.requireOrg(),$,Z)}markCompleted($,Z){return this.inner.markCompleted(this.requireOrg(),$,Z)}markFailed($,Z){return this.inner.markFailed(this.requireOrg(),$,Z)}markCancelled($,Z){return this.inner.markCancelled(this.requireOrg(),$,Z)}}class tp{db;constructor($){this.db=$}async upsertPending($){let Z=new Date().toISOString(),X=await this.db.insertInto("async_research_jobs").values({organization_id:$.organizationId,thread_id:$.threadId,tool_call_id:$.toolCallId,message_id:$.messageId??null,provider:$.provider,model_id:$.modelId,query:$.query,status:"pending",attempts:0,updated_at:Z}).onConflict((Y)=>Y.columns(["organization_id","tool_call_id"]).doNothing()).returningAll().executeTakeFirst();if(X)return ua0(X);let Q=await this.db.selectFrom("async_research_jobs").selectAll().where("organization_id","=",$.organizationId).where("tool_call_id","=",$.toolCallId).executeTakeFirstOrThrow();return ua0(Q)}async findByToolCall($,Z){let X=await this.db.selectFrom("async_research_jobs").selectAll().where("organization_id","=",$).where("tool_call_id","=",Z).executeTakeFirst();return X?ua0(X):null}async markPolling($,Z,X,Q){let Y=new Date().toISOString();await this.db.transaction().execute(async(G)=>{if(await G.updateTable("async_research_jobs").set({status:"polling",interaction_id:X,last_polled_at:Y,updated_at:Y}).where("organization_id","=",$).where("tool_call_id","=",Z).execute(),(await G.selectFrom("threads").select("message_storage_version").where("id","=",Q.threadId).where("organization_id","=",$).executeTakeFirst())?.message_storage_version!==2)return;let K=$Y0(Z);await G.insertInto("thread_message_parts").values([{id:`${Q.threadId}:${K}:0`,seq:0,org_id:$,thread_id:Q.threadId,run_id:Q.threadId,message_id:K,role:"assistant",kind:"tool_call",payload:JSON.stringify({type:`tool-${Q.toolName}`,toolCallId:Z,state:"input-available",input:{query:Q.query}}),payload_ref:null,metadata:null,created_at:Y},{id:`${Q.threadId}:${K}:finish`,seq:1,org_id:$,thread_id:Q.threadId,run_id:Q.threadId,message_id:K,role:"assistant",kind:"finish",payload:JSON.stringify({}),payload_ref:null,metadata:null,created_at:Y}]).onConflict((W)=>W.column("id").doNothing()).execute()})}async recordPoll($,Z,X){let Q=new Date().toISOString();await this.db.updateTable("async_research_jobs").set({attempts:ga0`attempts + 1`,last_polled_at:Q,...X!==void 0?{last_error:X}:{},updated_at:Q}).where("organization_id","=",$).where("tool_call_id","=",Z).execute()}async markCompleted($,Z,X){let Q=new Date().toISOString();await this.db.transaction().execute(async(Y)=>{await Y.updateTable("async_research_jobs").set({status:"completed",input_tokens:X.inputTokens,output_tokens:X.outputTokens,citations:JSON.stringify(X.citations),result_uri:X.resultUri,result_preview:X.resultPreview,result_content:X.resultContent,completed_at:Q,updated_at:Q}).where("organization_id","=",$).where("tool_call_id","=",Z).execute(),await ha0(Y,Z)})}async markFailed($,Z,X){let Q=new Date().toISOString();await this.db.transaction().execute(async(Y)=>{await Y.updateTable("async_research_jobs").set({status:"failed",last_error:X,completed_at:Q,updated_at:Q}).where("organization_id","=",$).where("tool_call_id","=",Z).execute(),await ha0(Y,Z)})}async markCancelled($,Z,X){let Q=new Date().toISOString();await this.db.transaction().execute(async(Y)=>{await Y.updateTable("async_research_jobs").set({status:"cancelled",last_error:X??null,completed_at:Q,updated_at:Q}).where("organization_id","=",$).where("tool_call_id","=",Z).execute(),await ha0(Y,Z)})}async sweepAbandoned($){let Z=new Date(Date.now()-$).toISOString(),X=new Date().toISOString();return await this.db.transaction().execute(async(Q)=>{let Y=await Q.updateTable("async_research_jobs").set({status:"abandoned",completed_at:X,updated_at:X,last_error:ga0`COALESCE(last_error, '') || ' [abandoned by sweeper]'`}).where("status","in",["pending","polling"]).where(ga0`COALESCE(last_polled_at, created_at) < ${Z}::timestamptz`).returning(["tool_call_id"]).execute();if(Y.length===0)return 0;let G=Y.map((J)=>$Y0(J.tool_call_id));return await Q.deleteFrom("thread_messages").where("id","in",G).execute(),await Q.deleteFrom("thread_message_parts").where("message_id","in",G).execute(),Y.length})}}var la0=()=>{};function ZY0(){let $=new Map;function Z(Q,Y){let G=$.get(Y);if(G)return G;let J=new h9({name:`outbound-client-${Y}`,version:"1.0.0"},{capabilities:{tasks:{list:{},cancel:{},requests:{tool:{call:{}}}}},jsonSchemaValidator:w5});J.onclose=()=>{$.delete(Y)};let K=J.connect(Q).then(()=>J).catch((W)=>{throw $.delete(Y),W});return $.set(Y,K),K}return Object.assign(Z,{[Symbol.asyncDispose]:async()=>{let Q=[];for(let[Y,G]of $)Q.push(G.then((J)=>J.close()).catch(()=>{}));await Promise.all(Q),$.clear()}})}var da0=O(()=>{BW();tX()});class ma0{db;vault;constructor($,Z){this.db=$;this.vault=Z}async get($){let Z=await this.db.selectFrom("subsidized_gateway_keys").select("encrypted_key").where("organization_id","=",$).executeTakeFirst();if(!Z)return null;return await this.vault.decrypt(Z.encrypted_key)}async put($,Z){let X=await this.vault.encrypt(Z);await this.db.insertInto("subsidized_gateway_keys").values({organization_id:$,encrypted_key:X}).onConflict((Q)=>Q.column("organization_id").doUpdateSet({encrypted_key:X})).execute()}}import{sql as UN4}from"kysely";function GJ8($){return $ instanceof Date?$.toISOString():String($)}class ia0{db;vault;constructor($,Z){this.db=$;this.vault=Z}rowToInfo($){return{id:$.id,organizationId:$.organization_id,scope:$.scope,userId:$.user_id,name:$.name,description:$.description,createdBy:$.created_by,createdAt:GJ8($.created_at),updatedBy:$.updated_by,updatedAt:GJ8($.updated_at)}}assertVisible($,Z){if($.scope==="user"&&$.user_id!==Z)throw new kB($.id)}async create($){let Z=$4("sec"),X=await this.vault.encrypt($.value),Q=new Date,Y=await this.db.insertInto("secrets").values({id:Z,organization_id:$.organizationId,scope:$.scope.kind,user_id:$.scope.kind==="user"?$.scope.userId:null,name:$.name,encrypted_value:X,description:$.description??null,created_by:$.createdBy,created_at:Q,updated_by:$.createdBy,updated_at:Q}).returning(XY0).executeTakeFirstOrThrow();return this.rowToInfo(Y)}async update($){let Z=await this.db.selectFrom("secrets").where("id","=",$.id).where("organization_id","=",$.organizationId).select(["id","scope","user_id"]).executeTakeFirst();if(!Z)throw new Y3($.id);this.assertVisible(Z,$.callerUserId);let X={updated_by:$.updatedBy,updated_at:new Date};if($.value!==void 0)X.encrypted_value=await this.vault.encrypt($.value);if($.description!==void 0)X.description=$.description;let Q=await this.db.updateTable("secrets").set(X).where("id","=",$.id).where("organization_id","=",$.organizationId).returning(XY0).executeTakeFirstOrThrow();return this.rowToInfo(Q)}async delete($,Z,X){let Q=await this.db.selectFrom("secrets").where("id","=",$).where("organization_id","=",Z).select(["id","scope","user_id"]).executeTakeFirst();if(!Q)throw new Y3($);this.assertVisible(Q,X),await this.db.deleteFrom("secrets").where("id","=",$).where("organization_id","=",Z).execute()}async list($){let Z=this.db.selectFrom("secrets").where("organization_id","=",$.organizationId).select(XY0);if($.scope?.kind==="user")Z=Z.where("scope","=","user").where("user_id","=",$.scope.userId);else if($.scope?.kind==="organization")Z=Z.where("scope","=","organization");else Z=Z.where((Q)=>Q.or([Q("scope","=","organization"),Q.and([Q("scope","=","user"),Q("user_id","=",$.callerUserId)])]));return(await Z.orderBy("created_at","desc").execute()).map((Q)=>this.rowToInfo(Q))}async findById($,Z,X){let Q=await this.db.selectFrom("secrets").where("id","=",$).where("organization_id","=",Z).select(XY0).executeTakeFirst();if(!Q)throw new Y3($);return this.assertVisible(Q,X),this.rowToInfo(Q)}async resolveById($,Z,X){let Q=await this.db.selectFrom("secrets").where("id","=",$).where("organization_id","=",Z).selectAll().executeTakeFirst();if(!Q)throw new Y3($);this.assertVisible(Q,X);let Y=await this.vault.decrypt(Q.encrypted_value);return{info:this.rowToInfo(Q),value:Y}}async resolveByName($){let Z=this.db.selectFrom("secrets").where("organization_id","=",$.organizationId).where("scope","=",$.scope.kind).where(UN4`lower(name) = lower(${$.name})`).selectAll();if($.scope.kind==="user")Z=Z.where("user_id","=",$.scope.userId);let X=await Z.executeTakeFirst();if(!X)throw new Y3(`${$.scope.kind}:${$.name}`);let Q=await this.vault.decrypt(X.encrypted_value);return{info:this.rowToInfo(X),value:Q}}}var XY0,Y3,kB;var op=O(()=>{dX();XY0=["id","organization_id","scope","user_id","name","description","created_by","created_at","updated_by","updated_at"];Y3=class Y3 extends Error{constructor($){super(`Secret ${$} not found`);this.name="SecretNotFoundError"}};kB=class kB extends Error{constructor($){super(`Access denied for secret ${$}`);this.name="SecretAccessDeniedError"}}});import{sql as FN4}from"kysely";function JJ8($){return $ instanceof Date?$.toISOString():String($)}class na0{db;vault;constructor($,Z){this.db=$;this.vault=Z}rowToInfo($){return{id:$.id,organizationId:$.organization_id,name:$.name,description:$.description,bucket:$.bucket,region:$.region,endpoint:$.endpoint,forcePathStyle:$.force_path_style,prefix:$.prefix,publicUrlBase:$.public_url_base,credentialType:$.credential_type??"static",refreshUrl:$.refresh_url,siteSlug:$.site_slug,createdBy:$.created_by,createdAt:JJ8($.created_at),updatedBy:$.updated_by,updatedAt:JJ8($.updated_at)}}async create($){let Z=$4("fcfg"),X=await this.vault.encrypt(JSON.stringify($.credentials)),Q=new Date,Y=await this.db.insertInto("org_file_configs").values({id:Z,organization_id:$.organizationId,name:$.name,description:$.description??null,bucket:$.bucket,region:$.region,endpoint:$.endpoint??null,force_path_style:$.forcePathStyle??!1,prefix:$.prefix??null,public_url_base:$.publicUrlBase??null,credential_type:$.credentials.type,refresh_url:$.refreshUrl??null,site_slug:$.siteSlug??null,encrypted_credentials:X,created_by:$.createdBy,created_at:Q,updated_by:$.createdBy,updated_at:Q}).returning(QY0).executeTakeFirstOrThrow();return this.rowToInfo(Y)}async update($){if(!await this.db.selectFrom("org_file_configs").where("id","=",$.id).where("organization_id","=",$.organizationId).select(["id"]).executeTakeFirst())throw new Eg($.id);let X={updated_by:$.updatedBy,updated_at:new Date};if($.name!==void 0)X.name=$.name;if($.description!==void 0)X.description=$.description;if($.bucket!==void 0)X.bucket=$.bucket;if($.region!==void 0)X.region=$.region;if($.endpoint!==void 0)X.endpoint=$.endpoint;if($.forcePathStyle!==void 0)X.force_path_style=$.forcePathStyle;if($.prefix!==void 0)X.prefix=$.prefix;if($.publicUrlBase!==void 0)X.public_url_base=$.publicUrlBase;if($.refreshUrl!==void 0)X.refresh_url=$.refreshUrl;if($.siteSlug!==void 0)X.site_slug=$.siteSlug;if($.credentials!==void 0)X.credential_type=$.credentials.type,X.encrypted_credentials=await this.vault.encrypt(JSON.stringify($.credentials));let Q=await this.db.updateTable("org_file_configs").set(X).where("id","=",$.id).where("organization_id","=",$.organizationId).returning(QY0).executeTakeFirstOrThrow();return this.rowToInfo(Q)}async delete($,Z){if(!await this.db.selectFrom("org_file_configs").where("id","=",$).where("organization_id","=",Z).select(["id"]).executeTakeFirst())throw new Eg($);await this.db.deleteFrom("org_file_configs").where("id","=",$).where("organization_id","=",Z).execute()}async list($){return(await this.db.selectFrom("org_file_configs").where("organization_id","=",$).select(QY0).orderBy("created_at","desc").execute()).map((X)=>this.rowToInfo(X))}async findById($,Z){let X=await this.db.selectFrom("org_file_configs").where("id","=",$).where("organization_id","=",Z).select(QY0).executeTakeFirst();if(!X)throw new Eg($);return this.rowToInfo(X)}async resolveById($,Z){let X=await this.db.selectFrom("org_file_configs").where("id","=",$).where("organization_id","=",Z).selectAll().executeTakeFirst();if(!X)throw new Eg($);return{info:this.rowToInfo(X),credentials:await this.decodeCredentials(X)}}async resolveByName($){let Z=await this.db.selectFrom("org_file_configs").where("organization_id","=",$.organizationId).where(FN4`lower(name) = lower(${$.name})`).selectAll().executeTakeFirst();if(!Z)throw new Eg($.name);return{info:this.rowToInfo(Z),credentials:await this.decodeCredentials(Z)}}async decodeCredentials($){if($.credential_type==="managed")return{type:"managed"};let Z=await this.vault.decrypt($.encrypted_credentials),X=JSON.parse(Z);if(($.credential_type??"static")==="sts-session")return{type:"sts-session",apiKey:String(X.apiKey)};return{type:"static",accessKeyId:String(X.accessKeyId),secretAccessKey:String(X.secretAccessKey)}}}var QY0,Eg;var KJ8=O(()=>{dX();QY0=["id","organization_id","name","description","bucket","region","endpoint","force_path_style","prefix","public_url_base","credential_type","refresh_url","site_slug","created_by","created_at","updated_by","updated_at"];Eg=class Eg extends Error{constructor($){super(`File config ${$} not found`);this.name="OrgFileConfigNotFoundError"}}});function YY0($){return pa0.test($)}var pa0;var GY0=O(()=>{pa0=/^[a-z0-9][a-z0-9-]{0,59}$/});function WJ8($){return $ instanceof Date?$.toISOString():String($)}function ta0($){return{slug:$.slug,organizationId:$.organization_id,source:$.source,createdBy:$.created_by,createdAt:WJ8($.created_at),updatedBy:$.updated_by,updatedAt:WJ8($.updated_at)}}class ra0{db;constructor($){this.db=$}async claimSite($){if(!YY0($.slug))throw Error(`Invalid site slug "${$.slug}" \u2014 must be 1-60 chars of lowercase letters, digits, or hyphens, starting with a letter or digit`);let Z=new Date,X=await this.db.insertInto("org_sites").values({slug:$.slug,organization_id:$.organizationId,source:$.source??"deco-import",created_by:$.by,created_at:Z,updated_by:$.by,updated_at:Z}).onConflict((G)=>G.column("slug").doNothing()).returningAll().executeTakeFirst();if(X)return ta0(X);let Q=await this.getBySlug($.slug);if(!Q)throw new oa0($.slug,"unknown");if(Q.organizationId!==$.organizationId)throw new oa0($.slug,Q.organizationId);let Y=await this.db.updateTable("org_sites").set({source:$.source??Q.source,updated_by:$.by,updated_at:Z}).where("slug","=",$.slug).where("organization_id","=",$.organizationId).returningAll().executeTakeFirstOrThrow();return ta0(Y)}async getBySlug($){let Z=await this.db.selectFrom("org_sites").selectAll().where("slug","=",$).executeTakeFirst();return Z?ta0(Z):null}async isOwnedBy($,Z){return!!await this.db.selectFrom("org_sites").select("slug").where("slug","=",$).where("organization_id","=",Z).executeTakeFirst()}}var oa0;var HJ8=O(()=>{GY0();oa0=class oa0 extends Error{slug;ownerOrganizationId;constructor($,Z){super(`Site slug "${$}" is already owned by another organization`);this.slug=$;this.ownerOrganizationId=Z;this.name="OrgSiteConflictError"}}});function NJ8($,Z){return $?.startsWith(`${rp[Z]}:`)??!1}function aa0($){let Z=0;for(let X of $){if(X.action!=="status_changed")continue;if(X.data?.to!=="in_review")continue;Z=Math.max(Z,new Date(X.occurredAt).getTime())}return Z}function wN4($,Z){let X=aa0($),Q=new Map;for(let Y of $){if(Y.action!=="review_approved"&&Y.action!=="review_changes_requested")continue;if(new Date(Y.occurredAt).getTime()<X)continue;let G=Y.data??{};if(G.reviewer!=="qa"&&G.reviewer!=="code_review")continue;if(Y.action==="review_approved"){if(Z?.verifiedOnly&&G.verified!==!0)continue;Q.set(G.reviewer,"approved")}else Q.set(G.reviewer,"changes_requested")}return Q}function zg($,Z,X){if(Z.length===0)return!1;let Q=wN4($,X);return Z.every((Y)=>Q.get(Y)==="approved")}var B5="super-agent",SB,rp,VB,UJ8="task-board.item.updated",FJ8="task-board.item.deleted";var G3=O(()=>{SB=["qa","code_review"],rp={qa:"QA Agent",code_review:"Code Reviewer"},VB={qa:"qa_agent_enabled",code_review:"code_reviewer_enabled"}});function sa0($){let Z=(X)=>X instanceof Date?X.toISOString():X;return{id:$.id,taskBoardItemId:$.task_board_item_id,parentId:$.parent_id,authorId:$.author_id,body:$.body,resolved:$.resolved,createdAt:Z($.created_at),updatedAt:Z($.updated_at)}}function BN4($){if($&&typeof $==="object"&&!Array.isArray($)){let Z=$.text;if(typeof Z==="string"&&Z.trim())return Z.trim()}return null}function $s0($){if($.status!=="in_progress")return!1;let Z=$.threads.filter((X)=>X.hasMessages);if(Z.length===0)return!1;return Z.every((X)=>X.status!==null&&ea0.has(X.status))}function ON4($){let Z=typeof $==="string"?(()=>{try{return JSON.parse($)}catch{return null}})():$;if(!Z||typeof Z!=="object")return!1;let X=Z.githubRepo?.url;return typeof X==="string"&&X.length>0}class CB{db;constructor($){this.db=$}inTransaction($){return this.db.isTransaction?$(this.db):this.db.transaction().execute($)}async list($){let X=(await this.db.selectFrom("task_board_items").selectAll().where("organization_id","=",$).orderBy("sort_order","asc").execute()).map((Q)=>this.itemFromDbRow(Q));return await this.attachRefs(X,$),X}async getById($,Z){let X=await this.db.selectFrom("task_board_items").selectAll().where("id","=",$).where("organization_id","=",Z).executeTakeFirst();if(!X)return null;let Q=this.itemFromDbRow(X);return await this.attachRefs([Q],Z),Q}async create($){let Z=$4("board"),X=new Date().toISOString(),Q=$.status??"triage",{minOrder:Y}=await this.db.selectFrom("task_board_items").select((J)=>J.fn.min("sort_order").as("minOrder")).where("organization_id","=",$.organizationId).where("status","=",Q).executeTakeFirstOrThrow(),G=await this.db.insertInto("task_board_items").values({id:Z,organization_id:$.organizationId,title:$.title,description:$.description??null,status:Q,priority:$.priority??"medium",assignee_id:$.assigneeId??null,assigned_by:$.assignedBy??null,due_date:$.dueDate??null,external_key:$.externalKey??null,sort_order:(Y??0)-1,created_by:$.by,created_at:X,updated_by:$.by,updated_at:X}).returningAll().executeTakeFirstOrThrow();return this.itemFromDbRow(G)}async update($,Z,X,Q){let Y=await this.db.updateTable("task_board_items").set({...X.title!==void 0?{title:X.title}:{},...X.description!==void 0?{description:X.description}:{},...X.status!==void 0?{status:X.status}:{},...X.priority!==void 0?{priority:X.priority}:{},...X.assigneeId!==void 0?{assignee_id:X.assigneeId}:{},...X.assignedBy!==void 0?{assigned_by:X.assignedBy}:{},...X.dueDate!==void 0?{due_date:X.dueDate}:{},...X.sortOrder!==void 0?{sort_order:X.sortOrder}:{},updated_by:Q,updated_at:new Date().toISOString()}).where("id","=",$).where("organization_id","=",Z).returningAll().executeTakeFirstOrThrow(),G=this.itemFromDbRow(Y);return await this.attachRefs([G],Z),G}async delete($,Z){await this.inTransaction(async(X)=>{await X.deleteFrom("task_board_item_threads").where("task_board_item_id","=",$).where("organization_id","=",Z).execute(),await X.deleteFrom("task_board_item_prs").where("task_board_item_id","=",$).where("organization_id","=",Z).execute(),await X.deleteFrom("task_board_items").where("id","=",$).where("organization_id","=",Z).execute()})}async setItemTags($,Z,X){await this.inTransaction(async(Q)=>{if(await Q.deleteFrom("task_board_item_tags").where("task_board_item_id","=",$).$if(Z.length>0,(Y)=>Y.where("id","not in",Z)).execute(),Z.length>0)await Q.insertInto("task_board_item_tags").values(Z.map((Y)=>({task_board_item_id:$,id:Y,created_by:X,created_at:new Date().toISOString()}))).onConflict((Y)=>Y.doNothing()).execute()})}async linkThread($,Z,X){await this.db.insertInto("task_board_item_threads").values({task_board_item_id:$,thread_id:Z,organization_id:X}).onConflict((Q)=>Q.columns(["task_board_item_id","thread_id"]).doNothing()).execute()}async linkedTaskIds($,Z){return(await this.db.selectFrom("task_board_item_threads").select("task_board_item_id as taskId").where("thread_id","=",$).where("organization_id","=",Z).execute()).map((Q)=>Q.taskId)}async linkPr($){await this.db.insertInto("task_board_item_prs").values({task_board_item_id:$.taskBoardItemId,organization_id:$.organizationId,url:$.url,pr_number:$.prNumber,repo_owner:$.repoOwner,repo_name:$.repoName,connection_id:$.connectionId??null}).onConflict((Z)=>Z.columns(["task_board_item_id","url"]).doNothing()).execute()}async listPrs($,Z){return(await this.db.selectFrom("task_board_item_prs").select(["url","pr_number as prNumber","repo_owner as repoOwner","repo_name as repoName","connection_id as connectionId","created_at as createdAt"]).where("task_board_item_id","=",$).where("organization_id","=",Z).orderBy("created_at","desc").execute()).map((Q)=>({url:Q.url,number:Q.prNumber,repoOwner:Q.repoOwner,repoName:Q.repoName,connectionId:Q.connectionId??null,createdAt:Q.createdAt instanceof Date?Q.createdAt.toISOString():Q.createdAt}))}async advanceLinkedTasksToReviewOnThreadFinish($,Z){let X=[];for(let Q of await this.linkedTaskIds($,Z)){let Y=await this.getById(Q,Z);if(!Y||!$s0(Y))continue;X.push(await this.update(Q,Z,{status:"in_review"},Y.updatedBy)),await this.recordActivity({taskBoardItemId:Q,action:"status_changed",actorId:null,data:{from:Y.status,to:"in_review"}}).catch((G)=>console.error("[task-board] in_review activity write failed",G))}return X}async reopenLinkedTasksOnThreadRun($,Z){let X=[];for(let Q of await this.linkedTaskIds($,Z)){let Y=await this.getById(Q,Z);if(!Y||Y.status!=="in_review")continue;X.push(await this.update(Q,Z,{status:"in_progress"},Y.updatedBy))}return X}async claimConflictResolution($,Z,X){let Q=await this.db.updateTable("task_board_items").set({status:"in_progress",updated_by:X,updated_at:new Date().toISOString()}).where("id","=",$).where("organization_id","=",Z).where("status","=","in_review").where("assignee_id","=",B5).returningAll().executeTakeFirst();if(!Q)return null;let Y=this.itemFromDbRow(Q);return await this.attachRefs([Y],Z),Y}async claimReviewChangesBounce($,Z,X){let Q=await this.db.updateTable("task_board_items").set({status:"in_progress",updated_by:X,updated_at:new Date().toISOString()}).where("id","=",$).where("organization_id","=",Z).where("status","=","in_review").where("assignee_id","=",B5).returningAll().executeTakeFirst();if(!Q)return null;let Y=this.itemFromDbRow(Q);return await this.attachRefs([Y],Z),Y}async attachRefs($,Z){if($.length===0)return;await this.inTransaction(async(X)=>{await this.attachThreads(X,$,Z),await this.attachTags(X,$)})}async attachThreads($,Z,X){let Q=Z.map((J)=>J.id),Y=await $.selectFrom("task_board_item_threads as link").innerJoin("threads as t","t.id","link.thread_id").leftJoinLateral((J)=>J.selectFrom("thread_message_parts as p").select("p.payload as payload").whereRef("p.thread_id","=","link.thread_id").where("p.role","=","assistant").where("p.kind","=","text").orderBy("p.created_at","desc").limit(1).as("lastmsg"),(J)=>J.onTrue()).select((J)=>["link.task_board_item_id as taskId","link.thread_id as threadId","link.created_at as createdAt","t.status as status","t.title as title","t.virtual_mcp_id as virtualMcpId","t.metadata as metadata","lastmsg.payload as lastMessagePayload",J.or([J.exists(J.selectFrom("thread_message_parts as mp").select("mp.id").whereRef("mp.thread_id","=","link.thread_id")),J.exists(J.selectFrom("thread_messages as tm").select("tm.id").whereRef("tm.thread_id","=","link.thread_id"))]).as("hasMessages")]).where("link.organization_id","=",X).where("link.task_board_item_id","in",Q).orderBy("link.created_at","desc").execute(),G=new Map;for(let J of Y){let K={threadId:J.threadId,virtualMcpId:J.virtualMcpId??null,status:J.status??null,title:J.title??null,lastMessage:BN4(J.lastMessagePayload),hasPreview:ON4(J.metadata),hasMessages:!!J.hasMessages,createdAt:J.createdAt instanceof Date?J.createdAt.toISOString():J.createdAt},W=G.get(J.taskId);if(W)W.push(K);else G.set(J.taskId,[K])}for(let J of Z)J.threads=G.get(J.id)??[]}async attachTags($,Z){let X=Z.map((G)=>G.id),Q=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",X).orderBy("tag.name","asc").execute(),Y=new Map;for(let G of Q){let J={id:G.id,name:G.name,color:G.color??null,createdBy:G.createdBy,createdAt:G.createdAt instanceof Date?G.createdAt.toISOString():G.createdAt},K=Y.get(G.taskId);if(K)K.push(J);else Y.set(G.taskId,[J])}for(let G of Z)G.tags=Y.get(G.id)??[]}async recordActivity($){await this.db.insertInto("task_board_activity").values({id:$4("act"),task_board_item_id:$.taskBoardItemId,action:$.action,actor_id:$.actorId,data:$.data?JSON.stringify($.data):null,occurred_at:new Date().toISOString()}).execute()}async claimReviewer($,Z,X){let Q=`rtok_${crypto.randomUUID()}`,Y=await this.db.insertInto("task_board_review_claims").values({task_board_item_id:$,reviewer:Z,cycle_at:X,token:Q}).onConflict((J)=>J.columns(["task_board_item_id","reviewer","cycle_at"]).doNothing()).returning("token").executeTakeFirst();if(Y)return{claimed:!0,token:Y.token};return{claimed:!1,token:(await this.db.selectFrom("task_board_review_claims").select("token").where("task_board_item_id","=",$).where("reviewer","=",Z).where("cycle_at","=",X).executeTakeFirst())?.token??Q}}async resolveReviewClaimByToken($,Z){let X=await this.db.selectFrom("task_board_review_claims").select(["reviewer","cycle_at"]).where("task_board_item_id","=",$).where("token","=",Z).executeTakeFirst();return X?{reviewer:X.reviewer,cycleAt:X.cycle_at}:null}async recordActivities($){if($.length===0)return;let Z=new Date().toISOString();await this.db.insertInto("task_board_activity").values($.map((X)=>({id:$4("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()}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((Q)=>({id:Q.id,taskBoardItemId:Q.task_board_item_id,action:Q.action,actorId:Q.actor_id,data:typeof Q.data==="string"?JSON.parse(Q.data):Q.data??{},occurredAt:Q.occurred_at instanceof Date?Q.occurred_at.toISOString():Q.occurred_at}))}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((Q)=>sa0(Q))}async createComment($){if(!await this.db.selectFrom("task_board_items").select("id").where("id","=",$.taskBoardItemId).where("organization_id","=",$.organizationId).executeTakeFirst())return null;let X=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;X=Y.parent_id??Y.id}let Q=await this.db.insertInto("task_board_comments").values({id:$4("cmt"),task_board_item_id:$.taskBoardItemId,parent_id:X,author_id:$.authorId,body:$.body}).returningAll().executeTakeFirstOrThrow();return sa0(Q)}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 X=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 X?sa0(X):null}async deleteComment($,Z,X){let Q=await this.commentInOrg($,Z);if(!Q||Q.authorId!==X)return!1;return await this.db.deleteFrom("task_board_comments").where("id","=",$).execute(),!0}async commentInOrg($,Z){let X=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 X?{authorId:X.author_id,parentId:X.parent_id}:null}itemFromDbRow($){return{id:$.id,organizationId:$.organization_id,title:$.title,description:$.description,status:$.status,priority:$.priority,assigneeId:$.assignee_id,assignedBy:$.assigned_by,dueDate:$.due_date instanceof Date?$.due_date.toISOString():$.due_date,sortOrder:$.sort_order,threads:[],tags:[],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 ea0;var jg=O(()=>{dX();G3();ea0=new Set(["completed","failed","expired"])});class Zs0{db;constructor($){this.db=$}async create($,Z,X){let Q=crypto.randomUUID(),Y=new Date(Date.now()+600000);return await this.db.insertInto("oauth_pkce_states").values({id:Q,organization_id:Z,user_id:X,code_verifier:$,expires_at:Y,created_at:new Date}).execute(),Q}async consume($,Z,X){let Q=await this.db.deleteFrom("oauth_pkce_states").where("id","=",$).where("organization_id","=",Z).where("user_id","=",X).returningAll().executeTakeFirst();if(!Q)throw Error("Invalid or expired OAuth state token");if((Q.expires_at instanceof Date?Q.expires_at:new Date(Q.expires_at))<new Date)throw Error("OAuth state token has expired");return Q.code_verifier}}function kW($){if($==null)return"unknown error";if(typeof $==="string")return $;if($ instanceof Error)return $.message;return JSON.stringify($)}function JY0($){if($===null||typeof $==="string"||typeof $==="number"||typeof $==="boolean")return!0;if(Array.isArray($))return $.every(JY0);if(typeof $==="object")return Object.entries($).every(([Z,X])=>typeof Z==="string"&&(X===void 0||JY0(X)));return!1}function Xs0($){return Array.isArray($)&&$.every(JY0)}function ap($){return $!=null&&typeof $==="object"&&Object.entries($).every(([Z,X])=>typeof Z==="string"&&(X===void 0||JY0(X)))}var cJ8="vercel.ai.error",LN4,wJ8,BJ8,D1,lJ8="AI_APICallError",dJ8,DN4,OJ8,LJ8,N4,mJ8="AI_EmptyResponseBodyError",iJ8,EN4,DJ8,EJ8,KY0,nJ8="AI_InvalidArgumentError",pJ8,zN4,zJ8,jJ8,_B,tJ8="AI_InvalidPromptError",oJ8,jN4,PJ8,AJ8,J3,rJ8="AI_InvalidResponseDataError",aJ8,PN4,TJ8,RJ8,Pg,sJ8="AI_JSONParseError",eJ8,AN4,IJ8,qJ8,rN,$K8="AI_LoadAPIKeyError",ZK8,TN4,MJ8,kJ8,Qz,XK8="AI_LoadSettingError",QK8,RN4,SJ8,VJ8,YK8,GK8="AI_NoContentGeneratedError",JK8,IN4,CJ8,_J8,KK8,WK8="AI_NoSuchModelError",HK8,qN4,xJ8,vJ8,h5,NK8="AI_TooManyEmbeddingValuesForCallError",UK8,MN4,fJ8,bJ8,Ag,FK8="AI_TypeValidationError",wK8,kN4,yJ8,gJ8,O5,BK8="AI_UnsupportedFunctionalityError",OK8,SN4,hJ8,uJ8,v4;var Q8=O(()=>{LN4=Symbol.for(cJ8),D1=class $ extends(BJ8=Error,wJ8=LN4,BJ8){constructor({name:Z,message:X,cause:Q}){super(X);this[wJ8]=!0,this.name=Z,this.cause=Q}static isInstance(Z){return $.hasMarker(Z,cJ8)}static hasMarker(Z,X){let Q=Symbol.for(X);return Z!=null&&typeof Z==="object"&&Q in Z&&typeof Z[Q]==="boolean"&&Z[Q]===!0}},dJ8=`vercel.ai.error.${lJ8}`,DN4=Symbol.for(dJ8),N4=class extends(LJ8=D1,OJ8=DN4,LJ8){constructor({message:$,url:Z,requestBodyValues:X,statusCode:Q,responseHeaders:Y,responseBody:G,cause:J,isRetryable:K=Q!=null&&(Q===408||Q===409||Q===429||Q>=500),data:W}){super({name:lJ8,message:$,cause:J});this[OJ8]=!0,this.url=Z,this.requestBodyValues=X,this.statusCode=Q,this.responseHeaders=Y,this.responseBody=G,this.isRetryable=K,this.data=W}static isInstance($){return D1.hasMarker($,dJ8)}},iJ8=`vercel.ai.error.${mJ8}`,EN4=Symbol.for(iJ8),KY0=class extends(EJ8=D1,DJ8=EN4,EJ8){constructor({message:$="Empty response body"}={}){super({name:mJ8,message:$});this[DJ8]=!0}static isInstance($){return D1.hasMarker($,iJ8)}};pJ8=`vercel.ai.error.${nJ8}`,zN4=Symbol.for(pJ8),_B=class extends(jJ8=D1,zJ8=zN4,jJ8){constructor({message:$,cause:Z,argument:X}){super({name:nJ8,message:$,cause:Z});this[zJ8]=!0,this.argument=X}static isInstance($){return D1.hasMarker($,pJ8)}},oJ8=`vercel.ai.error.${tJ8}`,jN4=Symbol.for(oJ8),J3=class extends(AJ8=D1,PJ8=jN4,AJ8){constructor({prompt:$,message:Z,cause:X}){super({name:tJ8,message:`Invalid prompt: ${Z}`,cause:X});this[PJ8]=!0,this.prompt=$}static isInstance($){return D1.hasMarker($,oJ8)}},aJ8=`vercel.ai.error.${rJ8}`,PN4=Symbol.for(aJ8),Pg=class extends(RJ8=D1,TJ8=PN4,RJ8){constructor({data:$,message:Z=`Invalid response data: ${JSON.stringify($)}.`}){super({name:rJ8,message:Z});this[TJ8]=!0,this.data=$}static isInstance($){return D1.hasMarker($,aJ8)}},eJ8=`vercel.ai.error.${sJ8}`,AN4=Symbol.for(eJ8),rN=class extends(qJ8=D1,IJ8=AN4,qJ8){constructor({text:$,cause:Z}){super({name:sJ8,message:`JSON parsing failed: Text: ${$}.
2274
2274
  Error message: ${kW(Z)}`,cause:Z});this[IJ8]=!0,this.text=$}static isInstance($){return D1.hasMarker($,eJ8)}},ZK8=`vercel.ai.error.${$K8}`,TN4=Symbol.for(ZK8),Qz=class extends(kJ8=D1,MJ8=TN4,kJ8){constructor({message:$}){super({name:$K8,message:$});this[MJ8]=!0}static isInstance($){return D1.hasMarker($,ZK8)}},QK8=`vercel.ai.error.${XK8}`,RN4=Symbol.for(QK8),YK8=class extends(VJ8=D1,SJ8=RN4,VJ8){constructor({message:$}){super({name:XK8,message:$});this[SJ8]=!0}static isInstance($){return D1.hasMarker($,QK8)}},JK8=`vercel.ai.error.${GK8}`,IN4=Symbol.for(JK8),KK8=class extends(_J8=D1,CJ8=IN4,_J8){constructor({message:$="No content generated."}={}){super({name:GK8,message:$});this[CJ8]=!0}static isInstance($){return D1.hasMarker($,JK8)}},HK8=`vercel.ai.error.${WK8}`,qN4=Symbol.for(HK8),h5=class extends(vJ8=D1,xJ8=qN4,vJ8){constructor({errorName:$=WK8,modelId:Z,modelType:X,message:Q=`No such ${X}: ${Z}`}){super({name:$,message:Q});this[xJ8]=!0,this.modelId=Z,this.modelType=X}static isInstance($){return D1.hasMarker($,HK8)}},UK8=`vercel.ai.error.${NK8}`,MN4=Symbol.for(UK8),Ag=class extends(bJ8=D1,fJ8=MN4,bJ8){constructor($){super({name:NK8,message:`Too many values for a single embedding call. The ${$.provider} model "${$.modelId}" can only embed up to ${$.maxEmbeddingsPerCall} values per call, but ${$.values.length} values were provided.`});this[fJ8]=!0,this.provider=$.provider,this.modelId=$.modelId,this.maxEmbeddingsPerCall=$.maxEmbeddingsPerCall,this.values=$.values}static isInstance($){return D1.hasMarker($,UK8)}},wK8=`vercel.ai.error.${FK8}`,kN4=Symbol.for(wK8),O5=class $ extends(gJ8=D1,yJ8=kN4,gJ8){constructor({value:Z,cause:X,context:Q}){let Y="Type validation failed";if(Q==null?void 0:Q.field)Y+=` for ${Q.field}`;if((Q==null?void 0:Q.entityName)||(Q==null?void 0:Q.entityId)){Y+=" (";let G=[];if(Q.entityName)G.push(Q.entityName);if(Q.entityId)G.push(`id: "${Q.entityId}"`);Y+=G.join(", "),Y+=")"}super({name:FK8,message:`${Y}: Value: ${JSON.stringify(Z)}.
2275
2275
  Error message: ${kW(X)}`,cause:X});this[yJ8]=!0,this.value=Z,this.context=Q}static isInstance(Z){return D1.hasMarker(Z,wK8)}static wrap({value:Z,cause:X,context:Q}){var Y,G,J;if($.isInstance(X)&&X.value===Z&&((Y=X.context)==null?void 0:Y.field)===(Q==null?void 0:Q.field)&&((G=X.context)==null?void 0:G.entityName)===(Q==null?void 0:Q.entityName)&&((J=X.context)==null?void 0:J.entityId)===(Q==null?void 0:Q.entityId))return X;return new $({value:Z,cause:X,context:Q})}},OK8=`vercel.ai.error.${BK8}`,SN4=Symbol.for(OK8),v4=class extends(uJ8=D1,hJ8=SN4,uJ8){constructor({functionality:$,message:Z=`'${$}' functionality not supported.`}){super({name:BK8,message:Z});this[hJ8]=!0,this.functionality=$}static isInstance($){return D1.hasMarker($,OK8)}}});import*as UY0 from"zod/v4";import{ZodFirstPartyTypeKind as E4}from"zod/v3";import{ZodFirstPartyTypeKind as pN4}from"zod/v3";import{ZodFirstPartyTypeKind as WY0}from"zod/v3";function s8(...$){return $.reduce((Z,X)=>({...Z,...X!=null?X:{}}),{})}function HY0({tools:$=[],providerToolNames:Z,resolveProviderToolName:X}){var Q;let Y={},G={};for(let J of $)if(J.type==="provider"){let K=(Q=X==null?void 0:X(J))!=null?Q:(J.id in Z)?Z[J.id]:void 0;if(K==null)continue;Y[J.name]=K,G[K]=J.name}return{toProviderToolName:(J)=>{var K;return(K=Y[J])!=null?K:J},toCustomToolName:(J)=>{var K;return(K=G[J])!=null?K:J}}}async function cQ($,Z){if($==null)return Promise.resolve();let X=Z==null?void 0:Z.abortSignal;return new Promise((Q,Y)=>{if(X==null?void 0:X.aborted){Y(LK8());return}let G=setTimeout(()=>{J(),Q()},$),J=()=>{clearTimeout(G),X==null||X.removeEventListener("abort",K)},K=()=>{J(),Y(LK8())};X==null||X.addEventListener("abort",K)})}function LK8(){return new DOMException("Delay was aborted","AbortError")}function Tg($){return Object.fromEntries([...$.headers])}function T9($){let Z=$.replace(/-/g,"+").replace(/_/g,"/"),X=CN4(Z);return Uint8Array.from(X,(Q)=>Q.codePointAt(0))}function dQ($){let Z="";for(let X=0;X<$.length;X++)Z+=String.fromCodePoint($[X]);return VN4(Z)}function UZ($){return $ instanceof Uint8Array?dQ($):$}function AK8($,Z={}){let{useArrayBrackets:X=!0}=Z,Q=new FormData;for(let[Y,G]of Object.entries($)){if(G==null)continue;if(Array.isArray(G)){if(G.length===1){Q.append(Y,G[0]);continue}let J=X?`${Y}[]`:Y;for(let K of G)Q.append(J,K);continue}Q.append(Y,G)}return Q}async function sp($){var Z;try{await((Z=$.body)==null?void 0:Z.cancel())}catch(X){}}function xN4($=globalThis){return $.window!=null}function vN4($){let Z;try{Z=new URL($)}catch(Q){throw new NZ({url:$,message:`Invalid URL: ${$}`})}if(Z.protocol==="data:")return;if(Z.protocol!=="http:"&&Z.protocol!=="https:")throw new NZ({url:$,message:`URL scheme must be http, https, or data, got ${Z.protocol}`});let X=Z.hostname.toLowerCase().replace(/\.+$/,"");if(!X)throw new NZ({url:$,message:"URL must have a hostname"});if(X==="localhost"||X.endsWith(".local")||X.endsWith(".localhost"))throw new NZ({url:$,message:`URL with hostname ${X} is not allowed`});if(X.startsWith("[")&&X.endsWith("]")){let Q=X.slice(1,-1);if(bN4(Q))throw new NZ({url:$,message:`URL with IPv6 address ${X} is not allowed`});return}if(IK8(X)){if(qK8(X))throw new NZ({url:$,message:`URL with IP address ${X} is not allowed`});return}}function IK8($){let Z=$.split(".");if(Z.length!==4)return!1;return Z.every((X)=>{let Q=Number(X);return Number.isInteger(Q)&&Q>=0&&Q<=255&&String(Q)===X})}function qK8($){let Z=$.split(".").map(Number),[X,Q,Y]=Z;if(X===0)return!0;if(X===10)return!0;if(X===100&&Q>=64&&Q<=127)return!0;if(X===127)return!0;if(X===169&&Q===254)return!0;if(X===172&&Q>=16&&Q<=31)return!0;if(X===192&&Q===0&&Y===0)return!0;if(X===192&&Q===168)return!0;if(X===198&&(Q===18||Q===19))return!0;if(X>=240)return!0;return!1}function fN4($){let Z=$.toLowerCase(),X=Z.indexOf("%");if(X!==-1)Z=Z.slice(0,X);let Q=Z.split("::");if(Q.length>2)return null;let Y=(J)=>{if(J==="")return[];let K=[],W=J.split(":");for(let H=0;H<W.length;H++){let N=W[H];if(N.includes(".")){if(H!==W.length-1||!IK8(N))return null;let[U,F,w,B]=N.split(".").map(Number);K.push(U<<8|F,w<<8|B);continue}if(!/^[0-9a-f]{1,4}$/.test(N))return null;K.push(parseInt(N,16))}return K},G=Y(Q[0]);if(G===null)return null;if(Q.length===2){let J=Y(Q[1]);if(J===null)return null;let K=8-G.length-J.length;if(K<0)return null;return[...G,...Array(K).fill(0),...J]}return G.length===8?G:null}function bN4($){let Z=fN4($);if(Z===null)return!0;let X=(Y)=>Z.slice(0,Y).every((G)=>G===0);if(X(7)&&(Z[7]===0||Z[7]===1))return!0;if((Z[0]&65024)===64512)return!0;if((Z[0]&65472)===65152)return!0;if((Z[0]&65472)===65216)return!0;if((Z[0]&65280)===65280)return!0;if(X(6)||X(5)&&Z[5]===65535||X(4)&&Z[4]===65535&&Z[5]===0||Z[0]===100&&Z[1]===65435&&Z[2]===0&&Z[3]===0&&Z[4]===0&&Z[5]===0||Z[0]===100&&Z[1]===65435&&Z[2]===1){let Y=Z[6]>>8&255,G=Z[6]&255,J=Z[7]>>8&255,K=Z[7]&255;return qK8(`${Y}.${G}.${J}.${K}`)}return!1}async function Ks0({url:$,headers:Z,abortSignal:X,maxRedirects:Q=yN4}){let Y={signal:X};if(Z!==void 0)Y.headers=Z;let G=$;for(let J=0;J<=Q;J++){vN4(G);let K=await fetch(G,{...Y,redirect:"manual"});if(K.type==="opaqueredirect"){if(!xN4())throw new NZ({url:$,message:`Redirect from ${G} could not be validated and was blocked`});return await fetch(G,{...Y,redirect:"follow"})}let W=K.headers.get("location");if(K.status>=300&&K.status<400&&W){await sp(K),G=new URL(W,G).toString();continue}return K}throw new NZ({url:$,message:`Too many redirects (max ${Q})`})}async function Ws0({response:$,url:Z,maxBytes:X=NY0}){let Q=$.headers.get("content-length");if(Q!=null){let N=parseInt(Q,10);if(!isNaN(N)&&N>X)throw await sp($),new NZ({url:Z,message:`Download of ${Z} exceeded maximum size of ${X} bytes (Content-Length: ${N}).`})}let Y=$.body;if(Y==null)return new Uint8Array(0);let G=Y.getReader(),J=[],K=0;try{while(!0){let{done:N,value:U}=await G.read();if(N)break;if(K+=U.length,K>X)throw new NZ({url:Z,message:`Download of ${Z} exceeded maximum size of ${X} bytes.`});J.push(U)}}finally{try{await G.cancel()}finally{G.releaseLock()}}let W=new Uint8Array(K),H=0;for(let N of J)W.set(N,H),H+=N.length;return W}async function Hs0($,Z){var X,Q;try{let Y=await Ks0({url:$,abortSignal:Z==null?void 0:Z.abortSignal});if(!Y.ok)throw await sp(Y),new NZ({url:$,statusCode:Y.status,statusText:Y.statusText});let G=await Ws0({response:Y,url:$,maxBytes:(X=Z==null?void 0:Z.maxBytes)!=null?X:NY0}),J=(Q=Y.headers.get("content-type"))!=null?Q:void 0;return new Blob([G],J?{type:J}:void 0)}catch(Y){if(NZ.isInstance(Y))throw Y;throw new NZ({url:$,cause:Y})}}function Rg($){if($==null)return"unknown error";if(typeof $==="string")return $;if($ instanceof Error)return $.message;return JSON.stringify($)}function uQ($){return($ instanceof Error||$ instanceof DOMException)&&($.name==="AbortError"||$.name==="ResponseAborted"||$.name==="TimeoutError")}function uN4($){if(!($ instanceof Error))return!1;let Z=$.code;if(typeof Z==="string"&&hN4.includes(Z))return!0;return!1}function MK8({error:$,url:Z,requestBodyValues:X}){if(uQ($))return $;if($ instanceof TypeError&&gN4.includes($.message.toLowerCase())){let Q=$.cause;if(Q!=null)return new N4({message:`Cannot connect to API: ${Q.message}`,cause:Q,url:Z,requestBodyValues:X,isRetryable:!0})}if(uN4($))return new N4({message:`Cannot connect to API: ${$.message}`,cause:$,url:Z,requestBodyValues:X,isRetryable:!0});return $}function xB($=globalThis){var Z,X,Q;if($.window)return"runtime/browser";if((Z=$.navigator)==null?void 0:Z.userAgent)return`runtime/${$.navigator.userAgent.toLowerCase()}`;if((Q=(X=$.process)==null?void 0:X.versions)==null?void 0:Q.node)return`runtime/node.js/${$.process.version.substring(0)}`;if($.EdgeRuntime)return"runtime/vercel-edge";return"runtime/unknown"}function vB($){if($==null)return{};let Z={};if($ instanceof Headers)$.forEach((X,Q)=>{Z[Q.toLowerCase()]=X});else{if(!Array.isArray($))$=Object.entries($);for(let[X,Q]of $)if(Q!=null)Z[X.toLowerCase()]=Q}return Z}function s4($,...Z){let X=new Headers(vB($)),Q=X.get("user-agent")||"";return X.set("user-agent",[Q,...Z].filter(Boolean).join(" ")),Object.fromEntries(X.entries())}function Gz($){return $!=null}function SK8($,Z){try{return new URL($).origin===new URL(Z).origin}catch(X){return!1}}function VK8({mediaType:$,url:Z,supportedUrls:X}){return Z=Z.toLowerCase(),$=$.toLowerCase(),Object.entries(X).map(([Q,Y])=>{let G=Q.toLowerCase();return G==="*"||G==="*/*"?{mediaTypePrefix:"",regexes:Y}:{mediaTypePrefix:G.replace(/\*/,""),regexes:Y}}).filter(({mediaTypePrefix:Q})=>$.startsWith(Q)).flatMap(({regexes:Q})=>Q).some((Q)=>Q.test(Z))}function Ig({apiKey:$,environmentVariableName:Z,apiKeyParameterName:X="apiKey",description:Q}){if(typeof $==="string")return $;if($!=null)throw new Qz({message:`${Q} API key must be a string.`});if(typeof process>"u")throw new Qz({message:`${Q} API key is missing. Pass it using the '${X}' parameter. Environment variables are not supported in this environment.`});if($=process.env[Z],$==null)throw new Qz({message:`${Q} API key is missing. Pass it using the '${X}' parameter or the ${Z} environment variable.`});if(typeof $!=="string")throw new Qz({message:`${Q} API key must be a string. The value of the ${Z} environment variable is not a string.`});return $}function SW({settingValue:$,environmentVariableName:Z}){if(typeof $==="string")return $;if($!=null||typeof process>"u")return;if($=process.env[Z],$==null||typeof $!=="string")return;return $}function CK8($){var Z;let[X,Q=""]=$.toLowerCase().split("/");return(Z={mpeg:"mp3","x-wav":"wav",opus:"ogg",mp4:"m4a","x-m4a":"m4a"}[Q])!=null?Z:Q}function zK8($){let Z=JSON.parse($);if(Z===null||typeof Z!=="object")return Z;if(lN4.test($)===!1&&dN4.test($)===!1)return Z;return mN4(Z)}function mN4($){let Z=[$];while(Z.length){let X=Z;Z=[];for(let Q of X){if(Object.prototype.hasOwnProperty.call(Q,"__proto__"))throw SyntaxError("Object contains forbidden prototype property");if(Object.prototype.hasOwnProperty.call(Q,"constructor")&&Q.constructor!==null&&typeof Q.constructor==="object"&&Object.prototype.hasOwnProperty.call(Q.constructor,"prototype"))throw SyntaxError("Object contains forbidden prototype property");for(let Y in Q){let G=Q[Y];if(G&&typeof G==="object")Z.push(G)}}}return $}function Ns0($){let{stackTraceLimit:Z}=Error;try{Error.stackTraceLimit=0}catch(X){return zK8($)}try{return zK8($)}finally{Error.stackTraceLimit=Z}}function Us0($){if($.type==="object"||Array.isArray($.type)&&$.type.includes("object")){$.additionalProperties=!1;let{properties:X}=$;if(X!=null)for(let Q of Object.keys(X))X[Q]=Yz(X[Q])}if($.items!=null)$.items=Array.isArray($.items)?$.items.map(Yz):Yz($.items);if($.anyOf!=null)$.anyOf=$.anyOf.map(Yz);if($.allOf!=null)$.allOf=$.allOf.map(Yz);if($.oneOf!=null)$.oneOf=$.oneOf.map(Yz);let{definitions:Z}=$;if(Z!=null)for(let X of Object.keys(Z))Z[X]=Yz(Z[X]);return $}function Yz($){if(typeof $==="boolean")return $;return Us0($)}function rY(){return{}}function tN4($,Z){var X,Q,Y;let G={type:"array"};if(((X=$.type)==null?void 0:X._def)&&((Y=(Q=$.type)==null?void 0:Q._def)==null?void 0:Y.typeName)!==pN4.ZodAny)G.items=E$($.type._def,{...Z,currentPath:[...Z.currentPath,"items"]});if($.minLength)G.minItems=$.minLength.value;if($.maxLength)G.maxItems=$.maxLength.value;if($.exactLength)G.minItems=$.exactLength.value,G.maxItems=$.exactLength.value;return G}function oN4($){let Z={type:"integer",format:"int64"};if(!$.checks)return Z;for(let X of $.checks)switch(X.kind){case"min":if(X.inclusive)Z.minimum=X.value;else Z.exclusiveMinimum=X.value;break;case"max":if(X.inclusive)Z.maximum=X.value;else Z.exclusiveMaximum=X.value;break;case"multipleOf":Z.multipleOf=X.value;break}return Z}function rN4(){return{type:"boolean"}}function _K8($,Z){return E$($.type._def,Z)}function xK8($,Z,X){let Q=X!=null?X:Z.dateStrategy;if(Array.isArray(Q))return{anyOf:Q.map((Y,G)=>xK8($,Z,Y))};switch(Q){case"string":case"format:date-time":return{type:"string",format:"date-time"};case"format:date":return{type:"string",format:"date"};case"integer":return sN4($)}}function eN4($,Z){return{...E$($.innerType._def,Z),default:$.defaultValue()}}function $U4($,Z){return Z.effectStrategy==="input"?E$($.schema._def,Z):rY()}function ZU4($){return{type:"string",enum:Array.from($.values)}}function QU4($,Z){let X=[E$($.left._def,{...Z,currentPath:[...Z.currentPath,"allOf","0"]}),E$($.right._def,{...Z,currentPath:[...Z.currentPath,"allOf","1"]})].filter((Y)=>!!Y),Q=[];return X.forEach((Y)=>{if(XU4(Y))Q.push(...Y.allOf);else{let G=Y;if("additionalProperties"in Y&&Y.additionalProperties===!1){let{additionalProperties:J,...K}=Y;G=K}Q.push(G)}}),Q.length?{allOf:Q}:void 0}function YU4($){let Z=typeof $.value;if(Z!=="bigint"&&Z!=="number"&&Z!=="boolean"&&Z!=="string")return{type:Array.isArray($.value)?"array":"object"};return{type:Z==="bigint"?"integer":Z,const:$.value}}function vK8($,Z){let X={type:"string"};if($.checks)for(let Q of $.checks)switch(Q.kind){case"min":X.minLength=typeof X.minLength==="number"?Math.max(X.minLength,Q.value):Q.value;break;case"max":X.maxLength=typeof X.maxLength==="number"?Math.min(X.maxLength,Q.value):Q.value;break;case"email":switch(Z.emailStrategy){case"format:email":gJ(X,"email",Q.message,Z);break;case"format:idn-email":gJ(X,"idn-email",Q.message,Z);break;case"pattern:zod":sX(X,yJ.email,Q.message,Z);break}break;case"url":gJ(X,"uri",Q.message,Z);break;case"uuid":gJ(X,"uuid",Q.message,Z);break;case"regex":sX(X,Q.regex,Q.message,Z);break;case"cuid":sX(X,yJ.cuid,Q.message,Z);break;case"cuid2":sX(X,yJ.cuid2,Q.message,Z);break;case"startsWith":sX(X,RegExp(`^${Ys0(Q.value,Z)}`),Q.message,Z);break;case"endsWith":sX(X,RegExp(`${Ys0(Q.value,Z)}$`),Q.message,Z);break;case"datetime":gJ(X,"date-time",Q.message,Z);break;case"date":gJ(X,"date",Q.message,Z);break;case"time":gJ(X,"time",Q.message,Z);break;case"duration":gJ(X,"duration",Q.message,Z);break;case"length":X.minLength=typeof X.minLength==="number"?Math.max(X.minLength,Q.value):Q.value,X.maxLength=typeof X.maxLength==="number"?Math.min(X.maxLength,Q.value):Q.value;break;case"includes":{sX(X,RegExp(Ys0(Q.value,Z)),Q.message,Z);break}case"ip":{if(Q.version!=="v6")gJ(X,"ipv4",Q.message,Z);if(Q.version!=="v4")gJ(X,"ipv6",Q.message,Z);break}case"base64url":sX(X,yJ.base64url,Q.message,Z);break;case"jwt":sX(X,yJ.jwt,Q.message,Z);break;case"cidr":{if(Q.version!=="v6")sX(X,yJ.ipv4Cidr,Q.message,Z);if(Q.version!=="v4")sX(X,yJ.ipv6Cidr,Q.message,Z);break}case"emoji":sX(X,yJ.emoji(),Q.message,Z);break;case"ulid":{sX(X,yJ.ulid,Q.message,Z);break}case"base64":{switch(Z.base64Strategy){case"format:binary":{gJ(X,"binary",Q.message,Z);break}case"contentEncoding:base64":{X.contentEncoding="base64";break}case"pattern:zod":{sX(X,yJ.base64,Q.message,Z);break}}break}case"nanoid":sX(X,yJ.nanoid,Q.message,Z);case"toLowerCase":case"toUpperCase":case"trim":break;default:}return X}function Ys0($,Z){return Z.patternStrategy==="escape"?JU4($):$}function JU4($){let Z="";for(let X=0;X<$.length;X++){if(!GU4.has($[X]))Z+="\\";Z+=$[X]}return Z}function gJ($,Z,X,Q){var Y;if($.format||((Y=$.anyOf)==null?void 0:Y.some((G)=>G.format))){if(!$.anyOf)$.anyOf=[];if($.format)$.anyOf.push({format:$.format}),delete $.format;$.anyOf.push({format:Z,...X&&Q.errorMessages&&{errorMessage:{format:X}}})}else $.format=Z}function sX($,Z,X,Q){var Y;if($.pattern||((Y=$.allOf)==null?void 0:Y.some((G)=>G.pattern))){if(!$.allOf)$.allOf=[];if($.pattern)$.allOf.push({pattern:$.pattern}),delete $.pattern;$.allOf.push({pattern:PK8(Z,Q),...X&&Q.errorMessages&&{errorMessage:{pattern:X}}})}else $.pattern=PK8(Z,Q)}function PK8($,Z){var X;if(!Z.applyRegexFlags||!$.flags)return $.source;let Q={i:$.flags.includes("i"),m:$.flags.includes("m"),s:$.flags.includes("s")},Y=Q.i?$.source.toLowerCase():$.source,G="",J=!1,K=!1,W=!1;for(let H=0;H<Y.length;H++){if(J){G+=Y[H],J=!1;continue}if(Q.i){if(K){if(Y[H].match(/[a-z]/)){if(W)G+=Y[H],G+=`${Y[H-2]}-${Y[H]}`.toUpperCase(),W=!1;else if(Y[H+1]==="-"&&((X=Y[H+2])==null?void 0:X.match(/[a-z]/)))G+=Y[H],W=!0;else G+=`${Y[H]}${Y[H].toUpperCase()}`;continue}}else if(Y[H].match(/[a-z]/)){G+=`[${Y[H]}${Y[H].toUpperCase()}]`;continue}}if(Q.m){if(Y[H]==="^"){G+=`(^|(?<=[\r
2276
2276
  ]))`;continue}else if(Y[H]==="$"){G+=`($|(?=[\r
@@ -2500,7 +2500,7 @@ Respond with a JSON object containing the title.`,HM8=($)=>/[\p{L}\p{N}]/u.test(
2500
2500
  ${[...y].sort().join(`
2501
2501
  `)}
2502
2502
  </currently-enabled-tools>`}:null,$0=G?.virtualMcp.metadata,e=Z.workspace.cwd==="/repo"&&Z.workspace.repo?{repo:Z.workspace.repo,branch:Z.workspace.branch,cwd:Z.workspace.cwd,workspaceKind:"github"}:void 0,R0=await Q({kind:G?.isSubagent?"subagent":"agent",virtualMcp:{id:Z.agent.id,repo:$0?.githubRepo??void 0,delegationTargetIds:$0?.subAgents},mcpClient:X.passthroughClient,provider:J,models:Z.models,messages:U,abortSignal:H,temperature:Z.temperature,planMode:D.isPlanMode,isDecopilot:iG(Z.agent.id)!==null,codingWorkspace:e,systemAgentInstructions:X.serverInstructions,currentThreadId:w,user:{id:Z.user.id,email:Z.user.email},userContext:G?.userContext,writer:B,prepareStep:w0,onStepFinish:Y.onStepFinish,passthroughClient:X.passthroughClient,connectionsData:{tools:X.connectionsBlockTools,connectionTitleMap:X.connectionTitleMap},toolOutputMap:X.toolOutputMap,extraTools:{...X.builtInTools,...X.connectionsBlockTools.length>0&&Z0.enable_tool?{enable_tool:Z0.enable_tool}:{}},additionalSystemMessages:[...N,...q0?[q0]:[]],activeToolNames:[...b,..."enable_tool"in Z0?["enable_tool"]:[],...y],stepLimit:Y.stepLimit??Z.maxAgentSteps}),Q0=R0.result,p0=Promise.resolve(Q0.finishReason).then(async(t0)=>{let[m1,C8,m4,J5]=await Promise.all([Q0.totalUsage,Q0.usage,Q0.request,Q0.response]);if(await R0.error!==void 0)return;R0.span.setAttribute("decopilot.llm.inputTokens",m1.inputTokens??0),R0.span.setAttribute("decopilot.llm.outputTokens",m1.outputTokens??0),R0.span.setAttribute("decopilot.llm.finishReason",t0);let r=m.cacheTotals();R0.span.setAttribute("decopilot.cache.read_tokens",r.read),R0.span.setAttribute("decopilot.cache.write_tokens",r.write);let G1=r.input>0?r.read/r.input:0;R0.span.setAttribute("decopilot.cache.hit_ratio",G1);let $6=Date.now()-(E??Date.now());if(z=!0,L?.recordLlmCall({organizationId:Z.organizationId,modelId:Z.models.thinking.id,durationMs:$6,isError:!1,inputTokens:m1.inputTokens,outputTokens:m1.outputTokens,cacheReadTokens:r.read,cacheWriteTokens:r.write}),L?.monitorLlmCall({organizationId:Z.organizationId,agentId:Z.agent.id,modelId:Z.models.thinking.id,modelTitle:Z.models.thinking.title??Z.models.thinking.id,credentialId:Z.models.thinking.credentialId,taskId:w,durationMs:$6,isError:!1,finishReason:t0,usage:{inputTokens:C8.inputTokens??0,outputTokens:C8.outputTokens??0,totalTokens:C8.totalTokens??0},totalUsage:{inputTokens:m1.inputTokens??0,outputTokens:m1.outputTokens??0,totalTokens:m1.totalTokens??0},cost:m.cost(),request:m4,response:J5,userId:Z.user.id}),H.aborted)return}).catch(async(t0)=>{let m1=t0 instanceof Error?t0:Error(SU(t0));if(console.error("[decopilot:stream] Error",m1.message),H.aborted)return;if(!z){let C8=Date.now()-(E??Date.now());z=!0,L?.recordLlmCall({organizationId:Z.organizationId,modelId:Z.models.thinking.id,durationMs:C8,isError:!0,errorType:m1.name}),L?.monitorLlmCall({organizationId:Z.organizationId,agentId:Z.agent.id,modelId:Z.models.thinking.id,modelTitle:Z.models.thinking.title??Z.models.thinking.id,credentialId:Z.models.thinking.credentialId,taskId:w,durationMs:C8,isError:!0,errorMessage:m1.message,userId:Z.user.id})}}).catch((t0)=>{console.error("[decopilot:stream] finish metrics failed",t0)}),s0=R0.error.then(async(t0)=>{if(!H.aborted||z)return null;let m1=await Q0.steps;if(!m1.length||z)return null;z=!0;let C8=Date.now()-(E??Date.now()),m4=m1.reduce((G1,$6)=>({inputTokens:G1.inputTokens+($6.usage.inputTokens??0),outputTokens:G1.outputTokens+($6.usage.outputTokens??0),totalTokens:G1.totalTokens+($6.usage.totalTokens??0)}),{inputTokens:0,outputTokens:0,totalTokens:0}),J5=m1[m1.length-1].usage,r5=m.cacheTotals();if(L?.recordLlmCall({organizationId:Z.organizationId,modelId:Z.models.thinking.id,durationMs:C8,isError:!1,inputTokens:m4.inputTokens,outputTokens:m4.outputTokens,cacheReadTokens:r5.read,cacheWriteTokens:r5.write}),L?.monitorLlmCall({organizationId:Z.organizationId,agentId:Z.agent.id,modelId:Z.models.thinking.id,modelTitle:Z.models.thinking.title??Z.models.thinking.id,credentialId:Z.models.thinking.credentialId,taskId:w,durationMs:C8,isError:!1,finishReason:"abort",usage:{inputTokens:J5.inputTokens??0,outputTokens:J5.outputTokens??0,totalTokens:J5.totalTokens??0},totalUsage:m4,cost:m.cost(),request:void 0,response:void 0,userId:Z.user.id}),m4.totalTokens<=0)return null;let r=m.cost();return{type:"message-metadata",messageMetadata:{usage:{inputTokens:m4.inputTokens,outputTokens:m4.outputTokens,totalTokens:m4.totalTokens,cachedInputTokens:r5.read,inputTokenDetails:{cacheReadTokens:r5.read,cacheWriteTokens:r5.write,noCacheTokens:m4.inputTokens-r5.read-r5.write},...r>0&&{providerMetadata:{openrouter:{usage:{cost:r}}}}}}}}).then((t0)=>t0).catch((t0)=>{return console.error("[decopilot:stream] abort metadata failed",t0),null}),S0=Q0.toUIMessageStream({originalMessages:F,generateMessageId:pp,onError:(t0)=>QM8(t0),messageMetadata:({part:t0})=>{if(t0.type==="start")return{agent:{id:Z.agent.id??null},models:{credentialId:Z.models.thinking.credentialId,thinking:{...Z.models.thinking,title:Z.models.thinking.title??Z.models.thinking.id,provider:Z.models.thinking.provider??void 0}},created_at:new Date,_request:{systemSections:R0.assembledSystemMessages.map((m1)=>({chars:m1.content.length,preview:m1.content.slice(0,80).replace(/\s+/g," ")})),tools:Object.keys(Z0).length,activeTools:b.length+("enable_tool"in Z0?1:0)+y.size},thread_id:w,...G?.subtaskJobId?{subtaskJobId:G.subtaskJobId}:{},...G?.resumedFromBackground?{resumedFromBackground:!0}:{}};if(t0.type==="reasoning-start"){if(C===null)C=new Date;return{reasoning_start_at:C}}if(t0.type==="reasoning-end")return{reasoning_end_at:new Date};if(t0.type==="finish-step")return m.addStep(t0.usage,t0.providerMetadata),{usage:m.buildStepUsage()};if(t0.type==="finish"){let m1=m.buildFinalUsage({totalUsage:t0.totalUsage,providerKey:Z.models.thinking.provider,fallbackProviderMetadata:t0.providerMetadata});return m1?{usage:m1}:{}}return}})[Symbol.asyncIterator](),C0=Y.sideChunks?.[Symbol.asyncIterator](),M0=!1,X0=k===null,H0=!1,g0=!1,U0=!1,P0=C0===void 0,k1=!1,m0=S0.next().then((t0)=>({kind:"main",value:t0})),a=j.next().then((t0)=>({kind:"queue",value:t0})),F0=C0?C0.next().then((t0)=>({kind:"side",value:t0})):null,W1=M.then((t0)=>({kind:"title",value:t0})),O1=p0.then(()=>({kind:"finish-metrics"})),Z8=s0.then((t0)=>({kind:"abort-metadata",value:t0}));try{while(!M0||!X0||!H0||!g0||!U0||!P0){if(M0&&X0&&H0&&g0&&!k1)Y.closeSideChunks?.(),j.close(),k1=!0;let t0=[];if(!U0)t0.push(a);if(!M0)t0.push(m0);if(!X0)t0.push(W1);if(!H0)t0.push(O1);if(!g0)t0.push(Z8);if(!P0&&F0)t0.push(F0);let m1=await Promise.race(t0);if(m1.kind==="main"){if(m1.value.done){if(M0=!0,!X0)k?.finish();continue}yield m1.value.value,m0=S0.next().then((C8)=>({kind:"main",value:C8}))}else if(m1.kind==="title"){if(X0=!0,m1.value)yield m1.value}else if(m1.kind==="finish-metrics")H0=!0;else if(m1.kind==="abort-metadata"){if(g0=!0,m1.value)yield m1.value}else if(m1.kind==="side"){if(m1.value.done){P0=!0;continue}yield m1.value.value,F0=C0?.next().then((C8)=>({kind:"side",value:C8}))??null}else{if(m1.value.done){U0=!0;continue}yield m1.value.value,a=j.next().then((C8)=>({kind:"queue",value:C8}))}}}finally{if(!X0)k?.finish();Y.closeSideChunks?.(),await S0.return?.().catch(()=>{}),await C0?.return?.().catch(()=>{}),j.close()}}var LM8=O(()=>{tq8();X51();xa0();Y51();$M8();K51();UM8();R6()});function DM8($){return $.type==="tool-call"&&$.toolName==="todo_write"&&typeof $.toolCallId==="string"}function sy4($){return $.type==="tool-result"&&$.toolName==="todo_write"&&typeof $.toolCallId==="string"}function EM8($){let Z=null;for(let Q=$.length-1;Q>=0&&Z===null;Q--){let G=$[Q].content;if(!Array.isArray(G))continue;for(let J=G.length-1;J>=0;J--){let K=G[J];if(DM8(K)){Z=K.toolCallId;break}}}if(Z===null)return $;let X=Z;return $.map((Q)=>{let Y=Q.content;if(!Array.isArray(Y))return Q;let G=Y.filter((J)=>{if(DM8(J))return J.toolCallId===X;if(sy4(J))return J.toolCallId===X;return!0});if(G.length===Y.length)return Q;return{...Q,content:G}})}function zM8($){let Z=!1,X=$.map((Q)=>{if(Q.role!=="assistant")return Q;if(!Q.parts.some((G)=>("state"in G)&&G.state==="approval-requested"))return Q;return Z=!0,{...Q,parts:Q.parts.map((G)=>{if(!("state"in G)||G.state!=="approval-requested"||!("approval"in G)||!G.approval)return G;return{...G,state:"output-denied",approval:{...G.approval,approved:!1,reason:"User sent a new message without approving this tool call."}}})}});return Z?X:$}function ey4($){let[Z,X]=$.reduce((Q,Y)=>{if(Y.role==="system")Q[0].push(Y);else Q[1].push(Y);return Q},[[],[]]);return{systemMessages:Z,messages:X}}async function W51($,Z){let X=$.filter((U)=>U.role!=="assistant"||U.parts&&U.parts.length>0),Q=await Or({messages:X}),Y=zM8(Q),G=await Br(Y,{tools:Z.tools,ignoreIncompleteToolCalls:!0}),{systemMessages:J,messages:K}=ey4(G),W=EM8(K),N=E61({messages:W,reasoning:"all",emptyMessages:"remove",toolCalls:"none"}).map((U)=>{if(U.role!=="assistant")return U;let F=Array.isArray(U.content)?U.content.filter((w)=>w.type!=="reasoning"&&w.type!=="thinking"&&w.type!=="redacted-reasoning").map((w)=>{let B=w;if("providerOptions"in B||"providerMetadata"in B){let{providerOptions:L,providerMetadata:D,...E}=B;if(B.type==="tool-call"){let z=D?.google,j=L?.google;return{...E,...z?{providerMetadata:{google:z}}:{},...j?{providerOptions:{google:j}}:{}}}return E}return w}):U.content;return{...U,content:Array.isArray(F)&&F.length===0?[{type:"text",text:""}]:F,providerOptions:void 0,providerMetadata:void 0}});return{systemMessages:J,messages:N,originalMessages:Q}}var H51=O(()=>{u4()});function jM8($){if($<1)throw Error("Semaphore cap must be >= 1");let Z=$,X=[];function Q(Y){return Y.reason??Error("Semaphore acquire aborted")}return{acquire(Y){if(Y?.aborted)return Promise.reject(Q(Y));if(Z>0)return Z-=1,Promise.resolve();return new Promise((G,J)=>{let K={resolve:G,reject:J,cleanup:()=>{}},W=()=>{let H=X.indexOf(K);if(H!==-1)X.splice(H,1);K.cleanup(),J(Q(Y))};if(Y)Y.addEventListener("abort",W,{once:!0}),K.cleanup=()=>Y.removeEventListener("abort",W);X.push(K)})},release(){let Y=X.shift();if(Y){Y.cleanup(),Y.resolve();return}if(Z+=1,Z>$)Z=$},available(){return Z}}}function N51($,Z){PM8.set($,Z)}function U51($){return PM8.get($)}function dh($){let Z=U51($);if(!Z)throw Error("Decopilot requires process-local run context. Dispatch must attach DecopilotRunContext before invoking the Decopilot harness.");return Z}var PM8;var mh=O(()=>{PM8=new WeakMap});function AM8($,Z){let X=$.modelSources?.thinking??null;if(!X||X.kind!=="secret")throw Error("Decopilot core requires a secret thinking model source. Dispatch must resolve the selected model credential before invoking Decopilot.");let Q=Z(X),Y=(N)=>{let U=$.models[N];if(!U)return;let F=$.modelSources?.[N];if(F&&F.kind!=="secret")throw Error("Decopilot core requires secret modelSources for all resolved slots.");return{model:U,provider:F&&F.kind==="secret"?Z(F):Q}},G=Y("fast"),J=Y("smart"),K=Y("image"),W=Y("webSearch"),H=Y("deepResearch");return{thinking:{model:$.models.thinking,provider:Q},...G?{fast:G}:{},...J?{smart:J}:{},...K?{image:K}:{},...W?{webSearch:W}:{},...H?{deepResearch:H}:{}}}async function*TM8($){let{input:Z,modelRuntime:X,toolRuntime:Q,telemetry:Y}=$,G=U51(Z),J=$.kind==="subtask",K=jj0(),W=J?void 0:(D)=>K.addExternal(D),H=await Q.buildEnvironmentTools({input:Z,onChildUsage:W});if(J)Zg4(H);let{systemMessages:N,messages:U,originalMessages:F}=await W51(G?.messages??[Z.userMessage],{windowSize:Q3,models:Z.models,tools:H.tools}),w=U,B=Z.models.fast??Z.models.smart??Z.models.thinking,L=(Z.models.fast?X.fast?.provider:void 0)??(Z.models.smart?X.smart?.provider:void 0)??X.thinking.provider;yield*OM8({input:Z,tools:H,runEngine:Q.runEngine,extras:{provider:X.thinking.provider,titleProvider:L,titleModel:B,registrySignal:Z.signal??new AbortController().signal,processedSystemMessages:N,processedMessages:w,originalMessages:F,threadId:Z.threadId,currentThreadTitle:Z.currentThreadTitle??"",pendingImages:H.pendingImages,writer:H.writer,sideChunks:H.sideChunks,closeSideChunks:H.closeSideChunks,onStepFinish:H.onStepFinish,telemetry:Y,kind:$.kind,stepLimit:J?oN:void 0,usageAccumulator:K,runContext:G}})}function Zg4($){if("subtask"in $.tools){let{subtask:Z,...X}=$.tools;$.tools=X}if("subtask"in $.builtInTools){let{subtask:Z,...X}=$.builtInTools;$.builtInTools=X}}var $g4=4,R8Z;var RM8=O(()=>{LM8();H51();Zz();X51();mh();R8Z=jM8($g4)});function Xg4($){return"storage"in $}function IM8($){F51=$}var F51,qM8;var w51=O(()=>{$51();RM8();mh();qM8={id:"decopilot",create($){return{id:"decopilot",async*stream(Z){let X=dh(Z),Q=AM8({models:Z.models,modelSources:X.modelSources},Ej0),Y=zj0(),G={};if(!Xg4($))throw Error("[decopilot] a hosted Studio context is required");if(!F51)throw Error("[decopilot] cluster environment builder not registered \u2014 "+"apps/api/src/harnesses must be imported before dispatching the decopilot harness in cluster mode");let J=F51({ctx:$,modelRuntime:Q,sideChannel:Y,cleanup:G});try{yield*TM8({input:Z,modelRuntime:Q,toolRuntime:J.toolRuntime,telemetry:J.telemetry,kind:"main"})}finally{Y.close(),await G.close?.().catch(()=>{})}}}}}});class B51{ctx;harnessId;constructor($){this.ctx=$.ctx,this.harnessId=$.harnessId}dispatch($){if(this.harnessId!=="decopilot")throw Error(`InProcessSandboxClient runs cluster-hosted decopilot only; got "${this.harnessId}" \u2014 CLI harnesses run in the desktop app or are `+"rejected at the gate");return qM8.create(this.ctx).stream($)}}var MM8=O(()=>{w51()});import{z as h1}from"zod";var Qg4,v8Z,f8Z,kM8,Yg4,Za,Gg4,Jg4,b8Z;var SM8=O(()=>{Qg4=h1.enum(["claude-code","codex","decopilot-sandbox","body-offload"]),v8Z=h1.array(h1.string()).catch([]).transform(($)=>$.filter((Z)=>Qg4.safeParse(Z).success)),f8Z=h1.discriminatedUnion("type",[h1.object({type:h1.literal("ui-message-chunk"),chunk:h1.unknown()}),h1.object({type:h1.literal("error"),code:h1.string(),message:h1.string()}),h1.object({type:h1.literal("done")})]),kM8=h1.object({chunks:h1.array(h1.unknown()),done:h1.boolean().nullish().transform(($)=>$??!1),error:h1.object({code:h1.string(),message:h1.string()}).nullish().transform(($)=>$??null)}),Yg4=h1.record(h1.string(),h1.unknown()),Za=h1.object({id:h1.string(),title:h1.string().optional(),provider:h1.string().nullable().optional(),credentialId:h1.string(),limits:h1.object({contextWindow:h1.number().int().positive().optional(),maxOutputTokens:h1.number().int().positive().optional()}).optional(),capabilities:h1.object({vision:h1.boolean().optional(),text:h1.boolean().optional(),reasoning:h1.boolean().optional()}).optional()}).strict(),Gg4=h1.object({thinking:Za.extend({title:h1.string()}),fast:Za.optional(),smart:Za.optional(),image:Za.optional(),deepResearch:Za.optional()}).strict(),Jg4=h1.discriminatedUnion("cwd",[h1.object({cwd:h1.literal("/repo"),repo:h1.object({owner:h1.string(),name:h1.string(),connectedGithub:h1.boolean()}).strict().optional(),branch:h1.string().nullable()}).strict(),h1.object({cwd:h1.null()}).strict()]),b8Z=h1.object({harnessId:h1.enum(["decopilot","claude-code","codex"]).optional(),threadId:h1.string(),userMessage:Yg4,harness:h1.object({sessionId:h1.string().optional()}).strict(),workspace:Jg4,models:Gg4,mcp:h1.object({url:h1.string().url(),headers:h1.record(h1.string(),h1.string()),expiresAt:h1.number().int().positive()}).strict(),mode:h1.enum(["default","plan","web-search","gen-image"]),temperature:h1.number(),toolApprovalLevel:h1.enum(["auto","readonly"]),toolAllowlist:h1.array(h1.string()).nullable().optional(),maxAgentSteps:h1.number().int().optional(),user:h1.object({id:h1.string(),email:h1.string()}).strict(),organizationId:h1.string(),organizationSlug:h1.string().optional(),agent:h1.object({id:h1.string(),instructions:h1.string().optional()}).strict(),triggerId:h1.string().optional(),currentThreadTitle:h1.string().optional(),traceparent:h1.string().optional(),runFenceToken:h1.string().optional(),resume:h1.object({reason:h1.string()}).strict().optional()}).strict()});function _M8($){let{providerId:Z,apiKey:X,baseUrl:Q}=$;if(Z==="anthropic")return{CLAUDE_CODE_MODEL:VM8.anthropic,ANTHROPIC_API_KEY:X,ANTHROPIC_AUTH_TOKEN:null,ANTHROPIC_BASE_URL:Q??null};if(Z==="openrouter"||Z==="deco")return{CLAUDE_CODE_MODEL:VM8.openrouter,ANTHROPIC_API_KEY:"",ANTHROPIC_AUTH_TOKEN:X,ANTHROPIC_BASE_URL:Q??"https://openrouter.ai/api"};throw new CM8(Z)}var VM8,CM8;var xM8=O(()=>{VM8={anthropic:"claude-opus-5",openrouter:"anthropic/claude-opus-5"};CM8=class CM8 extends Error{constructor($){super(`the claude-code harness needs an Anthropic, OpenRouter or Deco model credential; this run's model resolves to "${$}". Point the agent's thinking model at one of those, or run it with Decopilot.`);this.name="UnsupportedClaudeCodeProviderError"}}});function Hg4($){return $===404||$===410||$>=500}function vO($){return Kg4.has($)}class O51{ctx;harnessId;virtualMcpId;branch;credential;resume;constructor($){if(!vO($.harnessId))throw Error(`SandboxDispatchClient runs sandbox-hosted harnesses only; got "${$.harnessId}"`);this.ctx=$.ctx,this.harnessId=$.harnessId,this.virtualMcpId=$.virtualMcpId,this.branch=$.branch,this.credential=$.credential,this.resume=$.resume??null}dispatch($){return this.stream($)}async resolveWorkspace($){let Z=await VO(this.ctx,$);if(!Z)return this.branch===WK($)?{cwd:vM8,branch:RU(this.branch)}:{cwd:null};return{cwd:vM8,repo:{owner:Z.owner,name:Z.name,connectedGithub:Boolean(Z.connectionId)},branch:this.branch.startsWith("thread:")?RU(this.branch):this.branch}}async*stream($){if(!this.credential)throw Error(`the ${this.harnessId} harness needs a resolved model credential; this run has none (check the agent's thinking model)`);let Z=_M8(this.credential),X=this.ctx.organization;if(!X)throw Error(`the ${this.harnessId} harness needs an organization on the context to mint its MCP endpoint; this run has none`);let{provider:Q,kind:Y}=await KQ(this.ctx,{userId:$.user.id,branch:this.branch,virtualMcpMetadata:null}),G={...$,mcp:await Uj0(this.ctx,this.virtualMcpId,X,`${this.harnessId}-run`,"task-run",$.threadId),workspace:await this.resolveWorkspace($.threadId)},J=$.threadId,{ctx:K,harnessId:W,virtualMcpId:H,branch:N}=this,U=null,F=(w)=>async function*(){let B=await gh({virtualMcpId:H,branch:N,sandboxProviderKind:Y,cloneOnly:!0},K);U=B.sandboxHandle,await Ug4(Q,B.sandboxHandle,Z),yield*wg4({provider:Q,handle:B.sandboxHandle,harnessId:W,input:w?{...G,resume:w}:G,runId:J,signal:$.signal})}();try{yield*Ng4({runId:J,resume:this.resume,aborted:()=>$.signal?.aborted===!0,dispatchOnce:F})}finally{if(U&&Y1().sandboxReleaseOnRunEndEnabled)await Q.releaseAfter?.(U,Y1().sandboxReleaseGraceMs).catch(()=>{})}}}async function*Ng4($){let Z=$.maxAttempts??Wg4,X=$.resume,Q=X!==null;for(let Y=1;;Y++)try{for await(let G of $.dispatchOnce(X)){if(G.type==="start"){if(Q)continue;Q=!0}yield G}return}catch(G){if($.aborted())throw G;if(!(G instanceof S_)||Y>=Z)throw G;console.warn("[sandbox-dispatch] sandbox lost mid-run; continuing",{runId:$.runId,attempt:Y,reason:G.message}),X={reason:`the sandbox running the previous attempt stopped answering (${G.message})`},Q=!0}}async function Ug4($,Z,X){let Q=await $.proxyDaemonRequest(Z,"/_sandbox/config",{method:"PUT",headers:new Headers({"content-type":"application/json"}),body:JSON.stringify({env:X})});if(!Q.ok)throw Error(`failed to push model env to the sandbox (${Q.status} ${Q.statusText})`)}function Fg4($){let{signal:Z,...X}=$;return X}async function*wg4($){let Z=Date.now(),X;try{X=await $.provider.proxyDaemonRequest($.handle,"/_sandbox/dispatch",{method:"POST",headers:new Headers({"content-type":"application/json"}),body:JSON.stringify({harnessId:$.harnessId,runId:$.runId,input:Fg4($.input)}),...$.signal?{signal:$.signal}:{}})}catch(J){if($.signal?.aborted)throw J;throw new S_(`could not reach the sandbox daemon: ${J instanceof Error?J.message:String(J)}`)}if(!X.ok){let J=await X.text().catch(()=>X.statusText),K=`sandbox dispatch failed (${X.status}): ${J.slice(0,512)}`;if(Hg4(X.status))throw new S_(K);throw Error(K)}if(!X.body)throw new S_("dispatch returned no body");let Q=0,Y=null,G=!1;for await(let J of Bg4(X.body,$.signal)){let K=kM8.safeParse(J);if(!K.success)throw Error(`sandbox dispatch returned a malformed frame: ${K.error.message}`);if(Q+=K.data.chunks.length,yield*K.data.chunks,Y??=K.data.error,K.data.done)G=!0}if(console.log("[sandbox-dispatch] run ended",{runId:$.runId,handle:$.handle,chunks:Q,elapsedMs:Date.now()-Z,done:G,error:Y?.code??null}),!G&&!Y)throw new S_(`the sandbox stopped streaming after ${Q} chunks without finishing the run`);if(Y)throw Error(`${Y.code}: ${Y.message}`)}async function*Bg4($,Z){let X=new TextDecoder,Q="",Y=function*(J){let K=Q.split(`
2503
- `);Q=J?K.pop()??"":"";for(let W of K)if(W.trim().length>0)yield JSON.parse(W)},G=$[Symbol.asyncIterator]();try{for(;;){let J=new AbortController,K=G.next().then((N)=>{return J.abort(),N}),W=h8(fM8,{signal:J.signal}).then(()=>"silent").catch(()=>"read-won"),H=await Promise.race([K,W]);if(H==="silent"){if(Z?.aborted)return;throw new S_(`no output from the sandbox for ${fM8/1000}s (its keepalive is every 15s, so the pod is gone)`)}if(H==="read-won")continue;if(H.done)break;Q+=X.decode(H.value,{stream:!0}),yield*Y(!0)}yield*Y(!1)}finally{await G.return?.().catch(()=>{})}}var vM8="/repo",Kg4,Wg4=2,fM8=90000,S_;var Tj0=O(()=>{a$();SM8();xM8();t$1();kO();y8();ar();HK();Kg4=new Set(["claude-code"]);S_=class S_ extends Error{constructor($){super($);this.name="SandboxUnreachableError"}}});import{context as Og4,trace as Lg4}from"@opentelemetry/api";function bM8($){Dg4({...$,tracer:$.ctx.tracer})}function Dg4($){try{if(!$.organizationId)return;let Z=$.tracer.startSpan(Zg0),X=Lg4.setSpan(Og4.active(),Z),Q=$.totalUsage??$.usage;Mo({type:qf,organizationId:$.organizationId,connectionId:y$0,toolName:$.modelId,toolArguments:{model:$.modelId,credentialId:$.credentialId,threadId:$.taskId,...$.request?.body!==void 0?{requestBody:$.request.body}:{}},result:{...$.usage??{},...$.totalUsage?{totalUsage:$.totalUsage}:{},...$.cost!==void 0?{cost:$.cost}:{},...$.finishReason?{finishReason:$.finishReason}:{},...$.response?{responseId:$.response.id,responseModelId:$.response.modelId,responseTimestamp:$.response.timestamp,messages:$.response.messages}:{},logType:qf},duration:$.durationMs,isError:$.isError,errorMessage:$.errorMessage??null,userId:$.userId,requestId:$.requestId,userAgent:$.userAgent??null,virtualMcpId:$.agentId??null,properties:{model_title:$.modelTitle,credential_id:$.credentialId,thread_id:$.taskId,log_type:qf,...$.response?{response_id:$.response.id}:{},...Q?{input_tokens:String(Q.inputTokens),output_tokens:String(Q.outputTokens),total_tokens:String(Q.totalTokens)}:{},...$.cost!==void 0?{cost:String($.cost)}:{}}},X),Z.end()}catch{}}var yM8=O(()=>{RG0();_Y()});function gM8($){let{ctx:Z,organizationId:X,modelId:Q,durationMs:Y,isError:G,inputTokens:J,outputTokens:K,cacheReadTokens:W,cacheWriteTokens:H}=$;if(!X||!Q)return;let N={"connection.id":y$0,"tool.name":Q,"organization.id":X,status:G?"error":"success","error.type":G?$.errorType||"Error":""};if(Z.meter.createHistogram("tool.execution.duration",{description:"Duration of tool executions in milliseconds",unit:"ms"}).record(Y,N),Z.meter.createCounter("tool.execution.count",{description:"Number of tool executions"}).add(1,N),J!=null||K!=null)Z.meter.createCounter("tool.execution.tokens",{description:"Number of tokens used by LLM calls"}).add((J??0)+(K??0),N);if((W??0)>0)Z.meter.createCounter("tool.execution.cache_tokens",{description:"LLM cache tokens by kind (read/write)"}).add(W,{...N,kind:"read"});if((H??0)>0)Z.meter.createCounter("tool.execution.cache_tokens",{description:"LLM cache tokens by kind (read/write)"}).add(H,{...N,kind:"write"})}var hM8=O(()=>{_Y()});function L51($){let Z=Object.values($),[X]=Z;if(!X)return null;return Z.find((Q)=>Q.sandboxProviderKind!=="user-desktop")??X}async function jg4($){if(uM8.has($))return!0;let Z=Date.now();if(Z-(cM8.get($)??0)<zg4)return!1;cM8.set($,Z);try{let X=await fetch($,{method:"POST",headers:{"content-type":"application/json",accept:"application/json, text/event-stream"},body:JSON.stringify({jsonrpc:"2.0",id:1,method:"initialize",params:{protocolVersion:"2025-06-18",capabilities:{},clientInfo:{name:"studio-dev-probe",version:"1"}}}),signal:AbortSignal.timeout(4000)}),Q=X.ok?await X.text():"",Y=/"protocolVersion"|"serverInfo"/.test(Q);if(Y)uM8.add($);return Y}catch{return!1}}async function V_($,Z,X,Q){let Y=$.organization?.id;if(!Y)return null;let G=await $.storage.virtualMcps.findById(Z);if(!G||G.organization_id!==Y)return null;let J=G.metadata??{},K=m5(J)[X];if(!K)return null;let W=Q?Pg4(K,Q):Ag4(K);if(!W?.entry.previewUrl)return null;let H=await Tg4($,J,Y,X),N=W.entry.previewUrl.replace(/\/+$/,""),U=H?`${N}/api/mcp?token=${encodeURIComponent(H)}`:`${N}/api/mcp`;if(!await jg4(U))return null;return{id:yo1(Z),organization_id:Y,title:`${G.title} (dev)`,description:"Ephemeral sandbox dev-server connection",icon:G.icon??null,app_name:G.title??null,app_id:null,slug:null,connection_type:"HTTP",connection_url:U,connection_token:null,connection_headers:null,oauth_config:null,configuration_state:null,configuration_scopes:null,metadata:{isDevConnection:!0,virtualMcpId:Z,branch:W.branch},tools:null,bindings:null,status:"active",created_at:new Date().toISOString(),updated_at:new Date().toISOString(),created_by:"system"}}function Pg4($,Z){let X=L51(OJ($[Z]));return X?{branch:Z,entry:X}:null}function Ag4($){let Z=null;for(let[X,Q]of Object.entries($)){let Y=L51(OJ(Q));if(!Y)continue;if(!Z||(Y.createdAt??0)>(Z.entry.createdAt??0))Z={branch:X,entry:Y}}return Z}async function Tg4($,Z,X,Q){let Y=Kj0(Z)?.find((G)=>G.key===Eg4);if(!Y)return null;if(Y.kind==="literal")return Y.value||null;try{let{value:G}=await $.storage.secrets.resolveById(Y.secretId,X,Q);return G||null}catch(G){if(G instanceof Y3||G instanceof kB)return null;throw G}}var Eg4="MCP_AUTH_TOKEN",uM8,cM8,zg4=1e4;var Rj0=O(()=>{R6();op();or();YY();uM8=new Set,cM8=new Map});import{z as D51}from"zod";function Ij0($){let{toolOutputMap:Z}=$;return l8({description:"Filter a tool output that was too large to display inline. Returns all lines matching the given regular expression pattern (grep-like). You may call this tool multiple times with different patterns to extract different pieces of information.",inputExamples:[{input:{tool_call_id:"id_1",pattern:"error|warning"}},{input:{tool_call_id:"id_2",pattern:'"status":\\s*"failed"'}}],inputSchema:J0(D51.object({tool_call_id:D51.string(),pattern:D51.string().min(1).describe("Regular expression pattern to filter tool output lines. Returns all matching lines.")})),execute:async({tool_call_id:X,pattern:Q})=>{if(!Z.has(X))return{result:`Tool output not found for tool call id: ${X}. Available ids: ${[...Z.keys()].join(", ")||"(none)"}`,matchCount:0,totalLines:0};let Y=Z.get(X),G;try{G=new RegExp(Q)}catch{return{result:`Invalid regex pattern: ${Q}`,matchCount:0,totalLines:0}}let J=Y.split(`
2503
+ `);Q=J?K.pop()??"":"";for(let W of K){if(W.trim().length===0)continue;try{yield JSON.parse(W)}catch(H){throw Error(`sandbox dispatch produced a non-JSON line: ${H instanceof Error?H.message:String(H)} (line: ${W.slice(0,256)})`)}}},G=$[Symbol.asyncIterator]();try{for(;;){let J=new AbortController,K=G.next().then((N)=>{return J.abort(),N}),W=h8(fM8,{signal:J.signal}).then(()=>"silent").catch(()=>"read-won"),H=await Promise.race([K,W]);if(H==="silent"){if(Z?.aborted)return;throw new S_(`no output from the sandbox for ${fM8/1000}s (its keepalive is every 15s, so the pod is gone)`)}if(H==="read-won")continue;if(H.done)break;Q+=X.decode(H.value,{stream:!0}),yield*Y(!0)}yield*Y(!1)}finally{await G.return?.().catch(()=>{})}}var vM8="/repo",Kg4,Wg4=2,fM8=90000,S_;var Tj0=O(()=>{a$();SM8();xM8();t$1();kO();y8();ar();HK();Kg4=new Set(["claude-code"]);S_=class S_ extends Error{constructor($){super($);this.name="SandboxUnreachableError"}}});import{context as Og4,trace as Lg4}from"@opentelemetry/api";function bM8($){Dg4({...$,tracer:$.ctx.tracer})}function Dg4($){try{if(!$.organizationId)return;let Z=$.tracer.startSpan(Zg0),X=Lg4.setSpan(Og4.active(),Z),Q=$.totalUsage??$.usage;Mo({type:qf,organizationId:$.organizationId,connectionId:y$0,toolName:$.modelId,toolArguments:{model:$.modelId,credentialId:$.credentialId,threadId:$.taskId,...$.request?.body!==void 0?{requestBody:$.request.body}:{}},result:{...$.usage??{},...$.totalUsage?{totalUsage:$.totalUsage}:{},...$.cost!==void 0?{cost:$.cost}:{},...$.finishReason?{finishReason:$.finishReason}:{},...$.response?{responseId:$.response.id,responseModelId:$.response.modelId,responseTimestamp:$.response.timestamp,messages:$.response.messages}:{},logType:qf},duration:$.durationMs,isError:$.isError,errorMessage:$.errorMessage??null,userId:$.userId,requestId:$.requestId,userAgent:$.userAgent??null,virtualMcpId:$.agentId??null,properties:{model_title:$.modelTitle,credential_id:$.credentialId,thread_id:$.taskId,log_type:qf,...$.response?{response_id:$.response.id}:{},...Q?{input_tokens:String(Q.inputTokens),output_tokens:String(Q.outputTokens),total_tokens:String(Q.totalTokens)}:{},...$.cost!==void 0?{cost:String($.cost)}:{}}},X),Z.end()}catch{}}var yM8=O(()=>{RG0();_Y()});function gM8($){let{ctx:Z,organizationId:X,modelId:Q,durationMs:Y,isError:G,inputTokens:J,outputTokens:K,cacheReadTokens:W,cacheWriteTokens:H}=$;if(!X||!Q)return;let N={"connection.id":y$0,"tool.name":Q,"organization.id":X,status:G?"error":"success","error.type":G?$.errorType||"Error":""};if(Z.meter.createHistogram("tool.execution.duration",{description:"Duration of tool executions in milliseconds",unit:"ms"}).record(Y,N),Z.meter.createCounter("tool.execution.count",{description:"Number of tool executions"}).add(1,N),J!=null||K!=null)Z.meter.createCounter("tool.execution.tokens",{description:"Number of tokens used by LLM calls"}).add((J??0)+(K??0),N);if((W??0)>0)Z.meter.createCounter("tool.execution.cache_tokens",{description:"LLM cache tokens by kind (read/write)"}).add(W,{...N,kind:"read"});if((H??0)>0)Z.meter.createCounter("tool.execution.cache_tokens",{description:"LLM cache tokens by kind (read/write)"}).add(H,{...N,kind:"write"})}var hM8=O(()=>{_Y()});function L51($){let Z=Object.values($),[X]=Z;if(!X)return null;return Z.find((Q)=>Q.sandboxProviderKind!=="user-desktop")??X}async function jg4($){if(uM8.has($))return!0;let Z=Date.now();if(Z-(cM8.get($)??0)<zg4)return!1;cM8.set($,Z);try{let X=await fetch($,{method:"POST",headers:{"content-type":"application/json",accept:"application/json, text/event-stream"},body:JSON.stringify({jsonrpc:"2.0",id:1,method:"initialize",params:{protocolVersion:"2025-06-18",capabilities:{},clientInfo:{name:"studio-dev-probe",version:"1"}}}),signal:AbortSignal.timeout(4000)}),Q=X.ok?await X.text():"",Y=/"protocolVersion"|"serverInfo"/.test(Q);if(Y)uM8.add($);return Y}catch{return!1}}async function V_($,Z,X,Q){let Y=$.organization?.id;if(!Y)return null;let G=await $.storage.virtualMcps.findById(Z);if(!G||G.organization_id!==Y)return null;let J=G.metadata??{},K=m5(J)[X];if(!K)return null;let W=Q?Pg4(K,Q):Ag4(K);if(!W?.entry.previewUrl)return null;let H=await Tg4($,J,Y,X),N=W.entry.previewUrl.replace(/\/+$/,""),U=H?`${N}/api/mcp?token=${encodeURIComponent(H)}`:`${N}/api/mcp`;if(!await jg4(U))return null;return{id:yo1(Z),organization_id:Y,title:`${G.title} (dev)`,description:"Ephemeral sandbox dev-server connection",icon:G.icon??null,app_name:G.title??null,app_id:null,slug:null,connection_type:"HTTP",connection_url:U,connection_token:null,connection_headers:null,oauth_config:null,configuration_state:null,configuration_scopes:null,metadata:{isDevConnection:!0,virtualMcpId:Z,branch:W.branch},tools:null,bindings:null,status:"active",created_at:new Date().toISOString(),updated_at:new Date().toISOString(),created_by:"system"}}function Pg4($,Z){let X=L51(OJ($[Z]));return X?{branch:Z,entry:X}:null}function Ag4($){let Z=null;for(let[X,Q]of Object.entries($)){let Y=L51(OJ(Q));if(!Y)continue;if(!Z||(Y.createdAt??0)>(Z.entry.createdAt??0))Z={branch:X,entry:Y}}return Z}async function Tg4($,Z,X,Q){let Y=Kj0(Z)?.find((G)=>G.key===Eg4);if(!Y)return null;if(Y.kind==="literal")return Y.value||null;try{let{value:G}=await $.storage.secrets.resolveById(Y.secretId,X,Q);return G||null}catch(G){if(G instanceof Y3||G instanceof kB)return null;throw G}}var Eg4="MCP_AUTH_TOKEN",uM8,cM8,zg4=1e4;var Rj0=O(()=>{R6();op();or();YY();uM8=new Set,cM8=new Map});import{z as D51}from"zod";function Ij0($){let{toolOutputMap:Z}=$;return l8({description:"Filter a tool output that was too large to display inline. Returns all lines matching the given regular expression pattern (grep-like). You may call this tool multiple times with different patterns to extract different pieces of information.",inputExamples:[{input:{tool_call_id:"id_1",pattern:"error|warning"}},{input:{tool_call_id:"id_2",pattern:'"status":\\s*"failed"'}}],inputSchema:J0(D51.object({tool_call_id:D51.string(),pattern:D51.string().min(1).describe("Regular expression pattern to filter tool output lines. Returns all matching lines.")})),execute:async({tool_call_id:X,pattern:Q})=>{if(!Z.has(X))return{result:`Tool output not found for tool call id: ${X}. Available ids: ${[...Z.keys()].join(", ")||"(none)"}`,matchCount:0,totalLines:0};let Y=Z.get(X),G;try{G=new RegExp(Q)}catch{return{result:`Invalid regex pattern: ${Q}`,matchCount:0,totalLines:0}}let J=Y.split(`
2504
2504
  `),K=J.filter((N)=>G.test(N)),W=K.join(`
2505
2505
  `),H=zX(W);if(H>fO){let N=WQ(W);return{result:`Output is still too long (${H} tokens), use a more specific pattern to reduce output.
2506
2506