decocms 4.252.6 → 4.252.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (222) hide show
  1. package/dist/client/assets/{AlertCircle-B3N9P8RI.js → AlertCircle-DZsaQFP0.js} +1 -1
  2. package/dist/client/assets/{AreaChart-Ta2VvE4M.js → AreaChart-Bij1L6CK.js} +1 -1
  3. package/dist/client/assets/{ArrowLeft-CAoh3O2P.js → ArrowLeft-Dki1TeJa.js} +1 -1
  4. package/dist/client/assets/{ArrowUp-vACC0fQS.js → ArrowUp-C8oBiEtw.js} +1 -1
  5. package/dist/client/assets/{Check-CPrH5nll.js → Check-DkIifbiA.js} +1 -1
  6. package/dist/client/assets/{CheckCircle-DOyeCWqS.js → CheckCircle-BOH1ljhz.js} +1 -1
  7. package/dist/client/assets/{ChevronDown-G4qHTq-6.js → ChevronDown-0amSAjsV.js} +1 -1
  8. package/dist/client/assets/{ChevronRight-D4NI4YVM.js → ChevronRight-MavwbD4w.js} +1 -1
  9. package/dist/client/assets/{ChevronSelectorVertical-2IRHuU6g.js → ChevronSelectorVertical-CRk0cZeJ.js} +1 -1
  10. package/dist/client/assets/{ChevronUp-BZtKxHh_.js → ChevronUp-C9anA-E6.js} +1 -1
  11. package/dist/client/assets/{Copy01-ywyDwRaJ.js → Copy01-Bf7136IA.js} +1 -1
  12. package/dist/client/assets/{CreditCard01-BireWmrY.js → CreditCard01-IWGtGm1W.js} +1 -1
  13. package/dist/client/assets/{DotsVertical-bOgaeVD2.js → DotsVertical-CR0lYNk-.js} +1 -1
  14. package/dist/client/assets/{Download01-btlWjl_T.js → Download01-Dg6NesfY.js} +1 -1
  15. package/dist/client/assets/{Eye-CgK4I-1O.js → Eye-chpz-iD6.js} +1 -1
  16. package/dist/client/assets/{FilterLines-Db6ba3uS.js → FilterLines-CBlP9vLc.js} +1 -1
  17. package/dist/client/assets/{Globe01-DT7mR73t.js → Globe01-BlG2bFbG.js} +1 -1
  18. package/dist/client/assets/{Globe04-BT0IkDUg.js → Globe04-B94HGGMZ.js} +1 -1
  19. package/dist/client/assets/{HardDrive-CsZex706.js → HardDrive-CiwN6Fy1.js} +1 -1
  20. package/dist/client/assets/{Key01-RPMiJTSN.js → Key01-DqU-ZZ-c.js} +1 -1
  21. package/dist/client/assets/{LinkExternal01-B3lJvVTz.js → LinkExternal01-7e4b6esH.js} +1 -1
  22. package/dist/client/assets/{LockUnlocked01-D_PrgcPj.js → LockUnlocked01-BSziY5OG.js} +1 -1
  23. package/dist/client/assets/{LogOut01-CG37d2w6.js → LogOut01-kmh1YiOW.js} +1 -1
  24. package/dist/client/assets/{Monitor01-DA2rKHmj.js → Monitor01-CyppPVOw.js} +1 -1
  25. package/dist/client/assets/{Palette-12b_09mC.js → Palette-rCAi-zrG.js} +1 -1
  26. package/dist/client/assets/{Play-7pHX7ELJ.js → Play-CVRgbrLg.js} +1 -1
  27. package/dist/client/assets/{Plus-BdnisXMO.js → Plus-BcWyxvSW.js} +1 -1
  28. package/dist/client/assets/{SearchLg-BMCbz4Px.js → SearchLg-CpkLQ15a.js} +1 -1
  29. package/dist/client/assets/{SearchMd-jvTLA4cM.js → SearchMd-DvwVdzYo.js} +1 -1
  30. package/dist/client/assets/{Settings02-DRHh6ORT.js → Settings02-CC4b_9Kj.js} +1 -1
  31. package/dist/client/assets/{Share07-Cs_k4QmG.js → Share07-Bi2eK41m.js} +1 -1
  32. package/dist/client/assets/{Shield01-6OF6jI53.js → Shield01-3xvIqBi2.js} +1 -1
  33. package/dist/client/assets/{Stars01-BxjfypIe.js → Stars01-BWP_9TC1.js} +1 -1
  34. package/dist/client/assets/{Stars02-Cw53MaFa.js → Stars02-Cm3C173h.js} +1 -1
  35. package/dist/client/assets/{Sun-CWSZDqs-.js → Sun-CTakNFOt.js} +1 -1
  36. package/dist/client/assets/{SwitchHorizontal01-CvA2czpG.js → SwitchHorizontal01-BeMFka3N.js} +1 -1
  37. package/dist/client/assets/{Tool01-GJuq_6ah.js → Tool01-DsCX5o1L.js} +1 -1
  38. package/dist/client/assets/{Tool02-w8nfNJaC.js → Tool02-DMGRYdRe.js} +1 -1
  39. package/dist/client/assets/{Trash01-C3aqUX7b.js → Trash01-lrkOD3LI.js} +1 -1
  40. package/dist/client/assets/{TrendUp01-C7MRDxvy.js → TrendUp01-BVn6HyCF.js} +1 -1
  41. package/dist/client/assets/{Upload01-9v7tS0P9.js → Upload01-CndB6L-1.js} +1 -1
  42. package/dist/client/assets/{User01-Cn3Cm1ue.js → User01-BnBSlK-N.js} +1 -1
  43. package/dist/client/assets/{UserSquare-CU6QOPpB.js → UserSquare-zRdDnlzE.js} +1 -1
  44. package/dist/client/assets/{Users01-DSr_kDdo.js → Users01-BDacA4yM.js} +1 -1
  45. package/dist/client/assets/{Users03-2jV2m3fy.js → Users03-Bk7jdYrd.js} +1 -1
  46. package/dist/client/assets/{XCircle-BjopJiXE.js → XCircle-CzWZHxMA.js} +1 -1
  47. package/dist/client/assets/{XClose-Ca5GifFS.js → XClose-CBr7jhSX.js} +1 -1
  48. package/dist/client/assets/{YAxis-D1hOwkVr.js → YAxis-DSFmgSMK.js} +1 -1
  49. package/dist/client/assets/{Zap-OaI_rJnE.js → Zap-DN9d602n.js} +1 -1
  50. package/dist/client/assets/{ZapSquare-BLW3x7nI.js → ZapSquare-DdnGMpSr.js} +1 -1
  51. package/dist/client/assets/{access-gate-afdyv645.js → access-gate-DSfyS-1Q.js} +1 -1
  52. package/dist/client/assets/{agent-icon-C2DlSiws.js → agent-icon-B1RZW5py.js} +1 -1
  53. package/dist/client/assets/{agents-list-BBeb6okJ.js → agents-list-B2E2xju6.js} +1 -1
  54. package/dist/client/assets/{ai-providers-DrWWCPeS.js → ai-providers-oM9hLJOA.js} +1 -1
  55. package/dist/client/assets/{alert-7s0DQWXN.js → alert-CV5SIB4Y.js} +1 -1
  56. package/dist/client/assets/{alert-dialog-CXRz8XlW.js → alert-dialog-CYOEoGHB.js} +1 -1
  57. package/dist/client/assets/{api-keys-C06MrE9J.js → api-keys-B10VWDvH.js} +1 -1
  58. package/dist/client/assets/{app-editor-BsdPp94Z.js → app-editor-BkUM-UA6.js} +1 -1
  59. package/dist/client/assets/{auth-DfjAwAsp.js → auth-CPSixqc5.js} +1 -1
  60. package/dist/client/assets/{auth-catchall-Bv5LqT5s.js → auth-catchall-CScBKe5s.js} +1 -1
  61. package/dist/client/assets/{auth-entry-CQNwP1Bj.js → auth-entry-ClamuEKN.js} +1 -1
  62. package/dist/client/assets/{auth-split-layout-BTUJ9w6v.js → auth-split-layout-CMAeyVtB.js} +1 -1
  63. package/dist/client/assets/{authenticate-and-persist-oauth-BvXyw70f.js → authenticate-and-persist-oauth-tneNkKmS.js} +1 -1
  64. package/dist/client/assets/{automation-list-row-B98oqne5.js → automation-list-row-mIutZcoc.js} +1 -1
  65. package/dist/client/assets/{automation-runs-S5Yd-_Qy.js → automation-runs-D0K9p7O-.js} +1 -1
  66. package/dist/client/assets/{automations-C1gfqzlp.js → automations-DWuswrlY.js} +1 -1
  67. package/dist/client/assets/{avatar-Cu3fpsPL.js → avatar-ClV2R_mb.js} +1 -1
  68. package/dist/client/assets/{badge-ZjwGfj-P.js → badge-cv9UGLmS.js} +1 -1
  69. package/dist/client/assets/{block-document-GJuiRBtd.js → block-document-Cq_hH0nw.js} +1 -1
  70. package/dist/client/assets/{buckets-CdRLV-pX.js → buckets-DvcdebMW.js} +1 -1
  71. package/dist/client/assets/{bulk-category-panel-w-WopKeo.js → bulk-category-panel-CVlNNWrV.js} +1 -1
  72. package/dist/client/assets/{capability-load-error-Bm7nPBbX.js → capability-load-error-9GhAvmsJ.js} +1 -1
  73. package/dist/client/assets/{cards-DKSguKep.js → cards-C7pYARPH.js} +1 -1
  74. package/dist/client/assets/{category-editor-BavLkWNC.js → category-editor-DcPfB_hV.js} +1 -1
  75. package/dist/client/assets/{chart-7-KHnUMW.js → chart-DHgYC4B5.js} +1 -1
  76. package/dist/client/assets/{chat-context-Y2lSUOus.js → chat-context-DXgk36Kq.js} +1 -1
  77. package/dist/client/assets/{checkbox-DUG-BuIr.js → checkbox-B9Fl0mQa.js} +1 -1
  78. package/dist/client/assets/{choose-editor-DsbZxu3U.js → choose-editor-Grof5S5p.js} +1 -1
  79. package/dist/client/assets/{cli-auth-success-PRwUTJDL.js → cli-auth-success-B0hDTE9k.js} +1 -1
  80. package/dist/client/assets/{collection-detail-Cpntuk8o.js → collection-detail-CShNEjjb.js} +1 -1
  81. package/dist/client/assets/{collection-display-button-COPFfzqP.js → collection-display-button-DghxFKGL.js} +1 -1
  82. package/dist/client/assets/{collection-search-COpMPrqG.js → collection-search-C8FmBUby.js} +1 -1
  83. package/dist/client/assets/{collection-table-wrapper-3M_polj1.js → collection-table-wrapper-CZAyqF3S.js} +1 -1
  84. package/dist/client/assets/{collection-tabs-BaHERHu8.js → collection-tabs-5rKmzhSy.js} +1 -1
  85. package/dist/client/assets/{command-Dv7YAzU9.js → command-DBJ46wCN.js} +1 -1
  86. package/dist/client/assets/{commerce-onboarding-_7sFe_bc.js → commerce-onboarding-DNJrL2l0.js} +1 -1
  87. package/dist/client/assets/{connect-BX52caNX.js → connect-Dz1h3Wub.js} +1 -1
  88. package/dist/client/assets/{connection-D6lznZG4.js → connection-CPNeVVl_.js} +1 -1
  89. package/dist/client/assets/{connection-card-BiFgAsL_.js → connection-card-Ce3u1KIu.js} +1 -1
  90. package/dist/client/assets/{connection-detail-bs8njCjl.js → connection-detail-Dct2Z3Et.js} +1 -1
  91. package/dist/client/assets/{connection-form-helpers-_esDDpGt.js → connection-form-helpers-CYJyaLQN.js} +1 -1
  92. package/dist/client/assets/{connections--TgFR5Dd.js → connections-DzrV_fRy.js} +1 -1
  93. package/dist/client/assets/{decopilot-sse-pool-DqFA5Z7W.js → decopilot-sse-pool-DqNjHkOv.js} +1 -1
  94. package/dist/client/assets/{dialog-svMn2p6m.js → dialog-BJqj7y-e.js} +1 -1
  95. package/dist/client/assets/{domain-settings-kas522uM.js → domain-settings-C0Ue1i-T.js} +1 -1
  96. package/dist/client/assets/{drawer-p9HIdp3V.js → drawer-C066bWMW.js} +1 -1
  97. package/dist/client/assets/{dropdown-menu-CZG0wpYc.js → dropdown-menu-CGjT0h5K.js} +1 -1
  98. package/dist/client/assets/{empty-state-D1Hwt6I3.js → empty-state-ChZmE6vA.js} +1 -1
  99. package/dist/client/assets/{extract-connection-data-Dvlbl68S.js → extract-connection-data-D6pFj4iN.js} +1 -1
  100. package/dist/client/assets/{file-explorer-BNHsn9-G.js → file-explorer-BQVK-AaN.js} +1 -1
  101. package/dist/client/assets/{file-type-icon-CVJ7hQAr.js → file-type-icon-CeMMkuT6.js} +1 -1
  102. package/dist/client/assets/{form-CRPn-NVm.js → form-ezR2Bgah.js} +1 -1
  103. package/dist/client/assets/{general-DtfgBiId.js → general-DTao5a0B.js} +1 -1
  104. package/dist/client/assets/{github-repo-picker-BMOko2tD.js → github-repo-picker-B_8OFv2m.js} +1 -1
  105. package/dist/client/assets/{hooks-BbuY97xG.js → hooks-7NK0F0cE.js} +1 -1
  106. package/dist/client/assets/{index-CHoNe3-e.js → index-BDCehBoK.js} +1 -1
  107. package/dist/client/assets/{index-BYNuDzjP.js → index-BQbxjsmm.js} +1 -1
  108. package/dist/client/assets/{index-BwjLFZ_0.js → index-Bmhu6LOF.js} +1 -1
  109. package/dist/client/assets/{index-vgq72HQn.js → index-CEWXZtQh.js} +1 -1
  110. package/dist/client/assets/{index--aqZk30Z.js → index-CWEOxNZq.js} +1 -1
  111. package/dist/client/assets/{index-DlyQggKr.js → index-Dj4DiKL1.js} +3 -3
  112. package/dist/client/assets/{index-BIeXPd0C.js → index-Dt5L7Kba.js} +5 -5
  113. package/dist/client/assets/{index-CX8yxDZE.js → index-I582kTlj.js} +1 -1
  114. package/dist/client/assets/{index-TKHi7Tik.js → index-NEfLNGb_.js} +1 -1
  115. package/dist/client/assets/{index-DKmQVnGC.js → index-mNSVuYa1.js} +1 -1
  116. package/dist/client/assets/{index-redirect-Cb0qL2DT.js → index-redirect-Bu7s6qY_.js} +1 -1
  117. package/dist/client/assets/{infra-billing-Dr9VxLgb.js → infra-billing-P2VqSjxb.js} +1 -1
  118. package/dist/client/assets/{input-DCbgW96W.js → input-WqIRcdd5.js} +1 -1
  119. package/dist/client/assets/{integration-icon-CZ_brqB-.js → integration-icon-CYx8LMu3.js} +1 -1
  120. package/dist/client/assets/{invite-member-dialog-DN9y9QoA.js → invite-member-dialog-BZLMwCLw.js} +1 -1
  121. package/dist/client/assets/{label-BN6eKS5v.js → label-C1zwNBve.js} +1 -1
  122. package/dist/client/assets/{layout-BkSOdU6I.js → layout-DoccO4xy.js} +1 -1
  123. package/dist/client/assets/{login-DqhlKX2V.js → login-CgMCJRz9.js} +1 -1
  124. package/dist/client/assets/{mcp-oauth-BYPWPMuJ.js → mcp-oauth-gW3GWlhB.js} +1 -1
  125. package/dist/client/assets/{members-xl-kxZPR.js → members-DvoXSP6d.js} +1 -1
  126. package/dist/client/assets/{monaco-editor-CUuE4xi3.js → monaco-editor-B5VjDROn.js} +1 -1
  127. package/dist/client/assets/{monitoring-stats-row-DdxZQmuR.js → monitoring-stats-row-BUXcCPEU.js} +1 -1
  128. package/dist/client/assets/{multi-select-r9SlP0lA.js → multi-select-BAxR1mT4.js} +1 -1
  129. package/dist/client/assets/{oauth-callback-CkTvtNMN.js → oauth-callback-DtZIWk6c.js} +1 -1
  130. package/dist/client/assets/{oauth-callback-ai-provider-DOp84Dsx.js → oauth-callback-ai-provider-Cr2NAY8J.js} +1 -1
  131. package/dist/client/assets/{onboarding-z7in_-Ij.js → onboarding-CMwA-5NC.js} +1 -1
  132. package/dist/client/assets/{org-layout-Byn2hhGS.js → org-layout-Dlyr90j7.js} +1 -1
  133. package/dist/client/assets/{organization-choice-DbXhcsww.js → organization-choice-CKclIvQH.js} +1 -1
  134. package/dist/client/assets/{orgs-DIy_uFQs.js → orgs-Cwg3IKVu.js} +1 -1
  135. package/dist/client/assets/{page-seo-form-CQ1rbRkh.js → page-seo-form-C0wrGZ4b.js} +1 -1
  136. package/dist/client/assets/{popover-DwYw3BzS.js → popover-BS7Ijllp.js} +1 -1
  137. package/dist/client/assets/{post-editor-7ZaXo2IR.js → post-editor-COgI89pK.js} +1 -1
  138. package/dist/client/assets/{primitives-BYX3ZhTm.js → primitives-RMIXhUht.js} +1 -1
  139. package/dist/client/assets/{profile-CgiY9el3.js → profile-CQHIXRo4.js} +1 -1
  140. package/dist/client/assets/{project-app-view-Bm1VvuKf.js → project-app-view-CgEbOrxT.js} +1 -1
  141. package/dist/client/assets/record-editor-BpbZJ_l8.js +1 -0
  142. package/dist/client/assets/{redirect-editor-BO4-9jCX.js → redirect-editor-BZ81HMvN.js} +1 -1
  143. package/dist/client/assets/registry-DONWBYhy.js +2 -0
  144. package/dist/client/assets/{registry-layout-CHeFNJkE.js → registry-layout-BU7pE6If.js} +1 -1
  145. package/dist/client/assets/{reports-CfaAR2WX.js → reports-D8s2NwO8.js} +1 -1
  146. package/dist/client/assets/{require-capability-DcPkp1qb.js → require-capability-Csx6UR3V.js} +1 -1
  147. package/dist/client/assets/{required-auth-layout-DaWGqBbU.js → required-auth-layout-Dg1XkSB2.js} +1 -1
  148. package/dist/client/assets/{reset-password-Db0S72Km.js → reset-password-BYh8sP04.js} +1 -1
  149. package/dist/client/assets/{roles-CpdVPOvR.js → roles-MJaZCCUs.js} +1 -1
  150. package/dist/client/assets/{search-input-DbEdF-ot.js → search-input-3VFdhX2g.js} +1 -1
  151. package/dist/client/assets/{secrets-DZQ5j394.js → secrets-jpJYm1hv.js} +1 -1
  152. package/dist/client/assets/{sections-editor-Gxh6mCa2.js → sections-editor-Ci-kiSEO.js} +1 -1
  153. package/dist/client/assets/{select-CFClsW2o.js → select-CQbypN2U.js} +1 -1
  154. package/dist/client/assets/{select-model-4uym7fAl.js → select-model-COyEyVqj.js} +1 -1
  155. package/dist/client/assets/{self-tool-result-kfIiv_FE.js → self-tool-result-CrYKnQc4.js} +1 -1
  156. package/dist/client/assets/{seo-editor-BvM423hQ.js → seo-editor-Bv7MPAJC.js} +1 -1
  157. package/dist/client/assets/{settings-layout-CB472uow.js → settings-layout-DH2-C2_D.js} +1 -1
  158. package/dist/client/assets/{shell-controls-BPjcPtRp.js → shell-controls-BqdOCCJg.js} +1 -1
  159. package/dist/client/assets/{shell-layout-DmdmH2nZ.js → shell-layout-BEsFrxoz.js} +1 -1
  160. package/dist/client/assets/{spinner-BcjyVWR3.js → spinner-B4nE5frW.js} +1 -1
  161. package/dist/client/assets/{sso-DYZsv6pb.js → sso-DyNp6c5-.js} +1 -1
  162. package/dist/client/assets/{store-CaCRrkiO.js → store-C3wwrfFg.js} +1 -1
  163. package/dist/client/assets/store-registry-Ch10qOp2.js +2 -0
  164. package/dist/client/assets/{switch-DQMBzd7M.js → switch-DRfGGRto.js} +1 -1
  165. package/dist/client/assets/{synced-repos-BQv8bwPG.js → synced-repos-BR1-aKmZ.js} +1 -1
  166. package/dist/client/assets/{tab-id-BN1PYOI8.js → tab-id-Cop5yrKB.js} +1 -1
  167. package/dist/client/assets/{table-nl8G6E7C.js → table-nyIA6VkN.js} +1 -1
  168. package/dist/client/assets/{tabs-De9A-kf2.js → tabs-sFgcxWPr.js} +1 -1
  169. package/dist/client/assets/{task-key-CJYc-COa.js → task-key-1e5QcdQ0.js} +1 -1
  170. package/dist/client/assets/{tasks-BqQsnn6a.js → tasks-dbu_C5Ni.js} +1 -1
  171. package/dist/client/assets/{textarea-F7rf9ffV.js → textarea-fio1fsB-.js} +1 -1
  172. package/dist/client/assets/{toggle-group-DH6Elpb9.js → toggle-group-Cr1m6Gp4.js} +1 -1
  173. package/dist/client/assets/{toolbar-DXkGB1Ul.js → toolbar-DNvH542e.js} +1 -1
  174. package/dist/client/assets/{track-B_r7o20E.js → track-DsBqmGmP.js} +1 -1
  175. package/dist/client/assets/{types-zt2OUBsM.js → types-BZmkV3q5.js} +1 -1
  176. package/dist/client/assets/{use-ai-providers-ClKH0D4T.js → use-ai-providers-CiI6ZWkB.js} +1 -1
  177. package/dist/client/assets/{use-api-keys-BCRKaD7K.js → use-api-keys-Cpo1MYM1.js} +1 -1
  178. package/dist/client/assets/{use-automations-BTqVELVQ.js → use-automations-CWAeTnIs.js} +1 -1
  179. package/dist/client/assets/{use-autosave-Dac44dNK.js → use-autosave-CdaDGr0q.js} +1 -1
  180. package/dist/client/assets/{use-clock-tick-xAUs0mS7.js → use-clock-tick-FrtuQikY.js} +1 -1
  181. package/dist/client/assets/{use-commerce-diagnostic-DEUndQyn.js → use-commerce-diagnostic-DODwuMLX.js} +1 -1
  182. package/dist/client/assets/{use-connection-fRjiD58P.js → use-connection-Cl7B1D7N.js} +1 -1
  183. package/dist/client/assets/{use-copy-CDrSvHNn.js → use-copy-YdDsFuXw.js} +1 -1
  184. package/dist/client/assets/{use-create-virtual-mcp-ops7bD7S.js → use-create-virtual-mcp-BqxzzRg2.js} +1 -1
  185. package/dist/client/assets/{use-debounced-autosave-CMeFp8Xg.js → use-debounced-autosave-DnThKKar.js} +1 -1
  186. package/dist/client/assets/{use-debounced-value-Ds_MXqVB.js → use-debounced-value-CpC8hNSQ.js} +1 -1
  187. package/dist/client/assets/{use-decopilot-events-DLqKqrVm.js → use-decopilot-events-CT3DufS7.js} +1 -1
  188. package/dist/client/assets/{use-delete-connection-Crq8pzcl.js → use-delete-connection-CcsdQhUb.js} +1 -1
  189. package/dist/client/assets/{use-deployment-admin-DX4Bfylr.js → use-deployment-admin-BCzrIfS8.js} +1 -1
  190. package/dist/client/assets/{use-file-configs-Ej-42Dac.js → use-file-configs-DIIZBKDz.js} +1 -1
  191. package/dist/client/assets/{use-infinite-scroll-DNyzzwh5.js → use-infinite-scroll-C8dK5V5a.js} +1 -1
  192. package/dist/client/assets/{use-join-requests-CQw0wcIA.js → use-join-requests-DKeG-qZs.js} +1 -1
  193. package/dist/client/assets/{use-mcp-client-KhSygikn.js → use-mcp-client-KykQjryc.js} +1 -1
  194. package/dist/client/assets/{use-mcp-tools-r-peJDZE.js → use-mcp-tools-Bi5GFC1j.js} +1 -1
  195. package/dist/client/assets/{use-members-DSPLcyfn.js → use-members-Bq_njsAn.js} +1 -1
  196. package/dist/client/assets/{use-navigate-to-agent-x70vIThZ.js → use-navigate-to-agent-CGTOFk-y.js} +1 -1
  197. package/dist/client/assets/{use-org-auth-client-B4TSIzPx.js → use-org-auth-client-DQmA2kdY.js} +1 -1
  198. package/dist/client/assets/{use-org-repo-syncs-DFfp5psX.js → use-org-repo-syncs-qm0esouY.js} +1 -1
  199. package/dist/client/assets/{use-org-sso-dw_XzQwV.js → use-org-sso-Bn98t9aS.js} +1 -1
  200. package/dist/client/assets/{use-organization-roles-DhAaU6Zr.js → use-organization-roles-L64TVPJv.js} +1 -1
  201. package/dist/client/assets/{use-organization-settings-BTxpAf-D.js → use-organization-settings-DILBdekz.js} +1 -1
  202. package/dist/client/assets/{use-registry-connections-DnM9cpUz.js → use-registry-connections-CwlB0Yn2.js} +1 -1
  203. package/dist/client/assets/{use-secrets-DxBDVMAW.js → use-secrets-4lO9QZFW.js} +1 -1
  204. package/dist/client/assets/{use-section-preview-base-CTepAoVi.js → use-section-preview-base-BDzihOuQ.js} +1 -1
  205. package/dist/client/assets/{use-status-sounds-bDwu3LXI.js → use-status-sounds-DGR_pA7Q.js} +1 -1
  206. package/dist/client/assets/{use-tags-yIbbBBjl.js → use-tags-CCL6Gkja.js} +1 -1
  207. package/dist/client/assets/{use-view-mode-Io5xV2Z4.js → use-view-mode-rtRrBype.js} +1 -1
  208. package/dist/client/assets/{use-virtual-mcp-BPCbmmAA.js → use-virtual-mcp-CdzcvapQ.js} +1 -1
  209. package/dist/client/assets/useInfiniteQuery-hqfkn01u.js +1 -0
  210. package/dist/client/assets/useSuspenseInfiniteQuery-CoKXbJr2.js +1 -0
  211. package/dist/client/assets/{users-bC-kOjSW.js → users-kLKOnHiL.js} +1 -1
  212. package/dist/client/assets/{variant-calendar-goTPMBpu.js → variant-calendar-DiFZ-BHH.js} +1 -1
  213. package/dist/client/assets/{view-mode-toggle-3vjjnMmf.js → view-mode-toggle-1XBV2Qf0.js} +1 -1
  214. package/dist/client/index.html +1 -1
  215. package/dist/server/cli.js +2 -2
  216. package/dist/server/server.js +2 -2
  217. package/package.json +1 -1
  218. package/dist/client/assets/record-editor-oC8Ps8Zh.js +0 -1
  219. package/dist/client/assets/registry-UMO8g3j6.js +0 -2
  220. package/dist/client/assets/store-registry-Cnwspnzv.js +0 -2
  221. package/dist/client/assets/useInfiniteQuery-BIzCGlNN.js +0 -1
  222. package/dist/client/assets/useSuspenseInfiniteQuery-Dkficohd.js +0 -1
@@ -50,7 +50,7 @@
50
50
  <meta name="twitter:description" content="Hire specialized agents, give them access to your tools, and let them deliver real projects — with planning, verification, and observability built in." />
51
51
  <meta name="twitter:image" content="/og-image.png" />
52
52
  <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
53
- <script type="module" crossorigin src="/assets/index-DlyQggKr.js"></script>
53
+ <script type="module" crossorigin src="/assets/index-Dj4DiKL1.js"></script>
54
54
  <link rel="stylesheet" crossorigin href="/assets/index-DZ9B9lIh.css">
55
55
  </head>
56
56
  <body>
