decocms 4.253.1 → 4.253.2

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-WVgkyww-.js → AlertCircle-BYvQDEJ0.js} +1 -1
  2. package/dist/client/assets/{AreaChart--hq_VOjD.js → AreaChart-DMcwZhe6.js} +1 -1
  3. package/dist/client/assets/{ArrowLeft-BxUhb4Se.js → ArrowLeft-B-9nUwLX.js} +1 -1
  4. package/dist/client/assets/{ArrowUp-CZdNU8ts.js → ArrowUp-B1UtGT45.js} +1 -1
  5. package/dist/client/assets/{Check-DGXd05kS.js → Check-Cu-Awg_S.js} +1 -1
  6. package/dist/client/assets/{CheckCircle-aE2qJBCG.js → CheckCircle-C4O_1HW1.js} +1 -1
  7. package/dist/client/assets/{ChevronDown-3lnlPbk4.js → ChevronDown-D1GCQiij.js} +1 -1
  8. package/dist/client/assets/{ChevronRight-CNiBUxsz.js → ChevronRight-NcrFTq4Q.js} +1 -1
  9. package/dist/client/assets/{ChevronSelectorVertical-HlYfGNJe.js → ChevronSelectorVertical-DhZiWWo6.js} +1 -1
  10. package/dist/client/assets/{ChevronUp-BY_K4ldy.js → ChevronUp-CrheBWdX.js} +1 -1
  11. package/dist/client/assets/{Copy01-BfeJvkDc.js → Copy01-DwPzyMCP.js} +1 -1
  12. package/dist/client/assets/{CreditCard01-CxB2LiPJ.js → CreditCard01-CqBwox93.js} +1 -1
  13. package/dist/client/assets/{DotsVertical-C-NN--IL.js → DotsVertical-Dnc_qefX.js} +1 -1
  14. package/dist/client/assets/{Download01-BZZSM15O.js → Download01-yzTeB8lR.js} +1 -1
  15. package/dist/client/assets/{Eye-DWpSVWon.js → Eye-rZWcM_sl.js} +1 -1
  16. package/dist/client/assets/{FilterLines-BrKrVblo.js → FilterLines-BMCdm4O2.js} +1 -1
  17. package/dist/client/assets/{Globe01-C9-vpiiM.js → Globe01-CojEB28p.js} +1 -1
  18. package/dist/client/assets/{Globe04-CQw8Smi4.js → Globe04-DohkS1yI.js} +1 -1
  19. package/dist/client/assets/{HardDrive-Bh6R5v6K.js → HardDrive-WahlW5wX.js} +1 -1
  20. package/dist/client/assets/{Key01-CcQvBprZ.js → Key01-Bx4K_S3Q.js} +1 -1
  21. package/dist/client/assets/{LinkExternal01-DCpzjKFq.js → LinkExternal01-CtNOOeZL.js} +1 -1
  22. package/dist/client/assets/{LockUnlocked01-C6TS010c.js → LockUnlocked01-D_Q5BYhU.js} +1 -1
  23. package/dist/client/assets/{LogOut01-BTljGEAd.js → LogOut01-BZABwyef.js} +1 -1
  24. package/dist/client/assets/{Monitor01-h_s65iJ-.js → Monitor01-7UTn7zVa.js} +1 -1
  25. package/dist/client/assets/{Palette-BiBHbwyR.js → Palette-BoChqeld.js} +1 -1
  26. package/dist/client/assets/{Play-DsQCAyIU.js → Play-DNBU5rzE.js} +1 -1
  27. package/dist/client/assets/{Plus-B5kR65gK.js → Plus-8T2afHEs.js} +1 -1
  28. package/dist/client/assets/{SearchLg-BGQlOmON.js → SearchLg-6rfLixx5.js} +1 -1
  29. package/dist/client/assets/{SearchMd-BfrtiC1y.js → SearchMd-0vzqE1Pd.js} +1 -1
  30. package/dist/client/assets/{Settings02-BRvjIo21.js → Settings02-KfyhGAo3.js} +1 -1
  31. package/dist/client/assets/{Share07-D09Unp6C.js → Share07-BTlsc7Ng.js} +1 -1
  32. package/dist/client/assets/{Shield01-CFCv8IWj.js → Shield01-CPg5EmjN.js} +1 -1
  33. package/dist/client/assets/{Stars01-CVPGmDt0.js → Stars01-CV6o6WbI.js} +1 -1
  34. package/dist/client/assets/{Stars02-fp5iftV7.js → Stars02-Do7POkWd.js} +1 -1
  35. package/dist/client/assets/{Sun-CowfpjiJ.js → Sun-knqgcKen.js} +1 -1
  36. package/dist/client/assets/{SwitchHorizontal01-Bjp-h_7G.js → SwitchHorizontal01-dwH3CFZl.js} +1 -1
  37. package/dist/client/assets/{Tool01-BUOkQPFJ.js → Tool01-CawhE5Vv.js} +1 -1
  38. package/dist/client/assets/{Tool02-DD3D4IqG.js → Tool02-DUb3PZH0.js} +1 -1
  39. package/dist/client/assets/{Trash01-p21FTL5d.js → Trash01-CZV6hVoi.js} +1 -1
  40. package/dist/client/assets/{TrendUp01-ChLbiU8r.js → TrendUp01-Cp69MjT_.js} +1 -1
  41. package/dist/client/assets/{Upload01-BqSLDTv6.js → Upload01-AWrvzckN.js} +1 -1
  42. package/dist/client/assets/{User01-CUFiV8Kn.js → User01-DLfObf45.js} +1 -1
  43. package/dist/client/assets/{UserSquare-DJrPVFCb.js → UserSquare-BjlZKgC9.js} +1 -1
  44. package/dist/client/assets/{Users01-OA638fk5.js → Users01-CQ3eFXvg.js} +1 -1
  45. package/dist/client/assets/{Users03-DN5PYUqg.js → Users03-DgZSfmdp.js} +1 -1
  46. package/dist/client/assets/{XCircle-ByKBvISP.js → XCircle-BpPG80mN.js} +1 -1
  47. package/dist/client/assets/{XClose-Br6NElcs.js → XClose-DW7idjn0.js} +1 -1
  48. package/dist/client/assets/{YAxis-CGHW7jKJ.js → YAxis-Da2rtvB9.js} +1 -1
  49. package/dist/client/assets/{Zap-DDpqJ8OO.js → Zap-Dzj3-lys.js} +1 -1
  50. package/dist/client/assets/{ZapSquare-BCW4svUL.js → ZapSquare-Bs2nDJX-.js} +1 -1
  51. package/dist/client/assets/{access-gate-CSIVHvx_.js → access-gate-DZ_-IWJN.js} +1 -1
  52. package/dist/client/assets/{agent-icon-BLP-aNUm.js → agent-icon-xLXU6rvd.js} +1 -1
  53. package/dist/client/assets/{agents-list-BBdowsyi.js → agents-list-CE_lUbRY.js} +1 -1
  54. package/dist/client/assets/{ai-providers-CvEf0QOg.js → ai-providers-B5hVpeDw.js} +1 -1
  55. package/dist/client/assets/{alert-s-k7M4W4.js → alert-CnmxLYRw.js} +1 -1
  56. package/dist/client/assets/{alert-dialog-BY2sRyvm.js → alert-dialog-CvsZ6guw.js} +1 -1
  57. package/dist/client/assets/{api-keys-vTj6zPjK.js → api-keys-D72J-m-j.js} +1 -1
  58. package/dist/client/assets/{app-editor-DVHLIkTs.js → app-editor-CClK5ocS.js} +1 -1
  59. package/dist/client/assets/{auth-r_0ovuYc.js → auth-1R6gk2tO.js} +1 -1
  60. package/dist/client/assets/{auth-catchall-2ZHWcNPT.js → auth-catchall-DHLFLTCH.js} +1 -1
  61. package/dist/client/assets/{auth-entry-Ba_OzsXk.js → auth-entry-CUwr4ac9.js} +1 -1
  62. package/dist/client/assets/{auth-split-layout-CuPoHlK-.js → auth-split-layout-Cx8b5rv5.js} +1 -1
  63. package/dist/client/assets/{authenticate-and-persist-oauth-Cp8P-_QC.js → authenticate-and-persist-oauth-CZZKLfUR.js} +1 -1
  64. package/dist/client/assets/{automation-list-row-Cyj-mvIt.js → automation-list-row-DuyceG26.js} +1 -1
  65. package/dist/client/assets/{automation-runs-CZolIdIm.js → automation-runs-DP3JWssQ.js} +1 -1
  66. package/dist/client/assets/{automations-BUWQZUHr.js → automations-DbKB4JrO.js} +1 -1
  67. package/dist/client/assets/{avatar-Czz8Ppg5.js → avatar-DPXyNBP8.js} +1 -1
  68. package/dist/client/assets/{badge-Dtec_4Os.js → badge-CGCuo_-5.js} +1 -1
  69. package/dist/client/assets/{block-document-jniNIToV.js → block-document-CMd9Eo96.js} +1 -1
  70. package/dist/client/assets/{buckets-BL5CMeQc.js → buckets-DljZRfHK.js} +1 -1
  71. package/dist/client/assets/{bulk-category-panel-DVHmrcRz.js → bulk-category-panel-BLk77HCA.js} +1 -1
  72. package/dist/client/assets/{capability-load-error-DKQcU6ZG.js → capability-load-error-DnpJPSNM.js} +1 -1
  73. package/dist/client/assets/{cards-DdUe4Y7E.js → cards-C60HDM5G.js} +1 -1
  74. package/dist/client/assets/{category-editor-CG-oqz6s.js → category-editor-DCes96yT.js} +1 -1
  75. package/dist/client/assets/{chart-DVItqbre.js → chart-BDZIA7_t.js} +1 -1
  76. package/dist/client/assets/{chat-context-Du1Ynk0G.js → chat-context-C9nTU_s6.js} +1 -1
  77. package/dist/client/assets/{checkbox-OpuM1_rN.js → checkbox-CYVQb6u5.js} +1 -1
  78. package/dist/client/assets/{choose-editor-kjyLsT-6.js → choose-editor-CHdyY5E4.js} +1 -1
  79. package/dist/client/assets/{cli-auth-success-DpFWUu1u.js → cli-auth-success-a3s0cdGF.js} +1 -1
  80. package/dist/client/assets/{collection-detail-CioHaSfs.js → collection-detail-COMW8222.js} +1 -1
  81. package/dist/client/assets/{collection-display-button-mtQfHIKK.js → collection-display-button-DjAF7BCj.js} +1 -1
  82. package/dist/client/assets/{collection-search-qnfvi0v8.js → collection-search-CSSjKy7f.js} +1 -1
  83. package/dist/client/assets/{collection-table-wrapper-CC-Gv_qV.js → collection-table-wrapper-DOG_oIXa.js} +1 -1
  84. package/dist/client/assets/{collection-tabs-DMBM4yqM.js → collection-tabs-DGI2IEmV.js} +1 -1
  85. package/dist/client/assets/{command-CRRfkjPr.js → command-DUeMCHIE.js} +1 -1
  86. package/dist/client/assets/{commerce-onboarding-CulvXmb3.js → commerce-onboarding-DB8uJRe2.js} +1 -1
  87. package/dist/client/assets/{connect-B18YwDyh.js → connect-xjult6u-.js} +1 -1
  88. package/dist/client/assets/{connection-CsxdRwE5.js → connection-O58eU8Dr.js} +1 -1
  89. package/dist/client/assets/{connection-card-CeS0Istv.js → connection-card-Drtf7vdR.js} +1 -1
  90. package/dist/client/assets/{connection-detail-BD5aNvKQ.js → connection-detail-O-fmNmpE.js} +1 -1
  91. package/dist/client/assets/{connection-form-helpers-DCxQjSP6.js → connection-form-helpers-rO7EwngE.js} +1 -1
  92. package/dist/client/assets/{connections-CDms9eCG.js → connections-kiyFdETe.js} +1 -1
  93. package/dist/client/assets/{decopilot-sse-pool-DPED7D2A.js → decopilot-sse-pool-BNBoVXdw.js} +1 -1
  94. package/dist/client/assets/{dialog-BIPdA336.js → dialog-06THKDmm.js} +1 -1
  95. package/dist/client/assets/{domain-settings-C4bFWg7s.js → domain-settings-DxS7w6w-.js} +1 -1
  96. package/dist/client/assets/{drawer-vzSyfDvu.js → drawer-DfM0a7aK.js} +1 -1
  97. package/dist/client/assets/{dropdown-menu-lrj1AuBG.js → dropdown-menu-w7n_JiUQ.js} +1 -1
  98. package/dist/client/assets/{empty-state-DcCHru3k.js → empty-state-DytlgCAm.js} +1 -1
  99. package/dist/client/assets/{extract-connection-data-DiHPdf7q.js → extract-connection-data-42ShpRyJ.js} +1 -1
  100. package/dist/client/assets/{file-explorer-DaaFlEF2.js → file-explorer-D_PGAi5e.js} +1 -1
  101. package/dist/client/assets/{file-type-icon-y3nCyNPn.js → file-type-icon-DIpohPJ6.js} +1 -1
  102. package/dist/client/assets/{form-J1gw4Qk_.js → form-D7T5_Dgj.js} +1 -1
  103. package/dist/client/assets/{general-BU0uYs8L.js → general-DmFqcLLE.js} +1 -1
  104. package/dist/client/assets/{github-repo-picker-D2vV39oz.js → github-repo-picker-BebzrN3W.js} +1 -1
  105. package/dist/client/assets/{hooks-DdVRuhEZ.js → hooks-BxLy1Zzz.js} +1 -1
  106. package/dist/client/assets/{index-BtRb-rGv.js → index-9OoxX1NR.js} +1 -1
  107. package/dist/client/assets/{index-BpKTgLQK.js → index-B1P_V3qG.js} +1 -1
  108. package/dist/client/assets/{index-DRwoMU01.js → index-BB4_ygWi.js} +1 -1
  109. package/dist/client/assets/{index-CEKSaGzO.js → index-BYzmGpA0.js} +1 -1
  110. package/dist/client/assets/{index-CO80f0WB.js → index-BdUjMMS5.js} +1 -1
  111. package/dist/client/assets/{index-CZVnjscz.js → index-C2wbMIfs.js} +5 -5
  112. package/dist/client/assets/{index-BclLNjGe.js → index-CMALBC-v.js} +3 -3
  113. package/dist/client/assets/{index-CmZRfjvH.js → index-CvNeVHfy.js} +1 -1
  114. package/dist/client/assets/{index-8Qjw8_TO.js → index-DDTrmVhz.js} +1 -1
  115. package/dist/client/assets/{index-BeEaq4Rh.js → index-DF3uNrPp.js} +1 -1
  116. package/dist/client/assets/{index-redirect-D9XohjTY.js → index-redirect-Cpg_Q5et.js} +1 -1
  117. package/dist/client/assets/{infra-billing-BmHeKMVb.js → infra-billing-DyTByfZt.js} +1 -1
  118. package/dist/client/assets/{input-nDPWgHCd.js → input-CjP4wQRD.js} +1 -1
  119. package/dist/client/assets/{integration-icon-gfFSvGiG.js → integration-icon-_VDJvzJ-.js} +1 -1
  120. package/dist/client/assets/{invite-member-dialog-CaoNu1mr.js → invite-member-dialog-8QQ-DA_M.js} +1 -1
  121. package/dist/client/assets/{label-DGmx8Imr.js → label-BNnDeYWX.js} +1 -1
  122. package/dist/client/assets/{layout-BKxkz2Ye.js → layout-DGxeKl7-.js} +1 -1
  123. package/dist/client/assets/{login-vhF5CMIy.js → login-BmUk90CP.js} +1 -1
  124. package/dist/client/assets/{mcp-oauth-DOoM2ckU.js → mcp-oauth-R6LWeGel.js} +1 -1
  125. package/dist/client/assets/{members-Cywe_NkG.js → members-Rje746QY.js} +1 -1
  126. package/dist/client/assets/{monaco-editor-CbPVc8vU.js → monaco-editor-CHdpsAKe.js} +1 -1
  127. package/dist/client/assets/{monitoring-stats-row-DeyIlVFp.js → monitoring-stats-row-nWQLcD7N.js} +1 -1
  128. package/dist/client/assets/{multi-select-CnXJwfQH.js → multi-select-DvVxCCA2.js} +1 -1
  129. package/dist/client/assets/{oauth-callback-BuWOkGsW.js → oauth-callback-BrZMJ9Z_.js} +1 -1
  130. package/dist/client/assets/{oauth-callback-ai-provider-DZZigV6N.js → oauth-callback-ai-provider-6lB5ioTQ.js} +1 -1
  131. package/dist/client/assets/{onboarding-D0uI7-kQ.js → onboarding-CFZ_YqBk.js} +1 -1
  132. package/dist/client/assets/{org-layout-DoN48nJf.js → org-layout-CFJ3s3aO.js} +1 -1
  133. package/dist/client/assets/{organization-choice-CTRa0oo8.js → organization-choice-4gTGCdVZ.js} +1 -1
  134. package/dist/client/assets/{orgs-BiH7BRr2.js → orgs-BlhaM_QR.js} +1 -1
  135. package/dist/client/assets/{page-seo-form-Dea2xJef.js → page-seo-form-8CrhZnSd.js} +1 -1
  136. package/dist/client/assets/{popover-CeodfKZO.js → popover-BZEJPBaN.js} +1 -1
  137. package/dist/client/assets/{post-editor-vDlDjRCC.js → post-editor-DXF_bdFs.js} +1 -1
  138. package/dist/client/assets/{primitives-DBfa9hB0.js → primitives-DefLuCWp.js} +1 -1
  139. package/dist/client/assets/{profile-C4T_eaEe.js → profile-ixoNCK51.js} +1 -1
  140. package/dist/client/assets/{project-app-view-BIRlbRCo.js → project-app-view-BmDjcK09.js} +1 -1
  141. package/dist/client/assets/record-editor-SauBdytI.js +1 -0
  142. package/dist/client/assets/{redirect-editor-UWqpDZXZ.js → redirect-editor-DOZ_6ItM.js} +1 -1
  143. package/dist/client/assets/registry-DNELIUVJ.js +2 -0
  144. package/dist/client/assets/{registry-layout-DlS42cbQ.js → registry-layout-CZnAV2GE.js} +1 -1
  145. package/dist/client/assets/{reports-D6_7Kl40.js → reports-BskvcwLH.js} +1 -1
  146. package/dist/client/assets/{require-capability-DhaWwRnV.js → require-capability-Byjk0WDJ.js} +1 -1
  147. package/dist/client/assets/{required-auth-layout-LN8Si53_.js → required-auth-layout-BuUCLduS.js} +1 -1
  148. package/dist/client/assets/{reset-password-Dq0BuVe2.js → reset-password-Hn69qiVu.js} +1 -1
  149. package/dist/client/assets/{roles-BGvaDFJ5.js → roles-DPU4GH76.js} +1 -1
  150. package/dist/client/assets/{search-input-CS8Ct-0G.js → search-input-F06b4Ka7.js} +1 -1
  151. package/dist/client/assets/{secrets-CFD7nlk0.js → secrets-DtooYsRz.js} +1 -1
  152. package/dist/client/assets/{sections-editor-O6ywpF7W.js → sections-editor-DHi-y1Qr.js} +1 -1
  153. package/dist/client/assets/{select-Bqsr49tC.js → select-fEJ2CWnh.js} +1 -1
  154. package/dist/client/assets/{select-model-Bxjzua6V.js → select-model-CSZcccgl.js} +1 -1
  155. package/dist/client/assets/{self-tool-result-d13oM_zw.js → self-tool-result-BoRiwr9O.js} +1 -1
  156. package/dist/client/assets/{seo-editor-D2QWKyta.js → seo-editor-C0yrgVaA.js} +1 -1
  157. package/dist/client/assets/{settings-layout-CJLte-dW.js → settings-layout-CkCx5djT.js} +1 -1
  158. package/dist/client/assets/{shell-controls-DLlCUBmb.js → shell-controls-CvuXlA7S.js} +1 -1
  159. package/dist/client/assets/{shell-layout-BpnQ4cG6.js → shell-layout-D2WGSk9d.js} +1 -1
  160. package/dist/client/assets/{spinner-B2FzBAMR.js → spinner-DRW7bcot.js} +1 -1
  161. package/dist/client/assets/{sso-BJI6dRMO.js → sso-C9S6ArZ5.js} +1 -1
  162. package/dist/client/assets/{store-GqEyr_pt.js → store-DUIqjsmW.js} +1 -1
  163. package/dist/client/assets/store-registry-CCLV9EGA.js +2 -0
  164. package/dist/client/assets/{switch-BZkTGTCs.js → switch-9lR-M49q.js} +1 -1
  165. package/dist/client/assets/{synced-repos-Dj-rz3Pn.js → synced-repos-DCY70HWU.js} +1 -1
  166. package/dist/client/assets/{tab-id-Ds3C7o-Q.js → tab-id-DOlOt_oN.js} +1 -1
  167. package/dist/client/assets/{table-DHYowlzp.js → table-55wy8ES_.js} +1 -1
  168. package/dist/client/assets/{tabs-OfH26t07.js → tabs-B_f6B2ih.js} +1 -1
  169. package/dist/client/assets/{task-key-CqEHQkeN.js → task-key-DC0DmXL_.js} +1 -1
  170. package/dist/client/assets/{tasks-Bfnw5ir8.js → tasks-C1jd4mF0.js} +1 -1
  171. package/dist/client/assets/{textarea-DvePac_2.js → textarea-CioreWQ5.js} +1 -1
  172. package/dist/client/assets/{toggle-group-CC_Dl3He.js → toggle-group-CKR4opVv.js} +1 -1
  173. package/dist/client/assets/{toolbar-CWal9bG6.js → toolbar-DxhudO7Y.js} +1 -1
  174. package/dist/client/assets/{track-DJbyd3E3.js → track-5IMkFYjp.js} +1 -1
  175. package/dist/client/assets/{types-CwF0VJrL.js → types-LSAqkaao.js} +1 -1
  176. package/dist/client/assets/{use-ai-providers-na-0KkzE.js → use-ai-providers-C1myPe1T.js} +1 -1
  177. package/dist/client/assets/{use-api-keys-xrMq8TIR.js → use-api-keys-BLhCxSau.js} +1 -1
  178. package/dist/client/assets/{use-automations-Cj8hXDp1.js → use-automations-CB10hjhp.js} +1 -1
  179. package/dist/client/assets/{use-autosave-DRjaD6_q.js → use-autosave-BxOegg1k.js} +1 -1
  180. package/dist/client/assets/{use-clock-tick-LapJdX9W.js → use-clock-tick-jMDHnmqb.js} +1 -1
  181. package/dist/client/assets/{use-commerce-diagnostic-BxP4VoOs.js → use-commerce-diagnostic-CzYB3N6a.js} +1 -1
  182. package/dist/client/assets/{use-connection-8EPdTWZr.js → use-connection-DT2B_DYi.js} +1 -1
  183. package/dist/client/assets/{use-copy-8agNupqf.js → use-copy-D3XerJdc.js} +1 -1
  184. package/dist/client/assets/{use-create-virtual-mcp-CGDNSnWc.js → use-create-virtual-mcp-DKZ39HDE.js} +1 -1
  185. package/dist/client/assets/{use-debounced-autosave-BjWmGT8J.js → use-debounced-autosave-DTkDy42k.js} +1 -1
  186. package/dist/client/assets/{use-debounced-value-Dx3z1woS.js → use-debounced-value-DbRRK9TT.js} +1 -1
  187. package/dist/client/assets/{use-decopilot-events-BUk6NHPf.js → use-decopilot-events-G33cy0ys.js} +1 -1
  188. package/dist/client/assets/{use-delete-connection-BsIIWZAo.js → use-delete-connection-B7i8EHY-.js} +1 -1
  189. package/dist/client/assets/{use-deployment-admin-CqMhK46B.js → use-deployment-admin-EilNlemK.js} +1 -1
  190. package/dist/client/assets/{use-file-configs-CgpBRH0k.js → use-file-configs-BPtRUpqF.js} +1 -1
  191. package/dist/client/assets/{use-infinite-scroll-FxGy_57d.js → use-infinite-scroll-QWIMbpAi.js} +1 -1
  192. package/dist/client/assets/{use-join-requests-DVpghseC.js → use-join-requests-d9x5nN9k.js} +1 -1
  193. package/dist/client/assets/{use-mcp-client-CF6K7Xbx.js → use-mcp-client-CluZ1kcE.js} +1 -1
  194. package/dist/client/assets/{use-mcp-tools-COBwavmq.js → use-mcp-tools-Bn-w9dls.js} +1 -1
  195. package/dist/client/assets/{use-members-DqghJ-MT.js → use-members-Bsc6dQLG.js} +1 -1
  196. package/dist/client/assets/{use-navigate-to-agent-B40BWbsD.js → use-navigate-to-agent-NiTIdPbN.js} +1 -1
  197. package/dist/client/assets/{use-org-auth-client-BVyhHLqS.js → use-org-auth-client-Cu0_xvCB.js} +1 -1
  198. package/dist/client/assets/{use-org-repo-syncs-BUztWYOu.js → use-org-repo-syncs-DNte33T4.js} +1 -1
  199. package/dist/client/assets/{use-org-sso-B3er5nZW.js → use-org-sso-Bf2lWMgv.js} +1 -1
  200. package/dist/client/assets/{use-organization-roles-DqBwuPUA.js → use-organization-roles-BtYEcikp.js} +1 -1
  201. package/dist/client/assets/{use-organization-settings-BBNU4XWS.js → use-organization-settings-h-vNu5dF.js} +1 -1
  202. package/dist/client/assets/{use-registry-connections-C2QMQtcg.js → use-registry-connections-CpTGVE3o.js} +1 -1
  203. package/dist/client/assets/{use-secrets-BBDXAR_y.js → use-secrets-Djj5tnEX.js} +1 -1
  204. package/dist/client/assets/{use-section-preview-base-CyWP_8Tr.js → use-section-preview-base-DwW1Ebe1.js} +1 -1
  205. package/dist/client/assets/{use-status-sounds-DTtKleES.js → use-status-sounds-Bfvpj4xw.js} +1 -1
  206. package/dist/client/assets/{use-tags-BSP-BiSB.js → use-tags-Bcb85fVL.js} +1 -1
  207. package/dist/client/assets/{use-view-mode-oIGzRpko.js → use-view-mode-CHryhyWZ.js} +1 -1
  208. package/dist/client/assets/{use-virtual-mcp-BZDew3_r.js → use-virtual-mcp-DMt0VXr_.js} +1 -1
  209. package/dist/client/assets/useInfiniteQuery-gLOjDPyq.js +1 -0
  210. package/dist/client/assets/useSuspenseInfiniteQuery-EB_E_bJc.js +1 -0
  211. package/dist/client/assets/{users-Bxu25uRF.js → users-BK6ODa0L.js} +1 -1
  212. package/dist/client/assets/{variant-calendar-CrqOmqi6.js → variant-calendar-D8gSD-Zc.js} +1 -1
  213. package/dist/client/assets/{view-mode-toggle-BSHiQy8a.js → view-mode-toggle-k-CL6fP4.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-C4_nxX6K.js +0 -1
  219. package/dist/client/assets/registry-WMZ-DRCx.js +0 -2
  220. package/dist/client/assets/store-registry-59xbzlwa.js +0 -2
  221. package/dist/client/assets/useInfiniteQuery-2CWVFI7J.js +0 -1
  222. package/dist/client/assets/useSuspenseInfiniteQuery-e_qVcT1E.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-BclLNjGe.js"></script>
53
+ <script type="module" crossorigin src="/assets/index-CMALBC-v.js"></script>
54
54
  <link rel="stylesheet" crossorigin href="/assets/index-DZ9B9lIh.css">
55
55
  </head>
56
56
  <body>
@@ -1396,7 +1396,7 @@ Usage: deco services <up|down|status>`),process.exit(1)}}var hi1=L(()=>{If()});f
1396
1396
  `.execute($);if(Number(W.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${J}/${K}, keeping in old table`);continue}}await eb`
1397
1397
  DELETE FROM kysely_migration WHERE name = ${X}
1398
1398
  `.execute($)}}async function Kr1($){await _t6($),await vt6($);let Z=new Gr1({db:$,provider:{getMigrations:()=>Promise.resolve(ri0)}}),{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 xt6($){let{keepOpen:Z=!1,database:X,skipBetterAuth:Q=!1}=$??{},Y="skipped";if(!Q&&!X)Y=await Ll0();let G=X??K6(),J=async()=>{if(!Z&&!X)await uB(G).catch((K)=>{console.warn("Warning: Error closing database:",K)})};try{let K=await Kr1(G.db);return await J(),{betterAuth:Y,kysely:K}}catch(K){throw await J(),K}}async function ft6(){let $=K6(),Z=new Gr1({db:$.db,provider:{getMigrations:()=>Promise.resolve(ri0)}}),{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 Hr1=L(()=>{Yr1();wl0();YX()});async function uZ0($){let Z={...process.env},X=C80($,Z);console.log(jw1(X.settings.encryptionKey));let Q=X.settings.betterAuthSecret||(X.settings.localMode?Lp1(X.settings.dataDir):""),{ensureServices:Y}=await Promise.resolve().then(() => (t90(),p90)),{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(() => (wl0(),Dp1));await W(G.databaseUrl);let{createDatabase:H}=await Promise.resolve().then(() => (YX(),xn1)),{migrateToLatest:F}=await Promise.resolve().then(() => (Hr1(),Wr1)),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 ui1(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 ai0=L(()=>{If();wp1();_8()});var Ur1={};N0(Ur1,{updateService:()=>TE,subscribeCliState:()=>$n0,setTuiConsoleIntercepted:()=>cZ0,setServerUrl:()=>mi,setMigrationsDone:()=>di,setDevMode:()=>gt6,resetCliStateForTests:()=>bt6,isTuiConsoleIntercepted:()=>lZ0,getCliState:()=>ei0,addLogEntry:()=>iB});function Fr1(){return{services:[{name:"Postgres",status:"pending",port:0},{name:"NATS",status:"pending",port:0}],migrationsStatus:"pending",serverUrl:null,logs:[]}}function bt6(){nQ=Fr1()}function yt6(){return[{name:"Postgres",status:"pending",port:0},{name:"NATS",status:"pending",port:0}]}function li(){for(let $ of si0)$()}function ei0(){return nQ}function $n0($){return si0.add($),()=>si0.delete($)}function TE($){nQ={...nQ,services:nQ.services.map((Z)=>Z.name===$.name?$:Z)},li()}function di(){nQ={...nQ,migrationsStatus:"done"},li()}function mi($){nQ={...nQ,serverUrl:$},li()}function iB($){let Z=[...nQ.logs,$];nQ={...nQ,logs:Z.length>500?Z.slice(-500):Z},li()}function gt6(){nQ={...nQ,services:[...yt6(),{name:"API",status:"pending",port:0},{name:"Vite",status:"pending",port:0}]},li()}function cZ0($){Nr1=$}function lZ0(){return Nr1}var nQ,si0,Nr1=!1;var RE=L(()=>{nQ=Fr1();si0=new Set});import{createServer as Br1}from"net";function ht6($){return new Promise((Z)=>{let X=Br1();X.once("error",()=>Z(!1)),X.listen($,"0.0.0.0",()=>{X.close(()=>Z(!0))})})}async function ii($){if(await ht6($))return $;let Z=await new Promise((X,Q)=>{let Y=Br1();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 Zn0=()=>{};function ni($){return $.replace(/\x1b\[[0-9;]*m/g,"")}var Xn0={};N0(Xn0,{startDevServer:()=>ct6});import{join as ut6}from"path";function Or1($){let Z=$.getReader(),X=new TextDecoder,Q="";function Y(){let G=Q.split(`
1399
- `);Q=G.pop()??"";for(let J of G){let K=ni(J).replace(/^\[\d+\]\s*/,"").trim();if(!K)continue;iB({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=ni(Q).replace(/^\[\d+\]\s*/,"").trim();if(G)iB({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:G})}})()}async function ct6($){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 ii(Number(Y)+1):await ii(Number($.port)),{settings:K,services:W,managedServiceNames:H}=await uZ0({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});di();let F=ut6(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)Or1(U.stdout),Or1(U.stderr);mi(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(() => (t90(),p90));await D(K.dataDir)}};return process.on("SIGINT",()=>O("SIGINT")),process.on("SIGTERM",()=>O("SIGTERM")),{port:Number(Y),process:U}}var Qn0=L(()=>{ai0();RE();Zn0()});var dZ0;var Yn0=L(()=>{dZ0={name:"decocms",version:"4.253.1",description:"Deco CMS \u2014 Self-hostable MCP Gateway for managing AI connections and tools",author:"Deco team",repository:{type:"git",url:"git+https://github.com/decocms/studio.git",directory:"apps/api"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:"bun run migrate && bun run dev:server","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts",build:"bun run build:server","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","generate:tool-contracts":"bun run scripts/generate-tool-contracts.ts","db:migrate":"bun run ./dist/server/migrate.js","db:migrate:dbos":"bun run ./dist/server/migrate-dbos.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts","migrate:dbos":"bun run src/database/migrate-dbos.ts",test:"bun test src","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts",prepublishOnly:"bun run --cwd=../.. build:studio"},optionalDependencies:{"@duckdb/node-api":"^1.5.0-r.1"},dependencies:{"@ai-sdk/anthropic":"^3.0.85","@ai-sdk/google":"^3.0.83","@ai-sdk/openai":"^3.0.73","@anthropic-ai/sdk":"^0.105.0","@aws-sdk/client-s3":"^3.1013.0","@aws-sdk/client-sts":"^3.1013.0","@aws-sdk/lib-storage":"^3.1013.0","@aws-sdk/s3-request-presigner":"^3.1013.0","@clickhouse/client":"^1.8.1","@dbos-inc/dbos-sdk":"^4.21.6","@inkjs/ui":"^2.0.0","@nats-io/jetstream":"3.4.0","@nats-io/kv":"3.4.0","@nats-io/nats-core":"3.4.0","@nats-io/transport-node":"3.4.0","@openrouter/ai-sdk-provider":"^2.9.1","@opentelemetry/core":"^2.6.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12","posthog-node":"^5.0.0",react:"^19.2.6","react-dom":"^19.2.6"},devDependencies:{"@ai-sdk/provider":"^3.0.10","@better-auth/sso":"1.4.1","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/runtime":"workspace:*","@decocms/sandbox":"workspace:*","@decocms/shared":"workspace:*","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.29.0","@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 dt6,Text as Lr1}from"ink";import{jsx as mt6,jsxs as wr1}from"react/jsx-runtime";function Dr1({version:$}){return wr1(dt6,{flexDirection:"column",marginTop:1,children:[DZ0.map((Z,X)=>mt6(Lr1,{color:EZ0[X],children:Z},X)),wr1(Lr1,{dimColor:!0,children:[" v",$]})]})}var Er1=L(()=>{Ci()});import{Box as IE,Text as nB}from"ink";import{Spinner as it6}from"@inkjs/ui";import{jsx as eY,jsxs as $y}from"react/jsx-runtime";function jr1({status:$}){if($==="pending")return eY(it6,{label:""});return eY(nB,{color:"green",children:"\u2713"})}function nt6($){return`${$.name}: ${$.port||"...."}`}function zr1({services:$,migrationsStatus:Z,home:X,serverUrl:Q}){return $y(IE,{flexDirection:"column",paddingBottom:1,children:[eY(Dr1,{version:dZ0.version}),eY(IE,{marginBottom:1,children:eY(nB,{dimColor:!0,children:"\u2500".repeat(80)})}),eY(IE,{children:$y(nB,{dimColor:!0,children:["Home: ",X]})}),$y(IE,{gap:2,children:[$.map((Y)=>$y(IE,{gap:1,children:[eY(nB,{children:nt6(Y)}),eY(jr1,{status:Y.status})]},Y.name)),$y(IE,{gap:1,children:[eY(nB,{children:"Migrations"}),eY(jr1,{status:Z})]})]}),eY(IE,{children:Q?$y(nB,{children:["Open in browser: ",eY(nB,{color:"cyan",children:Q})]}):eY(nB,{dimColor:!0,children:"Starting..."})})]})}var Pr1=L(()=>{Yn0();Er1()});import{Box as pt6,Text as pi}from"ink";import{jsx as Gn0,jsxs as Jn0}from"react/jsx-runtime";function tt6($){if($>=500)return"red";if($>=400)return"yellow";if($>=300)return"cyan";return"green"}function Ar1({logs:$}){return Gn0(pt6,{flexDirection:"column",children:$.map((Z,X)=>{if(Z.rawLine)return Gn0(pi,{dimColor:!0,children:Z.rawLine},X);let Q=Z.duration<1000?`${Z.duration}ms`:`${(Z.duration/1000).toFixed(1)}s`;return Jn0(pi,{children:[Jn0(pi,{dimColor:!0,children:[Z.method.padEnd(6)," ",Z.path.padEnd(30)," "]}),Gn0(pi,{color:tt6(Z.status),children:Z.status}),Jn0(pi,{dimColor:!0,children:[" ",Q.padStart(8)]})]},X)})})}var Tr1=()=>{};var Kn0={};N0(Kn0,{App:()=>at6});import{Box as ot6}from"ink";import{useSyncExternalStore as rt6}from"react";import{jsx as Rr1,jsxs as st6}from"react/jsx-runtime";function at6({home:$}){let Z=rt6($n0,ei0);return st6(ot6,{flexDirection:"column",children:[Rr1(zr1,{services:Z.services,migrationsStatus:Z.migrationsStatus,home:$,serverUrl:Z.serverUrl}),Rr1(Ar1,{logs:Z.logs})]})}var Wn0=L(()=>{Pr1();Tr1();RE()});var gJ="thread-gate",$N="decopilot-hosted-harness",ZN="decopilot-hosted-harness-sandboxed",N3="automations",pB="background-tools",qE="task-board-github-reads",ME="jira-push";var Ir1="7";function qr1($){return{name:"decocms",systemDatabaseUrl:$.systemDatabaseUrl,systemDatabaseSchemaName:"dbos",systemDatabasePoolSize:$.poolSize,runAdminServer:!1,executorID:$.executorID,applicationVersion:Ir1,...$.listenQueues!==void 0?{listenQueues:$.listenQueues}:{}}}var Mr1=()=>{};function et6(){let $=(process.env.BUN_OPTIONS??"").split(/\s+/).filter(Boolean);return[...process.argv.slice(1),...$]}function Hn0($,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 Vr1(){let $=et6();if($.includes("--cpu-prof")){console.log(JSON.stringify({msg:"cpu-profiling-active",dir:Hn0($,"--cpu-prof-dir")??process.cwd(),name:Hn0($,"--cpu-prof-name"),markdown:$.includes("--cpu-prof-md"),intervalUs:Number(Hn0($,"--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 kr1(){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(()=>{}),mZ0=setInterval(()=>void Z().catch(()=>{}),$),mZ0.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(mZ0)clearInterval(mZ0)}}var mZ0;var Sr1=()=>{};import*as $o6 from"bun:jsc";function Cr1(){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{Zo6()}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=Xo6()?.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 Zo6,Xo6;var _r1=L(()=>{({startSamplingProfiler:Zo6,samplingProfilerStackTraces:Xo6}=$o6)});function vr1(){Vr1();let $=[kr1(),qn1(),Cr1()];return()=>{for(let Z of $)Z()}}var xr1=L(()=>{Gl0();Sr1();_r1()});var VE=v((fr1)=>{Object.defineProperty(fr1,"__esModule",{value:!0});fr1.RepublishHeaders=fr1.DirectMsgHeaders=fr1.JsHeaders=fr1.AdvisoryKind=void 0;fr1.isOrderedPushConsumerOptions=Qo6;fr1.isPullConsumer=Yo6;fr1.isPushConsumer=Go6;fr1.isBoundPushConsumerOptions=Jo6;function Qo6($){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 Yo6($){return $.isPullConsumer()}function Go6($){return $.isPushConsumer()}function Jo6($){if($&&typeof $==="object")return"deliver_subject"in $||"deliver_group"in $||"idle_heartbeat"in $;return!1}fr1.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"};fr1.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"};fr1.DirectMsgHeaders={Stream:"Nats-Stream",Sequence:"Nats-Sequence",TimeStamp:"Nats-Time-Stamp",Subject:"Nats-Subject",LastSequence:"Nats-Last-Sequence",NumPending:"Nats-Num-Pending"};fr1.RepublishHeaders={Stream:"Nats-Stream",Subject:"Nats-Subject",Sequence:"Nats-Sequence",LastSequence:"Nats-Last-Sequence",Size:"Nats-Msg-Size"}});var $G=v((yr1)=>{Object.defineProperty(yr1,"__esModule",{value:!0});yr1.TD=yr1.TE=yr1.Empty=void 0;yr1.encode=Lo6;yr1.decode=wo6;yr1.Empty=new Uint8Array(0);yr1.TE=new TextEncoder;yr1.TD=new TextDecoder;function Oo6(...$){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 Lo6(...$){let Z=[];for(let X=0;X<$.length;X++)Z.push(yr1.TE.encode($[X]));if(Z.length===0)return yr1.Empty;if(Z.length===1)return Z[0];return Oo6(...Z)}function wo6($){if(!$||$.length===0)return"";return yr1.TD.decode($)}});var ZG=v((ur1)=>{Object.defineProperty(ur1,"__esModule",{value:!0});ur1.errors=ur1.PermissionViolationError=ur1.NoRespondersError=ur1.TimeoutError=ur1.RequestError=ur1.ProtocolError=ur1.ConnectionError=ur1.DrainingConnectionError=ur1.ClosedConnectionError=ur1.AuthorizationError=ur1.UserAuthenticationExpiredError=ur1.InvalidOperationError=ur1.InvalidArgumentError=ur1.InvalidSubjectError=void 0;class Nn0 extends Error{constructor($,Z){super(`illegal subject: '${$}'`,Z);this.name="InvalidSubjectError"}}ur1.InvalidSubjectError=Nn0;class iZ0 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 iZ0(`${$} ${Z}`,X)}}ur1.InvalidArgumentError=iZ0;class Un0 extends Error{constructor($,Z){super($,Z);this.name="InvalidOperationError"}}ur1.InvalidOperationError=Un0;class nZ0 extends Error{constructor($,Z){super($,Z);this.name="UserAuthenticationExpiredError"}static parse($){if($.toLowerCase().indexOf("user authentication expired")!==-1)return new nZ0($);return null}}ur1.UserAuthenticationExpiredError=nZ0;class pZ0 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 pZ0($);return null}}ur1.AuthorizationError=pZ0;class Bn0 extends Error{constructor(){super("closed connection");this.name="ClosedConnectionError"}}ur1.ClosedConnectionError=Bn0;class On0 extends Error{constructor(){super("connection draining");this.name="DrainingConnectionError"}}ur1.DrainingConnectionError=On0;class Ln0 extends Error{constructor($,Z){super($,Z);this.name="ConnectionError"}}ur1.ConnectionError=Ln0;class wn0 extends Error{constructor($,Z){super($,Z);this.name="ProtocolError"}}ur1.ProtocolError=wn0;class Dn0 extends Error{constructor($="",Z){super($,Z);this.name="RequestError"}isNoResponders(){return this.cause instanceof tZ0}}ur1.RequestError=Dn0;class En0 extends Error{constructor($){super("timeout",$);this.name="TimeoutError"}}ur1.TimeoutError=En0;class tZ0 extends Error{subject;constructor($,Z){super(`no responders: '${$}'`,Z);this.subject=$,this.name="NoResponders"}}ur1.NoRespondersError=tZ0;class oZ0 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 oZ0($,X,Q,Y)}}ur1.PermissionViolationError=oZ0;ur1.errors={AuthorizationError:pZ0,ClosedConnectionError:Bn0,ConnectionError:Ln0,DrainingConnectionError:On0,InvalidArgumentError:iZ0,InvalidOperationError:Un0,InvalidSubjectError:Nn0,NoRespondersError:tZ0,PermissionViolationError:oZ0,ProtocolError:wn0,RequestError:Dn0,TimeoutError:En0,UserAuthenticationExpiredError:nZ0}});var hJ=v((ir1)=>{Object.defineProperty(ir1,"__esModule",{value:!0});ir1.SimpleMutex=ir1.Perf=void 0;ir1.extend=vo6;ir1.render=xo6;ir1.timeout=fo6;ir1.delay=bo6;ir1.deadline=yo6;ir1.deferred=zn0;ir1.debugDeferred=go6;ir1.shuffle=ho6;ir1.collect=uo6;ir1.jitter=mr1;ir1.backoff=co6;ir1.nanos=lo6;ir1.millis=do6;ir1.randomToken=no6;var _o6=$G(),jn0=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 xo6($){return _o6.TD.decode($).replace(/\n/g,"\u240A").replace(/\r/g,"\u240D")}function fo6($,Z=!0){let X=Z?new jn0.TimeoutError:null,Q,Y,G=new Promise((J,K)=>{Q={cancel:()=>{if(Y)clearTimeout(Y)}},Y=setTimeout(()=>{if(X===null)K(new jn0.TimeoutError);else K(X)},$)});return Object.assign(G,Q)}function bo6($=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 yo6($,Z=1000){let X=zn0(),Q=setTimeout(()=>{X.reject(new jn0.TimeoutError)},Z);try{return await Promise.race([$,X])}finally{clearTimeout(Q)}}function zn0(){let $={},Z=new Promise((X,Q)=>{$={resolve:X,reject:Q}});return Object.assign(Z,$)}function go6(){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 ho6($){for(let Z=$.length-1;Z>0;Z--){let X=Math.floor(Math.random()*(Z+1));[$[Z],$[X]]=[$[X],$[Z]]}return $}async function uo6($){let Z=[];for await(let X of $)Z.push(X);return Z}class lr1{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})}),$}}ir1.Perf=lr1;class dr1{max;current;waiting;constructor($=1){this.max=$,this.current=0,this.waiting=[]}lock(){if(this.current++,this.current<=this.max)return Promise.resolve();let $=zn0();return this.waiting.push($),$}unlock(){this.current--,this.waiting.pop()?.resolve()}}ir1.SimpleMutex=dr1;function mr1($){if($===0)return 0;return Math.floor($/2+Math.random()*$)}function co6($=[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 mr1(X>Z?$[Z]:$[X])}}}function lo6($){return $*1e6}function do6($){return Math.floor($/1e6)}var mo6="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",XN=new Uint8Array(62);for(let $=0;$<62;$++)XN[$]=mo6.charCodeAt($);var io6=218340105584896;function no6(){let $=Math.floor(Math.random()*io6),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 er1=v((ar1)=>{Object.defineProperty(ar1,"__esModule",{value:!0});ar1.nuid=ar1.NuidImpl=void 0;var Wr6="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",tB=62,aZ0=12,or1=10,pr1=33,Hr6=333,tr1=aZ0+or1,An0=new Uint8Array(tB);for(let $=0;$<tB;$++)An0[$]=Wr6.charCodeAt($);var rZ0=4294967296,rr1=BigInt(tB)**BigInt(or1),ti=Number(rr1/(1n<<32n)),Pn0=Number(rr1%(1n<<32n));function Fr6($){for(let Z=0;Z<$.length;Z++)$[Z]=Math.floor(Math.random()*256)}function Nr6($){if(globalThis?.crypto?.getRandomValues)globalThis.crypto.getRandomValues($);else Fr6($)}class Tn0{buf;cbuf;seqHi;seqLo;inc;inited;constructor(){this.buf=new Uint8Array(tr1),this.cbuf=new Uint8Array(aZ0),this.inited=!1}init(){this.inited=!0,this.setPre(),this.initSeqAndInc(),this.fillSeq()}initSeqAndInc(){let $=0;do this.seqHi=Math.floor(Math.random()*(ti+1)),this.seqLo=Math.floor(Math.random()*rZ0);while($++<8&&this.seqHi===ti&&this.seqLo>=Pn0);if(this.seqHi===ti&&this.seqLo>=Pn0)this.seqLo=0;this.inc=Math.random()*(Hr6-pr1)+pr1|0}setPre(){Nr6(this.cbuf);for(let $=0;$<aZ0;$++)this.buf[$]=An0[this.cbuf[$]%tB]}fillSeq(){let $=this.seqHi,Z=this.seqLo;for(let X=tr1-1;X>=aZ0;X--){let Q=Math.floor($/tB),G=($-Q*tB)*rZ0+Z,J=Math.floor(G/tB),K=G-J*tB;this.buf[X]=An0[K],$=Q,Z=J}}next(){if(!this.inited)this.init();if(this.seqLo+=this.inc,this.seqLo>=rZ0)this.seqLo-=rZ0,this.seqHi+=1;if(this.seqHi>ti||this.seqHi===ti&&this.seqLo>=Pn0)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()}}ar1.NuidImpl=Tn0;ar1.nuid=new Tn0});var Qa1=v((Za1)=>{Object.defineProperty(Za1,"__esModule",{value:!0});Za1.nuid=Za1.Nuid=void 0;var $a1=er1();Za1.Nuid=$a1.NuidImpl;Za1.nuid=$a1.nuid});var eZ0=v((sZ0)=>{Object.defineProperty(sZ0,"__esModule",{value:!0});sZ0.nuid=sZ0.Nuid=void 0;var Ya1=Qa1();Object.defineProperty(sZ0,"Nuid",{enumerable:!0,get:function(){return Ya1.Nuid}});Object.defineProperty(sZ0,"nuid",{enumerable:!0,get:function(){return Ya1.nuid}})});var oB=v((Ga1)=>{Object.defineProperty(Ga1,"__esModule",{value:!0});Ga1.DEFAULT_HOST=Ga1.DEFAULT_PORT=Ga1.Match=void 0;Ga1.syncIterator=Dr6;Ga1.createInbox=Er6;var Lr6=eZ0(),wr6=ZG();Ga1.Match={Exact:"exact",CanonicalMIME:"canonical",IgnoreCase:"insensitive"};function Dr6($){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 Er6($=""){if($=$||"_INBOX",typeof $!=="string")throw TypeError("prefix must be a string");return $.split(".").forEach((Z)=>{if(Z==="*"||Z===">")throw wr6.InvalidArgumentError.format("prefix",`cannot have wildcards ('${$}')`)}),`${$}.${Lr6.nuid.next()}`}Ga1.DEFAULT_PORT=4222;Ga1.DEFAULT_HOST="127.0.0.1"});var oi=v((Ha1)=>{Object.defineProperty(Ha1,"__esModule",{value:!0});Ha1.DataBuffer=void 0;var Ka1=$G();class Wa1{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 Ka1.TE.encode($)}static toAscii($){return Ka1.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}}Ha1.DataBuffer=Wa1});var kE=v((Ua1)=>{Object.defineProperty(Ua1,"__esModule",{value:!0});Ua1.LF=Ua1.CR=Ua1.CRLF=Ua1.CR_LF_LEN=Ua1.CR_LF=void 0;Ua1.setTransportFactory=qr6;Ua1.defaultPort=Mr6;Ua1.getUrlParseFn=Vr6;Ua1.newTransport=kr6;Ua1.getResolveFn=Sr6;Ua1.protoLen=Na1;Ua1.extractProtocolMessage=Cr6;var Tr6=$G(),Rr6=oB(),Ir6=oi(),XG;function qr6($){XG=$}function Mr6(){return XG!==void 0&&XG.defaultPort!==void 0?XG.defaultPort:Rr6.DEFAULT_PORT}function Vr6(){return XG!==void 0&&XG.urlParseFn?XG.urlParseFn:void 0}function kr6(){if(!XG||typeof XG.factory!=="function")throw Error("transport fn is not set");return XG.factory()}function Sr6(){return XG!==void 0&&XG.dnsResolveFn?XG.dnsResolveFn:void 0}Ua1.CR_LF=`\r
1399
+ `);Q=G.pop()??"";for(let J of G){let K=ni(J).replace(/^\[\d+\]\s*/,"").trim();if(!K)continue;iB({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=ni(Q).replace(/^\[\d+\]\s*/,"").trim();if(G)iB({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:G})}})()}async function ct6($){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 ii(Number(Y)+1):await ii(Number($.port)),{settings:K,services:W,managedServiceNames:H}=await uZ0({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});di();let F=ut6(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)Or1(U.stdout),Or1(U.stderr);mi(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(() => (t90(),p90));await D(K.dataDir)}};return process.on("SIGINT",()=>O("SIGINT")),process.on("SIGTERM",()=>O("SIGTERM")),{port:Number(Y),process:U}}var Qn0=L(()=>{ai0();RE();Zn0()});var dZ0;var Yn0=L(()=>{dZ0={name:"decocms",version:"4.253.2",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 dt6,Text as Lr1}from"ink";import{jsx as mt6,jsxs as wr1}from"react/jsx-runtime";function Dr1({version:$}){return wr1(dt6,{flexDirection:"column",marginTop:1,children:[DZ0.map((Z,X)=>mt6(Lr1,{color:EZ0[X],children:Z},X)),wr1(Lr1,{dimColor:!0,children:[" v",$]})]})}var Er1=L(()=>{Ci()});import{Box as IE,Text as nB}from"ink";import{Spinner as it6}from"@inkjs/ui";import{jsx as eY,jsxs as $y}from"react/jsx-runtime";function jr1({status:$}){if($==="pending")return eY(it6,{label:""});return eY(nB,{color:"green",children:"\u2713"})}function nt6($){return`${$.name}: ${$.port||"...."}`}function zr1({services:$,migrationsStatus:Z,home:X,serverUrl:Q}){return $y(IE,{flexDirection:"column",paddingBottom:1,children:[eY(Dr1,{version:dZ0.version}),eY(IE,{marginBottom:1,children:eY(nB,{dimColor:!0,children:"\u2500".repeat(80)})}),eY(IE,{children:$y(nB,{dimColor:!0,children:["Home: ",X]})}),$y(IE,{gap:2,children:[$.map((Y)=>$y(IE,{gap:1,children:[eY(nB,{children:nt6(Y)}),eY(jr1,{status:Y.status})]},Y.name)),$y(IE,{gap:1,children:[eY(nB,{children:"Migrations"}),eY(jr1,{status:Z})]})]}),eY(IE,{children:Q?$y(nB,{children:["Open in browser: ",eY(nB,{color:"cyan",children:Q})]}):eY(nB,{dimColor:!0,children:"Starting..."})})]})}var Pr1=L(()=>{Yn0();Er1()});import{Box as pt6,Text as pi}from"ink";import{jsx as Gn0,jsxs as Jn0}from"react/jsx-runtime";function tt6($){if($>=500)return"red";if($>=400)return"yellow";if($>=300)return"cyan";return"green"}function Ar1({logs:$}){return Gn0(pt6,{flexDirection:"column",children:$.map((Z,X)=>{if(Z.rawLine)return Gn0(pi,{dimColor:!0,children:Z.rawLine},X);let Q=Z.duration<1000?`${Z.duration}ms`:`${(Z.duration/1000).toFixed(1)}s`;return Jn0(pi,{children:[Jn0(pi,{dimColor:!0,children:[Z.method.padEnd(6)," ",Z.path.padEnd(30)," "]}),Gn0(pi,{color:tt6(Z.status),children:Z.status}),Jn0(pi,{dimColor:!0,children:[" ",Q.padStart(8)]})]},X)})})}var Tr1=()=>{};var Kn0={};N0(Kn0,{App:()=>at6});import{Box as ot6}from"ink";import{useSyncExternalStore as rt6}from"react";import{jsx as Rr1,jsxs as st6}from"react/jsx-runtime";function at6({home:$}){let Z=rt6($n0,ei0);return st6(ot6,{flexDirection:"column",children:[Rr1(zr1,{services:Z.services,migrationsStatus:Z.migrationsStatus,home:$,serverUrl:Z.serverUrl}),Rr1(Ar1,{logs:Z.logs})]})}var Wn0=L(()=>{Pr1();Tr1();RE()});var gJ="thread-gate",$N="decopilot-hosted-harness",ZN="decopilot-hosted-harness-sandboxed",N3="automations",pB="background-tools",qE="task-board-github-reads",ME="jira-push";var Ir1="7";function qr1($){return{name:"decocms",systemDatabaseUrl:$.systemDatabaseUrl,systemDatabaseSchemaName:"dbos",systemDatabasePoolSize:$.poolSize,runAdminServer:!1,executorID:$.executorID,applicationVersion:Ir1,...$.listenQueues!==void 0?{listenQueues:$.listenQueues}:{}}}var Mr1=()=>{};function et6(){let $=(process.env.BUN_OPTIONS??"").split(/\s+/).filter(Boolean);return[...process.argv.slice(1),...$]}function Hn0($,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 Vr1(){let $=et6();if($.includes("--cpu-prof")){console.log(JSON.stringify({msg:"cpu-profiling-active",dir:Hn0($,"--cpu-prof-dir")??process.cwd(),name:Hn0($,"--cpu-prof-name"),markdown:$.includes("--cpu-prof-md"),intervalUs:Number(Hn0($,"--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 kr1(){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(()=>{}),mZ0=setInterval(()=>void Z().catch(()=>{}),$),mZ0.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(mZ0)clearInterval(mZ0)}}var mZ0;var Sr1=()=>{};import*as $o6 from"bun:jsc";function Cr1(){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{Zo6()}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=Xo6()?.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 Zo6,Xo6;var _r1=L(()=>{({startSamplingProfiler:Zo6,samplingProfilerStackTraces:Xo6}=$o6)});function vr1(){Vr1();let $=[kr1(),qn1(),Cr1()];return()=>{for(let Z of $)Z()}}var xr1=L(()=>{Gl0();Sr1();_r1()});var VE=v((fr1)=>{Object.defineProperty(fr1,"__esModule",{value:!0});fr1.RepublishHeaders=fr1.DirectMsgHeaders=fr1.JsHeaders=fr1.AdvisoryKind=void 0;fr1.isOrderedPushConsumerOptions=Qo6;fr1.isPullConsumer=Yo6;fr1.isPushConsumer=Go6;fr1.isBoundPushConsumerOptions=Jo6;function Qo6($){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 Yo6($){return $.isPullConsumer()}function Go6($){return $.isPushConsumer()}function Jo6($){if($&&typeof $==="object")return"deliver_subject"in $||"deliver_group"in $||"idle_heartbeat"in $;return!1}fr1.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"};fr1.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"};fr1.DirectMsgHeaders={Stream:"Nats-Stream",Sequence:"Nats-Sequence",TimeStamp:"Nats-Time-Stamp",Subject:"Nats-Subject",LastSequence:"Nats-Last-Sequence",NumPending:"Nats-Num-Pending"};fr1.RepublishHeaders={Stream:"Nats-Stream",Subject:"Nats-Subject",Sequence:"Nats-Sequence",LastSequence:"Nats-Last-Sequence",Size:"Nats-Msg-Size"}});var $G=v((yr1)=>{Object.defineProperty(yr1,"__esModule",{value:!0});yr1.TD=yr1.TE=yr1.Empty=void 0;yr1.encode=Lo6;yr1.decode=wo6;yr1.Empty=new Uint8Array(0);yr1.TE=new TextEncoder;yr1.TD=new TextDecoder;function Oo6(...$){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 Lo6(...$){let Z=[];for(let X=0;X<$.length;X++)Z.push(yr1.TE.encode($[X]));if(Z.length===0)return yr1.Empty;if(Z.length===1)return Z[0];return Oo6(...Z)}function wo6($){if(!$||$.length===0)return"";return yr1.TD.decode($)}});var ZG=v((ur1)=>{Object.defineProperty(ur1,"__esModule",{value:!0});ur1.errors=ur1.PermissionViolationError=ur1.NoRespondersError=ur1.TimeoutError=ur1.RequestError=ur1.ProtocolError=ur1.ConnectionError=ur1.DrainingConnectionError=ur1.ClosedConnectionError=ur1.AuthorizationError=ur1.UserAuthenticationExpiredError=ur1.InvalidOperationError=ur1.InvalidArgumentError=ur1.InvalidSubjectError=void 0;class Nn0 extends Error{constructor($,Z){super(`illegal subject: '${$}'`,Z);this.name="InvalidSubjectError"}}ur1.InvalidSubjectError=Nn0;class iZ0 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 iZ0(`${$} ${Z}`,X)}}ur1.InvalidArgumentError=iZ0;class Un0 extends Error{constructor($,Z){super($,Z);this.name="InvalidOperationError"}}ur1.InvalidOperationError=Un0;class nZ0 extends Error{constructor($,Z){super($,Z);this.name="UserAuthenticationExpiredError"}static parse($){if($.toLowerCase().indexOf("user authentication expired")!==-1)return new nZ0($);return null}}ur1.UserAuthenticationExpiredError=nZ0;class pZ0 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 pZ0($);return null}}ur1.AuthorizationError=pZ0;class Bn0 extends Error{constructor(){super("closed connection");this.name="ClosedConnectionError"}}ur1.ClosedConnectionError=Bn0;class On0 extends Error{constructor(){super("connection draining");this.name="DrainingConnectionError"}}ur1.DrainingConnectionError=On0;class Ln0 extends Error{constructor($,Z){super($,Z);this.name="ConnectionError"}}ur1.ConnectionError=Ln0;class wn0 extends Error{constructor($,Z){super($,Z);this.name="ProtocolError"}}ur1.ProtocolError=wn0;class Dn0 extends Error{constructor($="",Z){super($,Z);this.name="RequestError"}isNoResponders(){return this.cause instanceof tZ0}}ur1.RequestError=Dn0;class En0 extends Error{constructor($){super("timeout",$);this.name="TimeoutError"}}ur1.TimeoutError=En0;class tZ0 extends Error{subject;constructor($,Z){super(`no responders: '${$}'`,Z);this.subject=$,this.name="NoResponders"}}ur1.NoRespondersError=tZ0;class oZ0 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 oZ0($,X,Q,Y)}}ur1.PermissionViolationError=oZ0;ur1.errors={AuthorizationError:pZ0,ClosedConnectionError:Bn0,ConnectionError:Ln0,DrainingConnectionError:On0,InvalidArgumentError:iZ0,InvalidOperationError:Un0,InvalidSubjectError:Nn0,NoRespondersError:tZ0,PermissionViolationError:oZ0,ProtocolError:wn0,RequestError:Dn0,TimeoutError:En0,UserAuthenticationExpiredError:nZ0}});var hJ=v((ir1)=>{Object.defineProperty(ir1,"__esModule",{value:!0});ir1.SimpleMutex=ir1.Perf=void 0;ir1.extend=vo6;ir1.render=xo6;ir1.timeout=fo6;ir1.delay=bo6;ir1.deadline=yo6;ir1.deferred=zn0;ir1.debugDeferred=go6;ir1.shuffle=ho6;ir1.collect=uo6;ir1.jitter=mr1;ir1.backoff=co6;ir1.nanos=lo6;ir1.millis=do6;ir1.randomToken=no6;var _o6=$G(),jn0=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 xo6($){return _o6.TD.decode($).replace(/\n/g,"\u240A").replace(/\r/g,"\u240D")}function fo6($,Z=!0){let X=Z?new jn0.TimeoutError:null,Q,Y,G=new Promise((J,K)=>{Q={cancel:()=>{if(Y)clearTimeout(Y)}},Y=setTimeout(()=>{if(X===null)K(new jn0.TimeoutError);else K(X)},$)});return Object.assign(G,Q)}function bo6($=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 yo6($,Z=1000){let X=zn0(),Q=setTimeout(()=>{X.reject(new jn0.TimeoutError)},Z);try{return await Promise.race([$,X])}finally{clearTimeout(Q)}}function zn0(){let $={},Z=new Promise((X,Q)=>{$={resolve:X,reject:Q}});return Object.assign(Z,$)}function go6(){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 ho6($){for(let Z=$.length-1;Z>0;Z--){let X=Math.floor(Math.random()*(Z+1));[$[Z],$[X]]=[$[X],$[Z]]}return $}async function uo6($){let Z=[];for await(let X of $)Z.push(X);return Z}class lr1{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})}),$}}ir1.Perf=lr1;class dr1{max;current;waiting;constructor($=1){this.max=$,this.current=0,this.waiting=[]}lock(){if(this.current++,this.current<=this.max)return Promise.resolve();let $=zn0();return this.waiting.push($),$}unlock(){this.current--,this.waiting.pop()?.resolve()}}ir1.SimpleMutex=dr1;function mr1($){if($===0)return 0;return Math.floor($/2+Math.random()*$)}function co6($=[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 mr1(X>Z?$[Z]:$[X])}}}function lo6($){return $*1e6}function do6($){return Math.floor($/1e6)}var mo6="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",XN=new Uint8Array(62);for(let $=0;$<62;$++)XN[$]=mo6.charCodeAt($);var io6=218340105584896;function no6(){let $=Math.floor(Math.random()*io6),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 er1=v((ar1)=>{Object.defineProperty(ar1,"__esModule",{value:!0});ar1.nuid=ar1.NuidImpl=void 0;var Wr6="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",tB=62,aZ0=12,or1=10,pr1=33,Hr6=333,tr1=aZ0+or1,An0=new Uint8Array(tB);for(let $=0;$<tB;$++)An0[$]=Wr6.charCodeAt($);var rZ0=4294967296,rr1=BigInt(tB)**BigInt(or1),ti=Number(rr1/(1n<<32n)),Pn0=Number(rr1%(1n<<32n));function Fr6($){for(let Z=0;Z<$.length;Z++)$[Z]=Math.floor(Math.random()*256)}function Nr6($){if(globalThis?.crypto?.getRandomValues)globalThis.crypto.getRandomValues($);else Fr6($)}class Tn0{buf;cbuf;seqHi;seqLo;inc;inited;constructor(){this.buf=new Uint8Array(tr1),this.cbuf=new Uint8Array(aZ0),this.inited=!1}init(){this.inited=!0,this.setPre(),this.initSeqAndInc(),this.fillSeq()}initSeqAndInc(){let $=0;do this.seqHi=Math.floor(Math.random()*(ti+1)),this.seqLo=Math.floor(Math.random()*rZ0);while($++<8&&this.seqHi===ti&&this.seqLo>=Pn0);if(this.seqHi===ti&&this.seqLo>=Pn0)this.seqLo=0;this.inc=Math.random()*(Hr6-pr1)+pr1|0}setPre(){Nr6(this.cbuf);for(let $=0;$<aZ0;$++)this.buf[$]=An0[this.cbuf[$]%tB]}fillSeq(){let $=this.seqHi,Z=this.seqLo;for(let X=tr1-1;X>=aZ0;X--){let Q=Math.floor($/tB),G=($-Q*tB)*rZ0+Z,J=Math.floor(G/tB),K=G-J*tB;this.buf[X]=An0[K],$=Q,Z=J}}next(){if(!this.inited)this.init();if(this.seqLo+=this.inc,this.seqLo>=rZ0)this.seqLo-=rZ0,this.seqHi+=1;if(this.seqHi>ti||this.seqHi===ti&&this.seqLo>=Pn0)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()}}ar1.NuidImpl=Tn0;ar1.nuid=new Tn0});var Qa1=v((Za1)=>{Object.defineProperty(Za1,"__esModule",{value:!0});Za1.nuid=Za1.Nuid=void 0;var $a1=er1();Za1.Nuid=$a1.NuidImpl;Za1.nuid=$a1.nuid});var eZ0=v((sZ0)=>{Object.defineProperty(sZ0,"__esModule",{value:!0});sZ0.nuid=sZ0.Nuid=void 0;var Ya1=Qa1();Object.defineProperty(sZ0,"Nuid",{enumerable:!0,get:function(){return Ya1.Nuid}});Object.defineProperty(sZ0,"nuid",{enumerable:!0,get:function(){return Ya1.nuid}})});var oB=v((Ga1)=>{Object.defineProperty(Ga1,"__esModule",{value:!0});Ga1.DEFAULT_HOST=Ga1.DEFAULT_PORT=Ga1.Match=void 0;Ga1.syncIterator=Dr6;Ga1.createInbox=Er6;var Lr6=eZ0(),wr6=ZG();Ga1.Match={Exact:"exact",CanonicalMIME:"canonical",IgnoreCase:"insensitive"};function Dr6($){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 Er6($=""){if($=$||"_INBOX",typeof $!=="string")throw TypeError("prefix must be a string");return $.split(".").forEach((Z)=>{if(Z==="*"||Z===">")throw wr6.InvalidArgumentError.format("prefix",`cannot have wildcards ('${$}')`)}),`${$}.${Lr6.nuid.next()}`}Ga1.DEFAULT_PORT=4222;Ga1.DEFAULT_HOST="127.0.0.1"});var oi=v((Ha1)=>{Object.defineProperty(Ha1,"__esModule",{value:!0});Ha1.DataBuffer=void 0;var Ka1=$G();class Wa1{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 Ka1.TE.encode($)}static toAscii($){return Ka1.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}}Ha1.DataBuffer=Wa1});var kE=v((Ua1)=>{Object.defineProperty(Ua1,"__esModule",{value:!0});Ua1.LF=Ua1.CR=Ua1.CRLF=Ua1.CR_LF_LEN=Ua1.CR_LF=void 0;Ua1.setTransportFactory=qr6;Ua1.defaultPort=Mr6;Ua1.getUrlParseFn=Vr6;Ua1.newTransport=kr6;Ua1.getResolveFn=Sr6;Ua1.protoLen=Na1;Ua1.extractProtocolMessage=Cr6;var Tr6=$G(),Rr6=oB(),Ir6=oi(),XG;function qr6($){XG=$}function Mr6(){return XG!==void 0&&XG.defaultPort!==void 0?XG.defaultPort:Rr6.DEFAULT_PORT}function Vr6(){return XG!==void 0&&XG.urlParseFn?XG.urlParseFn:void 0}function kr6(){if(!XG||typeof XG.factory!=="function")throw Error("transport fn is not set");return XG.factory()}function Sr6(){return XG!==void 0&&XG.dnsResolveFn?XG.dnsResolveFn:void 0}Ua1.CR_LF=`\r
1400
1400
  `;Ua1.CR_LF_LEN=Ua1.CR_LF.length;Ua1.CRLF=Ir6.DataBuffer.fromAscii(Ua1.CR_LF);Ua1.CR=new Uint8Array(Ua1.CRLF)[0];Ua1.LF=new Uint8Array(Ua1.CRLF)[1];function Na1($){for(let Z=0;Z<$.length;Z++){let X=Z+1;if($.byteLength>X&&$[Z]===Ua1.CR&&$[X]===Ua1.LF)return X+1}return 0}function Cr6($){let Z=Na1($);if(Z>0){let Q=new Uint8Array($).slice(0,Z);return Tr6.TD.decode(Q)}return""}});var Vn0=v((za1)=>{Object.defineProperty(za1,"__esModule",{value:!0});za1.ipV4=Da1;za1.isIP=lr6;za1.parseIP=Ea1;var ri=4,SE=16,$70=48,wa1=57,Oa1=65,ur6=70,La1=97,cr6=102,Mn0=16777215;function Da1($,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 lr6($){return Ea1($)!==void 0}function Ea1($){for(let Z=0;Z<$.length;Z++)switch($[Z]){case".":return ja1($);case":":return dr6($)}return}function ja1($){let Z=new Uint8Array(ri);for(let X=0;X<ri;X++){if($.length===0)return;if(X>0){if($[0]!==".")return;$=$.substring(1)}let{n:Q,c:Y,ok:G}=mr6($);if(!G||Q>255)return;$=$.substring(Y),Z[X]=Q}return Da1(Z[0],Z[1],Z[2],Z[3])}function dr6($){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}=ir6($);if(!J||Y>65535)return;if(G<$.length&&$[G]==="."){if(X<0&&Q!=SE-ri)return;if(Q+ri>SE)return;let K=ja1($);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+=ri;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 mr6($){let Z=0,X=0;for(Z=0;Z<$.length&&$70<=$.charCodeAt(Z)&&$.charCodeAt(Z)<=wa1;Z++)if(X=X*10+($.charCodeAt(Z)-$70),X>=Mn0)return{n:Mn0,c:Z,ok:!1};if(Z===0)return{n:0,c:0,ok:!1};return{n:X,c:Z,ok:!0}}function ir6($){let Z=0,X=0;for(X=0;X<$.length;X++){if($70<=$.charCodeAt(X)&&$.charCodeAt(X)<=wa1)Z*=16,Z+=$.charCodeAt(X)-$70;else if(La1<=$.charCodeAt(X)&&$.charCodeAt(X)<=cr6)Z*=16,Z+=$.charCodeAt(X)-La1+10;else if(Oa1<=$.charCodeAt(X)&&$.charCodeAt(X)<=ur6)Z*=16,Z+=$.charCodeAt(X)-Oa1+10;else break;if(Z>=Mn0)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 xn0=v((Aa1)=>{Object.defineProperty(Aa1,"__esModule",{value:!0});Aa1.Servers=Aa1.ServerImpl=void 0;Aa1.isIPV4OrHostname=Pa1;Aa1.hostPort=vn0;var kn0=kE(),Sn0=hJ(),Cn0=Vn0(),or6=oB(),rr6=ZG();function Pa1($){if($.indexOf("[")!==-1||$.indexOf("::")!==-1)return!1;if($.indexOf(".")!==-1)return!0;if($.split(":").length<=2)return!0;return!1}function _n0($){return!Pa1($)}function ar6($){let X=$.toUpperCase().indexOf("::FFFF:");if(X!==-1&&$.indexOf(".")!==-1){let Q=$.substring(X+7);return Q=Q.replace("[",""),Q.replace("]","")}return $}function vn0($){if($=$.trim(),$.match(/^(.*:\/\/)(.*)/m))$=$.replace(/^(.*:\/\/)(.*)/gm,"$2");if($=ar6($),_n0($)&&$.indexOf("[")===-1)$=`[${$}]`;let Z=_n0($)?$.match(/(]:)(\d+)/):$.match(/(:)(\d+)/),X=Z&&Z.length===3&&Z[1]&&Z[2]?parseInt(Z[2]):or6.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 Zy{src;listen;hostname;port;didConnect;reconnects;lastConnect;gossiped;tlsName;resolves;constructor($,Z=!1){this.src=$,this.tlsName="";let X=vn0($);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,Cn0.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}://${_n0(Q)?"["+Q+"]":Q}`);G.port=`${this.port}`;let J=new Zy(G.host,!1);J.tlsName=this.hostname,Z.push(J)}}if($.randomize)(0,Sn0.shuffle)(Z);return this.resolves=Z,Z}}Aa1.ServerImpl=Zy;class Z70{firstSelect;servers;currentServer;tlsName;randomize;constructor($={}){this.firstSelect=!0,this.servers=[],this.tlsName="",this.randomize=$.randomize||!1}setServers($){if(!Array.isArray($)||$.length===0)throw rr6.InvalidArgumentError.format("servers","cannot be empty");let Z=(0,kn0.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}=vn0(Y),J=X.get(G);if(J)J.gossiped=!1,Q.push(J);else Q.push(new Zy(Y))}if(this.randomize)(0,Sn0.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,Cn0.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,kn0.getUrlParseFn)();$=X?X($):$;let Q=new Zy($,Z);if((0,Cn0.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 Z70.freezeAll(this.servers)}snapshotForHandler(){let $=this.currentServer;if(!$)return this.snapshot();let Z=this.servers.indexOf($);if(Z<=0)return this.snapshot();return Z70.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,kn0.getUrlParseFn)(),G=new Map;if($.connect_urls&&$.connect_urls.length>0)$.connect_urls.forEach((K)=>{K=Y?Y(K,Z):K;let W=new Zy(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,Sn0.shuffle)(W),this.servers=K?[K,...W]:W}return{added:X,deleted:Q}}}Aa1.Servers=Z70});var X70=v((qa1)=>{Object.defineProperty(qa1,"__esModule",{value:!0});qa1.QueuedIteratorImpl=void 0;var fn0=hJ(),Ra1=ZG();class Ia1{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,fn0.deferred)(),this.yields=[],this.iterClosed=(0,fn0.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 Ra1.InvalidOperationError("iterator cannot be used when a callback is registered");if(this.yielding)throw new Ra1.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,fn0.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}}qa1.QueuedIteratorImpl=Ia1});var bn0=v((Sa1)=>{Object.defineProperty(Sa1,"__esModule",{value:!0});Sa1.MuxSubscription=void 0;var Za6=oB(),Va1=ZG();class ka1{baseInbox;reqs;constructor(){this.reqs=new Map}size(){return this.reqs.size}init($){return this.baseInbox=`${(0,Za6.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 Va1.NoRespondersError(Q.requestSubject):null;Q.resolver($,Z)}}}}close(){let $=new Va1.RequestError("connection closed");this.reqs.forEach((Z)=>{Z.resolver($,{})})}}Sa1.MuxSubscription=ka1});var yn0=v((va1)=>{Object.defineProperty(va1,"__esModule",{value:!0});va1.Heartbeat=void 0;var Xa6=hJ();class _a1{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,Xa6.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})}}va1.Heartbeat=_a1});var un0=v((ga1)=>{Object.defineProperty(ga1,"__esModule",{value:!0});ga1.DenoBuffer=ga1.MAX_SIZE=ga1.AssertionError=void 0;ga1.assert=ba1;ga1.concat=ya1;ga1.append=Ya6;ga1.readAll=Ga6;ga1.writeAll=Ja6;var Qa6=$G();class gn0 extends Error{constructor($){super($);this.name="AssertionError"}}ga1.AssertionError=gn0;function ba1($,Z="Assertion failed."){if(!$)throw new gn0(Z)}var fa1=32768;ga1.MAX_SIZE=4294967294;function Q70($,Z,X=0){let Q=Z.byteLength-X;if($.byteLength>Q)$=$.subarray(0,Q);return Z.set($,X),$.byteLength}function ya1($,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 Ya6($,Z){return ya1($,Uint8Array.of(Z))}class hn0{_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($){ba1($<=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=Q70(this._buf.subarray(this._off),$);return this._off+=Z,Z}writeByte($){return this.write(Uint8Array.of($))}writeString($){return this.write(Qa6.TE.encode($))}write($){let Z=this._grow($.byteLength);return Q70($,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)Q70(this._buf.subarray(this._off),this._buf);else if(Q+$>ga1.MAX_SIZE)throw Error("The buffer cannot be grown beyond the maximum size.");else{let Y=new Uint8Array(Math.min(2*Q+$,ga1.MAX_SIZE));Q70(this._buf.subarray(this._off),Y),this._buf=Y}return this._off=0,this._reslice(Math.min(Z+$,ga1.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(fa1);while(!0){let Q=this.capacity-this.length<fa1,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}}}ga1.DenoBuffer=hn0;function Ga6($){let Z=new hn0;return Z.readFrom($),Z.bytes()}function Ja6($,Z){let X=0;while(X<Z.length)X+=$.write(Z.subarray(X))}});var dn0=v((da1)=>{Object.defineProperty(da1,"__esModule",{value:!0});da1.cc=da1.State=da1.Parser=da1.Kind=void 0;da1.describe=Ba6;var cn0=un0(),ln0=$G();da1.Kind={OK:0,ERR:1,MSG:2,INFO:3,PING:4,PONG:5};function Ba6($){let Z,X="";switch($.kind){case da1.Kind.MSG:Z="MSG";break;case da1.Kind.OK:Z="OK";break;case da1.Kind.ERR:Z="ERR",X=ln0.TD.decode($.data);break;case da1.Kind.PING:Z="PING";break;case da1.Kind.PONG:Z="PONG";break;case da1.Kind.INFO:Z="INFO",X=ln0.TD.decode($.data)}return`${Z}: ${X}`}function ua1(){let $={};return $.sid=-1,$.hdr=-1,$.size=-1,$}var ca1=48,Oa6=57,Xy=67108864;class la1{dispatcher;state;as;drop;hdr;ma;argBuf;msgBuf;constructor($){this.dispatcher=$,this.state=da1.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 da1.State.OP_START:switch(X){case da1.cc.M:case da1.cc.m:this.state=da1.State.OP_M,this.hdr=-1,this.ma=ua1();break;case da1.cc.H:case da1.cc.h:this.state=da1.State.OP_H,this.hdr=0,this.ma=ua1();break;case da1.cc.P:case da1.cc.p:this.state=da1.State.OP_P;break;case da1.cc.PLUS:this.state=da1.State.OP_PLUS;break;case da1.cc.MINUS:this.state=da1.State.OP_MINUS;break;case da1.cc.I:case da1.cc.i:this.state=da1.State.OP_I;break;default:throw this.fail($.subarray(Z))}break;case da1.State.OP_H:switch(X){case da1.cc.M:case da1.cc.m:this.state=da1.State.OP_M;break;default:throw this.fail($.subarray(Z))}break;case da1.State.OP_M:switch(X){case da1.cc.S:case da1.cc.s:this.state=da1.State.OP_MS;break;default:throw this.fail($.subarray(Z))}break;case da1.State.OP_MS:switch(X){case da1.cc.G:case da1.cc.g:this.state=da1.State.OP_MSG;break;default:throw this.fail($.subarray(Z))}break;case da1.State.OP_MSG:switch(X){case da1.cc.SPACE:case da1.cc.TAB:this.state=da1.State.OP_MSG_SPC;break;default:throw this.fail($.subarray(Z))}break;case da1.State.OP_MSG_SPC:switch(X){case da1.cc.SPACE:case da1.cc.TAB:continue;default:this.state=da1.State.MSG_ARG,this.as=Z}break;case da1.State.MSG_ARG:switch(X){case da1.cc.CR:this.drop=1;break;case da1.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=da1.State.MSG_PAYLOAD,Z=this.as+this.ma.size-1;break}default:if(this.argBuf)this.argBuf.writeByte(X)}break;case da1.State.MSG_PAYLOAD:if(this.msgBuf)if(this.msgBuf.length>=this.ma.size){let Q=this.msgBuf.bytes({copy:!1});this.dispatcher.push({kind:da1.Kind.MSG,msg:this.ma,data:Q}),this.argBuf=void 0,this.msgBuf=void 0,this.state=da1.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:da1.Kind.MSG,msg:this.ma,data:$.subarray(this.as,Z)}),this.argBuf=void 0,this.msgBuf=void 0,this.state=da1.State.MSG_END;break;case da1.State.MSG_END:switch(X){case da1.cc.NL:this.drop=0,this.as=Z+1,this.state=da1.State.OP_START;break;default:continue}break;case da1.State.OP_PLUS:switch(X){case da1.cc.O:case da1.cc.o:this.state=da1.State.OP_PLUS_O;break;default:throw this.fail($.subarray(Z))}break;case da1.State.OP_PLUS_O:switch(X){case da1.cc.K:case da1.cc.k:this.state=da1.State.OP_PLUS_OK;break;default:throw this.fail($.subarray(Z))}break;case da1.State.OP_PLUS_OK:switch(X){case da1.cc.NL:this.dispatcher.push({kind:da1.Kind.OK}),this.drop=0,this.state=da1.State.OP_START;break}break;case da1.State.OP_MINUS:switch(X){case da1.cc.E:case da1.cc.e:this.state=da1.State.OP_MINUS_E;break;default:throw this.fail($.subarray(Z))}break;case da1.State.OP_MINUS_E:switch(X){case da1.cc.R:case da1.cc.r:this.state=da1.State.OP_MINUS_ER;break;default:throw this.fail($.subarray(Z))}break;case da1.State.OP_MINUS_ER:switch(X){case da1.cc.R:case da1.cc.r:this.state=da1.State.OP_MINUS_ERR;break;default:throw this.fail($.subarray(Z))}break;case da1.State.OP_MINUS_ERR:switch(X){case da1.cc.SPACE:case da1.cc.TAB:this.state=da1.State.OP_MINUS_ERR_SPC;break;default:throw this.fail($.subarray(Z))}break;case da1.State.OP_MINUS_ERR_SPC:switch(X){case da1.cc.SPACE:case da1.cc.TAB:continue;default:this.state=da1.State.MINUS_ERR_ARG,this.as=Z}break;case da1.State.MINUS_ERR_ARG:switch(X){case da1.cc.CR:this.drop=1;break;case da1.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:da1.Kind.ERR,data:Q}),this.drop=0,this.as=Z+1,this.state=da1.State.OP_START;break}default:if(this.argBuf)this.argBuf.write(Uint8Array.of(X))}break;case da1.State.OP_P:switch(X){case da1.cc.I:case da1.cc.i:this.state=da1.State.OP_PI;break;case da1.cc.O:case da1.cc.o:this.state=da1.State.OP_PO;break;default:throw this.fail($.subarray(Z))}break;case da1.State.OP_PO:switch(X){case da1.cc.N:case da1.cc.n:this.state=da1.State.OP_PON;break;default:throw this.fail($.subarray(Z))}break;case da1.State.OP_PON:switch(X){case da1.cc.G:case da1.cc.g:this.state=da1.State.OP_PONG;break;default:throw this.fail($.subarray(Z))}break;case da1.State.OP_PONG:switch(X){case da1.cc.NL:this.dispatcher.push({kind:da1.Kind.PONG}),this.drop=0,this.state=da1.State.OP_START;break}break;case da1.State.OP_PI:switch(X){case da1.cc.N:case da1.cc.n:this.state=da1.State.OP_PIN;break;default:throw this.fail($.subarray(Z))}break;case da1.State.OP_PIN:switch(X){case da1.cc.G:case da1.cc.g:this.state=da1.State.OP_PING;break;default:throw this.fail($.subarray(Z))}break;case da1.State.OP_PING:switch(X){case da1.cc.NL:this.dispatcher.push({kind:da1.Kind.PING}),this.drop=0,this.state=da1.State.OP_START;break}break;case da1.State.OP_I:switch(X){case da1.cc.N:case da1.cc.n:this.state=da1.State.OP_IN;break;default:throw this.fail($.subarray(Z))}break;case da1.State.OP_IN:switch(X){case da1.cc.F:case da1.cc.f:this.state=da1.State.OP_INF;break;default:throw this.fail($.subarray(Z))}break;case da1.State.OP_INF:switch(X){case da1.cc.O:case da1.cc.o:this.state=da1.State.OP_INFO;break;default:throw this.fail($.subarray(Z))}break;case da1.State.OP_INFO:switch(X){case da1.cc.SPACE:case da1.cc.TAB:this.state=da1.State.OP_INFO_SPC;break;default:throw this.fail($.subarray(Z))}break;case da1.State.OP_INFO_SPC:switch(X){case da1.cc.SPACE:case da1.cc.TAB:continue;default:this.state=da1.State.INFO_ARG,this.as=Z}break;case da1.State.INFO_ARG:switch(X){case da1.cc.CR:this.drop=1;break;case da1.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:da1.Kind.INFO,data:Q}),this.drop=0,this.as=Z+1,this.state=da1.State.OP_START;break}default:if(this.argBuf)this.argBuf.writeByte(X)}break;default:throw this.fail($.subarray(Z))}}if((this.state===da1.State.MSG_ARG||this.state===da1.State.MINUS_ERR_ARG||this.state===da1.State.INFO_ARG)&&!this.argBuf)this.argBuf=new cn0.DenoBuffer($.subarray(this.as,Z-this.drop));if(this.state===da1.State.MSG_PAYLOAD&&!this.msgBuf){if(!this.argBuf)this.cloneMsgArg();this.msgBuf=new cn0.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 cn0.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 da1.cc.SPACE:case da1.cc.TAB:case da1.cc.CR:case da1.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],Xy);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],Xy);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}: ${ln0.TD.decode($)}`)}processHeaderMsgArgs($){let Z=[],X=-1;for(let Q=0;Q<$.length;Q++)switch($[Q]){case da1.cc.SPACE:case da1.cc.TAB:case da1.cc.CR:case da1.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],Xy),this.ma.size=this.protoParseInt(Z[3],Xy);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],Xy),this.ma.size=this.protoParseInt(Z[4],Xy);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]<ca1||$[Q]>Oa6)return-1;X=X*10+($[Q]-ca1)}return Z!==void 0&&X>Z?-1:X}}da1.Parser=la1;da1.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};da1.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 J70=v((ia1)=>{Object.defineProperty(ia1,"__esModule",{value:!0});ia1.MsgHdrsImpl=void 0;ia1.canonicalMIMEHeaderKey=in0;ia1.headers=Da6;var ma1=$G(),uJ=oB(),G70=ZG();function in0($){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 G70.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 Da6($=0,Z=""){if($===0&&Z!=="")throw G70.InvalidArgumentError.format("code","is required");else if($>0&&Z==="")throw G70.InvalidArgumentError.format("description","is required");return new Qy($,Z)}var mn0="NATS/1.0";class Qy{_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 Qy,Q=ma1.TD.decode($).split(`\r
1401
1401
  `),Y=Q[0];if(Y!==mn0){let G=Y.replace(mn0,"").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 $=mn0;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
1402
1402
  ${Z}: ${X[Q]}`;return`${$}\r
@@ -2862,7 +2862,7 @@ data:
2862
2862
  </head>`+$.slice(F)}return`<head>
2863
2863
  `+Q+`
2864
2864
  </head>
2865
- `+$}function bT0($){if(!$||$.length===0)return[];return $.filter((Z)=>os4.test(Z))}function rs4($){if($.csp)return $.csp;let Z=$.resourceCsp;if(!Z)return yf8;let X=bT0(Z.resourceDomains),Q=bT0(Z.connectDomains),Y=bT0(Z.frameDomains),G=bT0(Z.baseUriDomains),J=X.length>0,K=Q.length>0,W=Y.length>0,H=G.length>0;if(!J&&!K&&!W&&!H)return yf8;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 yf8,os4;var hf8=L(()=>{yf8=["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("; ");os4=/^https?:\/\/(\*\.)?[a-zA-Z0-9._-]+(:\d+)?\/?$/});function as4($){let Z=$.lastFailureAt-$.firstFailureAt;return $.count>=FZ8&&Z>=NZ8}class tX1{options;kv=null;codec=F30();constructor($){this.options=$}async init(){let $=this.options.getJetStream();if(!$)return;this.kv=await new cf8.Kvm($).create(ss4,{storage:uf8.StorageType.Memory,ttl:lf8.nanos(UZ8)})}async recordFailure($){if(!this.kv)return pX1;let Z=Date.now();for(let X=0;X<es4;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:as4(J)}}catch{}return pX1}async recordSuccess($){if(!this.kv)return;try{await this.kv.delete($)}catch{}}teardown(){this.kv=null}}class Xs{async recordFailure(){return pX1}async recordSuccess(){}teardown(){}}function oX1($){df8=$??new Xs}function rX1(){return df8}var uf8,cf8,lf8,pX1,ss4="DECOCMS_CONN_CIRCUIT",es4=5,df8;var aX1=L(()=>{uf8=k(hE(),1),cf8=k(j11(),1),lf8=k(Jn(),1),pX1={count:0,shouldDisable:!1};df8=new Xs});function mf8($){if(!$)return{decision:"skip"};if($.startsWith("notifications/"))return{decision:"skip"};if(Ze4.has($))return{decision:"skip"};let Z=$e4[$];if(Z)return{decision:"skip-if-list-cached",listType:Z};return{decision:"probe"}}async function if8($){if($.method!=="POST")return;let Z=$.headers.get("content-length");if(Z&&Number(Z)>Xe4)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 $e4,Ze4,Xe4=64000;var nf8=L(()=>{$e4={"tools/list":"tools","resources/list":"resources","prompts/list":"prompts"},Ze4=new Set(["ping"])});import{SpanStatusCode as yT0}from"@opentelemetry/api";async function gT0($,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:yT0.OK}),B}catch(B){throw U.setStatus({code:yT0.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 kv(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 YU(G,X,!1,{includeSkillsCatalog:!0,additionalConnections:K?[K]:[]});return U.setStatus({code:yT0.OK}),B}catch(B){throw U.setStatus({code:yT0.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:Zg}),N=new VQ({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 hT0=()=>{let $=new A1;return $.all("/gateway/:virtualMcpId?",async(Z)=>{let X=Z.req.param("virtualMcpId")||Z.req.header("x-virtual-mcp-id");return gT0(Z,X)}),$.all("/virtual-mcp/:virtualMcpId?",async(Z)=>{let X=Z.req.param("virtualMcpId")||Z.req.header("x-virtual-mcp-id");return gT0(Z,X)}),$};var uT0=L(()=>{JQ();S6();fv();I6();Tu();eA0();EQ();ou()});import{SpanStatusCode as cT0}from"@opentelemetry/api";var pf8=($,Z)=>{if($ instanceof Kh)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)},lT0=()=>{let $=new A1;return $.all("/",async(Z)=>{return gT0(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=Wa0(Q),J;if(G){let B=D1(X);if(!B)return Z.json({error:"Authentication required"},401);if(J=await kv(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=gf8(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 ru(Q),W=new VQ({enableJsonResponse:Z.req.raw.headers.get("Accept")?.includes("application/json")??!1});return await K.connect(W),LU.run(Q,()=>ZJ(K,W,Z.req.raw,`mcp:self:${X}`))}let Y=Wa0(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 kv(Q,Y,J,Z.req.query("branch")??void 0);if(!K)return Z.json({error:"Dev server not running"},503);let W=O30(K,Q,!1),H=new VQ({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:cT0.OK}),D}catch(D){throw w.setStatus({code:cT0.ERROR,message:D.message}),w.recordException(D),D}finally{_G(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>=Ua0)K=!0;else{if(J.status==="error"&&J.connection_url){let E=Ua0-w;Z.header("Retry-After",String(Math.ceil(E/1000)))}throw Error(`Connection inactive: ${J.status}`)}}let W=await if8(Z.req.raw),{decision:H,listType:F}=mf8(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)XG0(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),QG0(X),rX1().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:cT0.OK})}catch(D){throw w.setStatus({code:cT0.ERROR,message:D.message}),w.recordException(D),D}finally{_G(Z,"mcp.client_handshake"),w.end()}});$J(Z,"mcp.create_server");let U=O30(J,Q,!1);_G(Z,"mcp.create_server");let B=new VQ({enableJsonResponse:Z.req.raw.headers.get("Accept")?.includes("application/json")??!1});$J(Z,"mcp.server_connect"),await U.connect(B),_G(Z,"mcp.server_connect"),$J(Z,"mcp.handle_request");let O=await ZJ(U,B,Z.req.raw,`mcp:${X}`);return _G(Z,"mcp.handle_request"),O}catch(J){if(J instanceof Kh)throw J;if(G??=await Q.storage.connections.findById(X,Q.organization?.id),G?.connection_url){let K=await sX1({error:J,reqUrl:new URL(Z.req.raw.url),connectionId:X,connectionUrl:G.connection_url,headers:{},orgSlug:Q.organization?.slug});if(K)return K;YG0(X);let{shouldDisable:W}=await rX1().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 pf8(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);if(G.status!=="active")throw Error(`Connection inactive: ${G.status}`);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 sX1({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 pf8(J,Z)}}),$};var dT0=L(()=>{SN();fv();I6();nX1();jL();ou();Qs();LG();Vo();hf8();Re0();aX1();nf8();uT0();eA0();S6();$Q1()});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=k11.forClient(eX1(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 Ys=L(()=>{SN();dT0();S11()});import{z as K5}from"zod";var ZQ1;var tf8=L(()=>{xv();n0();NQ();Ys();ZQ1=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=ST0($.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 kf8(J,$.active)}return{id:G.id,name:G.name,active:G.active,updated_at:G.updated_at}}})});import{z as mT0}from"zod";var XQ1;var of8=L(()=>{xv();c4();n0();Ys();XQ1=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:mT0.object({id:mT0.string()}),outputSchema:mT0.object({success:mT0.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 Sf8(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 au($){return`webhook_${$}`}function iT0($,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 rf8=300000,Qe4=10,QQ1;var af8=L(()=>{fX1();xv();xX1();n0();Ys();QQ1=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 _T0($.cron_expression,{timezone:"UTC"}).nextRuns(Qe4);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<rf8){let F=rf8/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:{[au(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:iT0(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 fT0(G,Q),{id:G.id,automation_id:G.automation_id,type:G.type,created_at:G.created_at,webhook:J}}})});import{z as nT0}from"zod";var YQ1;var sf8=L(()=>{xv();n0();Ys();YQ1=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:nT0.object({trigger_id:nT0.string()}),outputSchema:nT0.object({success:nT0.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 dX1(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 su}from"zod";var GQ1;var ef8=L(()=>{n0();GQ1=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:su.object({trigger_id:su.string()}),outputSchema:su.object({trigger_id:su.string(),url:su.string(),token:su.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:{[au(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:iT0(Z.baseUrl,X.slug,Q.id),token:J.key}}})});import{z as eu}from"zod";var JQ1;var $b8=L(()=>{c4();n0();JQ1=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:eu.object({id:eu.string()}),outputSchema:eu.object({threadId:eu.string().optional(),error:eu.string().optional(),skipped:eu.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 Ye4=500,KQ1;var Zb8=L(()=>{h$();n0();KQ1=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 iQ(),!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:Ye4}),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 Xb8=L(()=>{wf8();Df8();Ef8();tf8();of8();af8();sf8();ef8();$b8();Zb8()});import{z as Tw}from"zod";var Je4,Ke4,WQ1;var Qb8=L(()=>{n0();Je4=Tw.object({id:Tw.string().min(1)}),Ke4=Tw.object({user:Tw.object({id:Tw.string(),name:Tw.string(),email:Tw.string(),image:Tw.string().nullable()}).nullable()}),WQ1=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:Je4,outputSchema:Ke4,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 We4}from"zod";var He4,HQ1;var Yb8=L(()=>{n0();NQ();He4={tiers:{}},HQ1=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:We4.object({}),outputSchema:Ho,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)??He4}})});function Fe4($,Z,X){let Q={};for(let Y of QL.options){let G=$[Y];if(!G||dK(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 FQ1;var Gb8=L(()=>{n0();NQ();lu();FQ1=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:Ho,outputSchema:Ho,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([mK(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:Fe4($.tiers,G?.tiers,Y)})}})});var Jb8=L(()=>{Qb8();Yb8();Gb8()});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 $c=function(){let{crypto:$}=globalThis;if($?.randomUUID)return $c=$.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 bv=($)=>{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,CX,wU,Gs,pT0,Js,Ks,Ws,Hs,Fs,Ns,Us,Bs;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 wU({message:X,cause:bv(Z)});let Y=Z,G=Y?.error?.type;if($===400)return new Js($,Y,X,Q,G);if($===401)return new Ks($,Y,X,Q,G);if($===403)return new Ws($,Y,X,Q,G);if($===404)return new Hs($,Y,X,Q,G);if($===409)return new Fs($,Y,X,Q,G);if($===422)return new Ns($,Y,X,Q,G);if($===429)return new Us($,Y,X,Q,G);if($>=500)return new Bs($,Y,X,Q,G);return new q9($,Y,X,Q,G)}};CX=class CX extends q9{constructor({message:$}={}){super(void 0,void 0,$||"Request was aborted.",void 0)}};wU=class wU extends q9{constructor({message:$,cause:Z}){super(void 0,void 0,$||"Connection error.",void 0);if(Z)this.cause=Z}};Gs=class Gs extends wU{constructor({message:$}={}){super({message:$??"Request timed out."})}};pT0=class pT0 extends P1{constructor($,{cause:Z}={}){super($??"Retryable error.");if(Z!==void 0)this.cause=Z}};Js=class Js extends q9{};Ks=class Ks extends q9{};Ws=class Ws extends q9{};Hs=class Hs extends q9{};Fs=class Fs extends q9{};Ns=class Ns extends q9{};Us=class Us extends q9{};Bs=class Bs extends q9{}});function tT0($){if(typeof $!=="object")return{};return $??{}}function UQ1($){if(!$)return!0;for(let Z in $)return!1;return!0}function Wb8($,Z){return Object.prototype.hasOwnProperty.call($,Z)}var Be4,Kb8=($)=>{return Be4.test($)},_X=($)=>(_X=Array.isArray,_X($)),NQ1,Hb8=($,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},Os=($)=>{try{return JSON.parse($)}catch(Z){return}};var iK=L(()=>{v5();Be4=/^[a-z][a-z0-9+.-]*:/i,NQ1=_X});var nK=($,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 Oe4(){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 we4(){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 Bb8=()=>{return typeof window<"u"&&typeof window.document<"u"&&typeof navigator<"u"},Le4=()=>{let $=Oe4();if($==="deno")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":QJ,"X-Stainless-OS":Nb8(Deno.build.os),"X-Stainless-Arch":Fb8(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":Nb8(globalThis.process.platform??"unknown"),"X-Stainless-Arch":Fb8(globalThis.process.arch??"unknown"),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":globalThis.process.version??"unknown"};let Z=we4();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"}},Fb8=($)=>{if($==="x32")return"x32";if($==="x86_64"||$==="x64")return"x64";if($==="arm")return"arm";if($==="aarch64"||$==="arm64")return"arm64";if($)return`other:${$}`;return"unknown"},Nb8=($)=>{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"},Ub8,Ls=()=>{return Ub8??(Ub8=Le4())};var oT0=()=>{};function Ob8(){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 BQ1(...$){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 rT0($){let Z=Symbol.asyncIterator in $?$[Symbol.asyncIterator]():$[Symbol.iterator]();return BQ1({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 ws($){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 Lb8($){if($===null||typeof $!=="object")return;if($[Symbol.asyncIterator]){await $[Symbol.asyncIterator]().return?.();return}let Z=$.getReader(),X=Z.cancel();Z.releaseLock(),await X}var wb8=({headers:$,body:Z})=>{return{bodyHeaders:{"content-type":"application/json"},body:JSON.stringify(Z)}};var OQ1="RFC3986",LQ1=($)=>String($),wQ1,Db8="RFC1738";var DQ1=L(()=>{wQ1={RFC1738:($)=>String($).replace(/%20/g,"+"),RFC3986:LQ1}});function jb8($){if(!$||typeof $!=="object")return!1;return!!($.constructor&&$.constructor.isBuffer&&$.constructor.isBuffer($))}function jQ1($,Z){if(_X($)){let X=[];for(let Q=0;Q<$.length;Q+=1)X.push(Z($[Q]));return X}return Z($)}var aT0=($,Z)=>(aT0=Object.hasOwn??Function.prototype.call.bind(Object.prototype.hasOwnProperty),aT0($,Z)),dH,EQ1=1024,Eb8=($,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+=EQ1){let W=G.length>=EQ1?G.slice(K,K+EQ1):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===Db8&&(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 zb8=L(()=>{DQ1();iK();dH=(()=>{let $=[];for(let Z=0;Z<256;++Z)$.push("%"+((Z<16?"0":"")+Z.toString(16)).toUpperCase());return $})()});function je4($){return typeof $==="string"||typeof $==="number"||typeof $==="boolean"||typeof $==="symbol"||typeof $==="bigint"}function Rb8($,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(zQ1))!==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(zQ1)>"u")A=0}if(typeof H==="function")j=H(Z,j);else if(j instanceof Date)j=U?.(j);else if(X==="comma"&&_X(j))j=jQ1(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(je4(j)||jb8(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"&&_X(j)){if(w&&W)j=jQ1(j,W);M=[{value:j.length>0?j.join(",")||null:void 0}]}else if(_X(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&&_X(j)&&j.length===1?q+"[]":q;if(Y&&_X(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=_X(j)?typeof X==="function"?X(S,o):S:S+(N?"."+o:"["+o+"]");E.set($,A);let r=new WeakMap;r.set(zQ1,E),Tb8(I,Rb8(y,b,X,Q,Y,G,J,K,X==="comma"&&w&&_X(j)?null:W,H,F,N,U,B,O,w,D,r))}return I}function ze4($=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=OQ1;if(typeof $.format<"u"){if(!aT0(wQ1,$.format))throw TypeError("Unknown format option provided.");X=$.format}let Q=wQ1[X],Y=kZ.filter;if(typeof $.filter==="function"||_X($.filter))Y=$.filter;let G;if($.arrayFormat&&$.arrayFormat in Ab8)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 Ib8($,Z={}){let X=$,Q=ze4(Z),Y,G;if(typeof Q.filter==="function")G=Q.filter,X=G("",X);else if(_X(Q.filter))G=Q.filter,Y=G;let J=[];if(typeof X!=="object"||X===null)return"";let K=Ab8[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;Tb8(J,Rb8(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 Ab8,Tb8=function($,Z){Array.prototype.push.apply($,_X(Z)?Z:[Z])},Pb8,kZ,zQ1;var qb8=L(()=>{zb8();DQ1();iK();Ab8={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:Eb8,encodeValuesOnly:!1,format:OQ1,formatter:LQ1,indices:!1,serializeDate($){return(Pb8??(Pb8=Function.prototype.call.bind(Date.prototype.toISOString)))($)},skipNulls:!1,strictNullHandling:!1};zQ1={}});function Mb8($){return Ib8($,{arrayFormat:"brackets"})}var PQ1=L(()=>{qb8()});function eT0($){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 $20($,Z){let X=await Te4($),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<=AQ1)return $;return $.slice(0,AQ1)+`... <${$.length-AQ1} more chars>`}return JSON.stringify(kY(Z))}if(typeof $==="object"&&!Array.isArray($)){let Z={};for(let[X,Q]of Object.entries($))if(Ae4.has(X))Z[X]=Q;return Z}return null}async function Z20($,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 X20($,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 Te4($){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>Vb8){let K=Vb8-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 kb8="urn:ietf:params:oauth:grant-type:jwt-bearer",Sb8="refresh_token",sT0="/v1/oauth/token",yv="oauth-2025-04-20",Cb8="oidc-federation-2026-04-01",_b8=120,Zc=30,vb8=5,Vb8=1048576,AQ1=2000,Ae4,v$;var Xc=L(()=>{v5();Ae4=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 pK(){return Math.floor(Date.now()/1000)}class TQ1{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-pK();if(X>_b8)return Z.token;if(X>Zc)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(pK()-this.lastAdvisoryError<vb8)return;this.doRefresh().catch(($)=>{this.lastAdvisoryError=pK(),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 xb8=L(()=>{Xc()});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 yb8($){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 Qc($){let Z;return(fb8??(Z=new globalThis.TextEncoder,fb8=Z.encode.bind(Z)))($)}function RQ1($){let Z;return(bb8??(Z=new globalThis.TextDecoder,bb8=Z.decode.bind(Z)))($)}var fb8,bb8;var gb8=L(()=>{v5()});function Ds(){}function Q20($,Z,X){if(!Z||Y20[$]>Y20[X])return Ds;else return Z[$].bind(Z)}function qQ1($,Z){let X=hb8.get($);if(X&&X[0]===Z)return X[1];let Q={error:Q20("error",$,Z),warn:Q20("warn",$,Z),info:Q20("info",$,Z),debug:Q20("debug",$,Z)};return hb8.set($,[Z,Q]),Q}function t4($){let Z=$.logger,X=$.logLevel??"off";if(!Z)return Re4;return qQ1(Z,X)}function cb8(){let $=H4("ANTHROPIC_LOG");if(!IQ1||$!==ub8)ub8=$,IQ1=qQ1(console,G20($,"process.env['ANTHROPIC_LOG']",qQ1(console,Es))??Es);return IQ1}var Es="warn",Y20,G20=($,Z,X)=>{if(!$)return;if(Wb8(Y20,$))return $;X.warn(`${Z} was set to ${JSON.stringify($)}, expected one of ${JSON.stringify(Object.keys(Y20))}`);return},Re4,hb8,ub8,IQ1,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(()=>{iK();Y20={off:0,error:200,warn:300,info:400,debug:500};Re4={error:Ds,warn:Ds,info:Ds,debug:Ds},hb8=new WeakMap});var MQ1=L(()=>{iK();gb8();iH();PQ1()});function lb8($){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(!Ie4.test($))throw Error(`profile name "${$}" contains disallowed characters (allowed: letters, digits, '_', '.', '-')`)}var J20="1.0",Ie4,db8=async($)=>{var Z,X;let Q=await VQ1();if(Q===null)return null;let Y=$??await ib8();if(Y===null)return null;lb8(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}},mb8=async($,Z)=>{if($?.authentication.credentials_path)return $.authentication.credentials_path;let X=await VQ1();if(!X)return null;let Q=Z??await ib8();if(!Q)return null;return lb8(Q),(await import("path")).join(X,"credentials",`${Q}.json`)},VQ1=async()=>{if(!qe4())return null;let $=await import("path"),Z=H4("ANTHROPIC_CONFIG_DIR");if(Z)return Z;if(Ls()["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},qe4=()=>{let $=Ls()["X-Stainless-Runtime"];return $==="node"||$==="deno"},ib8=async()=>{let $=await VQ1();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 kQ1=L(()=>{oT0();MQ1();Ie4=/^[A-Za-z0-9_.-]+$/});function SQ1($){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 nb8($){if(!$)throw new P1("Identity token value is empty");return()=>$}var pb8=L(()=>{v5()});function tb8($){return async()=>{eT0($.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:kb8,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}${sT0}`,Y;try{Y=await $.fetch(Q,{method:"POST",headers:{"Content-Type":"application/json","anthropic-beta":`${yv},${Cb8}`,"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 $20(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:pK()+K}}}var ob8=L(()=>{Xc()});function rb8($){return async(Z)=>{let X=await import("fs");await Z20($.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||pK()<J-Zc))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"})`);eT0($.baseURL);let W={grant_type:Sb8,refresh_token:K,client_id:$.clientId},H=`${$.baseURL}${sT0}`,F;try{F=await $.fetch(H,{method:"POST",headers:{"Content-Type":"application/json","anthropic-beta":yv,"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 $20(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=pK()+B,w=U.refresh_token||K;return await X20($.credentialsPath,{...Y,version:J20,type:"oauth_token",access_token:U.access_token,expires_at:O,refresh_token:w}),{token:U.access_token,expiresAt:O}}}var ab8=L(()=>{kQ1();Xc()});function CQ1($,Z){let X=$.authentication.credentials_path??null,Q=($.base_url||Z.baseURL).replace(/\/+$/,""),Y=Me4($,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 sb8($,Z){let X=await db8(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 mb8(Q,Z)??void 0}};return CQ1(G,$)}function Me4($,Z,X,Q){switch($.authentication.type){case"oidc_federation":{let Y=$.authentication,G=Ve4(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=tb8({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 ke4(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 rb8({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 Ve4($){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 SQ1($.identity_token.path)}let Z=H4("ANTHROPIC_IDENTITY_TOKEN_FILE");if(Z)return SQ1(Z);let X=H4("ANTHROPIC_IDENTITY_TOKEN");if(X)return nb8(X);return null}function ke4($,Z,X,Q){return async(Y)=>{let G=await import("fs");await Z20(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||pK()<F-Zc)return{token:H,expiresAt:F??null}}}catch(W){if(W?.code!=="ENOENT"&&!(W instanceof SyntaxError))X?.(W)}let K=await $(Y);try{await X20(Z,{...J??{},version:J20,type:"oauth_token",access_token:K.token,expires_at:K.expiresAt})}catch(W){X?.(W)}return K}}var eb8=L(()=>{kQ1();Xc();pb8();ob8();ab8()});class Rw{constructor(){vG.set(this,void 0),xG.set(this,void 0),W1(this,vG,new Uint8Array,"f"),W1(this,xG,null,"f")}decode($){if($==null)return[];let Z=$ instanceof ArrayBuffer?new Uint8Array($):typeof $==="string"?Qc($):$;W1(this,vG,yb8([n(this,vG,"f"),Z]),"f");let X=[],Q;while((Q=Se4(n(this,vG,"f"),n(this,xG,"f")))!=null){if(Q.carriage&&n(this,xG,"f")==null){W1(this,xG,Q.index,"f");continue}if(n(this,xG,"f")!=null&&(Q.index!==n(this,xG,"f")+1||Q.carriage)){X.push(RQ1(n(this,vG,"f").subarray(0,n(this,xG,"f")-1))),W1(this,vG,n(this,vG,"f").subarray(n(this,xG,"f")),"f"),W1(this,xG,null,"f");continue}let Y=n(this,xG,"f")!==null?Q.preceding-1:Q.preceding,G=RQ1(n(this,vG,"f").subarray(0,Y));X.push(G),W1(this,vG,n(this,vG,"f").subarray(Q.index),"f"),W1(this,xG,null,"f")}return X}flush(){if(!n(this,vG,"f").length)return[];return this.decode(`
2865
+ `+$}function bT0($){if(!$||$.length===0)return[];return $.filter((Z)=>os4.test(Z))}function rs4($){if($.csp)return $.csp;let Z=$.resourceCsp;if(!Z)return yf8;let X=bT0(Z.resourceDomains),Q=bT0(Z.connectDomains),Y=bT0(Z.frameDomains),G=bT0(Z.baseUriDomains),J=X.length>0,K=Q.length>0,W=Y.length>0,H=G.length>0;if(!J&&!K&&!W&&!H)return yf8;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 yf8,os4;var hf8=L(()=>{yf8=["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("; ");os4=/^https?:\/\/(\*\.)?[a-zA-Z0-9._-]+(:\d+)?\/?$/});function as4($){let Z=$.lastFailureAt-$.firstFailureAt;return $.count>=FZ8&&Z>=NZ8}class tX1{options;kv=null;codec=F30();constructor($){this.options=$}async init(){let $=this.options.getJetStream();if(!$)return;this.kv=await new cf8.Kvm($).create(ss4,{storage:uf8.StorageType.Memory,ttl:lf8.nanos(UZ8)})}async recordFailure($){if(!this.kv)return pX1;let Z=Date.now();for(let X=0;X<es4;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:as4(J)}}catch{}return pX1}async recordSuccess($){if(!this.kv)return;try{await this.kv.delete($)}catch{}}teardown(){this.kv=null}}class Xs{async recordFailure(){return pX1}async recordSuccess(){}teardown(){}}function oX1($){df8=$??new Xs}function rX1(){return df8}var uf8,cf8,lf8,pX1,ss4="DECOCMS_CONN_CIRCUIT",es4=5,df8;var aX1=L(()=>{uf8=k(hE(),1),cf8=k(j11(),1),lf8=k(Jn(),1),pX1={count:0,shouldDisable:!1};df8=new Xs});function mf8($){if(!$)return{decision:"skip"};if($.startsWith("notifications/"))return{decision:"skip"};if(Ze4.has($))return{decision:"skip"};let Z=$e4[$];if(Z)return{decision:"skip-if-list-cached",listType:Z};return{decision:"probe"}}async function if8($){if($.method!=="POST")return;let Z=$.headers.get("content-length");if(Z&&Number(Z)>Xe4)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 $e4,Ze4,Xe4=64000;var nf8=L(()=>{$e4={"tools/list":"tools","resources/list":"resources","prompts/list":"prompts"},Ze4=new Set(["ping"])});import{SpanStatusCode as yT0}from"@opentelemetry/api";async function gT0($,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:yT0.OK}),B}catch(B){throw U.setStatus({code:yT0.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 kv(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 YU(G,X,!1,{includeSkillsCatalog:!0,additionalConnections:K?[K]:[]});return U.setStatus({code:yT0.OK}),B}catch(B){throw U.setStatus({code:yT0.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:Zg}),N=new VQ({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 hT0=()=>{let $=new A1;return $.all("/gateway/:virtualMcpId?",async(Z)=>{let X=Z.req.param("virtualMcpId")||Z.req.header("x-virtual-mcp-id");return gT0(Z,X)}),$.all("/virtual-mcp/:virtualMcpId?",async(Z)=>{let X=Z.req.param("virtualMcpId")||Z.req.header("x-virtual-mcp-id");return gT0(Z,X)}),$};var uT0=L(()=>{JQ();S6();fv();I6();Tu();eA0();EQ();ou()});import{SpanStatusCode as cT0}from"@opentelemetry/api";var pf8=($,Z)=>{if($ instanceof Kh)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)},lT0=()=>{let $=new A1;return $.all("/",async(Z)=>{return gT0(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=Wa0(Q),J;if(G){let B=D1(X);if(!B)return Z.json({error:"Authentication required"},401);if(J=await kv(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=gf8(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 ru(Q),W=new VQ({enableJsonResponse:Z.req.raw.headers.get("Accept")?.includes("application/json")??!1});return await K.connect(W),LU.run(Q,()=>ZJ(K,W,Z.req.raw,`mcp:self:${X}`))}let Y=Wa0(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 kv(Q,Y,J,Z.req.query("branch")??void 0);if(!K)return Z.json({error:"Dev server not running"},503);let W=O30(K,Q,!1),H=new VQ({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:cT0.OK}),D}catch(D){throw w.setStatus({code:cT0.ERROR,message:D.message}),w.recordException(D),D}finally{_G(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>=Ua0)K=!0;else{if(J.status==="error"&&J.connection_url){let E=Ua0-w;Z.header("Retry-After",String(Math.ceil(E/1000)))}throw Error(`Connection inactive: ${J.status}`)}}let W=await if8(Z.req.raw),{decision:H,listType:F}=mf8(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)XG0(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),QG0(X),rX1().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:cT0.OK})}catch(D){throw w.setStatus({code:cT0.ERROR,message:D.message}),w.recordException(D),D}finally{_G(Z,"mcp.client_handshake"),w.end()}});$J(Z,"mcp.create_server");let U=O30(J,Q,!1);_G(Z,"mcp.create_server");let B=new VQ({enableJsonResponse:Z.req.raw.headers.get("Accept")?.includes("application/json")??!1});$J(Z,"mcp.server_connect"),await U.connect(B),_G(Z,"mcp.server_connect"),$J(Z,"mcp.handle_request");let O=await ZJ(U,B,Z.req.raw,`mcp:${X}`);return _G(Z,"mcp.handle_request"),O}catch(J){if(J instanceof Kh)throw J;if(G??=await Q.storage.connections.findById(X,Q.organization?.id),G?.connection_url){let K=await sX1({error:J,reqUrl:new URL(Z.req.raw.url),connectionId:X,connectionUrl:G.connection_url,headers:{},orgSlug:Q.organization?.slug});if(K)return K;YG0(X);let{shouldDisable:W}=await rX1().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 pf8(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);if(G.organization_id!==Y.organization.id)throw Error("Connection does not belong to the active organization");if(G.status!=="active")throw Error(`Connection inactive: ${G.status}`);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 sX1({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 pf8(J,Z)}}),$};var dT0=L(()=>{SN();fv();I6();nX1();jL();ou();Qs();LG();Vo();hf8();Re0();aX1();nf8();uT0();eA0();S6();$Q1()});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=k11.forClient(eX1(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 Ys=L(()=>{SN();dT0();S11()});import{z as K5}from"zod";var ZQ1;var tf8=L(()=>{xv();n0();NQ();Ys();ZQ1=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=ST0($.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 kf8(J,$.active)}return{id:G.id,name:G.name,active:G.active,updated_at:G.updated_at}}})});import{z as mT0}from"zod";var XQ1;var of8=L(()=>{xv();c4();n0();Ys();XQ1=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:mT0.object({id:mT0.string()}),outputSchema:mT0.object({success:mT0.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 Sf8(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 au($){return`webhook_${$}`}function iT0($,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 rf8=300000,Qe4=10,QQ1;var af8=L(()=>{fX1();xv();xX1();n0();Ys();QQ1=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 _T0($.cron_expression,{timezone:"UTC"}).nextRuns(Qe4);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<rf8){let F=rf8/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:{[au(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:iT0(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 fT0(G,Q),{id:G.id,automation_id:G.automation_id,type:G.type,created_at:G.created_at,webhook:J}}})});import{z as nT0}from"zod";var YQ1;var sf8=L(()=>{xv();n0();Ys();YQ1=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:nT0.object({trigger_id:nT0.string()}),outputSchema:nT0.object({success:nT0.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 dX1(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 su}from"zod";var GQ1;var ef8=L(()=>{n0();GQ1=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:su.object({trigger_id:su.string()}),outputSchema:su.object({trigger_id:su.string(),url:su.string(),token:su.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:{[au(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:iT0(Z.baseUrl,X.slug,Q.id),token:J.key}}})});import{z as eu}from"zod";var JQ1;var $b8=L(()=>{c4();n0();JQ1=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:eu.object({id:eu.string()}),outputSchema:eu.object({threadId:eu.string().optional(),error:eu.string().optional(),skipped:eu.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 Ye4=500,KQ1;var Zb8=L(()=>{h$();n0();KQ1=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 iQ(),!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:Ye4}),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 Xb8=L(()=>{wf8();Df8();Ef8();tf8();of8();af8();sf8();ef8();$b8();Zb8()});import{z as Tw}from"zod";var Je4,Ke4,WQ1;var Qb8=L(()=>{n0();Je4=Tw.object({id:Tw.string().min(1)}),Ke4=Tw.object({user:Tw.object({id:Tw.string(),name:Tw.string(),email:Tw.string(),image:Tw.string().nullable()}).nullable()}),WQ1=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:Je4,outputSchema:Ke4,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 We4}from"zod";var He4,HQ1;var Yb8=L(()=>{n0();NQ();He4={tiers:{}},HQ1=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:We4.object({}),outputSchema:Ho,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)??He4}})});function Fe4($,Z,X){let Q={};for(let Y of QL.options){let G=$[Y];if(!G||dK(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 FQ1;var Gb8=L(()=>{n0();NQ();lu();FQ1=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:Ho,outputSchema:Ho,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([mK(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:Fe4($.tiers,G?.tiers,Y)})}})});var Jb8=L(()=>{Qb8();Yb8();Gb8()});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 $c=function(){let{crypto:$}=globalThis;if($?.randomUUID)return $c=$.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 bv=($)=>{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,CX,wU,Gs,pT0,Js,Ks,Ws,Hs,Fs,Ns,Us,Bs;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 wU({message:X,cause:bv(Z)});let Y=Z,G=Y?.error?.type;if($===400)return new Js($,Y,X,Q,G);if($===401)return new Ks($,Y,X,Q,G);if($===403)return new Ws($,Y,X,Q,G);if($===404)return new Hs($,Y,X,Q,G);if($===409)return new Fs($,Y,X,Q,G);if($===422)return new Ns($,Y,X,Q,G);if($===429)return new Us($,Y,X,Q,G);if($>=500)return new Bs($,Y,X,Q,G);return new q9($,Y,X,Q,G)}};CX=class CX extends q9{constructor({message:$}={}){super(void 0,void 0,$||"Request was aborted.",void 0)}};wU=class wU extends q9{constructor({message:$,cause:Z}){super(void 0,void 0,$||"Connection error.",void 0);if(Z)this.cause=Z}};Gs=class Gs extends wU{constructor({message:$}={}){super({message:$??"Request timed out."})}};pT0=class pT0 extends P1{constructor($,{cause:Z}={}){super($??"Retryable error.");if(Z!==void 0)this.cause=Z}};Js=class Js extends q9{};Ks=class Ks extends q9{};Ws=class Ws extends q9{};Hs=class Hs extends q9{};Fs=class Fs extends q9{};Ns=class Ns extends q9{};Us=class Us extends q9{};Bs=class Bs extends q9{}});function tT0($){if(typeof $!=="object")return{};return $??{}}function UQ1($){if(!$)return!0;for(let Z in $)return!1;return!0}function Wb8($,Z){return Object.prototype.hasOwnProperty.call($,Z)}var Be4,Kb8=($)=>{return Be4.test($)},_X=($)=>(_X=Array.isArray,_X($)),NQ1,Hb8=($,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},Os=($)=>{try{return JSON.parse($)}catch(Z){return}};var iK=L(()=>{v5();Be4=/^[a-z][a-z0-9+.-]*:/i,NQ1=_X});var nK=($,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 Oe4(){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 we4(){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 Bb8=()=>{return typeof window<"u"&&typeof window.document<"u"&&typeof navigator<"u"},Le4=()=>{let $=Oe4();if($==="deno")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":QJ,"X-Stainless-OS":Nb8(Deno.build.os),"X-Stainless-Arch":Fb8(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":Nb8(globalThis.process.platform??"unknown"),"X-Stainless-Arch":Fb8(globalThis.process.arch??"unknown"),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":globalThis.process.version??"unknown"};let Z=we4();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"}},Fb8=($)=>{if($==="x32")return"x32";if($==="x86_64"||$==="x64")return"x64";if($==="arm")return"arm";if($==="aarch64"||$==="arm64")return"arm64";if($)return`other:${$}`;return"unknown"},Nb8=($)=>{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"},Ub8,Ls=()=>{return Ub8??(Ub8=Le4())};var oT0=()=>{};function Ob8(){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 BQ1(...$){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 rT0($){let Z=Symbol.asyncIterator in $?$[Symbol.asyncIterator]():$[Symbol.iterator]();return BQ1({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 ws($){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 Lb8($){if($===null||typeof $!=="object")return;if($[Symbol.asyncIterator]){await $[Symbol.asyncIterator]().return?.();return}let Z=$.getReader(),X=Z.cancel();Z.releaseLock(),await X}var wb8=({headers:$,body:Z})=>{return{bodyHeaders:{"content-type":"application/json"},body:JSON.stringify(Z)}};var OQ1="RFC3986",LQ1=($)=>String($),wQ1,Db8="RFC1738";var DQ1=L(()=>{wQ1={RFC1738:($)=>String($).replace(/%20/g,"+"),RFC3986:LQ1}});function jb8($){if(!$||typeof $!=="object")return!1;return!!($.constructor&&$.constructor.isBuffer&&$.constructor.isBuffer($))}function jQ1($,Z){if(_X($)){let X=[];for(let Q=0;Q<$.length;Q+=1)X.push(Z($[Q]));return X}return Z($)}var aT0=($,Z)=>(aT0=Object.hasOwn??Function.prototype.call.bind(Object.prototype.hasOwnProperty),aT0($,Z)),dH,EQ1=1024,Eb8=($,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+=EQ1){let W=G.length>=EQ1?G.slice(K,K+EQ1):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===Db8&&(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 zb8=L(()=>{DQ1();iK();dH=(()=>{let $=[];for(let Z=0;Z<256;++Z)$.push("%"+((Z<16?"0":"")+Z.toString(16)).toUpperCase());return $})()});function je4($){return typeof $==="string"||typeof $==="number"||typeof $==="boolean"||typeof $==="symbol"||typeof $==="bigint"}function Rb8($,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(zQ1))!==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(zQ1)>"u")A=0}if(typeof H==="function")j=H(Z,j);else if(j instanceof Date)j=U?.(j);else if(X==="comma"&&_X(j))j=jQ1(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(je4(j)||jb8(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"&&_X(j)){if(w&&W)j=jQ1(j,W);M=[{value:j.length>0?j.join(",")||null:void 0}]}else if(_X(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&&_X(j)&&j.length===1?q+"[]":q;if(Y&&_X(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=_X(j)?typeof X==="function"?X(S,o):S:S+(N?"."+o:"["+o+"]");E.set($,A);let r=new WeakMap;r.set(zQ1,E),Tb8(I,Rb8(y,b,X,Q,Y,G,J,K,X==="comma"&&w&&_X(j)?null:W,H,F,N,U,B,O,w,D,r))}return I}function ze4($=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=OQ1;if(typeof $.format<"u"){if(!aT0(wQ1,$.format))throw TypeError("Unknown format option provided.");X=$.format}let Q=wQ1[X],Y=kZ.filter;if(typeof $.filter==="function"||_X($.filter))Y=$.filter;let G;if($.arrayFormat&&$.arrayFormat in Ab8)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 Ib8($,Z={}){let X=$,Q=ze4(Z),Y,G;if(typeof Q.filter==="function")G=Q.filter,X=G("",X);else if(_X(Q.filter))G=Q.filter,Y=G;let J=[];if(typeof X!=="object"||X===null)return"";let K=Ab8[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;Tb8(J,Rb8(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 Ab8,Tb8=function($,Z){Array.prototype.push.apply($,_X(Z)?Z:[Z])},Pb8,kZ,zQ1;var qb8=L(()=>{zb8();DQ1();iK();Ab8={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:Eb8,encodeValuesOnly:!1,format:OQ1,formatter:LQ1,indices:!1,serializeDate($){return(Pb8??(Pb8=Function.prototype.call.bind(Date.prototype.toISOString)))($)},skipNulls:!1,strictNullHandling:!1};zQ1={}});function Mb8($){return Ib8($,{arrayFormat:"brackets"})}var PQ1=L(()=>{qb8()});function eT0($){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 $20($,Z){let X=await Te4($),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<=AQ1)return $;return $.slice(0,AQ1)+`... <${$.length-AQ1} more chars>`}return JSON.stringify(kY(Z))}if(typeof $==="object"&&!Array.isArray($)){let Z={};for(let[X,Q]of Object.entries($))if(Ae4.has(X))Z[X]=Q;return Z}return null}async function Z20($,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 X20($,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 Te4($){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>Vb8){let K=Vb8-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 kb8="urn:ietf:params:oauth:grant-type:jwt-bearer",Sb8="refresh_token",sT0="/v1/oauth/token",yv="oauth-2025-04-20",Cb8="oidc-federation-2026-04-01",_b8=120,Zc=30,vb8=5,Vb8=1048576,AQ1=2000,Ae4,v$;var Xc=L(()=>{v5();Ae4=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 pK(){return Math.floor(Date.now()/1000)}class TQ1{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-pK();if(X>_b8)return Z.token;if(X>Zc)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(pK()-this.lastAdvisoryError<vb8)return;this.doRefresh().catch(($)=>{this.lastAdvisoryError=pK(),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 xb8=L(()=>{Xc()});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 yb8($){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 Qc($){let Z;return(fb8??(Z=new globalThis.TextEncoder,fb8=Z.encode.bind(Z)))($)}function RQ1($){let Z;return(bb8??(Z=new globalThis.TextDecoder,bb8=Z.decode.bind(Z)))($)}var fb8,bb8;var gb8=L(()=>{v5()});function Ds(){}function Q20($,Z,X){if(!Z||Y20[$]>Y20[X])return Ds;else return Z[$].bind(Z)}function qQ1($,Z){let X=hb8.get($);if(X&&X[0]===Z)return X[1];let Q={error:Q20("error",$,Z),warn:Q20("warn",$,Z),info:Q20("info",$,Z),debug:Q20("debug",$,Z)};return hb8.set($,[Z,Q]),Q}function t4($){let Z=$.logger,X=$.logLevel??"off";if(!Z)return Re4;return qQ1(Z,X)}function cb8(){let $=H4("ANTHROPIC_LOG");if(!IQ1||$!==ub8)ub8=$,IQ1=qQ1(console,G20($,"process.env['ANTHROPIC_LOG']",qQ1(console,Es))??Es);return IQ1}var Es="warn",Y20,G20=($,Z,X)=>{if(!$)return;if(Wb8(Y20,$))return $;X.warn(`${Z} was set to ${JSON.stringify($)}, expected one of ${JSON.stringify(Object.keys(Y20))}`);return},Re4,hb8,ub8,IQ1,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(()=>{iK();Y20={off:0,error:200,warn:300,info:400,debug:500};Re4={error:Ds,warn:Ds,info:Ds,debug:Ds},hb8=new WeakMap});var MQ1=L(()=>{iK();gb8();iH();PQ1()});function lb8($){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(!Ie4.test($))throw Error(`profile name "${$}" contains disallowed characters (allowed: letters, digits, '_', '.', '-')`)}var J20="1.0",Ie4,db8=async($)=>{var Z,X;let Q=await VQ1();if(Q===null)return null;let Y=$??await ib8();if(Y===null)return null;lb8(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}},mb8=async($,Z)=>{if($?.authentication.credentials_path)return $.authentication.credentials_path;let X=await VQ1();if(!X)return null;let Q=Z??await ib8();if(!Q)return null;return lb8(Q),(await import("path")).join(X,"credentials",`${Q}.json`)},VQ1=async()=>{if(!qe4())return null;let $=await import("path"),Z=H4("ANTHROPIC_CONFIG_DIR");if(Z)return Z;if(Ls()["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},qe4=()=>{let $=Ls()["X-Stainless-Runtime"];return $==="node"||$==="deno"},ib8=async()=>{let $=await VQ1();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 kQ1=L(()=>{oT0();MQ1();Ie4=/^[A-Za-z0-9_.-]+$/});function SQ1($){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 nb8($){if(!$)throw new P1("Identity token value is empty");return()=>$}var pb8=L(()=>{v5()});function tb8($){return async()=>{eT0($.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:kb8,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}${sT0}`,Y;try{Y=await $.fetch(Q,{method:"POST",headers:{"Content-Type":"application/json","anthropic-beta":`${yv},${Cb8}`,"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 $20(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:pK()+K}}}var ob8=L(()=>{Xc()});function rb8($){return async(Z)=>{let X=await import("fs");await Z20($.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||pK()<J-Zc))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"})`);eT0($.baseURL);let W={grant_type:Sb8,refresh_token:K,client_id:$.clientId},H=`${$.baseURL}${sT0}`,F;try{F=await $.fetch(H,{method:"POST",headers:{"Content-Type":"application/json","anthropic-beta":yv,"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 $20(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=pK()+B,w=U.refresh_token||K;return await X20($.credentialsPath,{...Y,version:J20,type:"oauth_token",access_token:U.access_token,expires_at:O,refresh_token:w}),{token:U.access_token,expiresAt:O}}}var ab8=L(()=>{kQ1();Xc()});function CQ1($,Z){let X=$.authentication.credentials_path??null,Q=($.base_url||Z.baseURL).replace(/\/+$/,""),Y=Me4($,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 sb8($,Z){let X=await db8(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 mb8(Q,Z)??void 0}};return CQ1(G,$)}function Me4($,Z,X,Q){switch($.authentication.type){case"oidc_federation":{let Y=$.authentication,G=Ve4(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=tb8({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 ke4(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 rb8({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 Ve4($){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 SQ1($.identity_token.path)}let Z=H4("ANTHROPIC_IDENTITY_TOKEN_FILE");if(Z)return SQ1(Z);let X=H4("ANTHROPIC_IDENTITY_TOKEN");if(X)return nb8(X);return null}function ke4($,Z,X,Q){return async(Y)=>{let G=await import("fs");await Z20(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||pK()<F-Zc)return{token:H,expiresAt:F??null}}}catch(W){if(W?.code!=="ENOENT"&&!(W instanceof SyntaxError))X?.(W)}let K=await $(Y);try{await X20(Z,{...J??{},version:J20,type:"oauth_token",access_token:K.token,expires_at:K.expiresAt})}catch(W){X?.(W)}return K}}var eb8=L(()=>{kQ1();Xc();pb8();ob8();ab8()});class Rw{constructor(){vG.set(this,void 0),xG.set(this,void 0),W1(this,vG,new Uint8Array,"f"),W1(this,xG,null,"f")}decode($){if($==null)return[];let Z=$ instanceof ArrayBuffer?new Uint8Array($):typeof $==="string"?Qc($):$;W1(this,vG,yb8([n(this,vG,"f"),Z]),"f");let X=[],Q;while((Q=Se4(n(this,vG,"f"),n(this,xG,"f")))!=null){if(Q.carriage&&n(this,xG,"f")==null){W1(this,xG,Q.index,"f");continue}if(n(this,xG,"f")!=null&&(Q.index!==n(this,xG,"f")+1||Q.carriage)){X.push(RQ1(n(this,vG,"f").subarray(0,n(this,xG,"f")-1))),W1(this,vG,n(this,vG,"f").subarray(n(this,xG,"f")),"f"),W1(this,xG,null,"f");continue}let Y=n(this,xG,"f")!==null?Q.preceding-1:Q.preceding,G=RQ1(n(this,vG,"f").subarray(0,Y));X.push(G),W1(this,vG,n(this,vG,"f").subarray(Q.index),"f"),W1(this,xG,null,"f")}return X}flush(){if(!n(this,vG,"f").length)return[];return this.decode(`
2866
2866
  `)}}function Se4($,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 $y8($){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 vG,xG;var _Q1=L(()=>{VY();vG=new WeakMap,xG=new WeakMap;Rw.NEWLINE_CHARS=new Set([`
2867
2867
  `,"\r"]);Rw.NEWLINE_REGEXP=/\r\n|[\n\r]/g});async function*Zy8($,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 Xy8,Q=new Rw,Y=ws($.body);for await(let G of Ce4(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*Ce4($){let Z=new Uint8Array;for await(let X of $){if(X==null)continue;let Q=X instanceof ArrayBuffer?new Uint8Array(X):typeof X==="string"?Qc(X):X,Y=new Uint8Array(Z.length+Q.length);Y.set(Z),Y.set(Q,Z.length),Z=Y;let G;while((G=$y8(Z))!==-1)yield Z.slice(0,G),Z=Z.slice(G)}if(Z.length>0)yield Z}class Xy8{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(`
2868
2868
  `),raw:this.chunks};return this.event=null,this.data=[],this.chunks=[],Y}if(this.chunks.push($),$.startsWith(":"))return null;let[Z,X,Q]=_e4($,":");if(Q.startsWith(" "))Q=Q.substring(1);if(Z==="event")this.event=Q;else if(Z==="data")this.data.push(Q);return null}}function _e4($,Z){let X=$.indexOf(Z);if(X!==-1)return[$.substring(0,X),Z,$.substring(X+Z.length)];return[$,"",""]}var js,vX;var zs=L(()=>{VY();v5();_Q1();iK();iH();v5();vX=class vX{constructor($,Z,X){this.iterator=$,js.set(this,void 0),this.controller=Z,W1(this,js,X,"f")}static rawEvents($,Z=new AbortController){return Zy8($,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 Zy8($,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=Os(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 vX(G,Z,X)}static fromReadableStream($,Z,X){let Q=!1;async function*Y(){let J=new Rw,K=ws($);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 vX(G,Z,X)}[(js=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 vX(()=>Q($),this.controller,n(this,js,"f")),new vX(()=>Q(Z),this.controller,n(this,js,"f"))]}toReadableStream(){let $=this,Z;return BQ1({async start(){Z=$[Symbol.asyncIterator]()},async pull(X){try{let{value:Q,done:Y}=await Z.next();if(Y)return X.close();let G=Qc(JSON.stringify(Q)+`