@@ -1388,7 +1388,7 @@ Usage: deco services <up|down|status>`),process.exit(1)}}var vi1=L(()=>{zf()});f
1388
1388
  `.execute($);if(Number(W.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${J}/${K}, keeping in old table`);continue}}await tb`
1389
1389
  DELETE FROM kysely_migration WHERE name = ${X}
1390
1390
  `.execute($)}}async function $r1($){await Mt6($),await Vt6($);let Z=new so1({db:$,provider:{getMigrations:()=>Promise.resolve(di0)}}),{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 kt6($){let{keepOpen:Z=!1,database:X,skipBetterAuth:Q=!1}=$??{},Y="skipped";if(!Q&&!X)Y=await Fl0();let G=X??K6(),J=async()=>{if(!Z&&!X)await cB(G).catch((K)=>{console.warn("Warning: Error closing database:",K)})};try{let K=await $r1(G.db);return await J(),{betterAuth:Y,kysely:K}}catch(K){throw await J(),K}}async function St6(){let $=K6(),Z=new so1({db:$.db,provider:{getMigrations:()=>Promise.resolve(di0)}}),{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 Xr1=L(()=>{ao1();Nl0();YX()});async function fZ0($){let Z={...process.env},X=q80($,Z);console.log(Bw1(X.settings.encryptionKey));let Q=X.settings.betterAuthSecret||(X.settings.localMode?Hp1(X.settings.dataDir):""),{ensureServices:Y}=await Promise.resolve().then(() => (d90(),l90)),{outputs:G,services:J}=await Y({home:X.settings.dataDir,externalDatabaseUrl:X.externalDatabaseUrl,externalNatsUrl:X.externalNatsUrl});if(!X.skipMigrations){let{migrateBetterAuth:W}=await Promise.resolve().then(() => (Nl0(),Np1));await W(G.databaseUrl);let{createDatabase:H}=await Promise.resolve().then(() => (YX(),Vn1)),{migrateToLatest:F}=await Promise.resolve().then(() => (Xr1(),Zr1)),N=H(G.databaseUrl);await F({keepOpen:!0,database:N,skipBetterAuth:!0})}let K={...X.settings,betterAuthSecret:Q,databaseUrl:G.databaseUrl,natsUrls:G.natsUrls,...G.s3?{s3Endpoint:G.s3.endpoint,s3Bucket:G.s3.bucket,s3AccessKeyId:G.s3.accessKeyId,s3SecretAccessKey:G.s3.secretAccessKey,s3ForcePathStyle:G.s3.forcePathStyle}:{},...G.natsTunnel?{natsPublicUrl:G.natsTunnel.publicUrl,natsAccountJwt:G.natsTunnel.accountJwt,natsAccountSigningKey:G.natsTunnel.accountSigningKey,natsOperatorJwt:G.natsTunnel.operatorJwt,natsTunnelPublicEnabled:!0,natsCredsPath:G.natsTunnel.credsPath}:{}};return xi1(K),{settings:K,services:J.map((W)=>({name:W.name==="PostgreSQL"?"Postgres":W.name,port:W.port})),managedServiceNames:J.filter((W)=>W.owner==="managed").map((W)=>W.name)}}var mi0=L(()=>{zf();Fp1();_8()});var Gr1={};U0(Gr1,{updateService:()=>TE,subscribeCliState:()=>pi0,setTuiConsoleIntercepted:()=>bZ0,setServerUrl:()=>hi,setMigrationsDone:()=>gi,setDevMode:()=>vt6,resetCliStateForTests:()=>Ct6,isTuiConsoleIntercepted:()=>yZ0,getCliState:()=>ni0,addLogEntry:()=>nB});function Qr1(){return{services:[{name:"Postgres",status:"pending",port:0},{name:"NATS",status:"pending",port:0}],migrationsStatus:"pending",serverUrl:null,logs:[]}}function Ct6(){pQ=Qr1()}function _t6(){return[{name:"Postgres",status:"pending",port:0},{name:"NATS",status:"pending",port:0}]}function yi(){for(let $ of ii0)$()}function ni0(){return pQ}function pi0($){return ii0.add($),()=>ii0.delete($)}function TE($){pQ={...pQ,services:pQ.services.map((Z)=>Z.name===$.name?$:Z)},yi()}function gi(){pQ={...pQ,migrationsStatus:"done"},yi()}function hi($){pQ={...pQ,serverUrl:$},yi()}function nB($){let Z=[...pQ.logs,$];pQ={...pQ,logs:Z.length>500?Z.slice(-500):Z},yi()}function vt6(){pQ={...pQ,services:[..._t6(),{name:"API",status:"pending",port:0},{name:"Vite",status:"pending",port:0}]},yi()}function bZ0($){Yr1=$}function yZ0(){return Yr1}var pQ,ii0,Yr1=!1;var RE=L(()=>{pQ=Qr1();ii0=new Set});import{createServer as Jr1}from"net";function xt6($){return new Promise((Z)=>{let X=Jr1();X.once("error",()=>Z(!1)),X.listen($,"0.0.0.0",()=>{X.close(()=>Z(!0))})})}async function ui($){if(await xt6($))return $;let Z=await new Promise((X,Q)=>{let Y=Jr1();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 ti0=()=>{};function ci($){return $.replace(/\x1b\[[0-9;]*m/g,"")}var oi0={};U0(oi0,{startDevServer:()=>bt6});import{join as ft6}from"path";function Kr1($){let Z=$.getReader(),X=new TextDecoder,Q="";function Y(){let G=Q.split(`
1391
- `);Q=G.pop()??"";for(let J of G){let K=ci(J).replace(/^\[\d+\]\s*/,"").trim();if(!K)continue;nB({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=ci(Q).replace(/^\[\d+\]\s*/,"").trim();if(G)nB({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:G})}})()}async function bt6($){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 ui(Number(Y)+1):await ui(Number($.port)),{settings:K,services:W,managedServiceNames:H}=await fZ0({port:String(J),home:$.home,baseUrl:$.baseUrl,localMode:$.localMode,skipMigrations:$.skipMigrations,noTui:$.noTui,vitePort:$.vitePort});for(let w of W)TE({name:w.name,status:"ready",port:w.port});gi();let F=ft6(import.meta.dir,"..","..","..","..",".."),N=X===!0,U=Bun.spawn(["bun","run","dev:servers"],{cwd:F,env:{...process.env,PORT:String(K.port),VITE_PORT:String(Y),DATABASE_URL:K.databaseUrl,NATS_URL:K.natsUrls.join(","),NODE_ENV:K.nodeEnv,BASE_URL:G,DECOCMS_LOCAL_MODE:String(K.localMode),DECOCMS_HOME:K.dataDir,DATA_DIR:K.dataDir,DECO_CLI:"1",...K.betterAuthSecret?{BETTER_AUTH_SECRET:K.betterAuthSecret}:{},...K.s3Endpoint?{S3_ENDPOINT:K.s3Endpoint,S3_BUCKET:K.s3Bucket??"",S3_ACCESS_KEY_ID:K.s3AccessKeyId??"",S3_SECRET_ACCESS_KEY:K.s3SecretAccessKey??"",S3_FORCE_PATH_STYLE:String(K.s3ForcePathStyle)}:{},...K.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",N?"inherit":"pipe",N?"inherit":"pipe"]});if(!N)Kr1(U.stdout),Kr1(U.stderr);hi(G),TE({name:"Vite",status:"ready",port:Number(Y)}),TE({name:"API",status:"ready",port:Number(K.port)});let O=async(w)=>{if(U.kill(w),await U.exited,H.length>0){let{stopServices:D}=await Promise.resolve().then(() => (d90(),l90));await D(K.dataDir)}};return process.on("SIGINT",()=>O("SIGINT")),process.on("SIGTERM",()=>O("SIGTERM")),{port:Number(Y),process:U}}var ri0=L(()=>{mi0();RE();ti0()});var gZ0;var ai0=L(()=>{gZ0={name:"decocms",version:"4.252.6",description:"Deco CMS \u2014 Self-hostable MCP Gateway for managing AI connections and tools",author:"Deco team",repository:{type:"git",url:"git+https://github.com/decocms/studio.git",directory:"apps/api"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:"bun run migrate && bun run dev:server","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts",build:"bun run build:server","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","generate:tool-contracts":"bun run scripts/generate-tool-contracts.ts","db:migrate":"bun run ./dist/server/migrate.js","db:migrate:dbos":"bun run ./dist/server/migrate-dbos.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts","migrate:dbos":"bun run src/database/migrate-dbos.ts",test:"bun test src","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts",prepublishOnly:"bun run --cwd=../.. build:studio"},optionalDependencies:{"@duckdb/node-api":"^1.5.0-r.1"},dependencies:{"@ai-sdk/anthropic":"^3.0.85","@ai-sdk/google":"^3.0.83","@ai-sdk/openai":"^3.0.73","@anthropic-ai/sdk":"^0.105.0","@aws-sdk/client-s3":"^3.1013.0","@aws-sdk/client-sts":"^3.1013.0","@aws-sdk/lib-storage":"^3.1013.0","@aws-sdk/s3-request-presigner":"^3.1013.0","@clickhouse/client":"^1.8.1","@dbos-inc/dbos-sdk":"^4.21.6","@inkjs/ui":"^2.0.0","@nats-io/jetstream":"3.4.0","@nats-io/kv":"3.4.0","@nats-io/nats-core":"3.4.0","@nats-io/transport-node":"3.4.0","@openrouter/ai-sdk-provider":"^2.9.1","@opentelemetry/core":"^2.6.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12","posthog-node":"^5.0.0",react:"^19.2.6","react-dom":"^19.2.6"},devDependencies:{"@ai-sdk/provider":"^3.0.10","@better-auth/sso":"1.4.1","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/runtime":"workspace:*","@decocms/sandbox":"workspace:*","@decocms/shared":"workspace:*","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.29.0","@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 gt6,Text as Wr1}from"ink";import{jsx as ht6,jsxs as Hr1}from"react/jsx-runtime";function Fr1({version:$}){return Hr1(gt6,{flexDirection:"column",marginTop:1,children:[UZ0.map((Z,X)=>ht6(Wr1,{color:BZ0[X],children:Z},X)),Hr1(Wr1,{dimColor:!0,children:[" v",$]})]})}var Nr1=L(()=>{qi()});import{Box as IE,Text as pB}from"ink";import{Spinner as ut6}from"@inkjs/ui";import{jsx as eY,jsxs as ob}from"react/jsx-runtime";function Ur1({status:$}){if($==="pending")return eY(ut6,{label:""});return eY(pB,{color:"green",children:"\u2713"})}function ct6($){return`${$.name}: ${$.port||"...."}`}function Br1({services:$,migrationsStatus:Z,home:X,serverUrl:Q}){return ob(IE,{flexDirection:"column",paddingBottom:1,children:[eY(Fr1,{version:gZ0.version}),eY(IE,{marginBottom:1,children:eY(pB,{dimColor:!0,children:"\u2500".repeat(80)})}),eY(IE,{children:ob(pB,{dimColor:!0,children:["Home: ",X]})}),ob(IE,{gap:2,children:[$.map((Y)=>ob(IE,{gap:1,children:[eY(pB,{children:ct6(Y)}),eY(Ur1,{status:Y.status})]},Y.name)),ob(IE,{gap:1,children:[eY(pB,{children:"Migrations"}),eY(Ur1,{status:Z})]})]}),eY(IE,{children:Q?ob(pB,{children:["Open in browser: ",eY(pB,{color:"cyan",children:Q})]}):eY(pB,{dimColor:!0,children:"Starting..."})})]})}var Or1=L(()=>{ai0();Nr1()});import{Box as lt6,Text as li}from"ink";import{jsx as si0,jsxs as ei0}from"react/jsx-runtime";function dt6($){if($>=500)return"red";if($>=400)return"yellow";if($>=300)return"cyan";return"green"}function Lr1({logs:$}){return si0(lt6,{flexDirection:"column",children:$.map((Z,X)=>{if(Z.rawLine)return si0(li,{dimColor:!0,children:Z.rawLine},X);let Q=Z.duration<1000?`${Z.duration}ms`:`${(Z.duration/1000).toFixed(1)}s`;return ei0(li,{children:[ei0(li,{dimColor:!0,children:[Z.method.padEnd(6)," ",Z.path.padEnd(30)," "]}),si0(li,{color:dt6(Z.status),children:Z.status}),ei0(li,{dimColor:!0,children:[" ",Q.padStart(8)]})]},X)})})}var wr1=()=>{};var $n0={};U0($n0,{App:()=>nt6});import{Box as mt6}from"ink";import{useSyncExternalStore as it6}from"react";import{jsx as Dr1,jsxs as pt6}from"react/jsx-runtime";function nt6({home:$}){let Z=it6(pi0,ni0);return pt6(mt6,{flexDirection:"column",children:[Dr1(Br1,{services:Z.services,migrationsStatus:Z.migrationsStatus,home:$,serverUrl:Z.serverUrl}),Dr1(Lr1,{logs:Z.logs})]})}var Zn0=L(()=>{Or1();wr1();RE()});var gJ="thread-gate",$N="decopilot-hosted-harness",ZN="decopilot-hosted-harness-sandboxed",U3="automations",tB="background-tools",qE="task-board-github-reads",ME="jira-push";var Er1="7";function jr1($){return{name:"decocms",systemDatabaseUrl:$.systemDatabaseUrl,systemDatabaseSchemaName:"dbos",systemDatabasePoolSize:$.poolSize,runAdminServer:!1,executorID:$.executorID,applicationVersion:Er1,...$.listenQueues!==void 0?{listenQueues:$.listenQueues}:{}}}var zr1=()=>{};function tt6(){let $=(process.env.BUN_OPTIONS??"").split(/\s+/).filter(Boolean);return[...process.argv.slice(1),...$]}function Xn0($,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 Pr1(){let $=tt6();if($.includes("--cpu-prof")){console.log(JSON.stringify({msg:"cpu-profiling-active",dir:Xn0($,"--cpu-prof-dir")??process.cwd(),name:Xn0($,"--cpu-prof-name"),markdown:$.includes("--cpu-prof-md"),intervalUs:Number(Xn0($,"--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 Ar1(){if(process.env.HEAP_WATCH!=="1")return()=>{};let $=Number(process.env.HEAP_WATCH_INTERVAL_MS??60000),Z=async()=>{let X=jE();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(()=>{}),hZ0=setInterval(()=>void Z().catch(()=>{}),$),hZ0.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(hZ0)clearInterval(hZ0)}}var hZ0;var Tr1=()=>{};import*as ot6 from"bun:jsc";function Rr1(){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{rt6()}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=at6()?.traces??[]}catch{}if(J>$&&K.length>0){let W=new Map;for(let F of K){let N=F.frames.find((O)=>O.sourceURL&&!/Unknown Executable/.test(O.category??""))??F.frames[0];if(!N)continue;let U=(N.sourceURL??"?").replace(/^.*\/node_modules\//,"node_modules/"),B=`${N.name??"?"} @ ${U}:${N.line??"?"}`;W.set(B,(W.get(B)??0)+1)}let H=[...W.entries()].sort((F,N)=>N[1]-F[1]).slice(0,8).map(([F,N])=>({frame:F,count:N}));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 rt6,at6;var Ir1=L(()=>{({startSamplingProfiler:rt6,samplingProfilerStackTraces:at6}=ot6)});function qr1(){Pr1();let $=[Ar1(),zn1(),Rr1()];return()=>{for(let Z of $)Z()}}var Mr1=L(()=>{$l0();Tr1();Ir1()});var VE=v((Vr1)=>{Object.defineProperty(Vr1,"__esModule",{value:!0});Vr1.RepublishHeaders=Vr1.DirectMsgHeaders=Vr1.JsHeaders=Vr1.AdvisoryKind=void 0;Vr1.isOrderedPushConsumerOptions=st6;Vr1.isPullConsumer=et6;Vr1.isPushConsumer=$o6;Vr1.isBoundPushConsumerOptions=Zo6;function st6($){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 et6($){return $.isPullConsumer()}function $o6($){return $.isPushConsumer()}function Zo6($){if($&&typeof $==="object")return"deliver_subject"in $||"deliver_group"in $||"idle_heartbeat"in $;return!1}Vr1.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"};Vr1.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"};Vr1.DirectMsgHeaders={Stream:"Nats-Stream",Sequence:"Nats-Sequence",TimeStamp:"Nats-Time-Stamp",Subject:"Nats-Subject",LastSequence:"Nats-Last-Sequence",NumPending:"Nats-Num-Pending"};Vr1.RepublishHeaders={Stream:"Nats-Stream",Subject:"Nats-Subject",Sequence:"Nats-Sequence",LastSequence:"Nats-Last-Sequence",Size:"Nats-Msg-Size"}});var $G=v((Sr1)=>{Object.defineProperty(Sr1,"__esModule",{value:!0});Sr1.TD=Sr1.TE=Sr1.Empty=void 0;Sr1.encode=Fo6;Sr1.decode=No6;Sr1.Empty=new Uint8Array(0);Sr1.TE=new TextEncoder;Sr1.TD=new TextDecoder;function Ho6(...$){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 Fo6(...$){let Z=[];for(let X=0;X<$.length;X++)Z.push(Sr1.TE.encode($[X]));if(Z.length===0)return Sr1.Empty;if(Z.length===1)return Z[0];return Ho6(...Z)}function No6($){if(!$||$.length===0)return"";return Sr1.TD.decode($)}});var ZG=v((vr1)=>{Object.defineProperty(vr1,"__esModule",{value:!0});vr1.errors=vr1.PermissionViolationError=vr1.NoRespondersError=vr1.TimeoutError=vr1.RequestError=vr1.ProtocolError=vr1.ConnectionError=vr1.DrainingConnectionError=vr1.ClosedConnectionError=vr1.AuthorizationError=vr1.UserAuthenticationExpiredError=vr1.InvalidOperationError=vr1.InvalidArgumentError=vr1.InvalidSubjectError=void 0;class Yn0 extends Error{constructor($,Z){super(`illegal subject: '${$}'`,Z);this.name="InvalidSubjectError"}}vr1.InvalidSubjectError=Yn0;class uZ0 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 uZ0(`${$} ${Z}`,X)}}vr1.InvalidArgumentError=uZ0;class Gn0 extends Error{constructor($,Z){super($,Z);this.name="InvalidOperationError"}}vr1.InvalidOperationError=Gn0;class cZ0 extends Error{constructor($,Z){super($,Z);this.name="UserAuthenticationExpiredError"}static parse($){if($.toLowerCase().indexOf("user authentication expired")!==-1)return new cZ0($);return null}}vr1.UserAuthenticationExpiredError=cZ0;class lZ0 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 lZ0($);return null}}vr1.AuthorizationError=lZ0;class Jn0 extends Error{constructor(){super("closed connection");this.name="ClosedConnectionError"}}vr1.ClosedConnectionError=Jn0;class Kn0 extends Error{constructor(){super("connection draining");this.name="DrainingConnectionError"}}vr1.DrainingConnectionError=Kn0;class Wn0 extends Error{constructor($,Z){super($,Z);this.name="ConnectionError"}}vr1.ConnectionError=Wn0;class Hn0 extends Error{constructor($,Z){super($,Z);this.name="ProtocolError"}}vr1.ProtocolError=Hn0;class Fn0 extends Error{constructor($="",Z){super($,Z);this.name="RequestError"}isNoResponders(){return this.cause instanceof dZ0}}vr1.RequestError=Fn0;class Nn0 extends Error{constructor($){super("timeout",$);this.name="TimeoutError"}}vr1.TimeoutError=Nn0;class dZ0 extends Error{subject;constructor($,Z){super(`no responders: '${$}'`,Z);this.subject=$,this.name="NoResponders"}}vr1.NoRespondersError=dZ0;class mZ0 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 mZ0($,X,Q,Y)}}vr1.PermissionViolationError=mZ0;vr1.errors={AuthorizationError:lZ0,ClosedConnectionError:Jn0,ConnectionError:Wn0,DrainingConnectionError:Kn0,InvalidArgumentError:uZ0,InvalidOperationError:Gn0,InvalidSubjectError:Yn0,NoRespondersError:dZ0,PermissionViolationError:mZ0,ProtocolError:Hn0,RequestError:Fn0,TimeoutError:Nn0,UserAuthenticationExpiredError:cZ0}});var hJ=v((gr1)=>{Object.defineProperty(gr1,"__esModule",{value:!0});gr1.SimpleMutex=gr1.Perf=void 0;gr1.extend=Vo6;gr1.render=ko6;gr1.timeout=So6;gr1.delay=Co6;gr1.deadline=_o6;gr1.deferred=Bn0;gr1.debugDeferred=vo6;gr1.shuffle=xo6;gr1.collect=fo6;gr1.jitter=yr1;gr1.backoff=bo6;gr1.nanos=yo6;gr1.millis=go6;gr1.randomToken=co6;var Mo6=$G(),Un0=ZG();function Vo6($,...Z){for(let X=0;X<Z.length;X++){let Q=Z[X];Object.keys(Q).forEach(function(Y){$[Y]=Q[Y]})}return $}function ko6($){return Mo6.TD.decode($).replace(/\n/g,"\u240A").replace(/\r/g,"\u240D")}function So6($,Z=!0){let X=Z?new Un0.TimeoutError:null,Q,Y,G=new Promise((J,K)=>{Q={cancel:()=>{if(Y)clearTimeout(Y)}},Y=setTimeout(()=>{if(X===null)K(new Un0.TimeoutError);else K(X)},$)});return Object.assign(G,Q)}function Co6($=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 _o6($,Z=1000){let X=Bn0(),Q=setTimeout(()=>{X.reject(new Un0.TimeoutError)},Z);try{return await Promise.race([$,X])}finally{clearTimeout(Q)}}function Bn0(){let $={},Z=new Promise((X,Q)=>{$={resolve:X,reject:Q}});return Object.assign(Z,$)}function vo6(){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 xo6($){for(let Z=$.length-1;Z>0;Z--){let X=Math.floor(Math.random()*(Z+1));[$[Z],$[X]]=[$[X],$[Z]]}return $}async function fo6($){let Z=[];for await(let X of $)Z.push(X);return Z}class fr1{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})}),$}}gr1.Perf=fr1;class br1{max;current;waiting;constructor($=1){this.max=$,this.current=0,this.waiting=[]}lock(){if(this.current++,this.current<=this.max)return Promise.resolve();let $=Bn0();return this.waiting.push($),$}unlock(){this.current--,this.waiting.pop()?.resolve()}}gr1.SimpleMutex=br1;function yr1($){if($===0)return 0;return Math.floor($/2+Math.random()*$)}function bo6($=[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 yr1(X>Z?$[Z]:$[X])}}}function yo6($){return $*1e6}function go6($){return Math.floor($/1e6)}var ho6="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",XN=new Uint8Array(62);for(let $=0;$<62;$++)XN[$]=ho6.charCodeAt($);var uo6=218340105584896;function co6(){let $=Math.floor(Math.random()*uo6),Z=$%62,X=XN[Z];$=($-Z)/62,Z=$%62;let Q=XN[Z];$=($-Z)/62,Z=$%62;let Y=XN[Z];$=($-Z)/62,Z=$%62;let G=XN[Z];$=($-Z)/62,Z=$%62;let J=XN[Z];$=($-Z)/62,Z=$%62;let K=XN[Z];$=($-Z)/62,Z=$%62;let W=XN[Z];$=($-Z)/62;let H=XN[$];return String.fromCharCode(X,Q,Y,G,J,K,W,H)}});var nr1=v((mr1)=>{Object.defineProperty(mr1,"__esModule",{value:!0});mr1.nuid=mr1.NuidImpl=void 0;var Qr6="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",oB=62,nZ0=12,lr1=10,ur1=33,Yr6=333,cr1=nZ0+lr1,Ln0=new Uint8Array(oB);for(let $=0;$<oB;$++)Ln0[$]=Qr6.charCodeAt($);var iZ0=4294967296,dr1=BigInt(oB)**BigInt(lr1),di=Number(dr1/(1n<<32n)),On0=Number(dr1%(1n<<32n));function Gr6($){for(let Z=0;Z<$.length;Z++)$[Z]=Math.floor(Math.random()*256)}function Jr6($){if(globalThis?.crypto?.getRandomValues)globalThis.crypto.getRandomValues($);else Gr6($)}class wn0{buf;cbuf;seqHi;seqLo;inc;inited;constructor(){this.buf=new Uint8Array(cr1),this.cbuf=new Uint8Array(nZ0),this.inited=!1}init(){this.inited=!0,this.setPre(),this.initSeqAndInc(),this.fillSeq()}initSeqAndInc(){let $=0;do this.seqHi=Math.floor(Math.random()*(di+1)),this.seqLo=Math.floor(Math.random()*iZ0);while($++<8&&this.seqHi===di&&this.seqLo>=On0);if(this.seqHi===di&&this.seqLo>=On0)this.seqLo=0;this.inc=Math.random()*(Yr6-ur1)+ur1|0}setPre(){Jr6(this.cbuf);for(let $=0;$<nZ0;$++)this.buf[$]=Ln0[this.cbuf[$]%oB]}fillSeq(){let $=this.seqHi,Z=this.seqLo;for(let X=cr1-1;X>=nZ0;X--){let Q=Math.floor($/oB),G=($-Q*oB)*iZ0+Z,J=Math.floor(G/oB),K=G-J*oB;this.buf[X]=Ln0[K],$=Q,Z=J}}next(){if(!this.inited)this.init();if(this.seqLo+=this.inc,this.seqLo>=iZ0)this.seqLo-=iZ0,this.seqHi+=1;if(this.seqHi>di||this.seqHi===di&&this.seqLo>=On0)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()}}mr1.NuidImpl=wn0;mr1.nuid=new wn0});var rr1=v((tr1)=>{Object.defineProperty(tr1,"__esModule",{value:!0});tr1.nuid=tr1.Nuid=void 0;var pr1=nr1();tr1.Nuid=pr1.NuidImpl;tr1.nuid=pr1.nuid});var tZ0=v((pZ0)=>{Object.defineProperty(pZ0,"__esModule",{value:!0});pZ0.nuid=pZ0.Nuid=void 0;var ar1=rr1();Object.defineProperty(pZ0,"Nuid",{enumerable:!0,get:function(){return ar1.Nuid}});Object.defineProperty(pZ0,"nuid",{enumerable:!0,get:function(){return ar1.nuid}})});var rB=v((sr1)=>{Object.defineProperty(sr1,"__esModule",{value:!0});sr1.DEFAULT_HOST=sr1.DEFAULT_PORT=sr1.Match=void 0;sr1.syncIterator=Ur6;sr1.createInbox=Br6;var Fr6=tZ0(),Nr6=ZG();sr1.Match={Exact:"exact",CanonicalMIME:"canonical",IgnoreCase:"insensitive"};function Ur6($){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 Br6($=""){if($=$||"_INBOX",typeof $!=="string")throw TypeError("prefix must be a string");return $.split(".").forEach((Z)=>{if(Z==="*"||Z===">")throw Nr6.InvalidArgumentError.format("prefix",`cannot have wildcards ('${$}')`)}),`${$}.${Fr6.nuid.next()}`}sr1.DEFAULT_PORT=4222;sr1.DEFAULT_HOST="127.0.0.1"});var mi=v((Xa1)=>{Object.defineProperty(Xa1,"__esModule",{value:!0});Xa1.DataBuffer=void 0;var $a1=$G();class Za1{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 $a1.TE.encode($)}static toAscii($){return $a1.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}}Xa1.DataBuffer=Za1});var kE=v((Ga1)=>{Object.defineProperty(Ga1,"__esModule",{value:!0});Ga1.LF=Ga1.CR=Ga1.CRLF=Ga1.CR_LF_LEN=Ga1.CR_LF=void 0;Ga1.setTransportFactory=Pr6;Ga1.defaultPort=Ar6;Ga1.getUrlParseFn=Tr6;Ga1.newTransport=Rr6;Ga1.getResolveFn=Ir6;Ga1.protoLen=Ya1;Ga1.extractProtocolMessage=qr6;var Er6=$G(),jr6=rB(),zr6=mi(),XG;function Pr6($){XG=$}function Ar6(){return XG!==void 0&&XG.defaultPort!==void 0?XG.defaultPort:jr6.DEFAULT_PORT}function Tr6(){return XG!==void 0&&XG.urlParseFn?XG.urlParseFn:void 0}function Rr6(){if(!XG||typeof XG.factory!=="function")throw Error("transport fn is not set");return XG.factory()}function Ir6(){return XG!==void 0&&XG.dnsResolveFn?XG.dnsResolveFn:void 0}Ga1.CR_LF=`\r
1391
+ `);Q=G.pop()??"";for(let J of G){let K=ci(J).replace(/^\[\d+\]\s*/,"").trim();if(!K)continue;nB({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=ci(Q).replace(/^\[\d+\]\s*/,"").trim();if(G)nB({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:G})}})()}async function bt6($){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 ui(Number(Y)+1):await ui(Number($.port)),{settings:K,services:W,managedServiceNames:H}=await fZ0({port:String(J),home:$.home,baseUrl:$.baseUrl,localMode:$.localMode,skipMigrations:$.skipMigrations,noTui:$.noTui,vitePort:$.vitePort});for(let w of W)TE({name:w.name,status:"ready",port:w.port});gi();let F=ft6(import.meta.dir,"..","..","..","..",".."),N=X===!0,U=Bun.spawn(["bun","run","dev:servers"],{cwd:F,env:{...process.env,PORT:String(K.port),VITE_PORT:String(Y),DATABASE_URL:K.databaseUrl,NATS_URL:K.natsUrls.join(","),NODE_ENV:K.nodeEnv,BASE_URL:G,DECOCMS_LOCAL_MODE:String(K.localMode),DECOCMS_HOME:K.dataDir,DATA_DIR:K.dataDir,DECO_CLI:"1",...K.betterAuthSecret?{BETTER_AUTH_SECRET:K.betterAuthSecret}:{},...K.s3Endpoint?{S3_ENDPOINT:K.s3Endpoint,S3_BUCKET:K.s3Bucket??"",S3_ACCESS_KEY_ID:K.s3AccessKeyId??"",S3_SECRET_ACCESS_KEY:K.s3SecretAccessKey??"",S3_FORCE_PATH_STYLE:String(K.s3ForcePathStyle)}:{},...K.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",N?"inherit":"pipe",N?"inherit":"pipe"]});if(!N)Kr1(U.stdout),Kr1(U.stderr);hi(G),TE({name:"Vite",status:"ready",port:Number(Y)}),TE({name:"API",status:"ready",port:Number(K.port)});let O=async(w)=>{if(U.kill(w),await U.exited,H.length>0){let{stopServices:D}=await Promise.resolve().then(() => (d90(),l90));await D(K.dataDir)}};return process.on("SIGINT",()=>O("SIGINT")),process.on("SIGTERM",()=>O("SIGTERM")),{port:Number(Y),process:U}}var ri0=L(()=>{mi0();RE();ti0()});var gZ0;var ai0=L(()=>{gZ0={name:"decocms",version:"4.252.7",description:"Deco CMS \u2014 Self-hostable MCP Gateway for managing AI connections and tools",author:"Deco team",repository:{type:"git",url:"git+https://github.com/decocms/studio.git",directory:"apps/api"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:"bun run migrate && bun run dev:server","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts",build:"bun run build:server","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","generate:tool-contracts":"bun run scripts/generate-tool-contracts.ts","db:migrate":"bun run ./dist/server/migrate.js","db:migrate:dbos":"bun run ./dist/server/migrate-dbos.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts","migrate:dbos":"bun run src/database/migrate-dbos.ts",test:"bun test src","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts",prepublishOnly:"bun run --cwd=../.. build:studio"},optionalDependencies:{"@duckdb/node-api":"^1.5.0-r.1"},dependencies:{"@ai-sdk/anthropic":"^3.0.85","@ai-sdk/google":"^3.0.83","@ai-sdk/openai":"^3.0.73","@anthropic-ai/sdk":"^0.105.0","@aws-sdk/client-s3":"^3.1013.0","@aws-sdk/client-sts":"^3.1013.0","@aws-sdk/lib-storage":"^3.1013.0","@aws-sdk/s3-request-presigner":"^3.1013.0","@clickhouse/client":"^1.8.1","@dbos-inc/dbos-sdk":"^4.21.6","@inkjs/ui":"^2.0.0","@nats-io/jetstream":"3.4.0","@nats-io/kv":"3.4.0","@nats-io/nats-core":"3.4.0","@nats-io/transport-node":"3.4.0","@openrouter/ai-sdk-provider":"^2.9.1","@opentelemetry/core":"^2.6.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12","posthog-node":"^5.0.0",react:"^19.2.6","react-dom":"^19.2.6"},devDependencies:{"@ai-sdk/provider":"^3.0.10","@better-auth/sso":"1.4.1","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/runtime":"workspace:*","@decocms/sandbox":"workspace:*","@decocms/shared":"workspace:*","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.29.0","@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 gt6,Text as Wr1}from"ink";import{jsx as ht6,jsxs as Hr1}from"react/jsx-runtime";function Fr1({version:$}){return Hr1(gt6,{flexDirection:"column",marginTop:1,children:[UZ0.map((Z,X)=>ht6(Wr1,{color:BZ0[X],children:Z},X)),Hr1(Wr1,{dimColor:!0,children:[" v",$]})]})}var Nr1=L(()=>{qi()});import{Box as IE,Text as pB}from"ink";import{Spinner as ut6}from"@inkjs/ui";import{jsx as eY,jsxs as ob}from"react/jsx-runtime";function Ur1({status:$}){if($==="pending")return eY(ut6,{label:""});return eY(pB,{color:"green",children:"\u2713"})}function ct6($){return`${$.name}: ${$.port||"...."}`}function Br1({services:$,migrationsStatus:Z,home:X,serverUrl:Q}){return ob(IE,{flexDirection:"column",paddingBottom:1,children:[eY(Fr1,{version:gZ0.version}),eY(IE,{marginBottom:1,children:eY(pB,{dimColor:!0,children:"\u2500".repeat(80)})}),eY(IE,{children:ob(pB,{dimColor:!0,children:["Home: ",X]})}),ob(IE,{gap:2,children:[$.map((Y)=>ob(IE,{gap:1,children:[eY(pB,{children:ct6(Y)}),eY(Ur1,{status:Y.status})]},Y.name)),ob(IE,{gap:1,children:[eY(pB,{children:"Migrations"}),eY(Ur1,{status:Z})]})]}),eY(IE,{children:Q?ob(pB,{children:["Open in browser: ",eY(pB,{color:"cyan",children:Q})]}):eY(pB,{dimColor:!0,children:"Starting..."})})]})}var Or1=L(()=>{ai0();Nr1()});import{Box as lt6,Text as li}from"ink";import{jsx as si0,jsxs as ei0}from"react/jsx-runtime";function dt6($){if($>=500)return"red";if($>=400)return"yellow";if($>=300)return"cyan";return"green"}function Lr1({logs:$}){return si0(lt6,{flexDirection:"column",children:$.map((Z,X)=>{if(Z.rawLine)return si0(li,{dimColor:!0,children:Z.rawLine},X);let Q=Z.duration<1000?`${Z.duration}ms`:`${(Z.duration/1000).toFixed(1)}s`;return ei0(li,{children:[ei0(li,{dimColor:!0,children:[Z.method.padEnd(6)," ",Z.path.padEnd(30)," "]}),si0(li,{color:dt6(Z.status),children:Z.status}),ei0(li,{dimColor:!0,children:[" ",Q.padStart(8)]})]},X)})})}var wr1=()=>{};var $n0={};U0($n0,{App:()=>nt6});import{Box as mt6}from"ink";import{useSyncExternalStore as it6}from"react";import{jsx as Dr1,jsxs as pt6}from"react/jsx-runtime";function nt6({home:$}){let Z=it6(pi0,ni0);return pt6(mt6,{flexDirection:"column",children:[Dr1(Br1,{services:Z.services,migrationsStatus:Z.migrationsStatus,home:$,serverUrl:Z.serverUrl}),Dr1(Lr1,{logs:Z.logs})]})}var Zn0=L(()=>{Or1();wr1();RE()});var gJ="thread-gate",$N="decopilot-hosted-harness",ZN="decopilot-hosted-harness-sandboxed",U3="automations",tB="background-tools",qE="task-board-github-reads",ME="jira-push";var Er1="7";function jr1($){return{name:"decocms",systemDatabaseUrl:$.systemDatabaseUrl,systemDatabaseSchemaName:"dbos",systemDatabasePoolSize:$.poolSize,runAdminServer:!1,executorID:$.executorID,applicationVersion:Er1,...$.listenQueues!==void 0?{listenQueues:$.listenQueues}:{}}}var zr1=()=>{};function tt6(){let $=(process.env.BUN_OPTIONS??"").split(/\s+/).filter(Boolean);return[...process.argv.slice(1),...$]}function Xn0($,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 Pr1(){let $=tt6();if($.includes("--cpu-prof")){console.log(JSON.stringify({msg:"cpu-profiling-active",dir:Xn0($,"--cpu-prof-dir")??process.cwd(),name:Xn0($,"--cpu-prof-name"),markdown:$.includes("--cpu-prof-md"),intervalUs:Number(Xn0($,"--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 Ar1(){if(process.env.HEAP_WATCH!=="1")return()=>{};let $=Number(process.env.HEAP_WATCH_INTERVAL_MS??60000),Z=async()=>{let X=jE();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(()=>{}),hZ0=setInterval(()=>void Z().catch(()=>{}),$),hZ0.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(hZ0)clearInterval(hZ0)}}var hZ0;var Tr1=()=>{};import*as ot6 from"bun:jsc";function Rr1(){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{rt6()}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=at6()?.traces??[]}catch{}if(J>$&&K.length>0){let W=new Map;for(let F of K){let N=F.frames.find((O)=>O.sourceURL&&!/Unknown Executable/.test(O.category??""))??F.frames[0];if(!N)continue;let U=(N.sourceURL??"?").replace(/^.*\/node_modules\//,"node_modules/"),B=`${N.name??"?"} @ ${U}:${N.line??"?"}`;W.set(B,(W.get(B)??0)+1)}let H=[...W.entries()].sort((F,N)=>N[1]-F[1]).slice(0,8).map(([F,N])=>({frame:F,count:N}));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 rt6,at6;var Ir1=L(()=>{({startSamplingProfiler:rt6,samplingProfilerStackTraces:at6}=ot6)});function qr1(){Pr1();let $=[Ar1(),zn1(),Rr1()];return()=>{for(let Z of $)Z()}}var Mr1=L(()=>{$l0();Tr1();Ir1()});var VE=v((Vr1)=>{Object.defineProperty(Vr1,"__esModule",{value:!0});Vr1.RepublishHeaders=Vr1.DirectMsgHeaders=Vr1.JsHeaders=Vr1.AdvisoryKind=void 0;Vr1.isOrderedPushConsumerOptions=st6;Vr1.isPullConsumer=et6;Vr1.isPushConsumer=$o6;Vr1.isBoundPushConsumerOptions=Zo6;function st6($){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 et6($){return $.isPullConsumer()}function $o6($){return $.isPushConsumer()}function Zo6($){if($&&typeof $==="object")return"deliver_subject"in $||"deliver_group"in $||"idle_heartbeat"in $;return!1}Vr1.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"};Vr1.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"};Vr1.DirectMsgHeaders={Stream:"Nats-Stream",Sequence:"Nats-Sequence",TimeStamp:"Nats-Time-Stamp",Subject:"Nats-Subject",LastSequence:"Nats-Last-Sequence",NumPending:"Nats-Num-Pending"};Vr1.RepublishHeaders={Stream:"Nats-Stream",Subject:"Nats-Subject",Sequence:"Nats-Sequence",LastSequence:"Nats-Last-Sequence",Size:"Nats-Msg-Size"}});var $G=v((Sr1)=>{Object.defineProperty(Sr1,"__esModule",{value:!0});Sr1.TD=Sr1.TE=Sr1.Empty=void 0;Sr1.encode=Fo6;Sr1.decode=No6;Sr1.Empty=new Uint8Array(0);Sr1.TE=new TextEncoder;Sr1.TD=new TextDecoder;function Ho6(...$){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 Fo6(...$){let Z=[];for(let X=0;X<$.length;X++)Z.push(Sr1.TE.encode($[X]));if(Z.length===0)return Sr1.Empty;if(Z.length===1)return Z[0];return Ho6(...Z)}function No6($){if(!$||$.length===0)return"";return Sr1.TD.decode($)}});var ZG=v((vr1)=>{Object.defineProperty(vr1,"__esModule",{value:!0});vr1.errors=vr1.PermissionViolationError=vr1.NoRespondersError=vr1.TimeoutError=vr1.RequestError=vr1.ProtocolError=vr1.ConnectionError=vr1.DrainingConnectionError=vr1.ClosedConnectionError=vr1.AuthorizationError=vr1.UserAuthenticationExpiredError=vr1.InvalidOperationError=vr1.InvalidArgumentError=vr1.InvalidSubjectError=void 0;class Yn0 extends Error{constructor($,Z){super(`illegal subject: '${$}'`,Z);this.name="InvalidSubjectError"}}vr1.InvalidSubjectError=Yn0;class uZ0 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 uZ0(`${$} ${Z}`,X)}}vr1.InvalidArgumentError=uZ0;class Gn0 extends Error{constructor($,Z){super($,Z);this.name="InvalidOperationError"}}vr1.InvalidOperationError=Gn0;class cZ0 extends Error{constructor($,Z){super($,Z);this.name="UserAuthenticationExpiredError"}static parse($){if($.toLowerCase().indexOf("user authentication expired")!==-1)return new cZ0($);return null}}vr1.UserAuthenticationExpiredError=cZ0;class lZ0 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 lZ0($);return null}}vr1.AuthorizationError=lZ0;class Jn0 extends Error{constructor(){super("closed connection");this.name="ClosedConnectionError"}}vr1.ClosedConnectionError=Jn0;class Kn0 extends Error{constructor(){super("connection draining");this.name="DrainingConnectionError"}}vr1.DrainingConnectionError=Kn0;class Wn0 extends Error{constructor($,Z){super($,Z);this.name="ConnectionError"}}vr1.ConnectionError=Wn0;class Hn0 extends Error{constructor($,Z){super($,Z);this.name="ProtocolError"}}vr1.ProtocolError=Hn0;class Fn0 extends Error{constructor($="",Z){super($,Z);this.name="RequestError"}isNoResponders(){return this.cause instanceof dZ0}}vr1.RequestError=Fn0;class Nn0 extends Error{constructor($){super("timeout",$);this.name="TimeoutError"}}vr1.TimeoutError=Nn0;class dZ0 extends Error{subject;constructor($,Z){super(`no responders: '${$}'`,Z);this.subject=$,this.name="NoResponders"}}vr1.NoRespondersError=dZ0;class mZ0 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 mZ0($,X,Q,Y)}}vr1.PermissionViolationError=mZ0;vr1.errors={AuthorizationError:lZ0,ClosedConnectionError:Jn0,ConnectionError:Wn0,DrainingConnectionError:Kn0,InvalidArgumentError:uZ0,InvalidOperationError:Gn0,InvalidSubjectError:Yn0,NoRespondersError:dZ0,PermissionViolationError:mZ0,ProtocolError:Hn0,RequestError:Fn0,TimeoutError:Nn0,UserAuthenticationExpiredError:cZ0}});var hJ=v((gr1)=>{Object.defineProperty(gr1,"__esModule",{value:!0});gr1.SimpleMutex=gr1.Perf=void 0;gr1.extend=Vo6;gr1.render=ko6;gr1.timeout=So6;gr1.delay=Co6;gr1.deadline=_o6;gr1.deferred=Bn0;gr1.debugDeferred=vo6;gr1.shuffle=xo6;gr1.collect=fo6;gr1.jitter=yr1;gr1.backoff=bo6;gr1.nanos=yo6;gr1.millis=go6;gr1.randomToken=co6;var Mo6=$G(),Un0=ZG();function Vo6($,...Z){for(let X=0;X<Z.length;X++){let Q=Z[X];Object.keys(Q).forEach(function(Y){$[Y]=Q[Y]})}return $}function ko6($){return Mo6.TD.decode($).replace(/\n/g,"\u240A").replace(/\r/g,"\u240D")}function So6($,Z=!0){let X=Z?new Un0.TimeoutError:null,Q,Y,G=new Promise((J,K)=>{Q={cancel:()=>{if(Y)clearTimeout(Y)}},Y=setTimeout(()=>{if(X===null)K(new Un0.TimeoutError);else K(X)},$)});return Object.assign(G,Q)}function Co6($=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 _o6($,Z=1000){let X=Bn0(),Q=setTimeout(()=>{X.reject(new Un0.TimeoutError)},Z);try{return await Promise.race([$,X])}finally{clearTimeout(Q)}}function Bn0(){let $={},Z=new Promise((X,Q)=>{$={resolve:X,reject:Q}});return Object.assign(Z,$)}function vo6(){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 xo6($){for(let Z=$.length-1;Z>0;Z--){let X=Math.floor(Math.random()*(Z+1));[$[Z],$[X]]=[$[X],$[Z]]}return $}async function fo6($){let Z=[];for await(let X of $)Z.push(X);return Z}class fr1{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})}),$}}gr1.Perf=fr1;class br1{max;current;waiting;constructor($=1){this.max=$,this.current=0,this.waiting=[]}lock(){if(this.current++,this.current<=this.max)return Promise.resolve();let $=Bn0();return this.waiting.push($),$}unlock(){this.current--,this.waiting.pop()?.resolve()}}gr1.SimpleMutex=br1;function yr1($){if($===0)return 0;return Math.floor($/2+Math.random()*$)}function bo6($=[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 yr1(X>Z?$[Z]:$[X])}}}function yo6($){return $*1e6}function go6($){return Math.floor($/1e6)}var ho6="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",XN=new Uint8Array(62);for(let $=0;$<62;$++)XN[$]=ho6.charCodeAt($);var uo6=218340105584896;function co6(){let $=Math.floor(Math.random()*uo6),Z=$%62,X=XN[Z];$=($-Z)/62,Z=$%62;let Q=XN[Z];$=($-Z)/62,Z=$%62;let Y=XN[Z];$=($-Z)/62,Z=$%62;let G=XN[Z];$=($-Z)/62,Z=$%62;let J=XN[Z];$=($-Z)/62,Z=$%62;let K=XN[Z];$=($-Z)/62,Z=$%62;let W=XN[Z];$=($-Z)/62;let H=XN[$];return String.fromCharCode(X,Q,Y,G,J,K,W,H)}});var nr1=v((mr1)=>{Object.defineProperty(mr1,"__esModule",{value:!0});mr1.nuid=mr1.NuidImpl=void 0;var Qr6="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",oB=62,nZ0=12,lr1=10,ur1=33,Yr6=333,cr1=nZ0+lr1,Ln0=new Uint8Array(oB);for(let $=0;$<oB;$++)Ln0[$]=Qr6.charCodeAt($);var iZ0=4294967296,dr1=BigInt(oB)**BigInt(lr1),di=Number(dr1/(1n<<32n)),On0=Number(dr1%(1n<<32n));function Gr6($){for(let Z=0;Z<$.length;Z++)$[Z]=Math.floor(Math.random()*256)}function Jr6($){if(globalThis?.crypto?.getRandomValues)globalThis.crypto.getRandomValues($);else Gr6($)}class wn0{buf;cbuf;seqHi;seqLo;inc;inited;constructor(){this.buf=new Uint8Array(cr1),this.cbuf=new Uint8Array(nZ0),this.inited=!1}init(){this.inited=!0,this.setPre(),this.initSeqAndInc(),this.fillSeq()}initSeqAndInc(){let $=0;do this.seqHi=Math.floor(Math.random()*(di+1)),this.seqLo=Math.floor(Math.random()*iZ0);while($++<8&&this.seqHi===di&&this.seqLo>=On0);if(this.seqHi===di&&this.seqLo>=On0)this.seqLo=0;this.inc=Math.random()*(Yr6-ur1)+ur1|0}setPre(){Jr6(this.cbuf);for(let $=0;$<nZ0;$++)this.buf[$]=Ln0[this.cbuf[$]%oB]}fillSeq(){let $=this.seqHi,Z=this.seqLo;for(let X=cr1-1;X>=nZ0;X--){let Q=Math.floor($/oB),G=($-Q*oB)*iZ0+Z,J=Math.floor(G/oB),K=G-J*oB;this.buf[X]=Ln0[K],$=Q,Z=J}}next(){if(!this.inited)this.init();if(this.seqLo+=this.inc,this.seqLo>=iZ0)this.seqLo-=iZ0,this.seqHi+=1;if(this.seqHi>di||this.seqHi===di&&this.seqLo>=On0)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()}}mr1.NuidImpl=wn0;mr1.nuid=new wn0});var rr1=v((tr1)=>{Object.defineProperty(tr1,"__esModule",{value:!0});tr1.nuid=tr1.Nuid=void 0;var pr1=nr1();tr1.Nuid=pr1.NuidImpl;tr1.nuid=pr1.nuid});var tZ0=v((pZ0)=>{Object.defineProperty(pZ0,"__esModule",{value:!0});pZ0.nuid=pZ0.Nuid=void 0;var ar1=rr1();Object.defineProperty(pZ0,"Nuid",{enumerable:!0,get:function(){return ar1.Nuid}});Object.defineProperty(pZ0,"nuid",{enumerable:!0,get:function(){return ar1.nuid}})});var rB=v((sr1)=>{Object.defineProperty(sr1,"__esModule",{value:!0});sr1.DEFAULT_HOST=sr1.DEFAULT_PORT=sr1.Match=void 0;sr1.syncIterator=Ur6;sr1.createInbox=Br6;var Fr6=tZ0(),Nr6=ZG();sr1.Match={Exact:"exact",CanonicalMIME:"canonical",IgnoreCase:"insensitive"};function Ur6($){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 Br6($=""){if($=$||"_INBOX",typeof $!=="string")throw TypeError("prefix must be a string");return $.split(".").forEach((Z)=>{if(Z==="*"||Z===">")throw Nr6.InvalidArgumentError.format("prefix",`cannot have wildcards ('${$}')`)}),`${$}.${Fr6.nuid.next()}`}sr1.DEFAULT_PORT=4222;sr1.DEFAULT_HOST="127.0.0.1"});var mi=v((Xa1)=>{Object.defineProperty(Xa1,"__esModule",{value:!0});Xa1.DataBuffer=void 0;var $a1=$G();class Za1{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 $a1.TE.encode($)}static toAscii($){return $a1.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}}Xa1.DataBuffer=Za1});var kE=v((Ga1)=>{Object.defineProperty(Ga1,"__esModule",{value:!0});Ga1.LF=Ga1.CR=Ga1.CRLF=Ga1.CR_LF_LEN=Ga1.CR_LF=void 0;Ga1.setTransportFactory=Pr6;Ga1.defaultPort=Ar6;Ga1.getUrlParseFn=Tr6;Ga1.newTransport=Rr6;Ga1.getResolveFn=Ir6;Ga1.protoLen=Ya1;Ga1.extractProtocolMessage=qr6;var Er6=$G(),jr6=rB(),zr6=mi(),XG;function Pr6($){XG=$}function Ar6(){return XG!==void 0&&XG.defaultPort!==void 0?XG.defaultPort:jr6.DEFAULT_PORT}function Tr6(){return XG!==void 0&&XG.urlParseFn?XG.urlParseFn:void 0}function Rr6(){if(!XG||typeof XG.factory!=="function")throw Error("transport fn is not set");return XG.factory()}function Ir6(){return XG!==void 0&&XG.dnsResolveFn?XG.dnsResolveFn:void 0}Ga1.CR_LF=`\r
1392
1392
  `;Ga1.CR_LF_LEN=Ga1.CR_LF.length;Ga1.CRLF=zr6.DataBuffer.fromAscii(Ga1.CR_LF);Ga1.CR=new Uint8Array(Ga1.CRLF)[0];Ga1.LF=new Uint8Array(Ga1.CRLF)[1];function Ya1($){for(let Z=0;Z<$.length;Z++){let X=Z+1;if($.byteLength>X&&$[Z]===Ga1.CR&&$[X]===Ga1.LF)return X+1}return 0}function qr6($){let Z=Ya1($);if(Z>0){let Q=new Uint8Array($).slice(0,Z);return Er6.TD.decode(Q)}return""}});var Pn0=v((Ba1)=>{Object.defineProperty(Ba1,"__esModule",{value:!0});Ba1.ipV4=Fa1;Ba1.isIP=yr6;Ba1.parseIP=Na1;var ii=4,SE=16,oZ0=48,Ha1=57,Ka1=65,fr6=70,Wa1=97,br6=102,zn0=16777215;function Fa1($,Z,X,Q){let Y=new Uint8Array(SE);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 yr6($){return Na1($)!==void 0}function Na1($){for(let Z=0;Z<$.length;Z++)switch($[Z]){case".":return Ua1($);case":":return gr6($)}return}function Ua1($){let Z=new Uint8Array(ii);for(let X=0;X<ii;X++){if($.length===0)return;if(X>0){if($[0]!==".")return;$=$.substring(1)}let{n:Q,c:Y,ok:G}=hr6($);if(!G||Q>255)return;$=$.substring(Y),Z[X]=Q}return Fa1(Z[0],Z[1],Z[2],Z[3])}function gr6($){let Z=new Uint8Array(SE),X=-1;if($.length>=2&&$[0]===":"&&$[1]===":"){if(X=0,$=$.substring(2),$.length===0)return Z}let Q=0;while(Q<SE){let{n:Y,c:G,ok:J}=ur6($);if(!J||Y>65535)return;if(G<$.length&&$[G]==="."){if(X<0&&Q!=SE-ii)return;if(Q+ii>SE)return;let K=Ua1($);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+=ii;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<SE){if(X<0)return;let Y=SE-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 hr6($){let Z=0,X=0;for(Z=0;Z<$.length&&oZ0<=$.charCodeAt(Z)&&$.charCodeAt(Z)<=Ha1;Z++)if(X=X*10+($.charCodeAt(Z)-oZ0),X>=zn0)return{n:zn0,c:Z,ok:!1};if(Z===0)return{n:0,c:0,ok:!1};return{n:X,c:Z,ok:!0}}function ur6($){let Z=0,X=0;for(X=0;X<$.length;X++){if(oZ0<=$.charCodeAt(X)&&$.charCodeAt(X)<=Ha1)Z*=16,Z+=$.charCodeAt(X)-oZ0;else if(Wa1<=$.charCodeAt(X)&&$.charCodeAt(X)<=br6)Z*=16,Z+=$.charCodeAt(X)-Wa1+10;else if(Ka1<=$.charCodeAt(X)&&$.charCodeAt(X)<=fr6)Z*=16,Z+=$.charCodeAt(X)-Ka1+10;else break;if(Z>=zn0)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 Mn0=v((La1)=>{Object.defineProperty(La1,"__esModule",{value:!0});La1.Servers=La1.ServerImpl=void 0;La1.isIPV4OrHostname=Oa1;La1.hostPort=qn0;var An0=kE(),Tn0=hJ(),Rn0=Pn0(),mr6=rB(),ir6=ZG();function Oa1($){if($.indexOf("[")!==-1||$.indexOf("::")!==-1)return!1;if($.indexOf(".")!==-1)return!0;if($.split(":").length<=2)return!0;return!1}function In0($){return!Oa1($)}function nr6($){let X=$.toUpperCase().indexOf("::FFFF:");if(X!==-1&&$.indexOf(".")!==-1){let Q=$.substring(X+7);return Q=Q.replace("[",""),Q.replace("]","")}return $}function qn0($){if($=$.trim(),$.match(/^(.*:\/\/)(.*)/m))$=$.replace(/^(.*:\/\/)(.*)/gm,"$2");if($=nr6($),In0($)&&$.indexOf("[")===-1)$=`[${$}]`;let Z=In0($)?$.match(/(]:)(\d+)/):$.match(/(:)(\d+)/),X=Z&&Z.length===3&&Z[1]&&Z[2]?parseInt(Z[2]):mr6.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 rb{src;listen;hostname;port;didConnect;reconnects;lastConnect;gossiped;tlsName;resolves;constructor($,Z=!1){this.src=$,this.tlsName="";let X=qn0($);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,Rn0.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}://${In0(Q)?"["+Q+"]":Q}`);G.port=`${this.port}`;let J=new rb(G.host,!1);J.tlsName=this.hostname,Z.push(J)}}if($.randomize)(0,Tn0.shuffle)(Z);return this.resolves=Z,Z}}La1.ServerImpl=rb;class rZ0{firstSelect;servers;currentServer;tlsName;randomize;constructor($={}){this.firstSelect=!0,this.servers=[],this.tlsName="",this.randomize=$.randomize||!1}setServers($){if(!Array.isArray($)||$.length===0)throw ir6.InvalidArgumentError.format("servers","cannot be empty");let Z=(0,An0.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}=qn0(Y),J=X.get(G);if(J)J.gossiped=!1,Q.push(J);else Q.push(new rb(Y))}if(this.randomize)(0,Tn0.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,Rn0.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,An0.getUrlParseFn)();$=X?X($):$;let Q=new rb($,Z);if((0,Rn0.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 rZ0.freezeAll(this.servers)}snapshotForHandler(){let $=this.currentServer;if(!$)return this.snapshot();let Z=this.servers.indexOf($);if(Z<=0)return this.snapshot();return rZ0.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,An0.getUrlParseFn)(),G=new Map;if($.connect_urls&&$.connect_urls.length>0)$.connect_urls.forEach((K)=>{K=Y?Y(K,Z):K;let W=new rb(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,Tn0.shuffle)(W),this.servers=K?[K,...W]:W}return{added:X,deleted:Q}}}La1.Servers=rZ0});var aZ0=v((ja1)=>{Object.defineProperty(ja1,"__esModule",{value:!0});ja1.QueuedIteratorImpl=void 0;var Vn0=hJ(),Da1=ZG();class Ea1{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,Vn0.deferred)(),this.yields=[],this.iterClosed=(0,Vn0.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 Da1.InvalidOperationError("iterator cannot be used when a callback is registered");if(this.yielding)throw new Da1.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,Vn0.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}}ja1.QueuedIteratorImpl=Ea1});var kn0=v((Ta1)=>{Object.defineProperty(Ta1,"__esModule",{value:!0});Ta1.MuxSubscription=void 0;var rr6=rB(),Pa1=ZG();class Aa1{baseInbox;reqs;constructor(){this.reqs=new Map}size(){return this.reqs.size}init($){return this.baseInbox=`${(0,rr6.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 Pa1.NoRespondersError(Q.requestSubject):null;Q.resolver($,Z)}}}}close(){let $=new Pa1.RequestError("connection closed");this.reqs.forEach((Z)=>{Z.resolver($,{})})}}Ta1.MuxSubscription=Aa1});var Sn0=v((qa1)=>{Object.defineProperty(qa1,"__esModule",{value:!0});qa1.Heartbeat=void 0;var ar6=hJ();class Ia1{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,ar6.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})}}qa1.Heartbeat=Ia1});var vn0=v((Ca1)=>{Object.defineProperty(Ca1,"__esModule",{value:!0});Ca1.DenoBuffer=Ca1.MAX_SIZE=Ca1.AssertionError=void 0;Ca1.assert=ka1;Ca1.concat=Sa1;Ca1.append=er6;Ca1.readAll=$a6;Ca1.writeAll=Za6;var sr6=$G();class Cn0 extends Error{constructor($){super($);this.name="AssertionError"}}Ca1.AssertionError=Cn0;function ka1($,Z="Assertion failed."){if(!$)throw new Cn0(Z)}var Va1=32768;Ca1.MAX_SIZE=4294967294;function sZ0($,Z,X=0){let Q=Z.byteLength-X;if($.byteLength>Q)$=$.subarray(0,Q);return Z.set($,X),$.byteLength}function Sa1($,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 er6($,Z){return Sa1($,Uint8Array.of(Z))}class _n0{_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($){ka1($<=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=sZ0(this._buf.subarray(this._off),$);return this._off+=Z,Z}writeByte($){return this.write(Uint8Array.of($))}writeString($){return this.write(sr6.TE.encode($))}write($){let Z=this._grow($.byteLength);return sZ0($,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)sZ0(this._buf.subarray(this._off),this._buf);else if(Q+$>Ca1.MAX_SIZE)throw Error("The buffer cannot be grown beyond the maximum size.");else{let Y=new Uint8Array(Math.min(2*Q+$,Ca1.MAX_SIZE));sZ0(this._buf.subarray(this._off),Y),this._buf=Y}return this._off=0,this._reslice(Math.min(Z+$,Ca1.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(Va1);while(!0){let Q=this.capacity-this.length<Va1,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}}}Ca1.DenoBuffer=_n0;function $a6($){let Z=new _n0;return Z.readFrom($),Z.bytes()}function Za6($,Z){let X=0;while(X<Z.length)X+=$.write(Z.subarray(X))}});var bn0=v((ba1)=>{Object.defineProperty(ba1,"__esModule",{value:!0});ba1.cc=ba1.State=ba1.Parser=ba1.Kind=void 0;ba1.describe=Wa6;var xn0=vn0(),fn0=$G();ba1.Kind={OK:0,ERR:1,MSG:2,INFO:3,PING:4,PONG:5};function Wa6($){let Z,X="";switch($.kind){case ba1.Kind.MSG:Z="MSG";break;case ba1.Kind.OK:Z="OK";break;case ba1.Kind.ERR:Z="ERR",X=fn0.TD.decode($.data);break;case ba1.Kind.PING:Z="PING";break;case ba1.Kind.PONG:Z="PONG";break;case ba1.Kind.INFO:Z="INFO",X=fn0.TD.decode($.data)}return`${Z}: ${X}`}function va1(){let $={};return $.sid=-1,$.hdr=-1,$.size=-1,$}var xa1=48,Ha6=57,ab=67108864;class fa1{dispatcher;state;as;drop;hdr;ma;argBuf;msgBuf;constructor($){this.dispatcher=$,this.state=ba1.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 ba1.State.OP_START:switch(X){case ba1.cc.M:case ba1.cc.m:this.state=ba1.State.OP_M,this.hdr=-1,this.ma=va1();break;case ba1.cc.H:case ba1.cc.h:this.state=ba1.State.OP_H,this.hdr=0,this.ma=va1();break;case ba1.cc.P:case ba1.cc.p:this.state=ba1.State.OP_P;break;case ba1.cc.PLUS:this.state=ba1.State.OP_PLUS;break;case ba1.cc.MINUS:this.state=ba1.State.OP_MINUS;break;case ba1.cc.I:case ba1.cc.i:this.state=ba1.State.OP_I;break;default:throw this.fail($.subarray(Z))}break;case ba1.State.OP_H:switch(X){case ba1.cc.M:case ba1.cc.m:this.state=ba1.State.OP_M;break;default:throw this.fail($.subarray(Z))}break;case ba1.State.OP_M:switch(X){case ba1.cc.S:case ba1.cc.s:this.state=ba1.State.OP_MS;break;default:throw this.fail($.subarray(Z))}break;case ba1.State.OP_MS:switch(X){case ba1.cc.G:case ba1.cc.g:this.state=ba1.State.OP_MSG;break;default:throw this.fail($.subarray(Z))}break;case ba1.State.OP_MSG:switch(X){case ba1.cc.SPACE:case ba1.cc.TAB:this.state=ba1.State.OP_MSG_SPC;break;default:throw this.fail($.subarray(Z))}break;case ba1.State.OP_MSG_SPC:switch(X){case ba1.cc.SPACE:case ba1.cc.TAB:continue;default:this.state=ba1.State.MSG_ARG,this.as=Z}break;case ba1.State.MSG_ARG:switch(X){case ba1.cc.CR:this.drop=1;break;case ba1.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=ba1.State.MSG_PAYLOAD,Z=this.as+this.ma.size-1;break}default:if(this.argBuf)this.argBuf.writeByte(X)}break;case ba1.State.MSG_PAYLOAD:if(this.msgBuf)if(this.msgBuf.length>=this.ma.size){let Q=this.msgBuf.bytes({copy:!1});this.dispatcher.push({kind:ba1.Kind.MSG,msg:this.ma,data:Q}),this.argBuf=void 0,this.msgBuf=void 0,this.state=ba1.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:ba1.Kind.MSG,msg:this.ma,data:$.subarray(this.as,Z)}),this.argBuf=void 0,this.msgBuf=void 0,this.state=ba1.State.MSG_END;break;case ba1.State.MSG_END:switch(X){case ba1.cc.NL:this.drop=0,this.as=Z+1,this.state=ba1.State.OP_START;break;default:continue}break;case ba1.State.OP_PLUS:switch(X){case ba1.cc.O:case ba1.cc.o:this.state=ba1.State.OP_PLUS_O;break;default:throw this.fail($.subarray(Z))}break;case ba1.State.OP_PLUS_O:switch(X){case ba1.cc.K:case ba1.cc.k:this.state=ba1.State.OP_PLUS_OK;break;default:throw this.fail($.subarray(Z))}break;case ba1.State.OP_PLUS_OK:switch(X){case ba1.cc.NL:this.dispatcher.push({kind:ba1.Kind.OK}),this.drop=0,this.state=ba1.State.OP_START;break}break;case ba1.State.OP_MINUS:switch(X){case ba1.cc.E:case ba1.cc.e:this.state=ba1.State.OP_MINUS_E;break;default:throw this.fail($.subarray(Z))}break;case ba1.State.OP_MINUS_E:switch(X){case ba1.cc.R:case ba1.cc.r:this.state=ba1.State.OP_MINUS_ER;break;default:throw this.fail($.subarray(Z))}break;case ba1.State.OP_MINUS_ER:switch(X){case ba1.cc.R:case ba1.cc.r:this.state=ba1.State.OP_MINUS_ERR;break;default:throw this.fail($.subarray(Z))}break;case ba1.State.OP_MINUS_ERR:switch(X){case ba1.cc.SPACE:case ba1.cc.TAB:this.state=ba1.State.OP_MINUS_ERR_SPC;break;default:throw this.fail($.subarray(Z))}break;case ba1.State.OP_MINUS_ERR_SPC:switch(X){case ba1.cc.SPACE:case ba1.cc.TAB:continue;default:this.state=ba1.State.MINUS_ERR_ARG,this.as=Z}break;case ba1.State.MINUS_ERR_ARG:switch(X){case ba1.cc.CR:this.drop=1;break;case ba1.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:ba1.Kind.ERR,data:Q}),this.drop=0,this.as=Z+1,this.state=ba1.State.OP_START;break}default:if(this.argBuf)this.argBuf.write(Uint8Array.of(X))}break;case ba1.State.OP_P:switch(X){case ba1.cc.I:case ba1.cc.i:this.state=ba1.State.OP_PI;break;case ba1.cc.O:case ba1.cc.o:this.state=ba1.State.OP_PO;break;default:throw this.fail($.subarray(Z))}break;case ba1.State.OP_PO:switch(X){case ba1.cc.N:case ba1.cc.n:this.state=ba1.State.OP_PON;break;default:throw this.fail($.subarray(Z))}break;case ba1.State.OP_PON:switch(X){case ba1.cc.G:case ba1.cc.g:this.state=ba1.State.OP_PONG;break;default:throw this.fail($.subarray(Z))}break;case ba1.State.OP_PONG:switch(X){case ba1.cc.NL:this.dispatcher.push({kind:ba1.Kind.PONG}),this.drop=0,this.state=ba1.State.OP_START;break}break;case ba1.State.OP_PI:switch(X){case ba1.cc.N:case ba1.cc.n:this.state=ba1.State.OP_PIN;break;default:throw this.fail($.subarray(Z))}break;case ba1.State.OP_PIN:switch(X){case ba1.cc.G:case ba1.cc.g:this.state=ba1.State.OP_PING;break;default:throw this.fail($.subarray(Z))}break;case ba1.State.OP_PING:switch(X){case ba1.cc.NL:this.dispatcher.push({kind:ba1.Kind.PING}),this.drop=0,this.state=ba1.State.OP_START;break}break;case ba1.State.OP_I:switch(X){case ba1.cc.N:case ba1.cc.n:this.state=ba1.State.OP_IN;break;default:throw this.fail($.subarray(Z))}break;case ba1.State.OP_IN:switch(X){case ba1.cc.F:case ba1.cc.f:this.state=ba1.State.OP_INF;break;default:throw this.fail($.subarray(Z))}break;case ba1.State.OP_INF:switch(X){case ba1.cc.O:case ba1.cc.o:this.state=ba1.State.OP_INFO;break;default:throw this.fail($.subarray(Z))}break;case ba1.State.OP_INFO:switch(X){case ba1.cc.SPACE:case ba1.cc.TAB:this.state=ba1.State.OP_INFO_SPC;break;default:throw this.fail($.subarray(Z))}break;case ba1.State.OP_INFO_SPC:switch(X){case ba1.cc.SPACE:case ba1.cc.TAB:continue;default:this.state=ba1.State.INFO_ARG,this.as=Z}break;case ba1.State.INFO_ARG:switch(X){case ba1.cc.CR:this.drop=1;break;case ba1.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:ba1.Kind.INFO,data:Q}),this.drop=0,this.as=Z+1,this.state=ba1.State.OP_START;break}default:if(this.argBuf)this.argBuf.writeByte(X)}break;default:throw this.fail($.subarray(Z))}}if((this.state===ba1.State.MSG_ARG||this.state===ba1.State.MINUS_ERR_ARG||this.state===ba1.State.INFO_ARG)&&!this.argBuf)this.argBuf=new xn0.DenoBuffer($.subarray(this.as,Z-this.drop));if(this.state===ba1.State.MSG_PAYLOAD&&!this.msgBuf){if(!this.argBuf)this.cloneMsgArg();this.msgBuf=new xn0.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 xn0.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 ba1.cc.SPACE:case ba1.cc.TAB:case ba1.cc.CR:case ba1.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],ab);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],ab);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}: ${fn0.TD.decode($)}`)}processHeaderMsgArgs($){let Z=[],X=-1;for(let Q=0;Q<$.length;Q++)switch($[Q]){case ba1.cc.SPACE:case ba1.cc.TAB:case ba1.cc.CR:case ba1.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],ab),this.ma.size=this.protoParseInt(Z[3],ab);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],ab),this.ma.size=this.protoParseInt(Z[4],ab);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]<xa1||$[Q]>Ha6)return-1;X=X*10+($[Q]-xa1)}return Z!==void 0&&X>Z?-1:X}}ba1.Parser=fa1;ba1.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};ba1.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 Z70=v((ga1)=>{Object.defineProperty(ga1,"__esModule",{value:!0});ga1.MsgHdrsImpl=void 0;ga1.canonicalMIMEHeaderKey=gn0;ga1.headers=Ua6;var ya1=$G(),uJ=rB(),$70=ZG();function gn0($){let F=!0,N=Array($.length);for(let U=0;U<$.length;U++){let B=$.charCodeAt(U);if(B===58||B<33||B>126)throw $70.InvalidArgumentError.format("header",`'${$[U]}' is not a valid character in a header name`);if(F&&97<=B&&B<=122)B-=32;else if(!F&&65<=B&&B<=90)B+=32;N[U]=B,F=B==45}return String.fromCharCode(...N)}function Ua6($=0,Z=""){if($===0&&Z!=="")throw $70.InvalidArgumentError.format("code","is required");else if($>0&&Z==="")throw $70.InvalidArgumentError.format("description","is required");return new sb($,Z)}var yn0="NATS/1.0";class sb{_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 sb,Q=ya1.TD.decode($).split(`\r
1393
1393
  `),Y=Q[0];if(Y!==yn0){let G=Y.replace(yn0,"").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 $=yn0;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
1394
1394
  ${Z}: ${X[Q]}`;return`${$}\r
@@ -2914,7 +2914,7 @@ data:
2914
2914
  </head>`+$.slice(F)}return`<head>
2915
2915
  `+Q+`
2916
2916
  </head>
2917
- `+$}function CT0($){if(!$||$.length===0)return[];return $.filter((Z)=>ms4.test(Z))}function is4($){if($.csp)return $.csp;let Z=$.resourceCsp;if(!Z)return xf8;let X=CT0(Z.resourceDomains),Q=CT0(Z.connectDomains),Y=CT0(Z.frameDomains),G=CT0(Z.baseUriDomains),J=X.length>0,K=Q.length>0,W=Y.length>0,H=G.length>0;if(!J&&!K&&!W&&!H)return xf8;let F=X.join(" ");return["default-src 'none'",J?`script-src 'unsafe-inline' 'unsafe-eval' 'wasm-unsafe-eval' ${F}`:"script-src 'unsafe-inline' 'unsafe-eval' 'wasm-unsafe-eval'",J?`style-src 'unsafe-inline' ${F}`:"style-src 'unsafe-inline'",J?`img-src * data: blob: ${F}`:"img-src * data: blob:",J?`media-src * data: blob: ${F}`:"media-src * data: blob:",J?`font-src data: ${F}`:"font-src data:",K?`connect-src ${Q.join(" ")}`:"connect-src 'none'",W?`frame-src ${Y.join(" ")}`:"frame-src 'none'","worker-src blob:","form-action 'none'",H?`base-uri ${G.join(" ")}`:"base-uri 'none'"].join("; ")}var xf8,ms4;var bf8=L(()=>{xf8=["default-src 'none'","script-src 'unsafe-inline' 'unsafe-eval' 'wasm-unsafe-eval'","style-src 'unsafe-inline'","img-src * data: blob:","media-src * data: blob:","font-src data:","connect-src 'none'","frame-src 'none'","worker-src blob:","form-action 'none'","base-uri 'none'"].join("; ");ms4=/^https?:\/\/(\*\.)?[a-zA-Z0-9._-]+(:\d+)?\/?$/});function ns4($){let Z=$.lastFailureAt-$.firstFailureAt;return $.count>=QZ8&&Z>=YZ8}class lX1{options;kv=null;codec=G30();constructor($){this.options=$}async init(){let $=this.options.getJetStream();if(!$)return;this.kv=await new gf8.Kvm($).create(ps4,{storage:yf8.StorageType.Memory,ttl:hf8.nanos(GZ8)})}async recordFailure($){if(!this.kv)return cX1;let Z=Date.now();for(let X=0;X<ts4;X++)try{let Q=await this.kv.get($);if(!(Q&&Q.operation!=="DEL"&&Q.operation!=="PURGE"&&Q.value?.length)){let K={count:1,firstFailureAt:Z,lastFailureAt:Z};return await this.kv.create($,this.codec.encode(K)),{count:K.count,shouldDisable:!1}}let G=this.codec.decode(Q.value),J={count:G.count+1,firstFailureAt:G.firstFailureAt,lastFailureAt:Z};return await this.kv.update($,this.codec.encode(J),Q.revision),{count:J.count,shouldDisable:ns4(J)}}catch{}return cX1}async recordSuccess($){if(!this.kv)return;try{await this.kv.delete($)}catch{}}teardown(){this.kv=null}}class aa{async recordFailure(){return cX1}async recordSuccess(){}teardown(){}}function dX1($){uf8=$??new aa}function mX1(){return uf8}var yf8,gf8,hf8,cX1,ps4="DECOCMS_CONN_CIRCUIT",ts4=5,uf8;var iX1=L(()=>{yf8=k(hE(),1),gf8=k(U11(),1),hf8=k(Zn(),1),cX1={count:0,shouldDisable:!1};uf8=new aa});function cf8($){if(!$)return{decision:"skip"};if($.startsWith("notifications/"))return{decision:"skip"};if(rs4.has($))return{decision:"skip"};let Z=os4[$];if(Z)return{decision:"skip-if-list-cached",listType:Z};return{decision:"probe"}}async function lf8($){if($.method!=="POST")return;let Z=$.headers.get("content-length");if(Z&&Number(Z)>as4)return;try{let X=await $.clone().json(),Y=(Array.isArray(X)?X[0]:X)?.method;return typeof Y==="string"?Y:void 0}catch{return}}var os4,rs4,as4=64000;var df8=L(()=>{os4={"tools/list":"tools","resources/list":"resources","prompts/list":"prompts"},rs4=new Set(["ping"])});import{SpanStatusCode as _T0}from"@opentelemetry/api";async function vT0($,Z){let X=$.get("studioContext");try{let Q=X.organization?.id??null,Y=Z?Z:Q?Yj(Q):null;if(!Y)return $.json({error:"Agent ID or organization ID is required"},400);if(Z&&!Q)return $.json({error:"Organization context is required"},400);let G=await X.tracer.startActiveSpan("studio.virtual_mcp.lookup",{attributes:{"virtual_mcp.id":Y}},async(U)=>{try{let B=await X.storage.virtualMcps.findById(Y,Q??void 0);return U.setStatus({code:_T0.OK}),B}catch(B){throw U.setStatus({code:_T0.ERROR,message:B.message}),U.recordException(B),B}finally{U.end()}});if(!G)return $.json({error:"Agent not found"},404);if(Q&&G.organization_id!==Q)return $.json({error:"Agent not found"},404);if(G.status!=="active")return $.json({error:`Agent is inactive: ${G.id??"Decopilot"}`},503);if(X.organization?.id&&G.organization_id!==X.organization.id)return $.json({error:"Forbidden: Agent does not belong to your organization"},403);X.connectionId=G.id??void 0;let J=D1(X),K=null;if(G.id&&J&&S5(G.metadata)[J])K=await Tv(X,G.id,J,$.req.query("branch")??void 0).catch(()=>null);let W=await X.tracer.startActiveSpan("studio.virtual_mcp.create_client",{attributes:{"virtual_mcp.id":G.id??"decopilot"}},async(U)=>{try{let B=await GU(G,X,!1,{includeSkillsCatalog:!0,additionalConnections:K?[K]:[]});return U.setStatus({code:_T0.OK}),B}catch(B){throw U.setStatus({code:_T0.ERROR,message:B.message}),U.recordException(B),B}finally{U.end()}}),H={name:G.id??"Decopilot",version:"1.0.0",title:G.title??void 0,description:G.description??void 0,icons:G.icon?[{src:G.icon}]:void 0},F=$j(W,H,{capabilities:{tools:{},resources:{},prompts:{}},instructions:W.getInstructions(),toolCallTimeoutMs:ry}),N=new kQ({enableJsonResponse:$.req.header("Accept")?.includes("application/json")??!1});return await F.connect(N),await ZJ(F,N,$.req.raw,`virtual-mcp:${G.id??"decopilot"}`,{onClose:()=>W.close()})}catch(Q){let Y=Q;return console.error("[virtual-mcp] Error handling virtual MCP request:",Y),$.json({error:"Internal server error",message:Y.message},500)}}var xT0=()=>{let $=new A1;return $.all("/gateway/:virtualMcpId?",async(Z)=>{let X=Z.req.param("virtualMcpId")||Z.req.header("x-virtual-mcp-id");return vT0(Z,X)}),$.all("/virtual-mcp/:virtualMcpId?",async(Z)=>{let X=Z.req.param("virtualMcpId")||Z.req.header("x-virtual-mcp-id");return vT0(Z,X)}),$};var fT0=L(()=>{KQ();T6();Sv();q6();Eu();gA0();jQ();mu()});import{SpanStatusCode as bT0}from"@opentelemetry/api";var mf8=($,Z)=>{if($ instanceof Xh)return Z.header("Retry-After",String(Math.ceil($.cooldownRemainingMs/1000))),Z.json({error:$.message},503);if($.message.includes("not found"))return Z.json({error:$.message},404);if($.message.includes("does not belong to the active organization"))return Z.json({error:"Connection not found"},404);if($.message.includes("inactive"))return Z.json({error:$.message},503);return Z.json({error:"Internal server error",message:$.message},500)},yT0=()=>{let $=new A1;return $.all("/",async(Z)=>{return vT0(Z,void 0)}),$.get("/:connectionId/ui-resource",async(Z)=>{let X=Z.get("studioContext"),Q=Z.req.param("connectionId"),Y=Z.req.query("uri");if(!Y)return Z.json({error:"uri query param is required"},400);if(!X.organization?.id)return Z.json({error:"Organization context is required"},403);let G=Za0(Q),J;if(G){let B=D1(X);if(!B)return Z.json({error:"Authentication required"},401);if(J=await Tv(X,G,B,Z.req.query("branch")??void 0),!J)return Z.json({error:"Dev server not running"},503)}else if(J=await X.storage.connections.findById(Q,X.organization.id),!J||J.organization_id!==X.organization.id)return Z.json({error:"Connection not found"},404);let K=wL(J,X,!1,j9()??void 0),W,H;try{let O=(await K.readResource({uri:Y})).contents?.[0];W=O?.text,H=O?._meta?.ui?.csp}catch(B){return Z.json({error:B.message},502)}finally{await K.close().catch(()=>{})}if(typeof W!=="string")return Z.json({error:"Resource has no text content"},404);let F=ff8(W,{resourceCsp:H}),N=`"${Bun.hash(F).toString(36)}"`,U="private, no-cache";if(Z.req.header("if-none-match")===N)return new Response(null,{status:304,headers:{ETag:N,"Cache-Control":U}});return new Response(F,{headers:{"Content-Type":"text/html; charset=utf-8",ETag:N,"Cache-Control":U}})}),$.all("/:connectionId",async(Z)=>{let X=Z.req.param("connectionId"),Q=Z.get("studioContext");if(X.endsWith("_self")){let J=X.slice(0,-5);if(!Q.organization||Q.organization.id!==J)return Z.json({error:"Connection not found"},404);let K=await iu(Q),W=new kQ({enableJsonResponse:Z.req.raw.headers.get("Accept")?.includes("application/json")??!1});return await K.connect(W),wU.run(Q,()=>ZJ(K,W,Z.req.raw,`mcp:self:${X}`))}let Y=Za0(X);if(Y){if(!Q.organization?.id)return Z.json({error:"Organization context is required"},403);let J=D1(Q);if(!J)return Z.json({error:"Authentication required"},401);let K=await Tv(Q,Y,J,Z.req.query("branch")??void 0);if(!K)return Z.json({error:"Dev server not running"},503);let W=H30(K,Q,!1),H=new kQ({enableJsonResponse:Z.req.raw.headers.get("Accept")?.includes("application/json")??!1});return await W.connect(H),ZJ(W,H,Z.req.raw,`mcp:dev:${X}`)}let G=null;try{try{if(!Q.organization?.id)return Z.json({error:"Organization context is required"},403);if(G=await Q.tracer.startActiveSpan("studio.connection.lookup",{attributes:{"connection.id":X}},async(w)=>{$J(Z,"mcp.find_connection");try{let D=await Q.storage.connections.findById(X,Q.organization.id);return w.setStatus({code:bT0.OK}),D}catch(D){throw w.setStatus({code:bT0.ERROR,message:D.message}),w.recordException(D),D}finally{vG(Z,"mcp.find_connection"),w.end()}}),!G)throw Error("Connection not found");let J=G;if(J.organization_id!==Q.organization.id)throw Error("Connection does not belong to the active organization");let K=!1;if(J.status!=="active"){let w=Date.now()-new Date(J.updated_at).getTime();if(J.status==="error"&&!!J.connection_url&&w>=Ga0)K=!0;else{if(J.status==="error"&&J.connection_url){let E=Ga0-w;Z.header("Retry-After",String(Math.ceil(E/1000)))}throw Error(`Connection inactive: ${J.status}`)}}let W=await lf8(Z.req.raw),{decision:H,listType:F}=cf8(W),N=H==="probe";if(H==="skip-if-list-cached"&&F){let w=j9();N=w?await w.get(F,X)===null:!0}if(K)N=!0;if(J.connection_url&&N)aY0(X),await Q.tracer.startActiveSpan("studio.connection.handshake",{attributes:{"connection.id":X,"connection.url":J.connection_url}},async(w)=>{$J(Z,"mcp.client_handshake");try{if(await q5(J,Q,!1),sY0(X),mX1().recordSuccess(X),K)await Q.storage.connections.update(X,{status:"active"}),console.info("[proxy] auto-recovered connection after successful re-probe",{connectionId:X,org:Q.organization?.slug});w.setStatus({code:bT0.OK})}catch(D){throw w.setStatus({code:bT0.ERROR,message:D.message}),w.recordException(D),D}finally{vG(Z,"mcp.client_handshake"),w.end()}});$J(Z,"mcp.create_server");let U=H30(J,Q,!1);vG(Z,"mcp.create_server");let B=new kQ({enableJsonResponse:Z.req.raw.headers.get("Accept")?.includes("application/json")??!1});$J(Z,"mcp.server_connect"),await U.connect(B),vG(Z,"mcp.server_connect"),$J(Z,"mcp.handle_request");let O=await ZJ(U,B,Z.req.raw,`mcp:${X}`);return vG(Z,"mcp.handle_request"),O}catch(J){if(J instanceof Xh)throw J;if(G??=await Q.storage.connections.findById(X,Q.organization?.id),G?.connection_url){let K=await nX1({error:J,reqUrl:new URL(Z.req.raw.url),connectionId:X,connectionUrl:G.connection_url,headers:{},orgSlug:Q.organization?.slug});if(K)return K;eY0(X);let{shouldDisable:W}=await mX1().recordFailure(X);if(W&&G.status==="active")await Q.storage.connections.update(X,{status:"error"}),console.warn("[proxy] auto-disabled connection after sustained failures",{connectionId:X,org:Q.organization?.slug,error:J.message})}throw J}}catch(J){return mf8(J,Z)}}),$.all("/:connectionId/call-tool/:toolName",async(Z)=>{let X=Z.req.param("connectionId"),Q=Z.req.param("toolName"),Y=Z.get("studioContext"),G=null;try{if(G=await Y.storage.connections.findById(X,Y.organization?.id),!G)return Z.json({error:"Connection not found"},404);let K=await(await q5(G,Y,!1)).callTool({name:Q,arguments:await Z.req.json()});if(K.isError)return new Response(JSON.stringify(K.content),{headers:{"Content-Type":"application/json"},status:500});return new Response(JSON.stringify(K.structuredContent??K.content),{headers:{"Content-Type":"application/json"}})}catch(J){if(G??=await Y.storage.connections.findById(X,Y.organization?.id),G?.connection_url){let K=await nX1({error:J,reqUrl:new URL(Z.req.raw.url),connectionId:X,connectionUrl:G.connection_url,headers:{},orgSlug:Y.organization?.slug});if(K)return K}return mf8(J,Z)}}),$};var gT0=L(()=>{CN();Sv();q6();uX1();jL();mu();sa();wG();To();bf8();De0();iX1();df8();fT0();gA0();T6();tX1()});async function Aw($,Z,X,Q){if(Z.type!=="event"||!Z.connection_id)return{success:!0};let Y=await $.storage.connections.findById(Z.connection_id);if(!Y)return{success:!0};let G=$.organization?.id,J=$.organization?.slug;try{let K=await q5(Y,$,!0),W=A11.forClient(pX1(K)),H,F,N;if(X&&Q&&G){let E=await Q.generateTokenPair();F=E.plaintext,N=E.hash,H=J?`${$.baseUrl}/api/${J}/trigger-callback`:`${$.baseUrl}/api/trigger-callback`}let U=5000,B=!1,O=new Promise((E,j)=>setTimeout(()=>{B=!0,j(Error("TRIGGER_CONFIGURE timeout"))},U)),w;try{w=await Promise.race([W.TRIGGER_CONFIGURE({type:Z.event_type,params:JSON.parse(Z.params??"{}"),enabled:X,callbackUrl:H,callbackToken:F}),O])}catch(E){if(B&&X&&Q&&G&&N)await Q.persistTokenHash(G,Z.connection_id,N);return console.error(`[configureTriggerOnMcp] TRIGGER_CONFIGURE threw on connection=${Z.connection_id} type=${Z.event_type}:`,E),{success:!1,error:String(E)}}let D=w;if(!D||D.success!==!0)return console.error(`[configureTriggerOnMcp] TRIGGER_CONFIGURE did not return success=true on connection=${Z.connection_id} type=${Z.event_type}. Raw payload:`,JSON.stringify(w)),{success:!1,error:`TRIGGER_CONFIGURE did not return success=true (got ${JSON.stringify(w)})`};try{if(X&&Q&&G&&N)await Q.persistTokenHash(G,Z.connection_id,N);if(!X&&Q&&G)await Q.deleteByConnection(Z.connection_id,G)}catch(E){console.error("[configureTriggerOnMcp] Token persistence failed after successful TRIGGER_CONFIGURE:",E)}return{success:!0}}catch(K){return{success:!1,error:String(K)}}}var ea=L(()=>{CN();gT0();T11()});import{z as K5}from"zod";var oX1;var if8=L(()=>{kv();n0();UQ();ea();oX1=m({name:"AUTOMATION_UPDATE",description:"Update an automation's config. Toggling active state reconfigures event triggers on MCPs.",annotations:{title:"Update Automation",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:K5.object({id:K5.string(),name:K5.string().min(1).max(255).optional(),active:K5.boolean().optional(),messages:K5.union([K5.string(),K5.array(K5.looseObject({id:K5.string().optional(),role:K5.enum(["user","assistant","system"]),parts:K5.array(K5.record(K5.string(),K5.unknown())),metadata:K5.unknown().optional()}))]).optional(),models:K5.object({tier:QL,modelId:K5.string().optional(),credentialId:K5.string().optional()}).loose().optional(),tools:K5.array(K5.string()).nullable().optional(),maxAgentSteps:K5.number().int().min(1).max(100).nullable().optional(),temperature:K5.number().optional()}),outputSchema:K5.object({id:K5.string(),name:K5.string(),active:K5.boolean(),updated_at:K5.string()}),handler:async($,Z)=>{G0(Z);let X=X0(Z);await Z.access.check();let Q=await Z.storage.automations.findById($.id,X.id);if(!Q)throw Error("Automation not found");let Y={};if($.name!==void 0)Y.name=$.name;if($.active!==void 0)Y.active=$.active;if($.messages!==void 0){let J=IT0($.messages);Y.messages=JSON.stringify(J)}if($.models!==void 0)Y.models=JSON.stringify($.models);if($.tools!==void 0)Y.tools=$.tools===null?null:JSON.stringify($.tools);if($.temperature!==void 0)Y.temperature=$.temperature;if($.maxAgentSteps!==void 0)Y.max_agent_steps=$.maxAgentSteps;let G=await Z.storage.automations.update($.id,X.id,Y);if($.active!==void 0&&$.active!==Q.active){let J=await Z.storage.automations.listTriggers(G.id),K=J.filter((W)=>W.type==="event");await Promise.allSettled(K.map(async(W)=>{let H=await Aw(Z,W,$.active);if(!H.success)console.warn(`Failed to configure trigger ${W.id}: ${H.error}`)})),await qf8(J,$.active)}return{id:G.id,name:G.name,active:G.active,updated_at:G.updated_at}}})});import{z as hT0}from"zod";var rX1;var nf8=L(()=>{kv();u4();n0();ea();rX1=m({name:"AUTOMATION_DELETE",description:"Permanently delete an automation. Disables all event triggers on connected MCPs first.",annotations:{title:"Delete Automation",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!1},inputSchema:hT0.object({id:hT0.string()}),outputSchema:hT0.object({success:hT0.boolean()}),handler:async($,Z)=>{G0(Z);let X=X0(Z);if(await Z.access.check(),!await Z.storage.automations.findById($.id,X.id))throw Error("Automation not found");let Y=await Z.storage.automations.listTriggers($.id),G=Y.filter((W)=>W.type==="event");await Promise.allSettled(G.map(async(W)=>{let H=await Aw(Z,W,!1);if(!H.success)console.warn(`Failed to disable trigger ${W.id}: ${H.error}`)}));let{success:J}=await Z.storage.automations.delete($.id,X.id);await Mf8(Y);let K=D1(Z);if(K)n1.capture({distinctId:K,event:"automation_deleted",groups:{organization:X.id},properties:{organization_id:X.id,automation_id:$.id,trigger_count:Y.length}});return{success:J}}})});function nu($){return`webhook_${$}`}function uT0($,Z,X){if(!Z)throw Error("Cannot build webhook URL: organization slug missing from request context");return`${$}/api/${Z}/webhooks/${X}`}import{z as x7}from"zod";var pf8=300000,ss4=10,aX1;var tf8=L(()=>{kX1();kv();VX1();n0();ea();aX1=m({name:"AUTOMATION_TRIGGER_ADD",description:"Add a cron, event, or webhook trigger to an automation. For webhook triggers the response includes a one-time URL + secret token.",annotations:{title:"Add Trigger",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!1},inputSchema:x7.object({automation_id:x7.string(),type:x7.enum(["cron","event","webhook"]),cron_expression:x7.string().optional(),connection_id:x7.string().optional(),event_type:x7.string().optional(),params:x7.record(x7.string(),x7.string()).optional()}),outputSchema:x7.object({id:x7.string(),automation_id:x7.string(),type:x7.enum(["cron","event","webhook"]),created_at:x7.string(),webhook:x7.object({url:x7.string(),token:x7.string()}).nullable().optional()}),handler:async($,Z)=>{G0(Z);let X=X0(Z);await Z.access.check();let Q=await Z.storage.automations.findById($.automation_id,X.id);if(!Q)throw Error("Automation not found");if($.type==="cron"){if(!$.cron_expression)throw Error("cron_expression is required for cron triggers");let W=new MT0($.cron_expression,{timezone:"UTC"}).nextRuns(ss4);if(W.length===0)throw Error("Cron expression has no future runs");let H=1/0;for(let F=1;F<W.length;F++){let N=W[F].getTime()-W[F-1].getTime();if(N<H)H=N}if(W.length>=2&&Number.isFinite(H)&&H<pf8){let F=pf8/1000;throw Error(`Cron fires too frequently \u2014 minimum interval is ${F}s between runs (observed ${H/1000}s)`)}}if($.type==="event"){if(!$.connection_id)throw Error("connection_id is required for event triggers");if(!$.event_type)throw Error("event_type is required for event triggers");if(!await Z.storage.connections.findById($.connection_id,X.id))throw Error("Connection not found");let W={id:"",automation_id:$.automation_id,type:"event",cron_expression:null,connection_id:$.connection_id,event_type:$.event_type,params:$.params?JSON.stringify($.params):null,last_run_at:null,next_run_at:null,api_key_id:null,created_at:""},H=await Aw(Z,W,!0,Z.storage.triggerCallbackTokens);if(!H.success)throw Error(`Failed to configure trigger on connection: ${H.error}`)}let Y=$.type==="cron"&&$.cron_expression?VT0($.cron_expression,new Date):null,G=await Z.storage.automations.addTrigger({automation_id:$.automation_id,type:$.type,cron_expression:$.type==="cron"?$.cron_expression:null,connection_id:$.type==="event"?$.connection_id:null,event_type:$.type==="event"?$.event_type:null,params:$.params?JSON.stringify($.params):null,next_run_at:Y?.toISOString()??null}),J=null;if($.type==="webhook")try{let K=await Z.boundAuth.apiKey.create({name:`webhook:${Q.name}:${G.id.slice(0,8)}`,permissions:{[nu(G.id)]:["FIRE"]},metadata:{kind:"webhook_trigger",automation_id:Q.id,trigger_id:G.id}});await Z.storage.automations.setTriggerApiKeyId(G.id,K.id),J={url:uT0(Z.baseUrl,X.slug,G.id),token:K.key}}catch(K){await Z.storage.automations.removeTrigger(G.id,G.automation_id);let W=K instanceof Error?K.message:String(K);throw Error(`Failed to mint webhook token: ${W}`)}return await ST0(G,Q),{id:G.id,automation_id:G.automation_id,type:G.type,created_at:G.created_at,webhook:J}}})});import{z as cT0}from"zod";var sX1;var of8=L(()=>{kv();n0();ea();sX1=m({name:"AUTOMATION_TRIGGER_REMOVE",description:"Remove a trigger from an automation. Disables associated event listeners on MCPs.",annotations:{title:"Remove Trigger",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!1},inputSchema:cT0.object({trigger_id:cT0.string()}),outputSchema:cT0.object({success:cT0.boolean()}),handler:async($,Z)=>{G0(Z);let X=X0(Z);await Z.access.check();let Q=await Z.storage.automations.findTriggerById($.trigger_id);if(!Q)throw Error("Trigger not found");if(!await Z.storage.automations.findById(Q.automation_id,X.id))throw Error("Automation not found");if(Q.type==="event"){let J=await Aw(Z,Q,!1,Z.storage.triggerCallbackTokens);if(!J.success)console.warn(`Failed to disable trigger ${Q.id}: ${J.error}`)}let{success:G}=await Z.storage.automations.removeTrigger(Q.id,Q.automation_id);if(Q.type==="cron")await yX1(Q.id);if(Q.type==="webhook"&&Q.api_key_id)try{await Z.boundAuth.apiKey.delete(Q.api_key_id)}catch(J){console.warn(`[trigger-remove] failed to delete api key ${Q.api_key_id} for trigger ${Q.id}:`,J instanceof Error?J.message:J)}return{success:G}}})});import{z as pu}from"zod";var eX1;var rf8=L(()=>{n0();eX1=m({name:"AUTOMATION_TRIGGER_ROTATE_TOKEN",description:"Rotate the secret token for a webhook automation trigger. Returns a new token; the old token is revoked.",annotations:{title:"Rotate Webhook Token",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!1},inputSchema:pu.object({trigger_id:pu.string()}),outputSchema:pu.object({trigger_id:pu.string(),url:pu.string(),token:pu.string()}),handler:async($,Z)=>{G0(Z);let X=X0(Z);await Z.access.check();let Q=await Z.storage.automations.findTriggerById($.trigger_id);if(!Q)throw Error("Trigger not found");if(Q.type!=="webhook")throw Error("Trigger is not a webhook trigger");let Y=await Z.storage.automations.findById(Q.automation_id,X.id);if(!Y)throw Error("Automation not found");let G=Q.api_key_id,J=await Z.boundAuth.apiKey.create({name:`webhook:${Y.name}:${Q.id.slice(0,8)}`,permissions:{[nu(Q.id)]:["FIRE"]},metadata:{kind:"webhook_trigger",automation_id:Y.id,trigger_id:Q.id}});if(await Z.storage.automations.setTriggerApiKeyId(Q.id,J.id),G)try{await Z.boundAuth.apiKey.delete(G)}catch(K){console.warn(`[trigger-rotate] failed to delete old key ${G} for trigger ${Q.id}:`,K instanceof Error?K.message:K)}return{trigger_id:Q.id,url:uT0(Z.baseUrl,X.slug,Q.id),token:J.key}}})});import{z as tu}from"zod";var $Q1;var af8=L(()=>{u4();n0();$Q1=m({name:"AUTOMATION_RUN",description:"Manually trigger an automation run. Bypasses configured triggers.",annotations:{title:"Run Automation",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!1},inputSchema:tu.object({id:tu.string()}),outputSchema:tu.object({threadId:tu.string().optional(),error:tu.string().optional(),skipped:tu.string().optional()}),handler:async($,Z)=>{G0(Z);let X=X0(Z);if(await Z.access.check(),!Z.automationRunner)throw Error("Automation runner not available");let Q=D1(Z);if(!Q)throw Error("User ID not available");let Y=await Z.automationRunner($.id,X.id,Q);if(n1.capture({distinctId:Q,event:"automation_run",groups:{organization:X.id},properties:{organization_id:X.id,automation_id:$.id,thread_id:"taskId"in Y?Y.taskId:void 0,status:"skipped"in Y?"skipped":("error"in Y)?"error":"started",skip_reason:"skipped"in Y?Y.skipped:void 0,error_message:"error"in Y?Y.error:void 0}}),"skipped"in Y)return{skipped:Y.skipped};if("error"in Y)return{threadId:Y.taskId,error:Y.error};return{threadId:Y.taskId}}})});import{z as K7}from"zod";var es4=500,ZQ1;var sf8=L(()=>{h$();n0();ZQ1=m({name:"AUTOMATION_RUN_STATS",description:"Aggregate run counts (by status) and LLM token/cost totals for a single automation.",annotations:{title:"Automation Run Stats",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:K7.object({automation_id:K7.string(),startDate:K7.string().datetime().optional().describe("Filter runs at or after this ISO timestamp"),endDate:K7.string().datetime().optional().describe("Filter runs at or before this ISO timestamp")}),outputSchema:K7.object({runs:K7.object({total:K7.number(),completed:K7.number(),failed:K7.number(),inProgress:K7.number()}),usage:K7.object({calls:K7.number(),inputTokens:K7.number(),outputTokens:K7.number(),totalTokens:K7.number(),costUsd:K7.number(),sampledRuns:K7.number(),truncated:K7.boolean()})}),handler:async($,Z)=>{G0(Z);let X=X0(Z);if(await Z.access.check(),await nQ(),!await Z.storage.automations.findById($.automation_id,X.id))throw Error("Automation not found");let Y=await Z.storage.automations.getRunStats($.automation_id,X.id,{startDate:$.startDate,endDate:$.endDate}),G=await Z.storage.automations.listRunThreadIds($.automation_id,X.id,{startDate:$.startDate,endDate:$.endDate,limit:es4}),J={calls:0,inputTokens:0,outputTokens:0,totalTokens:0,costUsd:0,sampledRuns:G.length,truncated:Y.total>G.length};if(G.length>0){let K=await Z.storage.monitoring.queryThreadUsage({organizationId:X.id,connectionId:"decopilot",threadIds:G,startDate:$.startDate?new Date($.startDate):void 0,endDate:$.endDate?new Date($.endDate):void 0});for(let W of K)J.calls+=W.calls,J.inputTokens+=W.inputTokens,J.outputTokens+=W.outputTokens,J.totalTokens+=W.totalTokens,J.costUsd+=W.costUsd}return{runs:Y,usage:J}}})});var ef8=L(()=>{Bf8();Of8();Lf8();if8();nf8();tf8();of8();rf8();af8();sf8()});import{z as Tw}from"zod";var Ze4,Xe4,XQ1;var $b8=L(()=>{n0();Ze4=Tw.object({id:Tw.string().min(1)}),Xe4=Tw.object({user:Tw.object({id:Tw.string(),name:Tw.string(),email:Tw.string(),image:Tw.string().nullable()}).nullable()}),XQ1=m({name:"USER_GET",description:"Get a user's profile by ID. Only returns users who share an organization with the caller.",annotations:{title:"Get User",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:Ze4,outputSchema:Xe4,handler:async($,Z)=>{await Z.access.check(),G0(Z);let X=D1(Z);if(!X)throw Error("Authentication required");let Q=await Z.storage.users.findById($.id,X);if(!Q)return{user:null};return{user:{id:Q.id,name:Q.name,email:Q.email,image:Q.image??null}}}})});import{z as Qe4}from"zod";var Ye4,QQ1;var Zb8=L(()=>{n0();UQ();Ye4={tiers:{}},QQ1=m({name:"USER_MODEL_PREFERENCES_GET",description:"Get the calling user's personal chat tier \u2192 model overrides for the current organization. Absent tiers fall back to the org default.",annotations:{title:"Get User Model Preferences",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:Qe4.object({}),outputSchema:Yo,handler:async($,Z)=>{G0(Z),await Z.access.check();let X=X0(Z),Q=Z.auth?.user?.id;if(!Q)throw Error("No authenticated user in context");return await Z.storage.userModelPreferences.get(Q,X.id)??Ye4}})});function Ge4($,Z,X){let Q={};for(let Y of QL.options){let G=$[Y];if(!G||lK(X,G.keyId,G.modelId)){Q[Y]=G;continue}let J=Z?.[Y];if(!(J?.keyId===G.keyId&&J?.modelId===G.modelId))throw Error("Model not allowed for your role");Q[Y]=null}return Q}var YQ1;var Xb8=L(()=>{n0();UQ();xu();YQ1=m({name:"USER_MODEL_PREFERENCES_UPDATE",description:"Set the calling user's personal chat tier \u2192 model overrides for the current organization. Only affects this user's chats; the org default and every non-chat path (automations, background tools) are unchanged. Omit a tier (or set it null) to fall back to the org default. Models the caller's role is not allowed to use are rejected.",annotations:{title:"Update User Model Preferences",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:Yo,outputSchema:Yo,handler:async($,Z)=>{G0(Z),await Z.access.check();let X=X0(Z),Q=Z.auth?.user?.id;if(!Q)throw Error("No authenticated user in context");let[Y,G]=await Promise.all([dK(Z.db,X.id,X.role??Z.auth.user?.role),Z.storage.userModelPreferences.get(Q,X.id)]);return await Z.storage.userModelPreferences.upsert(Q,X.id,{tiers:Ge4($.tiers,G?.tiers,Y)})}})});var Qb8=L(()=>{$b8();Zb8();Xb8()});function W1($,Z,X,Q,Y){if(Q==="m")throw TypeError("Private method is not writable");if(Q==="a"&&!Y)throw TypeError("Private accessor was defined without a setter");if(typeof Z==="function"?$!==Z||!Y:!Z.has($))throw TypeError("Cannot write private member to an object whose class did not declare it");return Q==="a"?Y.call($,X):Y?Y.value=X:Z.set($,X),X}function n($,Z,X,Q){if(X==="a"&&!Q)throw TypeError("Private accessor was defined without a getter");if(typeof Z==="function"?$!==Z||!Q:!Z.has($))throw TypeError("Cannot read private member from an object whose class did not declare it");return X==="m"?Q:X==="a"?Q.call($):Q?Q.value:Z.get($)}var VY=()=>{};var ou=function(){let{crypto:$}=globalThis;if($?.randomUUID)return ou=$.randomUUID.bind($),$.randomUUID();let Z=new Uint8Array(1),X=$?()=>$.getRandomValues(Z)[0]:()=>Math.random()*255&255;return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,(Q)=>(+Q^X()&15>>+Q/4).toString(16))};function XJ($){return typeof $==="object"&&$!==null&&(("name"in $)&&$.name==="AbortError"||("message"in $)&&String($.message).includes("FetchRequestCanceledException"))}var Cv=($)=>{if($ instanceof Error)return $;if(typeof $==="object"&&$!==null){try{if(Object.prototype.toString.call($)==="[object Error]"){let Z=Error($.message,$.cause?{cause:$.cause}:{});if($.stack)Z.stack=$.stack;if($.cause&&!Z.cause)Z.cause=$.cause;if($.name)Z.name=$.name;return Z}}catch{}try{return Error(JSON.stringify($))}catch{}}return Error($)};var P1,q9,_X,DU,$s,lT0,Zs,Xs,Qs,Ys,Gs,Js,Ks,Ws;var v5=L(()=>{P1=class P1 extends Error{};q9=class q9 extends P1{constructor($,Z,X,Q,Y){super(`${q9.makeMessage($,Z,X)}`);this.status=$,this.headers=Q,this.requestID=Q?.get("request-id"),this.error=Z,this.type=Y??null}static makeMessage($,Z,X){let Q=Z?.message?typeof Z.message==="string"?Z.message:JSON.stringify(Z.message):Z?JSON.stringify(Z):X;if($&&Q)return`${$} ${Q}`;if($)return`${$} status code (no body)`;if(Q)return Q;return"(no status code or body)"}static generate($,Z,X,Q){if(!$||!Q)return new DU({message:X,cause:Cv(Z)});let Y=Z,G=Y?.error?.type;if($===400)return new Zs($,Y,X,Q,G);if($===401)return new Xs($,Y,X,Q,G);if($===403)return new Qs($,Y,X,Q,G);if($===404)return new Ys($,Y,X,Q,G);if($===409)return new Gs($,Y,X,Q,G);if($===422)return new Js($,Y,X,Q,G);if($===429)return new Ks($,Y,X,Q,G);if($>=500)return new Ws($,Y,X,Q,G);return new q9($,Y,X,Q,G)}};_X=class _X extends q9{constructor({message:$}={}){super(void 0,void 0,$||"Request was aborted.",void 0)}};DU=class DU extends q9{constructor({message:$,cause:Z}){super(void 0,void 0,$||"Connection error.",void 0);if(Z)this.cause=Z}};$s=class $s extends DU{constructor({message:$}={}){super({message:$??"Request timed out."})}};lT0=class lT0 extends P1{constructor($,{cause:Z}={}){super($??"Retryable error.");if(Z!==void 0)this.cause=Z}};Zs=class Zs extends q9{};Xs=class Xs extends q9{};Qs=class Qs extends q9{};Ys=class Ys extends q9{};Gs=class Gs extends q9{};Js=class Js extends q9{};Ks=class Ks extends q9{};Ws=class Ws extends q9{}});function dT0($){if(typeof $!=="object")return{};return $??{}}function JQ1($){if(!$)return!0;for(let Z in $)return!1;return!0}function Gb8($,Z){return Object.prototype.hasOwnProperty.call($,Z)}var We4,Yb8=($)=>{return We4.test($)},vX=($)=>(vX=Array.isArray,vX($)),GQ1,Jb8=($,Z)=>{if(typeof Z!=="number"||!Number.isInteger(Z))throw new P1(`${$} must be an integer`);if(Z<0)throw new P1(`${$} must be a positive integer`);return Z},Hs=($)=>{try{return JSON.parse($)}catch(Z){return}};var mK=L(()=>{v5();We4=/^[a-z][a-z0-9+.-]*:/i,GQ1=vX});var iK=($,Z)=>new Promise((X)=>{if(Z?.aborted)return X();let Q=()=>{clearTimeout(Y),X()},Y=setTimeout(()=>{Z?.removeEventListener("abort",Q),X()},$);Z?.addEventListener("abort",Q,{once:!0})});var QJ="0.105.0";function He4(){if(typeof Deno<"u"&&Deno.build!=null)return"deno";if(typeof EdgeRuntime<"u")return"edge";if(Object.prototype.toString.call(typeof globalThis.process<"u"?globalThis.process:0)==="[object process]")return"node";return"unknown"}function Ne4(){if(typeof navigator>"u"||!navigator)return null;let $=[{key:"edge",pattern:/Edge(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/MSIE(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/Trident(?:.*rv\:(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"chrome",pattern:/Chrome(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"firefox",pattern:/Firefox(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"safari",pattern:/(?:Version\W+(\d+)\.(\d+)(?:\.(\d+))?)?(?:\W+Mobile\S*)?\W+Safari/}];for(let{key:Z,pattern:X}of $){let Q=X.exec(navigator.userAgent);if(Q){let Y=Q[1]||0,G=Q[2]||0,J=Q[3]||0;return{browser:Z,version:`${Y}.${G}.${J}`}}}return null}var Fb8=()=>{return typeof window<"u"&&typeof window.document<"u"&&typeof navigator<"u"},Fe4=()=>{let $=He4();if($==="deno")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":QJ,"X-Stainless-OS":Wb8(Deno.build.os),"X-Stainless-Arch":Kb8(Deno.build.arch),"X-Stainless-Runtime":"deno","X-Stainless-Runtime-Version":typeof Deno.version==="string"?Deno.version:Deno.version?.deno??"unknown"};if(typeof EdgeRuntime<"u")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":QJ,"X-Stainless-OS":"Unknown","X-Stainless-Arch":`other:${EdgeRuntime}`,"X-Stainless-Runtime":"edge","X-Stainless-Runtime-Version":globalThis.process.version};if($==="node")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":QJ,"X-Stainless-OS":Wb8(globalThis.process.platform??"unknown"),"X-Stainless-Arch":Kb8(globalThis.process.arch??"unknown"),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":globalThis.process.version??"unknown"};let Z=Ne4();if(Z)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":QJ,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":`browser:${Z.browser}`,"X-Stainless-Runtime-Version":Z.version};return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":QJ,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}},Kb8=($)=>{if($==="x32")return"x32";if($==="x86_64"||$==="x64")return"x64";if($==="arm")return"arm";if($==="aarch64"||$==="arm64")return"arm64";if($)return`other:${$}`;return"unknown"},Wb8=($)=>{if($=$.toLowerCase(),$.includes("ios"))return"iOS";if($==="android")return"Android";if($==="darwin")return"MacOS";if($==="win32")return"Windows";if($==="freebsd")return"FreeBSD";if($==="openbsd")return"OpenBSD";if($==="linux")return"Linux";if($)return`Other:${$}`;return"Unknown"},Hb8,Fs=()=>{return Hb8??(Hb8=Fe4())};var mT0=()=>{};function Nb8(){if(typeof fetch<"u")return fetch;throw Error("`fetch` is not defined as a global; Either pass `fetch` to the client, `new Anthropic({ fetch })` or polyfill the global, `globalThis.fetch = fetch`")}function KQ1(...$){let Z=globalThis.ReadableStream;if(typeof Z>"u")throw Error("`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`");return new Z(...$)}function iT0($){let Z=Symbol.asyncIterator in $?$[Symbol.asyncIterator]():$[Symbol.iterator]();return KQ1({start(){},async pull(X){let{done:Q,value:Y}=await Z.next();if(Q)X.close();else X.enqueue(Y)},async cancel(){await Z.return?.()}})}function Ns($){if($[Symbol.asyncIterator])return $;let Z=$.getReader();return{async next(){try{let X=await Z.read();if(X?.done)Z.releaseLock();return X}catch(X){throw Z.releaseLock(),X}},async return(){let X=Z.cancel();return Z.releaseLock(),await X,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}async function Ub8($){if($===null||typeof $!=="object")return;if($[Symbol.asyncIterator]){await $[Symbol.asyncIterator]().return?.();return}let Z=$.getReader(),X=Z.cancel();Z.releaseLock(),await X}var Bb8=({headers:$,body:Z})=>{return{bodyHeaders:{"content-type":"application/json"},body:JSON.stringify(Z)}};var WQ1="RFC3986",HQ1=($)=>String($),FQ1,Ob8="RFC1738";var NQ1=L(()=>{FQ1={RFC1738:($)=>String($).replace(/%20/g,"+"),RFC3986:HQ1}});function wb8($){if(!$||typeof $!=="object")return!1;return!!($.constructor&&$.constructor.isBuffer&&$.constructor.isBuffer($))}function BQ1($,Z){if(vX($)){let X=[];for(let Q=0;Q<$.length;Q+=1)X.push(Z($[Q]));return X}return Z($)}var nT0=($,Z)=>(nT0=Object.hasOwn??Function.prototype.call.bind(Object.prototype.hasOwnProperty),nT0($,Z)),dH,UQ1=1024,Lb8=($,Z,X,Q,Y)=>{if($.length===0)return $;let G=$;if(typeof $==="symbol")G=Symbol.prototype.toString.call($);else if(typeof $!=="string")G=String($);if(X==="iso-8859-1")return escape(G).replace(/%u[0-9a-f]{4}/gi,function(K){return"%26%23"+parseInt(K.slice(2),16)+"%3B"});let J="";for(let K=0;K<G.length;K+=UQ1){let W=G.length>=UQ1?G.slice(K,K+UQ1):G,H=[];for(let F=0;F<W.length;++F){let N=W.charCodeAt(F);if(N===45||N===46||N===95||N===126||N>=48&&N<=57||N>=65&&N<=90||N>=97&&N<=122||Y===Ob8&&(N===40||N===41)){H[H.length]=W.charAt(F);continue}if(N<128){H[H.length]=dH[N];continue}if(N<2048){H[H.length]=dH[192|N>>6]+dH[128|N&63];continue}if(N<55296||N>=57344){H[H.length]=dH[224|N>>12]+dH[128|N>>6&63]+dH[128|N&63];continue}F+=1,N=65536+((N&1023)<<10|W.charCodeAt(F)&1023),H[H.length]=dH[240|N>>18]+dH[128|N>>12&63]+dH[128|N>>6&63]+dH[128|N&63]}J+=H.join("")}return J};var Db8=L(()=>{NQ1();mK();dH=(()=>{let $=[];for(let Z=0;Z<256;++Z)$.push("%"+((Z<16?"0":"")+Z.toString(16)).toUpperCase());return $})()});function Oe4($){return typeof $==="string"||typeof $==="number"||typeof $==="boolean"||typeof $==="symbol"||typeof $==="bigint"}function Pb8($,Z,X,Q,Y,G,J,K,W,H,F,N,U,B,O,w,D,E){let j=$,z=E,A=0,P=!1;while((z=z.get(OQ1))!==void 0&&!P){let d=z.get($);if(A+=1,typeof d<"u")if(d===A)throw RangeError("Cyclic object value");else P=!0;if(typeof z.get(OQ1)>"u")A=0}if(typeof H==="function")j=H(Z,j);else if(j instanceof Date)j=U?.(j);else if(X==="comma"&&vX(j))j=BQ1(j,function(d){if(d instanceof Date)return U?.(d);return d});if(j===null){if(G)return W&&!w?W(Z,kZ.encoder,D,"key",B):Z;j=""}if(Oe4(j)||wb8(j)){if(W){let d=w?Z:W(Z,kZ.encoder,D,"key",B);return[O?.(d)+"="+O?.(W(j,kZ.encoder,D,"value",B))]}return[O?.(Z)+"="+O?.(String(j))]}let I=[];if(typeof j>"u")return I;let M;if(X==="comma"&&vX(j)){if(w&&W)j=BQ1(j,W);M=[{value:j.length>0?j.join(",")||null:void 0}]}else if(vX(H))M=H;else{let d=Object.keys(j);M=F?d.sort(F):d}let q=K?String(Z).replace(/\./g,"%2E"):String(Z),S=Q&&vX(j)&&j.length===1?q+"[]":q;if(Y&&vX(j)&&j.length===0)return S+"[]";for(let d=0;d<M.length;++d){let f=M[d],y=typeof f==="object"&&typeof f.value<"u"?f.value:j[f];if(J&&y===null)continue;let o=N&&K?f.replace(/\./g,"%2E"):f,b=vX(j)?typeof X==="function"?X(S,o):S:S+(N?"."+o:"["+o+"]");E.set($,A);let r=new WeakMap;r.set(OQ1,E),zb8(I,Pb8(y,b,X,Q,Y,G,J,K,X==="comma"&&w&&vX(j)?null:W,H,F,N,U,B,O,w,D,r))}return I}function Le4($=kZ){if(typeof $.allowEmptyArrays<"u"&&typeof $.allowEmptyArrays!=="boolean")throw TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");if(typeof $.encodeDotInKeys<"u"&&typeof $.encodeDotInKeys!=="boolean")throw TypeError("`encodeDotInKeys` option can only be `true` or `false`, when provided");if($.encoder!==null&&typeof $.encoder<"u"&&typeof $.encoder!=="function")throw TypeError("Encoder has to be a function.");let Z=$.charset||kZ.charset;if(typeof $.charset<"u"&&$.charset!=="utf-8"&&$.charset!=="iso-8859-1")throw TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");let X=WQ1;if(typeof $.format<"u"){if(!nT0(FQ1,$.format))throw TypeError("Unknown format option provided.");X=$.format}let Q=FQ1[X],Y=kZ.filter;if(typeof $.filter==="function"||vX($.filter))Y=$.filter;let G;if($.arrayFormat&&$.arrayFormat in jb8)G=$.arrayFormat;else if("indices"in $)G=$.indices?"indices":"repeat";else G=kZ.arrayFormat;if("commaRoundTrip"in $&&typeof $.commaRoundTrip!=="boolean")throw TypeError("`commaRoundTrip` must be a boolean, or absent");let J=typeof $.allowDots>"u"?!!$.encodeDotInKeys===!0?!0:kZ.allowDots:!!$.allowDots;return{addQueryPrefix:typeof $.addQueryPrefix==="boolean"?$.addQueryPrefix:kZ.addQueryPrefix,allowDots:J,allowEmptyArrays:typeof $.allowEmptyArrays==="boolean"?!!$.allowEmptyArrays:kZ.allowEmptyArrays,arrayFormat:G,charset:Z,charsetSentinel:typeof $.charsetSentinel==="boolean"?$.charsetSentinel:kZ.charsetSentinel,commaRoundTrip:!!$.commaRoundTrip,delimiter:typeof $.delimiter>"u"?kZ.delimiter:$.delimiter,encode:typeof $.encode==="boolean"?$.encode:kZ.encode,encodeDotInKeys:typeof $.encodeDotInKeys==="boolean"?$.encodeDotInKeys:kZ.encodeDotInKeys,encoder:typeof $.encoder==="function"?$.encoder:kZ.encoder,encodeValuesOnly:typeof $.encodeValuesOnly==="boolean"?$.encodeValuesOnly:kZ.encodeValuesOnly,filter:Y,format:X,formatter:Q,serializeDate:typeof $.serializeDate==="function"?$.serializeDate:kZ.serializeDate,skipNulls:typeof $.skipNulls==="boolean"?$.skipNulls:kZ.skipNulls,sort:typeof $.sort==="function"?$.sort:null,strictNullHandling:typeof $.strictNullHandling==="boolean"?$.strictNullHandling:kZ.strictNullHandling}}function Ab8($,Z={}){let X=$,Q=Le4(Z),Y,G;if(typeof Q.filter==="function")G=Q.filter,X=G("",X);else if(vX(Q.filter))G=Q.filter,Y=G;let J=[];if(typeof X!=="object"||X===null)return"";let K=jb8[Q.arrayFormat],W=K==="comma"&&Q.commaRoundTrip;if(!Y)Y=Object.keys(X);if(Q.sort)Y.sort(Q.sort);let H=new WeakMap;for(let U=0;U<Y.length;++U){let B=Y[U];if(Q.skipNulls&&X[B]===null)continue;zb8(J,Pb8(X[B],B,K,W,Q.allowEmptyArrays,Q.strictNullHandling,Q.skipNulls,Q.encodeDotInKeys,Q.encode?Q.encoder:null,Q.filter,Q.sort,Q.allowDots,Q.serializeDate,Q.format,Q.formatter,Q.encodeValuesOnly,Q.charset,H))}let F=J.join(Q.delimiter),N=Q.addQueryPrefix===!0?"?":"";if(Q.charsetSentinel)if(Q.charset==="iso-8859-1")N+="utf8=%26%2310003%3B&";else N+="utf8=%E2%9C%93&";return F.length>0?N+F:""}var jb8,zb8=function($,Z){Array.prototype.push.apply($,vX(Z)?Z:[Z])},Eb8,kZ,OQ1;var Tb8=L(()=>{Db8();NQ1();mK();jb8={brackets($){return String($)+"[]"},comma:"comma",indices($,Z){return String($)+"["+Z+"]"},repeat($){return String($)}},kZ={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:Lb8,encodeValuesOnly:!1,format:WQ1,formatter:HQ1,indices:!1,serializeDate($){return(Eb8??(Eb8=Function.prototype.call.bind(Date.prototype.toISOString)))($)},skipNulls:!1,strictNullHandling:!1};OQ1={}});function Rb8($){return Ab8($,{arrayFormat:"brackets"})}var LQ1=L(()=>{Tb8()});function tT0($){if(!$)return;let Z;try{Z=new URL($)}catch(Q){throw new v$(`Invalid token endpoint base URL "${$}": ${Q}`)}if(Z.protocol==="https:")return;let X=Z.hostname.toLowerCase().replace(/^\[|\]$/g,"");if(Z.protocol==="http:"&&(X==="localhost"||X==="127.0.0.1"||X==="::1"))return;throw new v$(`Refusing to send credential over non-https token endpoint "${$}"`)}async function oT0($,Z){let X=await Ee4($),Q;try{Q=JSON.parse(X)}catch{throw new v$(`Token endpoint returned non-JSON response (status ${$.status})`,$.status,kY(X),Z)}if(!Q.access_token)throw new v$(`Token endpoint response missing access_token: ${JSON.stringify(kY(Q))}`,$.status,kY(Q),Z);if(Q.token_type&&Q.token_type.toLowerCase()!=="bearer")throw new v$(`Token endpoint response: unsupported token_type "${Q.token_type}" (want Bearer)`,$.status,kY(Q),Z);return Q}function kY($){if($==null)return $;if(typeof $==="string"){let Z;try{Z=JSON.parse($)}catch{if($.length<=wQ1)return $;return $.slice(0,wQ1)+`... <${$.length-wQ1} more chars>`}return JSON.stringify(kY(Z))}if(typeof $==="object"&&!Array.isArray($)){let Z={};for(let[X,Q]of Object.entries($))if(De4.has(X))Z[X]=Q;return Z}return null}async function rT0($,Z=(X)=>console.warn(`anthropic-sdk: ${X}`)){if(typeof process>"u"||process.platform==="win32")return;let X=await import("fs"),Q=$,Y;try{Q=await X.promises.realpath($),Y=await X.promises.stat(Q)}catch{return}let G=Y.mode&511;if(G&18)throw new v$(`Credentials file at ${Q} is group/world-writable (mode 0o${G.toString(8)}); this allows other local users to plant tokens. Run \`chmod 600 ${Q}\`.`);if(G&36)throw new v$(`Credentials file at ${Q} is group/world-readable (mode 0o${G.toString(8)}); run \`chmod 600 ${Q}\` before retrying.`);if(typeof process.getuid==="function"&&Y.uid!==process.getuid())Z(`credentials file at ${Q} is owned by uid ${Y.uid} (current process uid ${process.getuid()}); verify this is intentional.`)}async function aT0($,Z){let X=await import("fs"),Y=(await import("path")).dirname($);await X.promises.mkdir(Y,{recursive:!0,mode:448});let G=`${$}.${process.pid}.${Math.random().toString(36).slice(2)}.tmp`;try{let J=await X.promises.open(G,"w",384);try{await J.writeFile(JSON.stringify(Z,null,2)),await J.sync()}finally{await J.close()}await X.promises.rename(G,$)}catch(J){throw await X.promises.unlink(G).catch(()=>{}),J}try{let J=await X.promises.open(Y,"r");try{await J.sync()}finally{await J.close()}}catch{}}async function Ee4($){if(!$.body)return"";let Z=$.body.getReader(),X=[],Q=0;for(;;){let{done:G,value:J}=await Z.read();if(G)break;if(Q+J.length>Ib8){let K=Ib8-Q;if(K>0)X.push(J.subarray(0,K));await Z.cancel();break}X.push(J),Q+=J.length}let Y;if(X.length===1)Y=X[0];else{Y=new Uint8Array(X.reduce((J,K)=>J+K.length,0));let G=0;for(let J of X)Y.set(J,G),G+=J.length}return new TextDecoder("utf-8").decode(Y)}var qb8="urn:ietf:params:oauth:grant-type:jwt-bearer",Mb8="refresh_token",pT0="/v1/oauth/token",_v="oauth-2025-04-20",Vb8="oidc-federation-2026-04-01",kb8=120,ru=30,Sb8=5,Ib8=1048576,wQ1=2000,De4,v$;var au=L(()=>{v5();De4=new Set(["error","error_description","error_uri"]);v$=class v$ extends P1{constructor($,Z=null,X=null,Q=null){super($);this.statusCode=Z,this.body=X,this.requestId=Q}}});function nK(){return Math.floor(Date.now()/1000)}class DQ1{constructor($,Z){this.cached=null,this.pendingRefresh=null,this.nextForce=!1,this.lastAdvisoryError=0,this.provider=$,this.onAdvisoryRefreshError=Z}async getToken(){let $=this.nextForce;this.nextForce=!1;let Z=this.cached;if($||Z==null)return(await this.refresh($)).token;if(Z.expiresAt==null)return Z.token;let X=Z.expiresAt-nK();if(X>kb8)return Z.token;if(X>ru)return this.backgroundRefresh(),Z.token;return(await this.refresh()).token}invalidate(){this.cached=null,this.nextForce=!0}refresh($=!1){if(this.pendingRefresh&&!$)return this.pendingRefresh;return this.doRefresh($)}backgroundRefresh(){if(this.pendingRefresh)return;if(nK()-this.lastAdvisoryError<Sb8)return;this.doRefresh().catch(($)=>{this.lastAdvisoryError=nK(),this.onAdvisoryRefreshError?.($)})}doRefresh($=!1){return this.pendingRefresh=this.provider($?{forceRefresh:!0}:void 0).then((Z)=>{return this.cached=Z,this.pendingRefresh=null,Z},(Z)=>{throw this.pendingRefresh=null,Z}),this.pendingRefresh}}var Cb8=L(()=>{au()});var H4=($)=>{if(typeof globalThis.process<"u")return globalThis.process.env?.[$]?.trim()||void 0;if(typeof globalThis.Deno<"u")return globalThis.Deno.env?.get?.($)?.trim()||void 0;return};function xb8($){let Z=0;for(let Y of $)Z+=Y.length;let X=new Uint8Array(Z),Q=0;for(let Y of $)X.set(Y,Q),Q+=Y.length;return X}function su($){let Z;return(_b8??(Z=new globalThis.TextEncoder,_b8=Z.encode.bind(Z)))($)}function EQ1($){let Z;return(vb8??(Z=new globalThis.TextDecoder,vb8=Z.decode.bind(Z)))($)}var _b8,vb8;var fb8=L(()=>{v5()});function Us(){}function sT0($,Z,X){if(!Z||eT0[$]>eT0[X])return Us;else return Z[$].bind(Z)}function zQ1($,Z){let X=bb8.get($);if(X&&X[0]===Z)return X[1];let Q={error:sT0("error",$,Z),warn:sT0("warn",$,Z),info:sT0("info",$,Z),debug:sT0("debug",$,Z)};return bb8.set($,[Z,Q]),Q}function t4($){let Z=$.logger,X=$.logLevel??"off";if(!Z)return je4;return zQ1(Z,X)}function gb8(){let $=H4("ANTHROPIC_LOG");if(!jQ1||$!==yb8)yb8=$,jQ1=zQ1(console,$20($,"process.env['ANTHROPIC_LOG']",zQ1(console,Bs))??Bs);return jQ1}var Bs="warn",eT0,$20=($,Z,X)=>{if(!$)return;if(Gb8(eT0,$))return $;X.warn(`${Z} was set to ${JSON.stringify($)}, expected one of ${JSON.stringify(Object.keys(eT0))}`);return},je4,bb8,yb8,jQ1,mH=($)=>{if($.options)$.options={...$.options},delete $.options.headers;if($.headers)$.headers=Object.fromEntries(($.headers instanceof Headers?[...$.headers]:Object.entries($.headers)).map(([Z,X])=>[Z,Z.toLowerCase()==="authorization"||Z.toLowerCase()==="api-key"||Z.toLowerCase()==="x-api-key"||Z.toLowerCase()==="cookie"||Z.toLowerCase()==="set-cookie"?"***":X]));if("retryOfRequestLogID"in $){if($.retryOfRequestLogID)$.retryOf=$.retryOfRequestLogID;delete $.retryOfRequestLogID}return $};var iH=L(()=>{mK();eT0={off:0,error:200,warn:300,info:400,debug:500};je4={error:Us,warn:Us,info:Us,debug:Us},bb8=new WeakMap});var PQ1=L(()=>{mK();fb8();iH();LQ1()});function hb8($){if(!$)throw Error("profile name is empty");if($==="."||$==="..")throw Error(`profile name "${$}" is not allowed`);if($.includes("/")||$.includes("\\"))throw Error(`profile name "${$}" must not contain path separators`);if(!ze4.test($))throw Error(`profile name "${$}" contains disallowed characters (allowed: letters, digits, '_', '.', '-')`)}var Z20="1.0",ze4,ub8=async($)=>{var Z,X;let Q=await AQ1();if(Q===null)return null;let Y=$??await lb8();if(Y===null)return null;hb8(Y);let G=await import("fs"),K=(await import("path")).join(Q,"configs",`${Y}.json`),W;try{W=await G.promises.readFile(K,"utf-8")}catch(N){if(N?.code!=="ENOENT")throw Error(`failed to read config file ${K}: ${N}`);W=null}if(W===null){let N=H4("ANTHROPIC_ORGANIZATION_ID"),U=H4("ANTHROPIC_IDENTITY_TOKEN_FILE"),B=H4("ANTHROPIC_FEDERATION_RULE_ID");if(B&&N)return{fromFile:!1,config:{organization_id:N,workspace_id:H4("ANTHROPIC_WORKSPACE_ID"),base_url:H4("ANTHROPIC_BASE_URL"),authentication:{type:"oidc_federation",federation_rule_id:B,service_account_id:H4("ANTHROPIC_SERVICE_ACCOUNT_ID"),identity_token:U?{source:"file",path:U}:void 0,scope:H4("ANTHROPIC_SCOPE")}}};return null}let H;try{H=JSON.parse(W)}catch(N){throw Error(`failed to parse config file ${K}: ${N}`)}if(!H.authentication)throw Error(`config file ${K} is missing "authentication"`);let F=H.authentication.type;if(F!=="oidc_federation"&&F!=="user_oauth")throw Error(`authentication.type "${F}" is not a known authentication type`);if(H.organization_id??(H.organization_id=H4("ANTHROPIC_ORGANIZATION_ID")),H.workspace_id??(H.workspace_id=H4("ANTHROPIC_WORKSPACE_ID")),H.base_url??(H.base_url=H4("ANTHROPIC_BASE_URL")),(Z=H.authentication).scope??(Z.scope=H4("ANTHROPIC_SCOPE")),H.authentication.type==="oidc_federation"){if(!H.authentication.identity_token){let N=H4("ANTHROPIC_IDENTITY_TOKEN_FILE");if(N)H.authentication.identity_token={source:"file",path:N}}if(!H.authentication.federation_rule_id)H.authentication.federation_rule_id=H4("ANTHROPIC_FEDERATION_RULE_ID")??"";(X=H.authentication).service_account_id??(X.service_account_id=H4("ANTHROPIC_SERVICE_ACCOUNT_ID"))}return{config:H,fromFile:!0}},cb8=async($,Z)=>{if($?.authentication.credentials_path)return $.authentication.credentials_path;let X=await AQ1();if(!X)return null;let Q=Z??await lb8();if(!Q)return null;return hb8(Q),(await import("path")).join(X,"credentials",`${Q}.json`)},AQ1=async()=>{if(!Pe4())return null;let $=await import("path"),Z=H4("ANTHROPIC_CONFIG_DIR");if(Z)return Z;if(Fs()["X-Stainless-OS"]==="Windows"){let G=H4("APPDATA");if(G)return $.join(G,"Anthropic");let J=H4("USERPROFILE");if(J)return $.join(J,"AppData","Roaming","Anthropic");return null}let Q=H4("XDG_CONFIG_HOME");if(Q)return $.join(Q,"anthropic");let Y=H4("HOME");if(Y)return $.join(Y,".config","anthropic");return null},Pe4=()=>{let $=Fs()["X-Stainless-Runtime"];return $==="node"||$==="deno"},lb8=async()=>{let $=await AQ1();if(!$)return null;let Z=H4("ANTHROPIC_PROFILE");if(Z)return Z;let X=await import("fs"),Y=(await import("path")).join($,"active_config");try{return(await X.promises.readFile(Y,"utf-8")).trim()||"default"}catch(G){if(G?.code!=="ENOENT")throw Error(`failed to read ${Y}: ${G}`);return"default"}};var TQ1=L(()=>{mT0();PQ1();ze4=/^[A-Za-z0-9_.-]+$/});function RQ1($){if(!$)throw new P1("Identity token file path is empty");return async()=>{let Z=await import("fs"),X;try{X=await Z.promises.readFile($,"utf-8")}catch(Y){throw new P1(`Failed to read identity token file at ${$}: ${Y}`)}let Q=X.trim();if(!Q)throw new P1(`Identity token file at ${$} is empty`);return Q}}function db8($){if(!$)throw new P1("Identity token value is empty");return()=>$}var mb8=L(()=>{v5()});function ib8($){return async()=>{tT0($.baseURL);let Z=await $.identityTokenProvider();if(Z.length>16384)throw new v$(`Identity token is ${Math.ceil(Z.length/1024)} KiB, exceeds the 16 KiB assertion limit`);let X={grant_type:qb8,assertion:Z,federation_rule_id:$.federationRuleId,organization_id:$.organizationId};if($.serviceAccountId)X.service_account_id=$.serviceAccountId;if($.workspaceId)X.workspace_id=$.workspaceId;let Q=`${$.baseURL}${pT0}`,Y;try{Y=await $.fetch(Q,{method:"POST",headers:{"Content-Type":"application/json","anthropic-beta":`${_v},${Vb8}`,"User-Agent":$.userAgent||`anthropic-sdk-typescript/${QJ} oidcFederationProvider`},body:JSON.stringify(X)})}catch(W){throw new v$(`Failed to reach token endpoint ${Q}: ${W}`)}let G=Y.headers.get("Request-Id");if(!Y.ok){let W=await Y.text().catch(()=>""),H=kY(W),F="";if(Y.status===401)F=` Ensure your federation rule matches your identity token. ${$.workspaceId?"":"If your federation rule is scoped to multiple workspaces, set the ANTHROPIC_WORKSPACE_ID environment variable, the 'workspace_id' config key, or the `workspaceId` option. "}View your authentication events in the Workload identity page of Claude Console for more details.`;throw new v$(`Token exchange failed with status ${Y.status}${G?` (request-id ${G})`:""}: ${H}${F}`,Y.status,H,G)}let J=await oT0(Y,G),K=Number(J.expires_in);if(!Number.isFinite(K))throw new v$(`Token endpoint response missing required fields: ${JSON.stringify(kY(J))}`,Y.status,kY(J),G);return{token:J.access_token,expiresAt:nK()+K}}}var nb8=L(()=>{au()});function pb8($){return async(Z)=>{let X=await import("fs");await rT0($.credentialsPath,$.onSafetyWarning);let Q;try{Q=await X.promises.readFile($.credentialsPath,"utf-8")}catch(D){throw new v$(`Credentials file not found at ${$.credentialsPath}: ${D}`)}let Y;try{Y=JSON.parse(Q)}catch(D){throw new v$(`Credentials file at ${$.credentialsPath} is not valid JSON: ${D}`)}let G=Y.access_token;if(!G)throw new v$(`Credentials file at ${$.credentialsPath} must include 'access_token'`);let J=Y.expires_at;if(!Z?.forceRefresh&&(J==null||nK()<J-ru))return{token:G,expiresAt:J??null};let K=Y.refresh_token;if(!$.clientId||!K)throw new v$(`Access token at ${$.credentialsPath} has expired and no refresh is available (client_id ${$.clientId?"set":"empty"}, refresh_token ${K?"set":"empty"})`);tT0($.baseURL);let W={grant_type:Mb8,refresh_token:K,client_id:$.clientId},H=`${$.baseURL}${pT0}`,F;try{F=await $.fetch(H,{method:"POST",headers:{"Content-Type":"application/json","anthropic-beta":_v,"User-Agent":$.userAgent||`anthropic-sdk-typescript/${QJ} userOAuthProvider`},body:JSON.stringify(W)})}catch(D){throw new v$(`User OAuth refresh failed to reach token endpoint: ${D}`)}let N=F.headers.get("Request-Id");if(!F.ok){let D=await F.text().catch(()=>"");throw new v$(`User OAuth refresh failed (HTTP ${F.status}): ${kY(D)}`,F.status,kY(D),N)}let U=await oT0(F,N),B=Number(U.expires_in);if(!Number.isFinite(B))throw new v$(`User OAuth refresh response missing or invalid expires_in: ${JSON.stringify(kY(U))}`,F.status,kY(U),N);let O=nK()+B,w=U.refresh_token||K;return await aT0($.credentialsPath,{...Y,version:Z20,type:"oauth_token",access_token:U.access_token,expires_at:O,refresh_token:w}),{token:U.access_token,expiresAt:O}}}var tb8=L(()=>{TQ1();au()});function IQ1($,Z){let X=$.authentication.credentials_path??null,Q=($.base_url||Z.baseURL).replace(/\/+$/,""),Y=Ae4($,X,Q,Z),G={};if($.workspace_id&&$.authentication.type==="user_oauth")G["anthropic-workspace-id"]=$.workspace_id;return{provider:Y,extraHeaders:G,baseURL:$.base_url||void 0}}async function ob8($,Z){let X=await ub8(Z);if(!X)return null;let{config:Q,fromFile:Y}=X,G=Q.authentication.credentials_path||!Y?Q:{...Q,authentication:{...Q.authentication,credentials_path:await cb8(Q,Z)??void 0}};return IQ1(G,$)}function Ae4($,Z,X,Q){switch($.authentication.type){case"oidc_federation":{let Y=$.authentication,G=Te4(Y);if(!G)throw new v$("oidc_federation config requires an identity token (set authentication.identity_token, ANTHROPIC_IDENTITY_TOKEN_FILE, or ANTHROPIC_IDENTITY_TOKEN)");if(!Y.federation_rule_id)throw new v$("oidc_federation config requires 'federation_rule_id'. Set it in authentication.federation_rule_id in your profile, or via ANTHROPIC_FEDERATION_RULE_ID (profile takes precedence).");if(!$.organization_id)throw new v$("oidc_federation config requires organization_id (set ANTHROPIC_ORGANIZATION_ID or config.organization_id)");let J=ib8({identityTokenProvider:G,federationRuleId:Y.federation_rule_id,organizationId:$.organization_id,serviceAccountId:Y.service_account_id,workspaceId:$.workspace_id,baseURL:X,fetch:Q.fetch,userAgent:Q.userAgent});if(Z)return Re4(J,Z,Q.onCacheWriteError,Q.onSafetyWarning);return J}case"user_oauth":{if(!Z)throw new v$("user_oauth config requires authentication.credentials_path (or load via a profile so it defaults to <config_dir>/credentials/<profile>.json)");return pb8({credentialsPath:Z,clientId:$.authentication.client_id,baseURL:X,fetch:Q.fetch,userAgent:Q.userAgent,onSafetyWarning:Q.onSafetyWarning})}default:{let Y=$.authentication.type;throw new v$(`authentication.type "${Y}" is not a known authentication type`)}}}function Te4($){if($.identity_token){let Q=$.identity_token.source;if(Q!=="file")throw new v$(`identity_token.source "${Q}" is not supported by this SDK version (only "file")`);if(!$.identity_token.path)throw new v$('identity_token.source "file" requires a non-empty path');return RQ1($.identity_token.path)}let Z=H4("ANTHROPIC_IDENTITY_TOKEN_FILE");if(Z)return RQ1(Z);let X=H4("ANTHROPIC_IDENTITY_TOKEN");if(X)return db8(X);return null}function Re4($,Z,X,Q){return async(Y)=>{let G=await import("fs");await rT0(Z,Q);let J;try{let W=await G.promises.readFile(Z,"utf-8");J=JSON.parse(W);let H=J?.access_token;if(H&&!Y?.forceRefresh){let F=J?.expires_at;if(F==null||nK()<F-ru)return{token:H,expiresAt:F??null}}}catch(W){if(W?.code!=="ENOENT"&&!(W instanceof SyntaxError))X?.(W)}let K=await $(Y);try{await aT0(Z,{...J??{},version:Z20,type:"oauth_token",access_token:K.token,expires_at:K.expiresAt})}catch(W){X?.(W)}return K}}var rb8=L(()=>{TQ1();au();mb8();nb8();tb8()});class Rw{constructor(){xG.set(this,void 0),fG.set(this,void 0),W1(this,xG,new Uint8Array,"f"),W1(this,fG,null,"f")}decode($){if($==null)return[];let Z=$ instanceof ArrayBuffer?new Uint8Array($):typeof $==="string"?su($):$;W1(this,xG,xb8([n(this,xG,"f"),Z]),"f");let X=[],Q;while((Q=Ie4(n(this,xG,"f"),n(this,fG,"f")))!=null){if(Q.carriage&&n(this,fG,"f")==null){W1(this,fG,Q.index,"f");continue}if(n(this,fG,"f")!=null&&(Q.index!==n(this,fG,"f")+1||Q.carriage)){X.push(EQ1(n(this,xG,"f").subarray(0,n(this,fG,"f")-1))),W1(this,xG,n(this,xG,"f").subarray(n(this,fG,"f")),"f"),W1(this,fG,null,"f");continue}let Y=n(this,fG,"f")!==null?Q.preceding-1:Q.preceding,G=EQ1(n(this,xG,"f").subarray(0,Y));X.push(G),W1(this,xG,n(this,xG,"f").subarray(Q.index),"f"),W1(this,fG,null,"f")}return X}flush(){if(!n(this,xG,"f").length)return[];return this.decode(`
2917
+ `+$}function CT0($){if(!$||$.length===0)return[];return $.filter((Z)=>ms4.test(Z))}function is4($){if($.csp)return $.csp;let Z=$.resourceCsp;if(!Z)return xf8;let X=CT0(Z.resourceDomains),Q=CT0(Z.connectDomains),Y=CT0(Z.frameDomains),G=CT0(Z.baseUriDomains),J=X.length>0,K=Q.length>0,W=Y.length>0,H=G.length>0;if(!J&&!K&&!W&&!H)return xf8;let F=X.join(" ");return["default-src 'none'",J?`script-src 'unsafe-inline' 'unsafe-eval' 'wasm-unsafe-eval' ${F}`:"script-src 'unsafe-inline' 'unsafe-eval' 'wasm-unsafe-eval'",J?`style-src 'unsafe-inline' ${F}`:"style-src 'unsafe-inline'",J?`img-src * data: blob: ${F}`:"img-src * data: blob:",J?`media-src * data: blob: ${F}`:"media-src * data: blob:",J?`font-src data: ${F}`:"font-src data:",K?`connect-src ${Q.join(" ")}`:"connect-src 'none'",W?`frame-src ${Y.join(" ")}`:"frame-src 'none'","worker-src blob:","form-action 'none'",H?`base-uri ${G.join(" ")}`:"base-uri 'none'"].join("; ")}var xf8,ms4;var bf8=L(()=>{xf8=["default-src 'none'","script-src 'unsafe-inline' 'unsafe-eval' 'wasm-unsafe-eval'","style-src 'unsafe-inline'","img-src * data: blob:","media-src * data: blob:","font-src data:","connect-src 'none'","frame-src 'none'","worker-src blob:","form-action 'none'","base-uri 'none'"].join("; ");ms4=/^https?:\/\/(\*\.)?[a-zA-Z0-9._-]+(:\d+)?\/?$/});function ns4($){let Z=$.lastFailureAt-$.firstFailureAt;return $.count>=QZ8&&Z>=YZ8}class lX1{options;kv=null;codec=G30();constructor($){this.options=$}async init(){let $=this.options.getJetStream();if(!$)return;this.kv=await new gf8.Kvm($).create(ps4,{storage:yf8.StorageType.Memory,ttl:hf8.nanos(GZ8)})}async recordFailure($){if(!this.kv)return cX1;let Z=Date.now();for(let X=0;X<ts4;X++)try{let Q=await this.kv.get($);if(!(Q&&Q.operation!=="DEL"&&Q.operation!=="PURGE"&&Q.value?.length)){let K={count:1,firstFailureAt:Z,lastFailureAt:Z};return await this.kv.create($,this.codec.encode(K)),{count:K.count,shouldDisable:!1}}let G=this.codec.decode(Q.value),J={count:G.count+1,firstFailureAt:G.firstFailureAt,lastFailureAt:Z};return await this.kv.update($,this.codec.encode(J),Q.revision),{count:J.count,shouldDisable:ns4(J)}}catch{}return cX1}async recordSuccess($){if(!this.kv)return;try{await this.kv.delete($)}catch{}}teardown(){this.kv=null}}class aa{async recordFailure(){return cX1}async recordSuccess(){}teardown(){}}function dX1($){uf8=$??new aa}function mX1(){return uf8}var yf8,gf8,hf8,cX1,ps4="DECOCMS_CONN_CIRCUIT",ts4=5,uf8;var iX1=L(()=>{yf8=k(hE(),1),gf8=k(U11(),1),hf8=k(Zn(),1),cX1={count:0,shouldDisable:!1};uf8=new aa});function cf8($){if(!$)return{decision:"skip"};if($.startsWith("notifications/"))return{decision:"skip"};if(rs4.has($))return{decision:"skip"};let Z=os4[$];if(Z)return{decision:"skip-if-list-cached",listType:Z};return{decision:"probe"}}async function lf8($){if($.method!=="POST")return;let Z=$.headers.get("content-length");if(Z&&Number(Z)>as4)return;try{let X=await $.clone().json(),Y=(Array.isArray(X)?X[0]:X)?.method;return typeof Y==="string"?Y:void 0}catch{return}}var os4,rs4,as4=64000;var df8=L(()=>{os4={"tools/list":"tools","resources/list":"resources","prompts/list":"prompts"},rs4=new Set(["ping"])});import{SpanStatusCode as _T0}from"@opentelemetry/api";async function vT0($,Z){let X=$.get("studioContext");try{let Q=X.organization?.id??null,Y=Z?Z:Q?Yj(Q):null;if(!Y)return $.json({error:"Agent ID or organization ID is required"},400);if(Z&&!Q)return $.json({error:"Organization context is required"},400);let G=await X.tracer.startActiveSpan("studio.virtual_mcp.lookup",{attributes:{"virtual_mcp.id":Y}},async(U)=>{try{let B=await X.storage.virtualMcps.findById(Y,Q??void 0);return U.setStatus({code:_T0.OK}),B}catch(B){throw U.setStatus({code:_T0.ERROR,message:B.message}),U.recordException(B),B}finally{U.end()}});if(!G)return $.json({error:"Agent not found"},404);if(Q&&G.organization_id!==Q)return $.json({error:"Agent not found"},404);if(G.status!=="active")return $.json({error:`Agent is inactive: ${G.id??"Decopilot"}`},503);if(X.organization?.id&&G.organization_id!==X.organization.id)return $.json({error:"Forbidden: Agent does not belong to your organization"},403);X.connectionId=G.id??void 0;let J=D1(X),K=null;if(G.id&&J&&S5(G.metadata)[J])K=await Tv(X,G.id,J,$.req.query("branch")??void 0).catch(()=>null);let W=await X.tracer.startActiveSpan("studio.virtual_mcp.create_client",{attributes:{"virtual_mcp.id":G.id??"decopilot"}},async(U)=>{try{let B=await GU(G,X,!1,{includeSkillsCatalog:!0,additionalConnections:K?[K]:[]});return U.setStatus({code:_T0.OK}),B}catch(B){throw U.setStatus({code:_T0.ERROR,message:B.message}),U.recordException(B),B}finally{U.end()}}),H={name:G.id??"Decopilot",version:"1.0.0",title:G.title??void 0,description:G.description??void 0,icons:G.icon?[{src:G.icon}]:void 0},F=$j(W,H,{capabilities:{tools:{},resources:{},prompts:{}},instructions:W.getInstructions(),toolCallTimeoutMs:ry}),N=new kQ({enableJsonResponse:$.req.header("Accept")?.includes("application/json")??!1});return await F.connect(N),await ZJ(F,N,$.req.raw,`virtual-mcp:${G.id??"decopilot"}`,{onClose:()=>W.close()})}catch(Q){let Y=Q;return console.error("[virtual-mcp] Error handling virtual MCP request:",Y),$.json({error:"Internal server error",message:Y.message},500)}}var xT0=()=>{let $=new A1;return $.all("/gateway/:virtualMcpId?",async(Z)=>{let X=Z.req.param("virtualMcpId")||Z.req.header("x-virtual-mcp-id");return vT0(Z,X)}),$.all("/virtual-mcp/:virtualMcpId?",async(Z)=>{let X=Z.req.param("virtualMcpId")||Z.req.header("x-virtual-mcp-id");return vT0(Z,X)}),$};var fT0=L(()=>{KQ();T6();Sv();q6();Eu();gA0();jQ();mu()});import{SpanStatusCode as bT0}from"@opentelemetry/api";var mf8=($,Z)=>{if($ instanceof Xh)return Z.header("Retry-After",String(Math.ceil($.cooldownRemainingMs/1000))),Z.json({error:$.message},503);if($.message.includes("not found"))return Z.json({error:$.message},404);if($.message.includes("does not belong to the active organization"))return Z.json({error:"Connection not found"},404);if($.message.includes("inactive"))return Z.json({error:$.message},503);return Z.json({error:"Internal server error",message:$.message},500)},yT0=()=>{let $=new A1;return $.all("/",async(Z)=>{return vT0(Z,void 0)}),$.get("/:connectionId/ui-resource",async(Z)=>{let X=Z.get("studioContext"),Q=Z.req.param("connectionId"),Y=Z.req.query("uri");if(!Y)return Z.json({error:"uri query param is required"},400);if(!X.organization?.id)return Z.json({error:"Organization context is required"},403);let G=Za0(Q),J;if(G){let B=D1(X);if(!B)return Z.json({error:"Authentication required"},401);if(J=await Tv(X,G,B,Z.req.query("branch")??void 0),!J)return Z.json({error:"Dev server not running"},503)}else if(J=await X.storage.connections.findById(Q,X.organization.id),!J||J.organization_id!==X.organization.id)return Z.json({error:"Connection not found"},404);let K=wL(J,X,!1,j9()??void 0),W,H;try{let O=(await K.readResource({uri:Y})).contents?.[0];W=O?.text,H=O?._meta?.ui?.csp}catch(B){return Z.json({error:B.message},502)}finally{await K.close().catch(()=>{})}if(typeof W!=="string")return Z.json({error:"Resource has no text content"},404);let F=ff8(W,{resourceCsp:H}),N=`"${Bun.hash(F).toString(36)}"`,U="private, no-cache";if(Z.req.header("if-none-match")===N)return new Response(null,{status:304,headers:{ETag:N,"Cache-Control":U}});return new Response(F,{headers:{"Content-Type":"text/html; charset=utf-8",ETag:N,"Cache-Control":U}})}),$.all("/:connectionId",async(Z)=>{let X=Z.req.param("connectionId"),Q=Z.get("studioContext");if(X.endsWith("_self")){let J=X.slice(0,-5);if(!Q.organization||Q.organization.id!==J)return Z.json({error:"Connection not found"},404);let K=await iu(Q),W=new kQ({enableJsonResponse:Z.req.raw.headers.get("Accept")?.includes("application/json")??!1});return await K.connect(W),wU.run(Q,()=>ZJ(K,W,Z.req.raw,`mcp:self:${X}`))}let Y=Za0(X);if(Y){if(!Q.organization?.id)return Z.json({error:"Organization context is required"},403);let J=D1(Q);if(!J)return Z.json({error:"Authentication required"},401);let K=await Tv(Q,Y,J,Z.req.query("branch")??void 0);if(!K)return Z.json({error:"Dev server not running"},503);let W=H30(K,Q,!1),H=new kQ({enableJsonResponse:Z.req.raw.headers.get("Accept")?.includes("application/json")??!1});return await W.connect(H),ZJ(W,H,Z.req.raw,`mcp:dev:${X}`)}let G=null;try{try{if(!Q.organization?.id)return Z.json({error:"Organization context is required"},403);if(G=await Q.tracer.startActiveSpan("studio.connection.lookup",{attributes:{"connection.id":X}},async(w)=>{$J(Z,"mcp.find_connection");try{let D=await Q.storage.connections.findById(X,Q.organization.id);return w.setStatus({code:bT0.OK}),D}catch(D){throw w.setStatus({code:bT0.ERROR,message:D.message}),w.recordException(D),D}finally{vG(Z,"mcp.find_connection"),w.end()}}),!G)throw Error("Connection not found");let J=G;if(J.organization_id!==Q.organization.id)throw Error("Connection does not belong to the active organization");let K=!1;if(J.status!=="active"){let w=Date.now()-new Date(J.updated_at).getTime();if(J.status==="error"&&!!J.connection_url&&w>=Ga0)K=!0;else{if(J.status==="error"&&J.connection_url){let E=Ga0-w;Z.header("Retry-After",String(Math.ceil(E/1000)))}throw Error(`Connection inactive: ${J.status}`)}}let W=await lf8(Z.req.raw),{decision:H,listType:F}=cf8(W),N=H==="probe";if(H==="skip-if-list-cached"&&F){let w=j9();N=w?await w.get(F,X)===null:!0}if(K)N=!0;if(J.connection_url&&N)aY0(X),await Q.tracer.startActiveSpan("studio.connection.handshake",{attributes:{"connection.id":X,"connection.url":J.connection_url}},async(w)=>{$J(Z,"mcp.client_handshake");try{if(await q5(J,Q,!1),sY0(X),mX1().recordSuccess(X),K)await Q.storage.connections.update(X,{status:"active"}),console.info("[proxy] auto-recovered connection after successful re-probe",{connectionId:X,org:Q.organization?.slug});w.setStatus({code:bT0.OK})}catch(D){throw w.setStatus({code:bT0.ERROR,message:D.message}),w.recordException(D),D}finally{vG(Z,"mcp.client_handshake"),w.end()}});$J(Z,"mcp.create_server");let U=H30(J,Q,!1);vG(Z,"mcp.create_server");let B=new kQ({enableJsonResponse:Z.req.raw.headers.get("Accept")?.includes("application/json")??!1});$J(Z,"mcp.server_connect"),await U.connect(B),vG(Z,"mcp.server_connect"),$J(Z,"mcp.handle_request");let O=await ZJ(U,B,Z.req.raw,`mcp:${X}`);return vG(Z,"mcp.handle_request"),O}catch(J){if(J instanceof Xh)throw J;if(G??=await Q.storage.connections.findById(X,Q.organization?.id),G?.connection_url){let K=await nX1({error:J,reqUrl:new URL(Z.req.raw.url),connectionId:X,connectionUrl:G.connection_url,headers:{},orgSlug:Q.organization?.slug});if(K)return K;eY0(X);let{shouldDisable:W}=await mX1().recordFailure(X);if(W&&G.status==="active")await Q.storage.connections.update(X,{status:"error"}),console.warn("[proxy] auto-disabled connection after sustained failures",{connectionId:X,org:Q.organization?.slug,error:J.message})}throw J}}catch(J){return mf8(J,Z)}}),$.all("/:connectionId/call-tool/:toolName",async(Z)=>{let X=Z.req.param("connectionId"),Q=Z.req.param("toolName"),Y=Z.get("studioContext");if(!Y.organization?.id)return Z.json({error:"Organization context is required"},403);let G=null;try{if(G=await Y.storage.connections.findById(X,Y.organization.id),!G)return Z.json({error:"Connection not found"},404);let K=await(await q5(G,Y,!1)).callTool({name:Q,arguments:await Z.req.json()});if(K.isError)return new Response(JSON.stringify(K.content),{headers:{"Content-Type":"application/json"},status:500});return new Response(JSON.stringify(K.structuredContent??K.content),{headers:{"Content-Type":"application/json"}})}catch(J){if(G??=await Y.storage.connections.findById(X,Y.organization.id),G?.connection_url){let K=await nX1({error:J,reqUrl:new URL(Z.req.raw.url),connectionId:X,connectionUrl:G.connection_url,headers:{},orgSlug:Y.organization?.slug});if(K)return K}return mf8(J,Z)}}),$};var gT0=L(()=>{CN();Sv();q6();uX1();jL();mu();sa();wG();To();bf8();De0();iX1();df8();fT0();gA0();T6();tX1()});async function Aw($,Z,X,Q){if(Z.type!=="event"||!Z.connection_id)return{success:!0};let Y=await $.storage.connections.findById(Z.connection_id);if(!Y)return{success:!0};let G=$.organization?.id,J=$.organization?.slug;try{let K=await q5(Y,$,!0),W=A11.forClient(pX1(K)),H,F,N;if(X&&Q&&G){let E=await Q.generateTokenPair();F=E.plaintext,N=E.hash,H=J?`${$.baseUrl}/api/${J}/trigger-callback`:`${$.baseUrl}/api/trigger-callback`}let U=5000,B=!1,O=new Promise((E,j)=>setTimeout(()=>{B=!0,j(Error("TRIGGER_CONFIGURE timeout"))},U)),w;try{w=await Promise.race([W.TRIGGER_CONFIGURE({type:Z.event_type,params:JSON.parse(Z.params??"{}"),enabled:X,callbackUrl:H,callbackToken:F}),O])}catch(E){if(B&&X&&Q&&G&&N)await Q.persistTokenHash(G,Z.connection_id,N);return console.error(`[configureTriggerOnMcp] TRIGGER_CONFIGURE threw on connection=${Z.connection_id} type=${Z.event_type}:`,E),{success:!1,error:String(E)}}let D=w;if(!D||D.success!==!0)return console.error(`[configureTriggerOnMcp] TRIGGER_CONFIGURE did not return success=true on connection=${Z.connection_id} type=${Z.event_type}. Raw payload:`,JSON.stringify(w)),{success:!1,error:`TRIGGER_CONFIGURE did not return success=true (got ${JSON.stringify(w)})`};try{if(X&&Q&&G&&N)await Q.persistTokenHash(G,Z.connection_id,N);if(!X&&Q&&G)await Q.deleteByConnection(Z.connection_id,G)}catch(E){console.error("[configureTriggerOnMcp] Token persistence failed after successful TRIGGER_CONFIGURE:",E)}return{success:!0}}catch(K){return{success:!1,error:String(K)}}}var ea=L(()=>{CN();gT0();T11()});import{z as K5}from"zod";var oX1;var if8=L(()=>{kv();n0();UQ();ea();oX1=m({name:"AUTOMATION_UPDATE",description:"Update an automation's config. Toggling active state reconfigures event triggers on MCPs.",annotations:{title:"Update Automation",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:K5.object({id:K5.string(),name:K5.string().min(1).max(255).optional(),active:K5.boolean().optional(),messages:K5.union([K5.string(),K5.array(K5.looseObject({id:K5.string().optional(),role:K5.enum(["user","assistant","system"]),parts:K5.array(K5.record(K5.string(),K5.unknown())),metadata:K5.unknown().optional()}))]).optional(),models:K5.object({tier:QL,modelId:K5.string().optional(),credentialId:K5.string().optional()}).loose().optional(),tools:K5.array(K5.string()).nullable().optional(),maxAgentSteps:K5.number().int().min(1).max(100).nullable().optional(),temperature:K5.number().optional()}),outputSchema:K5.object({id:K5.string(),name:K5.string(),active:K5.boolean(),updated_at:K5.string()}),handler:async($,Z)=>{G0(Z);let X=X0(Z);await Z.access.check();let Q=await Z.storage.automations.findById($.id,X.id);if(!Q)throw Error("Automation not found");let Y={};if($.name!==void 0)Y.name=$.name;if($.active!==void 0)Y.active=$.active;if($.messages!==void 0){let J=IT0($.messages);Y.messages=JSON.stringify(J)}if($.models!==void 0)Y.models=JSON.stringify($.models);if($.tools!==void 0)Y.tools=$.tools===null?null:JSON.stringify($.tools);if($.temperature!==void 0)Y.temperature=$.temperature;if($.maxAgentSteps!==void 0)Y.max_agent_steps=$.maxAgentSteps;let G=await Z.storage.automations.update($.id,X.id,Y);if($.active!==void 0&&$.active!==Q.active){let J=await Z.storage.automations.listTriggers(G.id),K=J.filter((W)=>W.type==="event");await Promise.allSettled(K.map(async(W)=>{let H=await Aw(Z,W,$.active);if(!H.success)console.warn(`Failed to configure trigger ${W.id}: ${H.error}`)})),await qf8(J,$.active)}return{id:G.id,name:G.name,active:G.active,updated_at:G.updated_at}}})});import{z as hT0}from"zod";var rX1;var nf8=L(()=>{kv();u4();n0();ea();rX1=m({name:"AUTOMATION_DELETE",description:"Permanently delete an automation. Disables all event triggers on connected MCPs first.",annotations:{title:"Delete Automation",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!1},inputSchema:hT0.object({id:hT0.string()}),outputSchema:hT0.object({success:hT0.boolean()}),handler:async($,Z)=>{G0(Z);let X=X0(Z);if(await Z.access.check(),!await Z.storage.automations.findById($.id,X.id))throw Error("Automation not found");let Y=await Z.storage.automations.listTriggers($.id),G=Y.filter((W)=>W.type==="event");await Promise.allSettled(G.map(async(W)=>{let H=await Aw(Z,W,!1);if(!H.success)console.warn(`Failed to disable trigger ${W.id}: ${H.error}`)}));let{success:J}=await Z.storage.automations.delete($.id,X.id);await Mf8(Y);let K=D1(Z);if(K)n1.capture({distinctId:K,event:"automation_deleted",groups:{organization:X.id},properties:{organization_id:X.id,automation_id:$.id,trigger_count:Y.length}});return{success:J}}})});function nu($){return`webhook_${$}`}function uT0($,Z,X){if(!Z)throw Error("Cannot build webhook URL: organization slug missing from request context");return`${$}/api/${Z}/webhooks/${X}`}import{z as x7}from"zod";var pf8=300000,ss4=10,aX1;var tf8=L(()=>{kX1();kv();VX1();n0();ea();aX1=m({name:"AUTOMATION_TRIGGER_ADD",description:"Add a cron, event, or webhook trigger to an automation. For webhook triggers the response includes a one-time URL + secret token.",annotations:{title:"Add Trigger",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!1},inputSchema:x7.object({automation_id:x7.string(),type:x7.enum(["cron","event","webhook"]),cron_expression:x7.string().optional(),connection_id:x7.string().optional(),event_type:x7.string().optional(),params:x7.record(x7.string(),x7.string()).optional()}),outputSchema:x7.object({id:x7.string(),automation_id:x7.string(),type:x7.enum(["cron","event","webhook"]),created_at:x7.string(),webhook:x7.object({url:x7.string(),token:x7.string()}).nullable().optional()}),handler:async($,Z)=>{G0(Z);let X=X0(Z);await Z.access.check();let Q=await Z.storage.automations.findById($.automation_id,X.id);if(!Q)throw Error("Automation not found");if($.type==="cron"){if(!$.cron_expression)throw Error("cron_expression is required for cron triggers");let W=new MT0($.cron_expression,{timezone:"UTC"}).nextRuns(ss4);if(W.length===0)throw Error("Cron expression has no future runs");let H=1/0;for(let F=1;F<W.length;F++){let N=W[F].getTime()-W[F-1].getTime();if(N<H)H=N}if(W.length>=2&&Number.isFinite(H)&&H<pf8){let F=pf8/1000;throw Error(`Cron fires too frequently \u2014 minimum interval is ${F}s between runs (observed ${H/1000}s)`)}}if($.type==="event"){if(!$.connection_id)throw Error("connection_id is required for event triggers");if(!$.event_type)throw Error("event_type is required for event triggers");if(!await Z.storage.connections.findById($.connection_id,X.id))throw Error("Connection not found");let W={id:"",automation_id:$.automation_id,type:"event",cron_expression:null,connection_id:$.connection_id,event_type:$.event_type,params:$.params?JSON.stringify($.params):null,last_run_at:null,next_run_at:null,api_key_id:null,created_at:""},H=await Aw(Z,W,!0,Z.storage.triggerCallbackTokens);if(!H.success)throw Error(`Failed to configure trigger on connection: ${H.error}`)}let Y=$.type==="cron"&&$.cron_expression?VT0($.cron_expression,new Date):null,G=await Z.storage.automations.addTrigger({automation_id:$.automation_id,type:$.type,cron_expression:$.type==="cron"?$.cron_expression:null,connection_id:$.type==="event"?$.connection_id:null,event_type:$.type==="event"?$.event_type:null,params:$.params?JSON.stringify($.params):null,next_run_at:Y?.toISOString()??null}),J=null;if($.type==="webhook")try{let K=await Z.boundAuth.apiKey.create({name:`webhook:${Q.name}:${G.id.slice(0,8)}`,permissions:{[nu(G.id)]:["FIRE"]},metadata:{kind:"webhook_trigger",automation_id:Q.id,trigger_id:G.id}});await Z.storage.automations.setTriggerApiKeyId(G.id,K.id),J={url:uT0(Z.baseUrl,X.slug,G.id),token:K.key}}catch(K){await Z.storage.automations.removeTrigger(G.id,G.automation_id);let W=K instanceof Error?K.message:String(K);throw Error(`Failed to mint webhook token: ${W}`)}return await ST0(G,Q),{id:G.id,automation_id:G.automation_id,type:G.type,created_at:G.created_at,webhook:J}}})});import{z as cT0}from"zod";var sX1;var of8=L(()=>{kv();n0();ea();sX1=m({name:"AUTOMATION_TRIGGER_REMOVE",description:"Remove a trigger from an automation. Disables associated event listeners on MCPs.",annotations:{title:"Remove Trigger",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!1},inputSchema:cT0.object({trigger_id:cT0.string()}),outputSchema:cT0.object({success:cT0.boolean()}),handler:async($,Z)=>{G0(Z);let X=X0(Z);await Z.access.check();let Q=await Z.storage.automations.findTriggerById($.trigger_id);if(!Q)throw Error("Trigger not found");if(!await Z.storage.automations.findById(Q.automation_id,X.id))throw Error("Automation not found");if(Q.type==="event"){let J=await Aw(Z,Q,!1,Z.storage.triggerCallbackTokens);if(!J.success)console.warn(`Failed to disable trigger ${Q.id}: ${J.error}`)}let{success:G}=await Z.storage.automations.removeTrigger(Q.id,Q.automation_id);if(Q.type==="cron")await yX1(Q.id);if(Q.type==="webhook"&&Q.api_key_id)try{await Z.boundAuth.apiKey.delete(Q.api_key_id)}catch(J){console.warn(`[trigger-remove] failed to delete api key ${Q.api_key_id} for trigger ${Q.id}:`,J instanceof Error?J.message:J)}return{success:G}}})});import{z as pu}from"zod";var eX1;var rf8=L(()=>{n0();eX1=m({name:"AUTOMATION_TRIGGER_ROTATE_TOKEN",description:"Rotate the secret token for a webhook automation trigger. Returns a new token; the old token is revoked.",annotations:{title:"Rotate Webhook Token",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!1},inputSchema:pu.object({trigger_id:pu.string()}),outputSchema:pu.object({trigger_id:pu.string(),url:pu.string(),token:pu.string()}),handler:async($,Z)=>{G0(Z);let X=X0(Z);await Z.access.check();let Q=await Z.storage.automations.findTriggerById($.trigger_id);if(!Q)throw Error("Trigger not found");if(Q.type!=="webhook")throw Error("Trigger is not a webhook trigger");let Y=await Z.storage.automations.findById(Q.automation_id,X.id);if(!Y)throw Error("Automation not found");let G=Q.api_key_id,J=await Z.boundAuth.apiKey.create({name:`webhook:${Y.name}:${Q.id.slice(0,8)}`,permissions:{[nu(Q.id)]:["FIRE"]},metadata:{kind:"webhook_trigger",automation_id:Y.id,trigger_id:Q.id}});if(await Z.storage.automations.setTriggerApiKeyId(Q.id,J.id),G)try{await Z.boundAuth.apiKey.delete(G)}catch(K){console.warn(`[trigger-rotate] failed to delete old key ${G} for trigger ${Q.id}:`,K instanceof Error?K.message:K)}return{trigger_id:Q.id,url:uT0(Z.baseUrl,X.slug,Q.id),token:J.key}}})});import{z as tu}from"zod";var $Q1;var af8=L(()=>{u4();n0();$Q1=m({name:"AUTOMATION_RUN",description:"Manually trigger an automation run. Bypasses configured triggers.",annotations:{title:"Run Automation",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!1},inputSchema:tu.object({id:tu.string()}),outputSchema:tu.object({threadId:tu.string().optional(),error:tu.string().optional(),skipped:tu.string().optional()}),handler:async($,Z)=>{G0(Z);let X=X0(Z);if(await Z.access.check(),!Z.automationRunner)throw Error("Automation runner not available");let Q=D1(Z);if(!Q)throw Error("User ID not available");let Y=await Z.automationRunner($.id,X.id,Q);if(n1.capture({distinctId:Q,event:"automation_run",groups:{organization:X.id},properties:{organization_id:X.id,automation_id:$.id,thread_id:"taskId"in Y?Y.taskId:void 0,status:"skipped"in Y?"skipped":("error"in Y)?"error":"started",skip_reason:"skipped"in Y?Y.skipped:void 0,error_message:"error"in Y?Y.error:void 0}}),"skipped"in Y)return{skipped:Y.skipped};if("error"in Y)return{threadId:Y.taskId,error:Y.error};return{threadId:Y.taskId}}})});import{z as K7}from"zod";var es4=500,ZQ1;var sf8=L(()=>{h$();n0();ZQ1=m({name:"AUTOMATION_RUN_STATS",description:"Aggregate run counts (by status) and LLM token/cost totals for a single automation.",annotations:{title:"Automation Run Stats",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:K7.object({automation_id:K7.string(),startDate:K7.string().datetime().optional().describe("Filter runs at or after this ISO timestamp"),endDate:K7.string().datetime().optional().describe("Filter runs at or before this ISO timestamp")}),outputSchema:K7.object({runs:K7.object({total:K7.number(),completed:K7.number(),failed:K7.number(),inProgress:K7.number()}),usage:K7.object({calls:K7.number(),inputTokens:K7.number(),outputTokens:K7.number(),totalTokens:K7.number(),costUsd:K7.number(),sampledRuns:K7.number(),truncated:K7.boolean()})}),handler:async($,Z)=>{G0(Z);let X=X0(Z);if(await Z.access.check(),await nQ(),!await Z.storage.automations.findById($.automation_id,X.id))throw Error("Automation not found");let Y=await Z.storage.automations.getRunStats($.automation_id,X.id,{startDate:$.startDate,endDate:$.endDate}),G=await Z.storage.automations.listRunThreadIds($.automation_id,X.id,{startDate:$.startDate,endDate:$.endDate,limit:es4}),J={calls:0,inputTokens:0,outputTokens:0,totalTokens:0,costUsd:0,sampledRuns:G.length,truncated:Y.total>G.length};if(G.length>0){let K=await Z.storage.monitoring.queryThreadUsage({organizationId:X.id,connectionId:"decopilot",threadIds:G,startDate:$.startDate?new Date($.startDate):void 0,endDate:$.endDate?new Date($.endDate):void 0});for(let W of K)J.calls+=W.calls,J.inputTokens+=W.inputTokens,J.outputTokens+=W.outputTokens,J.totalTokens+=W.totalTokens,J.costUsd+=W.costUsd}return{runs:Y,usage:J}}})});var ef8=L(()=>{Bf8();Of8();Lf8();if8();nf8();tf8();of8();rf8();af8();sf8()});import{z as Tw}from"zod";var Ze4,Xe4,XQ1;var $b8=L(()=>{n0();Ze4=Tw.object({id:Tw.string().min(1)}),Xe4=Tw.object({user:Tw.object({id:Tw.string(),name:Tw.string(),email:Tw.string(),image:Tw.string().nullable()}).nullable()}),XQ1=m({name:"USER_GET",description:"Get a user's profile by ID. Only returns users who share an organization with the caller.",annotations:{title:"Get User",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:Ze4,outputSchema:Xe4,handler:async($,Z)=>{await Z.access.check(),G0(Z);let X=D1(Z);if(!X)throw Error("Authentication required");let Q=await Z.storage.users.findById($.id,X);if(!Q)return{user:null};return{user:{id:Q.id,name:Q.name,email:Q.email,image:Q.image??null}}}})});import{z as Qe4}from"zod";var Ye4,QQ1;var Zb8=L(()=>{n0();UQ();Ye4={tiers:{}},QQ1=m({name:"USER_MODEL_PREFERENCES_GET",description:"Get the calling user's personal chat tier \u2192 model overrides for the current organization. Absent tiers fall back to the org default.",annotations:{title:"Get User Model Preferences",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:Qe4.object({}),outputSchema:Yo,handler:async($,Z)=>{G0(Z),await Z.access.check();let X=X0(Z),Q=Z.auth?.user?.id;if(!Q)throw Error("No authenticated user in context");return await Z.storage.userModelPreferences.get(Q,X.id)??Ye4}})});function Ge4($,Z,X){let Q={};for(let Y of QL.options){let G=$[Y];if(!G||lK(X,G.keyId,G.modelId)){Q[Y]=G;continue}let J=Z?.[Y];if(!(J?.keyId===G.keyId&&J?.modelId===G.modelId))throw Error("Model not allowed for your role");Q[Y]=null}return Q}var YQ1;var Xb8=L(()=>{n0();UQ();xu();YQ1=m({name:"USER_MODEL_PREFERENCES_UPDATE",description:"Set the calling user's personal chat tier \u2192 model overrides for the current organization. Only affects this user's chats; the org default and every non-chat path (automations, background tools) are unchanged. Omit a tier (or set it null) to fall back to the org default. Models the caller's role is not allowed to use are rejected.",annotations:{title:"Update User Model Preferences",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:Yo,outputSchema:Yo,handler:async($,Z)=>{G0(Z),await Z.access.check();let X=X0(Z),Q=Z.auth?.user?.id;if(!Q)throw Error("No authenticated user in context");let[Y,G]=await Promise.all([dK(Z.db,X.id,X.role??Z.auth.user?.role),Z.storage.userModelPreferences.get(Q,X.id)]);return await Z.storage.userModelPreferences.upsert(Q,X.id,{tiers:Ge4($.tiers,G?.tiers,Y)})}})});var Qb8=L(()=>{$b8();Zb8();Xb8()});function W1($,Z,X,Q,Y){if(Q==="m")throw TypeError("Private method is not writable");if(Q==="a"&&!Y)throw TypeError("Private accessor was defined without a setter");if(typeof Z==="function"?$!==Z||!Y:!Z.has($))throw TypeError("Cannot write private member to an object whose class did not declare it");return Q==="a"?Y.call($,X):Y?Y.value=X:Z.set($,X),X}function n($,Z,X,Q){if(X==="a"&&!Q)throw TypeError("Private accessor was defined without a getter");if(typeof Z==="function"?$!==Z||!Q:!Z.has($))throw TypeError("Cannot read private member from an object whose class did not declare it");return X==="m"?Q:X==="a"?Q.call($):Q?Q.value:Z.get($)}var VY=()=>{};var ou=function(){let{crypto:$}=globalThis;if($?.randomUUID)return ou=$.randomUUID.bind($),$.randomUUID();let Z=new Uint8Array(1),X=$?()=>$.getRandomValues(Z)[0]:()=>Math.random()*255&255;return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,(Q)=>(+Q^X()&15>>+Q/4).toString(16))};function XJ($){return typeof $==="object"&&$!==null&&(("name"in $)&&$.name==="AbortError"||("message"in $)&&String($.message).includes("FetchRequestCanceledException"))}var Cv=($)=>{if($ instanceof Error)return $;if(typeof $==="object"&&$!==null){try{if(Object.prototype.toString.call($)==="[object Error]"){let Z=Error($.message,$.cause?{cause:$.cause}:{});if($.stack)Z.stack=$.stack;if($.cause&&!Z.cause)Z.cause=$.cause;if($.name)Z.name=$.name;return Z}}catch{}try{return Error(JSON.stringify($))}catch{}}return Error($)};var P1,q9,_X,DU,$s,lT0,Zs,Xs,Qs,Ys,Gs,Js,Ks,Ws;var v5=L(()=>{P1=class P1 extends Error{};q9=class q9 extends P1{constructor($,Z,X,Q,Y){super(`${q9.makeMessage($,Z,X)}`);this.status=$,this.headers=Q,this.requestID=Q?.get("request-id"),this.error=Z,this.type=Y??null}static makeMessage($,Z,X){let Q=Z?.message?typeof Z.message==="string"?Z.message:JSON.stringify(Z.message):Z?JSON.stringify(Z):X;if($&&Q)return`${$} ${Q}`;if($)return`${$} status code (no body)`;if(Q)return Q;return"(no status code or body)"}static generate($,Z,X,Q){if(!$||!Q)return new DU({message:X,cause:Cv(Z)});let Y=Z,G=Y?.error?.type;if($===400)return new Zs($,Y,X,Q,G);if($===401)return new Xs($,Y,X,Q,G);if($===403)return new Qs($,Y,X,Q,G);if($===404)return new Ys($,Y,X,Q,G);if($===409)return new Gs($,Y,X,Q,G);if($===422)return new Js($,Y,X,Q,G);if($===429)return new Ks($,Y,X,Q,G);if($>=500)return new Ws($,Y,X,Q,G);return new q9($,Y,X,Q,G)}};_X=class _X extends q9{constructor({message:$}={}){super(void 0,void 0,$||"Request was aborted.",void 0)}};DU=class DU extends q9{constructor({message:$,cause:Z}){super(void 0,void 0,$||"Connection error.",void 0);if(Z)this.cause=Z}};$s=class $s extends DU{constructor({message:$}={}){super({message:$??"Request timed out."})}};lT0=class lT0 extends P1{constructor($,{cause:Z}={}){super($??"Retryable error.");if(Z!==void 0)this.cause=Z}};Zs=class Zs extends q9{};Xs=class Xs extends q9{};Qs=class Qs extends q9{};Ys=class Ys extends q9{};Gs=class Gs extends q9{};Js=class Js extends q9{};Ks=class Ks extends q9{};Ws=class Ws extends q9{}});function dT0($){if(typeof $!=="object")return{};return $??{}}function JQ1($){if(!$)return!0;for(let Z in $)return!1;return!0}function Gb8($,Z){return Object.prototype.hasOwnProperty.call($,Z)}var We4,Yb8=($)=>{return We4.test($)},vX=($)=>(vX=Array.isArray,vX($)),GQ1,Jb8=($,Z)=>{if(typeof Z!=="number"||!Number.isInteger(Z))throw new P1(`${$} must be an integer`);if(Z<0)throw new P1(`${$} must be a positive integer`);return Z},Hs=($)=>{try{return JSON.parse($)}catch(Z){return}};var mK=L(()=>{v5();We4=/^[a-z][a-z0-9+.-]*:/i,GQ1=vX});var iK=($,Z)=>new Promise((X)=>{if(Z?.aborted)return X();let Q=()=>{clearTimeout(Y),X()},Y=setTimeout(()=>{Z?.removeEventListener("abort",Q),X()},$);Z?.addEventListener("abort",Q,{once:!0})});var QJ="0.105.0";function He4(){if(typeof Deno<"u"&&Deno.build!=null)return"deno";if(typeof EdgeRuntime<"u")return"edge";if(Object.prototype.toString.call(typeof globalThis.process<"u"?globalThis.process:0)==="[object process]")return"node";return"unknown"}function Ne4(){if(typeof navigator>"u"||!navigator)return null;let $=[{key:"edge",pattern:/Edge(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/MSIE(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/Trident(?:.*rv\:(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"chrome",pattern:/Chrome(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"firefox",pattern:/Firefox(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"safari",pattern:/(?:Version\W+(\d+)\.(\d+)(?:\.(\d+))?)?(?:\W+Mobile\S*)?\W+Safari/}];for(let{key:Z,pattern:X}of $){let Q=X.exec(navigator.userAgent);if(Q){let Y=Q[1]||0,G=Q[2]||0,J=Q[3]||0;return{browser:Z,version:`${Y}.${G}.${J}`}}}return null}var Fb8=()=>{return typeof window<"u"&&typeof window.document<"u"&&typeof navigator<"u"},Fe4=()=>{let $=He4();if($==="deno")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":QJ,"X-Stainless-OS":Wb8(Deno.build.os),"X-Stainless-Arch":Kb8(Deno.build.arch),"X-Stainless-Runtime":"deno","X-Stainless-Runtime-Version":typeof Deno.version==="string"?Deno.version:Deno.version?.deno??"unknown"};if(typeof EdgeRuntime<"u")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":QJ,"X-Stainless-OS":"Unknown","X-Stainless-Arch":`other:${EdgeRuntime}`,"X-Stainless-Runtime":"edge","X-Stainless-Runtime-Version":globalThis.process.version};if($==="node")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":QJ,"X-Stainless-OS":Wb8(globalThis.process.platform??"unknown"),"X-Stainless-Arch":Kb8(globalThis.process.arch??"unknown"),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":globalThis.process.version??"unknown"};let Z=Ne4();if(Z)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":QJ,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":`browser:${Z.browser}`,"X-Stainless-Runtime-Version":Z.version};return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":QJ,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}},Kb8=($)=>{if($==="x32")return"x32";if($==="x86_64"||$==="x64")return"x64";if($==="arm")return"arm";if($==="aarch64"||$==="arm64")return"arm64";if($)return`other:${$}`;return"unknown"},Wb8=($)=>{if($=$.toLowerCase(),$.includes("ios"))return"iOS";if($==="android")return"Android";if($==="darwin")return"MacOS";if($==="win32")return"Windows";if($==="freebsd")return"FreeBSD";if($==="openbsd")return"OpenBSD";if($==="linux")return"Linux";if($)return`Other:${$}`;return"Unknown"},Hb8,Fs=()=>{return Hb8??(Hb8=Fe4())};var mT0=()=>{};function Nb8(){if(typeof fetch<"u")return fetch;throw Error("`fetch` is not defined as a global; Either pass `fetch` to the client, `new Anthropic({ fetch })` or polyfill the global, `globalThis.fetch = fetch`")}function KQ1(...$){let Z=globalThis.ReadableStream;if(typeof Z>"u")throw Error("`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`");return new Z(...$)}function iT0($){let Z=Symbol.asyncIterator in $?$[Symbol.asyncIterator]():$[Symbol.iterator]();return KQ1({start(){},async pull(X){let{done:Q,value:Y}=await Z.next();if(Q)X.close();else X.enqueue(Y)},async cancel(){await Z.return?.()}})}function Ns($){if($[Symbol.asyncIterator])return $;let Z=$.getReader();return{async next(){try{let X=await Z.read();if(X?.done)Z.releaseLock();return X}catch(X){throw Z.releaseLock(),X}},async return(){let X=Z.cancel();return Z.releaseLock(),await X,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}async function Ub8($){if($===null||typeof $!=="object")return;if($[Symbol.asyncIterator]){await $[Symbol.asyncIterator]().return?.();return}let Z=$.getReader(),X=Z.cancel();Z.releaseLock(),await X}var Bb8=({headers:$,body:Z})=>{return{bodyHeaders:{"content-type":"application/json"},body:JSON.stringify(Z)}};var WQ1="RFC3986",HQ1=($)=>String($),FQ1,Ob8="RFC1738";var NQ1=L(()=>{FQ1={RFC1738:($)=>String($).replace(/%20/g,"+"),RFC3986:HQ1}});function wb8($){if(!$||typeof $!=="object")return!1;return!!($.constructor&&$.constructor.isBuffer&&$.constructor.isBuffer($))}function BQ1($,Z){if(vX($)){let X=[];for(let Q=0;Q<$.length;Q+=1)X.push(Z($[Q]));return X}return Z($)}var nT0=($,Z)=>(nT0=Object.hasOwn??Function.prototype.call.bind(Object.prototype.hasOwnProperty),nT0($,Z)),dH,UQ1=1024,Lb8=($,Z,X,Q,Y)=>{if($.length===0)return $;let G=$;if(typeof $==="symbol")G=Symbol.prototype.toString.call($);else if(typeof $!=="string")G=String($);if(X==="iso-8859-1")return escape(G).replace(/%u[0-9a-f]{4}/gi,function(K){return"%26%23"+parseInt(K.slice(2),16)+"%3B"});let J="";for(let K=0;K<G.length;K+=UQ1){let W=G.length>=UQ1?G.slice(K,K+UQ1):G,H=[];for(let F=0;F<W.length;++F){let N=W.charCodeAt(F);if(N===45||N===46||N===95||N===126||N>=48&&N<=57||N>=65&&N<=90||N>=97&&N<=122||Y===Ob8&&(N===40||N===41)){H[H.length]=W.charAt(F);continue}if(N<128){H[H.length]=dH[N];continue}if(N<2048){H[H.length]=dH[192|N>>6]+dH[128|N&63];continue}if(N<55296||N>=57344){H[H.length]=dH[224|N>>12]+dH[128|N>>6&63]+dH[128|N&63];continue}F+=1,N=65536+((N&1023)<<10|W.charCodeAt(F)&1023),H[H.length]=dH[240|N>>18]+dH[128|N>>12&63]+dH[128|N>>6&63]+dH[128|N&63]}J+=H.join("")}return J};var Db8=L(()=>{NQ1();mK();dH=(()=>{let $=[];for(let Z=0;Z<256;++Z)$.push("%"+((Z<16?"0":"")+Z.toString(16)).toUpperCase());return $})()});function Oe4($){return typeof $==="string"||typeof $==="number"||typeof $==="boolean"||typeof $==="symbol"||typeof $==="bigint"}function Pb8($,Z,X,Q,Y,G,J,K,W,H,F,N,U,B,O,w,D,E){let j=$,z=E,A=0,P=!1;while((z=z.get(OQ1))!==void 0&&!P){let d=z.get($);if(A+=1,typeof d<"u")if(d===A)throw RangeError("Cyclic object value");else P=!0;if(typeof z.get(OQ1)>"u")A=0}if(typeof H==="function")j=H(Z,j);else if(j instanceof Date)j=U?.(j);else if(X==="comma"&&vX(j))j=BQ1(j,function(d){if(d instanceof Date)return U?.(d);return d});if(j===null){if(G)return W&&!w?W(Z,kZ.encoder,D,"key",B):Z;j=""}if(Oe4(j)||wb8(j)){if(W){let d=w?Z:W(Z,kZ.encoder,D,"key",B);return[O?.(d)+"="+O?.(W(j,kZ.encoder,D,"value",B))]}return[O?.(Z)+"="+O?.(String(j))]}let I=[];if(typeof j>"u")return I;let M;if(X==="comma"&&vX(j)){if(w&&W)j=BQ1(j,W);M=[{value:j.length>0?j.join(",")||null:void 0}]}else if(vX(H))M=H;else{let d=Object.keys(j);M=F?d.sort(F):d}let q=K?String(Z).replace(/\./g,"%2E"):String(Z),S=Q&&vX(j)&&j.length===1?q+"[]":q;if(Y&&vX(j)&&j.length===0)return S+"[]";for(let d=0;d<M.length;++d){let f=M[d],y=typeof f==="object"&&typeof f.value<"u"?f.value:j[f];if(J&&y===null)continue;let o=N&&K?f.replace(/\./g,"%2E"):f,b=vX(j)?typeof X==="function"?X(S,o):S:S+(N?"."+o:"["+o+"]");E.set($,A);let r=new WeakMap;r.set(OQ1,E),zb8(I,Pb8(y,b,X,Q,Y,G,J,K,X==="comma"&&w&&vX(j)?null:W,H,F,N,U,B,O,w,D,r))}return I}function Le4($=kZ){if(typeof $.allowEmptyArrays<"u"&&typeof $.allowEmptyArrays!=="boolean")throw TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");if(typeof $.encodeDotInKeys<"u"&&typeof $.encodeDotInKeys!=="boolean")throw TypeError("`encodeDotInKeys` option can only be `true` or `false`, when provided");if($.encoder!==null&&typeof $.encoder<"u"&&typeof $.encoder!=="function")throw TypeError("Encoder has to be a function.");let Z=$.charset||kZ.charset;if(typeof $.charset<"u"&&$.charset!=="utf-8"&&$.charset!=="iso-8859-1")throw TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");let X=WQ1;if(typeof $.format<"u"){if(!nT0(FQ1,$.format))throw TypeError("Unknown format option provided.");X=$.format}let Q=FQ1[X],Y=kZ.filter;if(typeof $.filter==="function"||vX($.filter))Y=$.filter;let G;if($.arrayFormat&&$.arrayFormat in jb8)G=$.arrayFormat;else if("indices"in $)G=$.indices?"indices":"repeat";else G=kZ.arrayFormat;if("commaRoundTrip"in $&&typeof $.commaRoundTrip!=="boolean")throw TypeError("`commaRoundTrip` must be a boolean, or absent");let J=typeof $.allowDots>"u"?!!$.encodeDotInKeys===!0?!0:kZ.allowDots:!!$.allowDots;return{addQueryPrefix:typeof $.addQueryPrefix==="boolean"?$.addQueryPrefix:kZ.addQueryPrefix,allowDots:J,allowEmptyArrays:typeof $.allowEmptyArrays==="boolean"?!!$.allowEmptyArrays:kZ.allowEmptyArrays,arrayFormat:G,charset:Z,charsetSentinel:typeof $.charsetSentinel==="boolean"?$.charsetSentinel:kZ.charsetSentinel,commaRoundTrip:!!$.commaRoundTrip,delimiter:typeof $.delimiter>"u"?kZ.delimiter:$.delimiter,encode:typeof $.encode==="boolean"?$.encode:kZ.encode,encodeDotInKeys:typeof $.encodeDotInKeys==="boolean"?$.encodeDotInKeys:kZ.encodeDotInKeys,encoder:typeof $.encoder==="function"?$.encoder:kZ.encoder,encodeValuesOnly:typeof $.encodeValuesOnly==="boolean"?$.encodeValuesOnly:kZ.encodeValuesOnly,filter:Y,format:X,formatter:Q,serializeDate:typeof $.serializeDate==="function"?$.serializeDate:kZ.serializeDate,skipNulls:typeof $.skipNulls==="boolean"?$.skipNulls:kZ.skipNulls,sort:typeof $.sort==="function"?$.sort:null,strictNullHandling:typeof $.strictNullHandling==="boolean"?$.strictNullHandling:kZ.strictNullHandling}}function Ab8($,Z={}){let X=$,Q=Le4(Z),Y,G;if(typeof Q.filter==="function")G=Q.filter,X=G("",X);else if(vX(Q.filter))G=Q.filter,Y=G;let J=[];if(typeof X!=="object"||X===null)return"";let K=jb8[Q.arrayFormat],W=K==="comma"&&Q.commaRoundTrip;if(!Y)Y=Object.keys(X);if(Q.sort)Y.sort(Q.sort);let H=new WeakMap;for(let U=0;U<Y.length;++U){let B=Y[U];if(Q.skipNulls&&X[B]===null)continue;zb8(J,Pb8(X[B],B,K,W,Q.allowEmptyArrays,Q.strictNullHandling,Q.skipNulls,Q.encodeDotInKeys,Q.encode?Q.encoder:null,Q.filter,Q.sort,Q.allowDots,Q.serializeDate,Q.format,Q.formatter,Q.encodeValuesOnly,Q.charset,H))}let F=J.join(Q.delimiter),N=Q.addQueryPrefix===!0?"?":"";if(Q.charsetSentinel)if(Q.charset==="iso-8859-1")N+="utf8=%26%2310003%3B&";else N+="utf8=%E2%9C%93&";return F.length>0?N+F:""}var jb8,zb8=function($,Z){Array.prototype.push.apply($,vX(Z)?Z:[Z])},Eb8,kZ,OQ1;var Tb8=L(()=>{Db8();NQ1();mK();jb8={brackets($){return String($)+"[]"},comma:"comma",indices($,Z){return String($)+"["+Z+"]"},repeat($){return String($)}},kZ={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:Lb8,encodeValuesOnly:!1,format:WQ1,formatter:HQ1,indices:!1,serializeDate($){return(Eb8??(Eb8=Function.prototype.call.bind(Date.prototype.toISOString)))($)},skipNulls:!1,strictNullHandling:!1};OQ1={}});function Rb8($){return Ab8($,{arrayFormat:"brackets"})}var LQ1=L(()=>{Tb8()});function tT0($){if(!$)return;let Z;try{Z=new URL($)}catch(Q){throw new v$(`Invalid token endpoint base URL "${$}": ${Q}`)}if(Z.protocol==="https:")return;let X=Z.hostname.toLowerCase().replace(/^\[|\]$/g,"");if(Z.protocol==="http:"&&(X==="localhost"||X==="127.0.0.1"||X==="::1"))return;throw new v$(`Refusing to send credential over non-https token endpoint "${$}"`)}async function oT0($,Z){let X=await Ee4($),Q;try{Q=JSON.parse(X)}catch{throw new v$(`Token endpoint returned non-JSON response (status ${$.status})`,$.status,kY(X),Z)}if(!Q.access_token)throw new v$(`Token endpoint response missing access_token: ${JSON.stringify(kY(Q))}`,$.status,kY(Q),Z);if(Q.token_type&&Q.token_type.toLowerCase()!=="bearer")throw new v$(`Token endpoint response: unsupported token_type "${Q.token_type}" (want Bearer)`,$.status,kY(Q),Z);return Q}function kY($){if($==null)return $;if(typeof $==="string"){let Z;try{Z=JSON.parse($)}catch{if($.length<=wQ1)return $;return $.slice(0,wQ1)+`... <${$.length-wQ1} more chars>`}return JSON.stringify(kY(Z))}if(typeof $==="object"&&!Array.isArray($)){let Z={};for(let[X,Q]of Object.entries($))if(De4.has(X))Z[X]=Q;return Z}return null}async function rT0($,Z=(X)=>console.warn(`anthropic-sdk: ${X}`)){if(typeof process>"u"||process.platform==="win32")return;let X=await import("fs"),Q=$,Y;try{Q=await X.promises.realpath($),Y=await X.promises.stat(Q)}catch{return}let G=Y.mode&511;if(G&18)throw new v$(`Credentials file at ${Q} is group/world-writable (mode 0o${G.toString(8)}); this allows other local users to plant tokens. Run \`chmod 600 ${Q}\`.`);if(G&36)throw new v$(`Credentials file at ${Q} is group/world-readable (mode 0o${G.toString(8)}); run \`chmod 600 ${Q}\` before retrying.`);if(typeof process.getuid==="function"&&Y.uid!==process.getuid())Z(`credentials file at ${Q} is owned by uid ${Y.uid} (current process uid ${process.getuid()}); verify this is intentional.`)}async function aT0($,Z){let X=await import("fs"),Y=(await import("path")).dirname($);await X.promises.mkdir(Y,{recursive:!0,mode:448});let G=`${$}.${process.pid}.${Math.random().toString(36).slice(2)}.tmp`;try{let J=await X.promises.open(G,"w",384);try{await J.writeFile(JSON.stringify(Z,null,2)),await J.sync()}finally{await J.close()}await X.promises.rename(G,$)}catch(J){throw await X.promises.unlink(G).catch(()=>{}),J}try{let J=await X.promises.open(Y,"r");try{await J.sync()}finally{await J.close()}}catch{}}async function Ee4($){if(!$.body)return"";let Z=$.body.getReader(),X=[],Q=0;for(;;){let{done:G,value:J}=await Z.read();if(G)break;if(Q+J.length>Ib8){let K=Ib8-Q;if(K>0)X.push(J.subarray(0,K));await Z.cancel();break}X.push(J),Q+=J.length}let Y;if(X.length===1)Y=X[0];else{Y=new Uint8Array(X.reduce((J,K)=>J+K.length,0));let G=0;for(let J of X)Y.set(J,G),G+=J.length}return new TextDecoder("utf-8").decode(Y)}var qb8="urn:ietf:params:oauth:grant-type:jwt-bearer",Mb8="refresh_token",pT0="/v1/oauth/token",_v="oauth-2025-04-20",Vb8="oidc-federation-2026-04-01",kb8=120,ru=30,Sb8=5,Ib8=1048576,wQ1=2000,De4,v$;var au=L(()=>{v5();De4=new Set(["error","error_description","error_uri"]);v$=class v$ extends P1{constructor($,Z=null,X=null,Q=null){super($);this.statusCode=Z,this.body=X,this.requestId=Q}}});function nK(){return Math.floor(Date.now()/1000)}class DQ1{constructor($,Z){this.cached=null,this.pendingRefresh=null,this.nextForce=!1,this.lastAdvisoryError=0,this.provider=$,this.onAdvisoryRefreshError=Z}async getToken(){let $=this.nextForce;this.nextForce=!1;let Z=this.cached;if($||Z==null)return(await this.refresh($)).token;if(Z.expiresAt==null)return Z.token;let X=Z.expiresAt-nK();if(X>kb8)return Z.token;if(X>ru)return this.backgroundRefresh(),Z.token;return(await this.refresh()).token}invalidate(){this.cached=null,this.nextForce=!0}refresh($=!1){if(this.pendingRefresh&&!$)return this.pendingRefresh;return this.doRefresh($)}backgroundRefresh(){if(this.pendingRefresh)return;if(nK()-this.lastAdvisoryError<Sb8)return;this.doRefresh().catch(($)=>{this.lastAdvisoryError=nK(),this.onAdvisoryRefreshError?.($)})}doRefresh($=!1){return this.pendingRefresh=this.provider($?{forceRefresh:!0}:void 0).then((Z)=>{return this.cached=Z,this.pendingRefresh=null,Z},(Z)=>{throw this.pendingRefresh=null,Z}),this.pendingRefresh}}var Cb8=L(()=>{au()});var H4=($)=>{if(typeof globalThis.process<"u")return globalThis.process.env?.[$]?.trim()||void 0;if(typeof globalThis.Deno<"u")return globalThis.Deno.env?.get?.($)?.trim()||void 0;return};function xb8($){let Z=0;for(let Y of $)Z+=Y.length;let X=new Uint8Array(Z),Q=0;for(let Y of $)X.set(Y,Q),Q+=Y.length;return X}function su($){let Z;return(_b8??(Z=new globalThis.TextEncoder,_b8=Z.encode.bind(Z)))($)}function EQ1($){let Z;return(vb8??(Z=new globalThis.TextDecoder,vb8=Z.decode.bind(Z)))($)}var _b8,vb8;var fb8=L(()=>{v5()});function Us(){}function sT0($,Z,X){if(!Z||eT0[$]>eT0[X])return Us;else return Z[$].bind(Z)}function zQ1($,Z){let X=bb8.get($);if(X&&X[0]===Z)return X[1];let Q={error:sT0("error",$,Z),warn:sT0("warn",$,Z),info:sT0("info",$,Z),debug:sT0("debug",$,Z)};return bb8.set($,[Z,Q]),Q}function t4($){let Z=$.logger,X=$.logLevel??"off";if(!Z)return je4;return zQ1(Z,X)}function gb8(){let $=H4("ANTHROPIC_LOG");if(!jQ1||$!==yb8)yb8=$,jQ1=zQ1(console,$20($,"process.env['ANTHROPIC_LOG']",zQ1(console,Bs))??Bs);return jQ1}var Bs="warn",eT0,$20=($,Z,X)=>{if(!$)return;if(Gb8(eT0,$))return $;X.warn(`${Z} was set to ${JSON.stringify($)}, expected one of ${JSON.stringify(Object.keys(eT0))}`);return},je4,bb8,yb8,jQ1,mH=($)=>{if($.options)$.options={...$.options},delete $.options.headers;if($.headers)$.headers=Object.fromEntries(($.headers instanceof Headers?[...$.headers]:Object.entries($.headers)).map(([Z,X])=>[Z,Z.toLowerCase()==="authorization"||Z.toLowerCase()==="api-key"||Z.toLowerCase()==="x-api-key"||Z.toLowerCase()==="cookie"||Z.toLowerCase()==="set-cookie"?"***":X]));if("retryOfRequestLogID"in $){if($.retryOfRequestLogID)$.retryOf=$.retryOfRequestLogID;delete $.retryOfRequestLogID}return $};var iH=L(()=>{mK();eT0={off:0,error:200,warn:300,info:400,debug:500};je4={error:Us,warn:Us,info:Us,debug:Us},bb8=new WeakMap});var PQ1=L(()=>{mK();fb8();iH();LQ1()});function hb8($){if(!$)throw Error("profile name is empty");if($==="."||$==="..")throw Error(`profile name "${$}" is not allowed`);if($.includes("/")||$.includes("\\"))throw Error(`profile name "${$}" must not contain path separators`);if(!ze4.test($))throw Error(`profile name "${$}" contains disallowed characters (allowed: letters, digits, '_', '.', '-')`)}var Z20="1.0",ze4,ub8=async($)=>{var Z,X;let Q=await AQ1();if(Q===null)return null;let Y=$??await lb8();if(Y===null)return null;hb8(Y);let G=await import("fs"),K=(await import("path")).join(Q,"configs",`${Y}.json`),W;try{W=await G.promises.readFile(K,"utf-8")}catch(N){if(N?.code!=="ENOENT")throw Error(`failed to read config file ${K}: ${N}`);W=null}if(W===null){let N=H4("ANTHROPIC_ORGANIZATION_ID"),U=H4("ANTHROPIC_IDENTITY_TOKEN_FILE"),B=H4("ANTHROPIC_FEDERATION_RULE_ID");if(B&&N)return{fromFile:!1,config:{organization_id:N,workspace_id:H4("ANTHROPIC_WORKSPACE_ID"),base_url:H4("ANTHROPIC_BASE_URL"),authentication:{type:"oidc_federation",federation_rule_id:B,service_account_id:H4("ANTHROPIC_SERVICE_ACCOUNT_ID"),identity_token:U?{source:"file",path:U}:void 0,scope:H4("ANTHROPIC_SCOPE")}}};return null}let H;try{H=JSON.parse(W)}catch(N){throw Error(`failed to parse config file ${K}: ${N}`)}if(!H.authentication)throw Error(`config file ${K} is missing "authentication"`);let F=H.authentication.type;if(F!=="oidc_federation"&&F!=="user_oauth")throw Error(`authentication.type "${F}" is not a known authentication type`);if(H.organization_id??(H.organization_id=H4("ANTHROPIC_ORGANIZATION_ID")),H.workspace_id??(H.workspace_id=H4("ANTHROPIC_WORKSPACE_ID")),H.base_url??(H.base_url=H4("ANTHROPIC_BASE_URL")),(Z=H.authentication).scope??(Z.scope=H4("ANTHROPIC_SCOPE")),H.authentication.type==="oidc_federation"){if(!H.authentication.identity_token){let N=H4("ANTHROPIC_IDENTITY_TOKEN_FILE");if(N)H.authentication.identity_token={source:"file",path:N}}if(!H.authentication.federation_rule_id)H.authentication.federation_rule_id=H4("ANTHROPIC_FEDERATION_RULE_ID")??"";(X=H.authentication).service_account_id??(X.service_account_id=H4("ANTHROPIC_SERVICE_ACCOUNT_ID"))}return{config:H,fromFile:!0}},cb8=async($,Z)=>{if($?.authentication.credentials_path)return $.authentication.credentials_path;let X=await AQ1();if(!X)return null;let Q=Z??await lb8();if(!Q)return null;return hb8(Q),(await import("path")).join(X,"credentials",`${Q}.json`)},AQ1=async()=>{if(!Pe4())return null;let $=await import("path"),Z=H4("ANTHROPIC_CONFIG_DIR");if(Z)return Z;if(Fs()["X-Stainless-OS"]==="Windows"){let G=H4("APPDATA");if(G)return $.join(G,"Anthropic");let J=H4("USERPROFILE");if(J)return $.join(J,"AppData","Roaming","Anthropic");return null}let Q=H4("XDG_CONFIG_HOME");if(Q)return $.join(Q,"anthropic");let Y=H4("HOME");if(Y)return $.join(Y,".config","anthropic");return null},Pe4=()=>{let $=Fs()["X-Stainless-Runtime"];return $==="node"||$==="deno"},lb8=async()=>{let $=await AQ1();if(!$)return null;let Z=H4("ANTHROPIC_PROFILE");if(Z)return Z;let X=await import("fs"),Y=(await import("path")).join($,"active_config");try{return(await X.promises.readFile(Y,"utf-8")).trim()||"default"}catch(G){if(G?.code!=="ENOENT")throw Error(`failed to read ${Y}: ${G}`);return"default"}};var TQ1=L(()=>{mT0();PQ1();ze4=/^[A-Za-z0-9_.-]+$/});function RQ1($){if(!$)throw new P1("Identity token file path is empty");return async()=>{let Z=await import("fs"),X;try{X=await Z.promises.readFile($,"utf-8")}catch(Y){throw new P1(`Failed to read identity token file at ${$}: ${Y}`)}let Q=X.trim();if(!Q)throw new P1(`Identity token file at ${$} is empty`);return Q}}function db8($){if(!$)throw new P1("Identity token value is empty");return()=>$}var mb8=L(()=>{v5()});function ib8($){return async()=>{tT0($.baseURL);let Z=await $.identityTokenProvider();if(Z.length>16384)throw new v$(`Identity token is ${Math.ceil(Z.length/1024)} KiB, exceeds the 16 KiB assertion limit`);let X={grant_type:qb8,assertion:Z,federation_rule_id:$.federationRuleId,organization_id:$.organizationId};if($.serviceAccountId)X.service_account_id=$.serviceAccountId;if($.workspaceId)X.workspace_id=$.workspaceId;let Q=`${$.baseURL}${pT0}`,Y;try{Y=await $.fetch(Q,{method:"POST",headers:{"Content-Type":"application/json","anthropic-beta":`${_v},${Vb8}`,"User-Agent":$.userAgent||`anthropic-sdk-typescript/${QJ} oidcFederationProvider`},body:JSON.stringify(X)})}catch(W){throw new v$(`Failed to reach token endpoint ${Q}: ${W}`)}let G=Y.headers.get("Request-Id");if(!Y.ok){let W=await Y.text().catch(()=>""),H=kY(W),F="";if(Y.status===401)F=` Ensure your federation rule matches your identity token. ${$.workspaceId?"":"If your federation rule is scoped to multiple workspaces, set the ANTHROPIC_WORKSPACE_ID environment variable, the 'workspace_id' config key, or the `workspaceId` option. "}View your authentication events in the Workload identity page of Claude Console for more details.`;throw new v$(`Token exchange failed with status ${Y.status}${G?` (request-id ${G})`:""}: ${H}${F}`,Y.status,H,G)}let J=await oT0(Y,G),K=Number(J.expires_in);if(!Number.isFinite(K))throw new v$(`Token endpoint response missing required fields: ${JSON.stringify(kY(J))}`,Y.status,kY(J),G);return{token:J.access_token,expiresAt:nK()+K}}}var nb8=L(()=>{au()});function pb8($){return async(Z)=>{let X=await import("fs");await rT0($.credentialsPath,$.onSafetyWarning);let Q;try{Q=await X.promises.readFile($.credentialsPath,"utf-8")}catch(D){throw new v$(`Credentials file not found at ${$.credentialsPath}: ${D}`)}let Y;try{Y=JSON.parse(Q)}catch(D){throw new v$(`Credentials file at ${$.credentialsPath} is not valid JSON: ${D}`)}let G=Y.access_token;if(!G)throw new v$(`Credentials file at ${$.credentialsPath} must include 'access_token'`);let J=Y.expires_at;if(!Z?.forceRefresh&&(J==null||nK()<J-ru))return{token:G,expiresAt:J??null};let K=Y.refresh_token;if(!$.clientId||!K)throw new v$(`Access token at ${$.credentialsPath} has expired and no refresh is available (client_id ${$.clientId?"set":"empty"}, refresh_token ${K?"set":"empty"})`);tT0($.baseURL);let W={grant_type:Mb8,refresh_token:K,client_id:$.clientId},H=`${$.baseURL}${pT0}`,F;try{F=await $.fetch(H,{method:"POST",headers:{"Content-Type":"application/json","anthropic-beta":_v,"User-Agent":$.userAgent||`anthropic-sdk-typescript/${QJ} userOAuthProvider`},body:JSON.stringify(W)})}catch(D){throw new v$(`User OAuth refresh failed to reach token endpoint: ${D}`)}let N=F.headers.get("Request-Id");if(!F.ok){let D=await F.text().catch(()=>"");throw new v$(`User OAuth refresh failed (HTTP ${F.status}): ${kY(D)}`,F.status,kY(D),N)}let U=await oT0(F,N),B=Number(U.expires_in);if(!Number.isFinite(B))throw new v$(`User OAuth refresh response missing or invalid expires_in: ${JSON.stringify(kY(U))}`,F.status,kY(U),N);let O=nK()+B,w=U.refresh_token||K;return await aT0($.credentialsPath,{...Y,version:Z20,type:"oauth_token",access_token:U.access_token,expires_at:O,refresh_token:w}),{token:U.access_token,expiresAt:O}}}var tb8=L(()=>{TQ1();au()});function IQ1($,Z){let X=$.authentication.credentials_path??null,Q=($.base_url||Z.baseURL).replace(/\/+$/,""),Y=Ae4($,X,Q,Z),G={};if($.workspace_id&&$.authentication.type==="user_oauth")G["anthropic-workspace-id"]=$.workspace_id;return{provider:Y,extraHeaders:G,baseURL:$.base_url||void 0}}async function ob8($,Z){let X=await ub8(Z);if(!X)return null;let{config:Q,fromFile:Y}=X,G=Q.authentication.credentials_path||!Y?Q:{...Q,authentication:{...Q.authentication,credentials_path:await cb8(Q,Z)??void 0}};return IQ1(G,$)}function Ae4($,Z,X,Q){switch($.authentication.type){case"oidc_federation":{let Y=$.authentication,G=Te4(Y);if(!G)throw new v$("oidc_federation config requires an identity token (set authentication.identity_token, ANTHROPIC_IDENTITY_TOKEN_FILE, or ANTHROPIC_IDENTITY_TOKEN)");if(!Y.federation_rule_id)throw new v$("oidc_federation config requires 'federation_rule_id'. Set it in authentication.federation_rule_id in your profile, or via ANTHROPIC_FEDERATION_RULE_ID (profile takes precedence).");if(!$.organization_id)throw new v$("oidc_federation config requires organization_id (set ANTHROPIC_ORGANIZATION_ID or config.organization_id)");let J=ib8({identityTokenProvider:G,federationRuleId:Y.federation_rule_id,organizationId:$.organization_id,serviceAccountId:Y.service_account_id,workspaceId:$.workspace_id,baseURL:X,fetch:Q.fetch,userAgent:Q.userAgent});if(Z)return Re4(J,Z,Q.onCacheWriteError,Q.onSafetyWarning);return J}case"user_oauth":{if(!Z)throw new v$("user_oauth config requires authentication.credentials_path (or load via a profile so it defaults to <config_dir>/credentials/<profile>.json)");return pb8({credentialsPath:Z,clientId:$.authentication.client_id,baseURL:X,fetch:Q.fetch,userAgent:Q.userAgent,onSafetyWarning:Q.onSafetyWarning})}default:{let Y=$.authentication.type;throw new v$(`authentication.type "${Y}" is not a known authentication type`)}}}function Te4($){if($.identity_token){let Q=$.identity_token.source;if(Q!=="file")throw new v$(`identity_token.source "${Q}" is not supported by this SDK version (only "file")`);if(!$.identity_token.path)throw new v$('identity_token.source "file" requires a non-empty path');return RQ1($.identity_token.path)}let Z=H4("ANTHROPIC_IDENTITY_TOKEN_FILE");if(Z)return RQ1(Z);let X=H4("ANTHROPIC_IDENTITY_TOKEN");if(X)return db8(X);return null}function Re4($,Z,X,Q){return async(Y)=>{let G=await import("fs");await rT0(Z,Q);let J;try{let W=await G.promises.readFile(Z,"utf-8");J=JSON.parse(W);let H=J?.access_token;if(H&&!Y?.forceRefresh){let F=J?.expires_at;if(F==null||nK()<F-ru)return{token:H,expiresAt:F??null}}}catch(W){if(W?.code!=="ENOENT"&&!(W instanceof SyntaxError))X?.(W)}let K=await $(Y);try{await aT0(Z,{...J??{},version:Z20,type:"oauth_token",access_token:K.token,expires_at:K.expiresAt})}catch(W){X?.(W)}return K}}var rb8=L(()=>{TQ1();au();mb8();nb8();tb8()});class Rw{constructor(){xG.set(this,void 0),fG.set(this,void 0),W1(this,xG,new Uint8Array,"f"),W1(this,fG,null,"f")}decode($){if($==null)return[];let Z=$ instanceof ArrayBuffer?new Uint8Array($):typeof $==="string"?su($):$;W1(this,xG,xb8([n(this,xG,"f"),Z]),"f");let X=[],Q;while((Q=Ie4(n(this,xG,"f"),n(this,fG,"f")))!=null){if(Q.carriage&&n(this,fG,"f")==null){W1(this,fG,Q.index,"f");continue}if(n(this,fG,"f")!=null&&(Q.index!==n(this,fG,"f")+1||Q.carriage)){X.push(EQ1(n(this,xG,"f").subarray(0,n(this,fG,"f")-1))),W1(this,xG,n(this,xG,"f").subarray(n(this,fG,"f")),"f"),W1(this,fG,null,"f");continue}let Y=n(this,fG,"f")!==null?Q.preceding-1:Q.preceding,G=EQ1(n(this,xG,"f").subarray(0,Y));X.push(G),W1(this,xG,n(this,xG,"f").subarray(Q.index),"f"),W1(this,fG,null,"f")}return X}flush(){if(!n(this,xG,"f").length)return[];return this.decode(`
2918
2918
  `)}}function Ie4($,Z){for(let Y=Z??0;Y<$.length;Y++){if($[Y]===10)return{preceding:Y,index:Y+1,carriage:!1};if($[Y]===13)return{preceding:Y,index:Y+1,carriage:!0}}return null}function ab8($){for(let Q=0;Q<$.length-1;Q++){if($[Q]===10&&$[Q+1]===10)return Q+2;if($[Q]===13&&$[Q+1]===13)return Q+2;if($[Q]===13&&$[Q+1]===10&&Q+3<$.length&&$[Q+2]===13&&$[Q+3]===10)return Q+4}return-1}var xG,fG;var qQ1=L(()=>{VY();xG=new WeakMap,fG=new WeakMap;Rw.NEWLINE_CHARS=new Set([`
2919
2919
  `,"\r"]);Rw.NEWLINE_REGEXP=/\r\n|[\n\r]/g});async function*sb8($,Z){if(!$.body){if(Z.abort(),typeof globalThis.navigator<"u"&&globalThis.navigator.product==="ReactNative")throw new P1("The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/latest/sdk/expo/#expofetch-api");throw new P1("Attempted to iterate over a response with no body")}let X=new eb8,Q=new Rw,Y=Ns($.body);for await(let G of qe4(Y))for(let J of Q.decode(G)){let K=X.decode(J);if(K)yield K}for(let G of Q.flush()){let J=X.decode(G);if(J)yield J}}async function*qe4($){let Z=new Uint8Array;for await(let X of $){if(X==null)continue;let Q=X instanceof ArrayBuffer?new Uint8Array(X):typeof X==="string"?su(X):X,Y=new Uint8Array(Z.length+Q.length);Y.set(Z),Y.set(Q,Z.length),Z=Y;let G;while((G=ab8(Z))!==-1)yield Z.slice(0,G),Z=Z.slice(G)}if(Z.length>0)yield Z}class eb8{constructor(){this.event=null,this.data=[],this.chunks=[]}decode($){if($.endsWith("\r"))$=$.substring(0,$.length-1);if(!$){if(!this.event&&!this.data.length)return null;let Y={event:this.event,data:this.data.join(`
2920
2920
  `),raw:this.chunks};return this.event=null,this.data=[],this.chunks=[],Y}if(this.chunks.push($),$.startsWith(":"))return null;let[Z,X,Q]=Me4($,":");if(Q.startsWith(" "))Q=Q.substring(1);if(Z==="event")this.event=Q;else if(Z==="data")this.data.push(Q);return null}}function Me4($,Z){let X=$.indexOf(Z);if(X!==-1)return[$.substring(0,X),Z,$.substring(X+Z.length)];return[$,"",""]}var Os,xX;var Ls=L(()=>{VY();v5();qQ1();mK();iH();v5();xX=class xX{constructor($,Z,X){this.iterator=$,Os.set(this,void 0),this.controller=Z,W1(this,Os,X,"f")}static rawEvents($,Z=new AbortController){return sb8($,Z)}static fromSSEResponse($,Z,X){let Q=!1,Y=X?t4(X):console;async function*G(){if(Q)throw new P1("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");Q=!0;let J=!1;try{for await(let K of sb8($,Z)){if(K.event==="completion")try{yield JSON.parse(K.data)}catch(W){throw Y.error("Could not parse message into JSON:",K.data),Y.error("From chunk:",K.raw),W}if(K.event==="message_start"||K.event==="message_delta"||K.event==="message_stop"||K.event==="content_block_start"||K.event==="content_block_delta"||K.event==="content_block_stop"||K.event==="message"||K.event==="user.message"||K.event==="user.interrupt"||K.event==="user.tool_confirmation"||K.event==="user.custom_tool_result"||K.event==="user.tool_result"||K.event==="agent.message"||K.event==="agent.thinking"||K.event==="agent.tool_use"||K.event==="agent.tool_result"||K.event==="agent.mcp_tool_use"||K.event==="agent.mcp_tool_result"||K.event==="agent.custom_tool_use"||K.event==="agent.thread_context_compacted"||K.event==="session.status_running"||K.event==="session.status_idle"||K.event==="session.status_rescheduled"||K.event==="session.status_terminated"||K.event==="session.error"||K.event==="session.deleted"||K.event==="session.updated"||K.event==="span.model_request_start"||K.event==="span.model_request_end"||K.event==="span.outcome_evaluation_start"||K.event==="span.outcome_evaluation_ongoing"||K.event==="span.outcome_evaluation_end"||K.event==="user.define_outcome"||K.event==="agent.thread_message_received"||K.event==="agent.thread_message_sent"||K.event==="agent.session_thread_message_received"||K.event==="agent.session_thread_message_sent"||K.event==="session.thread_created"||K.event==="session.thread_status_created"||K.event==="session.thread_status_running"||K.event==="session.thread_status_idle"||K.event==="session.thread_status_rescheduled"||K.event==="session.thread_status_terminated")try{yield JSON.parse(K.data)}catch(W){throw Y.error("Could not parse message into JSON:",K.data),Y.error("From chunk:",K.raw),W}if(K.event==="ping")continue;if(K.event==="error"){let W=Hs(K.data)??K.data,H=W?.error?.type;throw new q9(void 0,W,void 0,$.headers,H)}}J=!0}catch(K){if(XJ(K))return;throw K}finally{if(!J)Z.abort()}}return new xX(G,Z,X)}static fromReadableStream($,Z,X){let Q=!1;async function*Y(){let J=new Rw,K=Ns($);for await(let W of K)for(let H of J.decode(W))yield H;for(let W of J.flush())yield W}async function*G(){if(Q)throw new P1("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");Q=!0;let J=!1;try{for await(let K of Y()){if(J)continue;if(K)yield JSON.parse(K)}J=!0}catch(K){if(XJ(K))return;throw K}finally{if(!J)Z.abort()}}return new xX(G,Z,X)}[(Os=new WeakMap,Symbol.asyncIterator)](){return this.iterator()}tee(){let $=[],Z=[],X=this.iterator(),Q=(Y)=>{return{next:()=>{if(Y.length===0){let G=X.next();$.push(G),Z.push(G)}return Y.shift()}}};return[new xX(()=>Q($),this.controller,n(this,Os,"f")),new xX(()=>Q(Z),this.controller,n(this,Os,"f"))]}toReadableStream(){let $=this,Z;return KQ1({async start(){Z=$[Symbol.asyncIterator]()},async pull(X){try{let{value:Q,done:Y}=await Z.next();if(Y)return X.close();let G=su(JSON.stringify(Q)+`