decocms 2.309.0 → 2.310.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (442) hide show
  1. package/dist/client/assets/{AlertCircle-DfpOj9uk.js → AlertCircle-Cty0PLzG.js} +1 -1
  2. package/dist/client/assets/{ArrowNarrowLeft-CGsSFJZH.js → ArrowNarrowLeft-GsAWuH-U.js} +1 -1
  3. package/dist/client/assets/{ArrowUpRight-DtiNC8xj.js → ArrowUpRight-Ck_tkMu3.js} +1 -1
  4. package/dist/client/assets/{Check-DXPBjwC9.js → Check-3abToiit.js} +1 -1
  5. package/dist/client/assets/{CheckCircle-DenvulPR.js → CheckCircle-gN0xOzFk.js} +1 -1
  6. package/dist/client/assets/{ChevronDown-BzUdsdeu.js → ChevronDown-Du1srzFH.js} +1 -1
  7. package/dist/client/assets/{ChevronRight-8RBDSI4c.js → ChevronRight-CZd3BLjH.js} +1 -1
  8. package/dist/client/assets/{ChevronUp-CkOPdM7g.js → ChevronUp-CgHHKXV-.js} +1 -1
  9. package/dist/client/assets/{Container-B2b9FJMR.js → Container-DV6TDqni.js} +1 -1
  10. package/dist/client/assets/{DotsVertical-CCxgBVsk.js → DotsVertical-D7_daHaX.js} +1 -1
  11. package/dist/client/assets/{LinkExternal01-C_eUHFUm.js → LinkExternal01-CLwRaqiP.js} +1 -1
  12. package/dist/client/assets/{Lock01-SmEMRGOb.js → Lock01-DW1KfF8p.js} +1 -1
  13. package/dist/client/assets/{Palette-qMNBtXtx.js → Palette-DgoZ3R-C.js} +1 -1
  14. package/dist/client/assets/{Play-DmVY8R1A.js → Play-ZbM8yAk4.js} +1 -1
  15. package/dist/client/assets/{Plus-B19lTgl_.js → Plus-xUHEWwhK.js} +1 -1
  16. package/dist/client/assets/{RefreshCcw01-DDZo1WKt.js → RefreshCcw01-DOURBTJB.js} +1 -1
  17. package/dist/client/assets/{SearchMd-BvQQOrkm.js → SearchMd-D05lbITN.js} +1 -1
  18. package/dist/client/assets/{Settings02-CYadYmOF.js → Settings02-YbowrI3C.js} +1 -1
  19. package/dist/client/assets/{Shield01-GS3q0eea.js → Shield01-C9nMXmPC.js} +1 -1
  20. package/dist/client/assets/{Star01-BM8AlGEC.js → Star01-Dcuqy8Xk.js} +1 -1
  21. package/dist/client/assets/{Sun-B2OKfrtR.js → Sun-s1inzqGI.js} +1 -1
  22. package/dist/client/assets/{Tool01-CIMPkAjR.js → Tool01-BxwtRzVa.js} +1 -1
  23. package/dist/client/assets/{Trash01-4PBXkXRo.js → Trash01-Bgq8zueU.js} +1 -1
  24. package/dist/client/assets/{User01-nh8Rby1P.js → User01-C3dKJDdx.js} +1 -1
  25. package/dist/client/assets/{Users03-CItFKGX1.js → Users03-DBewd1K5.js} +1 -1
  26. package/dist/client/assets/{X-CGShNfee.js → X-BANQifhl.js} +1 -1
  27. package/dist/client/assets/{XCircle-CTrtJtfR.js → XCircle-BOat1iVu.js} +1 -1
  28. package/dist/client/assets/{XClose-BnCJyyB-.js → XClose-B0qkWAhQ.js} +1 -1
  29. package/dist/client/assets/{Zap-D7WiwjAV.js → Zap-Cq3RtLSB.js} +1 -1
  30. package/dist/client/assets/{ZapSquare-DhbSIk6a.js → ZapSquare-BajF09ms.js} +1 -1
  31. package/dist/client/assets/{accordion-CgT_Vu18.js → accordion-Bm-v7xME.js} +1 -1
  32. package/dist/client/assets/{agent-icon-GBX3RKid.js → agent-icon-SBMo6sYE.js} +1 -1
  33. package/dist/client/assets/{agents-list--TECSTo0.js → agents-list-GJhbrN0t.js} +1 -1
  34. package/dist/client/assets/ai-providers-CGGe3rZi.js +1 -0
  35. package/dist/client/assets/{alert-dialog-CZ6BxFHK.js → alert-dialog-Bht5ffLL.js} +1 -1
  36. package/dist/client/assets/{auth-catchall-CzFa67HB.js → auth-catchall-BywQWWLa.js} +1 -1
  37. package/dist/client/assets/{automation-list-row-DC7TfwMb.js → automation-list-row-Bf0t7EtN.js} +1 -1
  38. package/dist/client/assets/{automations-DPy2yPJ7.js → automations-TTGgZ4_x.js} +1 -1
  39. package/dist/client/assets/{avatar-BbisflHp.js → avatar-C0tjLWvd.js} +1 -1
  40. package/dist/client/assets/{badge-B32WzuEH.js → badge-CETVYtBV.js} +1 -1
  41. package/dist/client/assets/{brand-context-CNm1jHaQ.js → brand-context-BYQ1b567.js} +1 -1
  42. package/dist/client/assets/{card-DdVfFEw2.js → card-CGYKd1RQ.js} +1 -1
  43. package/dist/client/assets/{chat-context-BnJMVusJ.js → chat-context-CNhlOw91.js} +1 -1
  44. package/dist/client/assets/{checkbox-BJiR6nKO.js → checkbox-GOJe-fLe.js} +1 -1
  45. package/dist/client/assets/{collection-detail-tyzI1jcV.js → collection-detail-D2LL1NRS.js} +1 -1
  46. package/dist/client/assets/{collection-display-button-Tq0uOlxA.js → collection-display-button-D33z-MiQ.js} +1 -1
  47. package/dist/client/assets/{collection-search-BBFkmets.js → collection-search-DKsJLeUf.js} +1 -1
  48. package/dist/client/assets/{collection-search-D62A0L7U.js → collection-search-pRmMMUTu.js} +1 -1
  49. package/dist/client/assets/{collection-table-wrapper-CjFwfKJr.js → collection-table-wrapper-DkvuPVRT.js} +1 -1
  50. package/dist/client/assets/{collection-tabs--b599n6J.js → collection-tabs-Dm7Azh1U.js} +1 -1
  51. package/dist/client/assets/{collections-C5AWnYf0.js → collections-CRk11Z8a.js} +1 -1
  52. package/dist/client/assets/{command-DK-j4arJ.js → command-BUpWRvBK.js} +1 -1
  53. package/dist/client/assets/{connection-card--P5ycKzL.js → connection-card-D9OhH-Fq.js} +1 -1
  54. package/dist/client/assets/{connection-detail-CUNWcOPp.js → connection-detail-CQU5Tvmh.js} +1 -1
  55. package/dist/client/assets/{connection-form-helpers-BeJI6IBg.js → connection-form-helpers-D1bN8HX-.js} +1 -1
  56. package/dist/client/assets/{connections-DWQtsigZ.js → connections-CgifR5uL.js} +1 -1
  57. package/dist/client/assets/{constants-CnfWGYKH.js → constants-BCHiURE4.js} +1 -1
  58. package/dist/client/assets/{constants-sHQufsXI.js → constants-Cp5N7awu.js} +1 -1
  59. package/dist/client/assets/{dialog-BZytMGON.js → dialog-C67OG62k.js} +1 -1
  60. package/dist/client/assets/{domain-settings-bUM7Hn2b.js → domain-settings-tkR1Nxgx.js} +1 -1
  61. package/dist/client/assets/{drawer-D-6kJz55.js → drawer-dxlczq_i.js} +1 -1
  62. package/dist/client/assets/{dropdown-menu-BpdWPWdq.js → dropdown-menu-CW5XsoI8.js} +1 -1
  63. package/dist/client/assets/{dynamic-plugin-layout-CZeZv3Kn.js → dynamic-plugin-layout-tEvbHH60.js} +1 -1
  64. package/dist/client/assets/{empty-state-BQISF-I3.js → empty-state-Ci5HFdKD.js} +1 -1
  65. package/dist/client/assets/{empty-state-DuLPP0P_.js → empty-state-CmG4puLG.js} +1 -1
  66. package/dist/client/assets/{extract-connection-data-Bj_pawjK.js → extract-connection-data-hFQpz6Ey.js} +1 -1
  67. package/dist/client/assets/{features-92AWt8WI.js → features-BVz7FR1H.js} +1 -1
  68. package/dist/client/assets/{form-Bi1l8-LL.js → form-DPfW-AID.js} +1 -1
  69. package/dist/client/assets/{general-CJgzv-Wx.js → general-CU3b0SfV.js} +1 -1
  70. package/dist/client/assets/{index-YDo551Ci.js → index-BFPJC5eE.js} +1 -1
  71. package/dist/client/assets/{index-gC4su7X_.js → index-C9J0IAed.js} +1 -1
  72. package/dist/client/assets/{index-Dr1V1Dds.js → index-CKp44BR_.js} +1 -1
  73. package/dist/client/assets/{index-BheN5Hjz.js → index-CMBuSnHj.js} +1 -1
  74. package/dist/client/assets/{index-CzZgNQPp.js → index-COeQARzy.js} +1 -1
  75. package/dist/client/assets/{index-R0jE9KSj.js → index-Cg8Nu4CY.js} +3 -3
  76. package/dist/client/assets/{index-C39RwBnQ.js → index-ClSJa_a-.js} +1 -1
  77. package/dist/client/assets/{index-BydJ2WUR.js → index-DGiQyM9G.js} +1 -1
  78. package/dist/client/assets/index-DP8Jy3jt.js +1 -0
  79. package/dist/client/assets/{index--ghksYAo.js → index-DS-a6wyz.js} +1 -1
  80. package/dist/client/assets/{index-C03HvIgQ.js → index-Ddo0iMq6.js} +1 -1
  81. package/dist/client/assets/{index-DSzBgSpo.js → index-HbxcCsnZ.js} +1 -1
  82. package/dist/client/assets/{index-CE54Jnz-.js → index-QuRKY5U6.js} +1 -1
  83. package/dist/client/assets/{index-Cbpr6CGx.js → index-akTmUiSO.js} +1 -1
  84. package/dist/client/assets/{index-BFIwa8W4.js → index-e7eEqZQD.js} +2 -2
  85. package/dist/client/assets/{index-BgSyGi69.js → index-hiuu-64i.js} +1 -1
  86. package/dist/client/assets/{infiniteQueryObserver-NmUU_rOy.js → infiniteQueryObserver-CHiY1NnZ.js} +1 -1
  87. package/dist/client/assets/{input-C66FZPPf.js → input-B8x8lV8_.js} +1 -1
  88. package/dist/client/assets/{integration-icon-fPkSifk0.js → integration-icon-Bfmqyrf_.js} +1 -1
  89. package/dist/client/assets/{label-BMe1SNEP.js → label-BU7N79Fq.js} +1 -1
  90. package/dist/client/assets/{layout-DbOAzt16.js → layout-Dnq67rSm.js} +1 -1
  91. package/dist/client/assets/{lean-canvas-recruit-modal-BP1iZHjy.js → lean-canvas-recruit-modal-C70LSjWJ.js} +1 -1
  92. package/dist/client/assets/{login-CRXuvxd9.js → login-_Q9L7mst.js} +1 -1
  93. package/dist/client/assets/{members-BwleeoVp.js → members-D-VFZlys.js} +1 -1
  94. package/dist/client/assets/{monaco-editor-C457mqYB.js → monaco-editor-BXyi5viY.js} +1 -1
  95. package/dist/client/assets/{monitoring-stats-row-DKl9Ubde.js → monitoring-stats-row-CEoUxcHm.js} +1 -1
  96. package/dist/client/assets/{oauth-callback-1dC9VVpc.js → oauth-callback-B5dtt4y6.js} +1 -1
  97. package/dist/client/assets/{oauth-callback-ai-provider-BGY5Uat_.js → oauth-callback-ai-provider-Cc_nFPdq.js} +1 -1
  98. package/dist/client/assets/{onboarding-C1bM-up9.js → onboarding-uWZePAti.js} +1 -1
  99. package/dist/client/assets/{org-layout-Cll4mSr3.js → org-layout-BK5cWTcx.js} +1 -1
  100. package/dist/client/assets/{org-plugin-layout-qjkMXyOy.js → org-plugin-layout-C0ezKAgt.js} +1 -1
  101. package/dist/client/assets/{pair-Bl_sqsCX.js → pair-BTwp6bTc.js} +1 -1
  102. package/dist/client/assets/{plugin-empty-state-DCQUcDfK.js → plugin-empty-state-CjfGiA5F.js} +1 -1
  103. package/dist/client/assets/{plugin-header-Deqthnjp.js → plugin-header-D9DU3BMG.js} +1 -1
  104. package/dist/client/assets/{plugin-layout-m0OkUjnq.js → plugin-layout-DSjok7-L.js} +1 -1
  105. package/dist/client/assets/{popover-DIqVWKAH.js → popover-3D5jsJh1.js} +1 -1
  106. package/dist/client/assets/{profile-Ck6jHCNy.js → profile-BdmoV93F.js} +1 -1
  107. package/dist/client/assets/{project-app-view-D--E6naM.js → project-app-view-CmNwDiw0.js} +1 -1
  108. package/dist/client/assets/registry-C8zMtgwr.js +2 -0
  109. package/dist/client/assets/{registry-layout-BaLlt8iJ.js → registry-layout-xyKYdVRG.js} +1 -1
  110. package/dist/client/assets/{required-auth-layout-4lbvRXP9.js → required-auth-layout-W0nsPTz2.js} +1 -1
  111. package/dist/client/assets/{reset-password-E281j__o.js → reset-password-BVEdYLL2.js} +1 -1
  112. package/dist/client/assets/{roles-CG_umLTJ.js → roles-CtNr9Xv_.js} +1 -1
  113. package/dist/client/assets/{scroll-area-Dpf0WEDP.js → scroll-area-D71z0--k.js} +1 -1
  114. package/dist/client/assets/{search-input-BcoDzgCL.js → search-input-C1sIJN1c.js} +1 -1
  115. package/dist/client/assets/{select-CsQfJ0qv.js → select-mWz1b_ZH.js} +1 -1
  116. package/dist/client/assets/{select-model-Vwe69qWq.js → select-model-tmulvVLX.js} +1 -1
  117. package/dist/client/assets/{settings-layout-Cw1Oq9lP.js → settings-layout-BqXIUoEI.js} +1 -1
  118. package/dist/client/assets/{settings-section-Bcn_yZSc.js → settings-section-OvOVUTcw.js} +1 -1
  119. package/dist/client/assets/{shell-layout-BQPFdNnv.js → shell-layout-5NI7-V2p.js} +1 -1
  120. package/dist/client/assets/{skeleton-DFE9g6JF.js → skeleton-Bq5_S0j2.js} +1 -1
  121. package/dist/client/assets/{sso-DFJ1V_Eq.js → sso-CbTsdhS9.js} +1 -1
  122. package/dist/client/assets/{store-BupAo568.js → store-Dfk_RNXS.js} +1 -1
  123. package/dist/client/assets/store-registry-Cc1z30ih.js +2 -0
  124. package/dist/client/assets/{switch-B9pehtZv.js → switch-KcpCgqTm.js} +1 -1
  125. package/dist/client/assets/{table-CvhbCrhO.js → table-Dcu4orQb.js} +1 -1
  126. package/dist/client/assets/{tabs-Dxl_bMcE.js → tabs-yr1sdiKv.js} +1 -1
  127. package/dist/client/assets/{task-status-BWs0NSVc.js → task-status-feSWSO3m.js} +1 -1
  128. package/dist/client/assets/{textarea-DH2INXqG.js → textarea-B5KVzuoV.js} +1 -1
  129. package/dist/client/assets/{toggle-group-BKADQha7.js → toggle-group-DhgFoVFU.js} +1 -1
  130. package/dist/client/assets/{tools-list-CVKmigbN.js → tools-list-B0Yp2GUj.js} +1 -1
  131. package/dist/client/assets/{tooltip-CzkIRbGJ.js → tooltip-BPT840gf.js} +1 -1
  132. package/dist/client/assets/{types-CiOXD-c9.js → types-9jOTGnHq.js} +1 -1
  133. package/dist/client/assets/{use-ai-providers-BSpy6MGb.js → use-ai-providers-D69mlQI8.js} +1 -1
  134. package/dist/client/assets/{use-collections-BgNhuD43.js → use-collections-DwvEVl8v.js} +1 -1
  135. package/dist/client/assets/{use-connection-BypaB8s_.js → use-connection-JJHjF6rv.js} +1 -1
  136. package/dist/client/assets/{use-copy-DUQETT2i.js → use-copy-C9_Hg3HJ.js} +1 -1
  137. package/dist/client/assets/{use-create-virtual-mcp-Cr6RxP_0.js → use-create-virtual-mcp-D-lXC80m.js} +1 -1
  138. package/dist/client/assets/{use-debounced-autosave-DO41C7Df.js → use-debounced-autosave-DFbpcKm7.js} +1 -1
  139. package/dist/client/assets/{use-decopilot-events-Bd5bEjkf.js → use-decopilot-events-BcK-yZDw.js} +1 -1
  140. package/dist/client/assets/{use-delete-connection-v1LXlIsA.js → use-delete-connection-CPz0jmtA.js} +1 -1
  141. package/dist/client/assets/{use-infinite-scroll-QOTO_hJO.js → use-infinite-scroll-B1xILXLP.js} +1 -1
  142. package/dist/client/assets/{use-list-state-C_A7sIoE.js → use-list-state-BZRsAUdo.js} +1 -1
  143. package/dist/client/assets/{use-mcp-tools-Dneo9PV9.js → use-mcp-tools-D73stCOo.js} +1 -1
  144. package/dist/client/assets/{use-members-ClknS2e8.js → use-members-DsN3ITf2.js} +1 -1
  145. package/dist/client/assets/{use-navigate-to-agent-jsYNoTy7.js → use-navigate-to-agent-CJDDIver.js} +1 -1
  146. package/dist/client/assets/{use-org-auth-client-piAjQuqe.js → use-org-auth-client-Bq9q7Hza.js} +1 -1
  147. package/dist/client/assets/{use-org-sso-BbOiG5xt.js → use-org-sso-D22xZlY0.js} +1 -1
  148. package/dist/client/assets/{use-organization-roles-DRnvDp6V.js → use-organization-roles-Q3jXj8C7.js} +1 -1
  149. package/dist/client/assets/{use-organization-settings-Cl63rukI.js → use-organization-settings-DC8b5MPT.js} +1 -1
  150. package/dist/client/assets/{use-registry-connections-nKQr071c.js → use-registry-connections-XqvUTmE5.js} +1 -1
  151. package/dist/client/assets/{use-status-sounds-DNBT8d2Q.js → use-status-sounds-CCFuBFY0.js} +1 -1
  152. package/dist/client/assets/{use-tasks-D6w8iRzc.js → use-tasks-Btt8g-fe.js} +1 -1
  153. package/dist/client/assets/{use-view-mode-EFwbm8pp.js → use-view-mode-BvotgnsQ.js} +1 -1
  154. package/dist/client/assets/{use-virtual-mcp-BW1ujP1y.js → use-virtual-mcp-BgZ2h4E7.js} +1 -1
  155. package/dist/client/assets/useInfiniteQuery-DxaE8j48.js +1 -0
  156. package/dist/client/assets/useSuspenseInfiniteQuery-CgPS4Lvz.js +1 -0
  157. package/dist/client/assets/{user-B9J8wn-0.js → user-C-74yDDj.js} +1 -1
  158. package/dist/client/assets/{view-mode-toggle-P1fMVeBh.js → view-mode-toggle-BX0KOixc.js} +1 -1
  159. package/dist/client/assets/{workflow-Bk-2rBg-.js → workflow-D8djL2VH.js} +1 -1
  160. package/dist/client/assets/workflow-detail-eNmJkRLG.js +1 -0
  161. package/dist/client/index.html +1 -1
  162. package/dist/server/cli.js +2 -2
  163. package/dist/server/node_modules/get-east-asian-width/index.d.ts +60 -0
  164. package/dist/server/node_modules/get-east-asian-width/index.js +30 -0
  165. package/dist/server/node_modules/get-east-asian-width/lookup-data.js +18 -0
  166. package/dist/server/node_modules/get-east-asian-width/lookup.js +135 -0
  167. package/dist/server/node_modules/get-east-asian-width/package.json +71 -0
  168. package/dist/server/node_modules/get-east-asian-width/readme.md +65 -0
  169. package/dist/server/node_modules/get-east-asian-width/utilities.js +24 -0
  170. package/dist/server/node_modules/ink/build/ansi-tokenizer.d.ts +38 -0
  171. package/dist/server/node_modules/ink/build/ansi-tokenizer.js +316 -0
  172. package/dist/server/node_modules/ink/build/ansi-tokenizer.js.map +1 -0
  173. package/dist/server/node_modules/ink/build/apply-styles.js +175 -0
  174. package/dist/server/node_modules/ink/build/build-layout.js +77 -0
  175. package/dist/server/node_modules/ink/build/calculate-wrapped-text.js +53 -0
  176. package/dist/server/node_modules/ink/build/colorize.d.ts +3 -0
  177. package/dist/server/node_modules/ink/build/colorize.js +48 -0
  178. package/dist/server/node_modules/ink/build/colorize.js.map +1 -0
  179. package/dist/server/node_modules/ink/build/components/AccessibilityContext.d.ts +3 -0
  180. package/dist/server/node_modules/ink/build/components/AccessibilityContext.js +5 -0
  181. package/dist/server/node_modules/ink/build/components/AccessibilityContext.js.map +1 -0
  182. package/dist/server/node_modules/ink/build/components/App.d.ts +18 -0
  183. package/dist/server/node_modules/ink/build/components/App.js +351 -0
  184. package/dist/server/node_modules/ink/build/components/App.js.map +1 -0
  185. package/dist/server/node_modules/ink/build/components/AppContext.d.ts +15 -0
  186. package/dist/server/node_modules/ink/build/components/AppContext.js +11 -0
  187. package/dist/server/node_modules/ink/build/components/AppContext.js.map +1 -0
  188. package/dist/server/node_modules/ink/build/components/BackgroundContext.d.ts +4 -0
  189. package/dist/server/node_modules/ink/build/components/BackgroundContext.js +3 -0
  190. package/dist/server/node_modules/ink/build/components/BackgroundContext.js.map +1 -0
  191. package/dist/server/node_modules/ink/build/components/Box.d.ts +117 -0
  192. package/dist/server/node_modules/ink/build/components/Box.js +34 -0
  193. package/dist/server/node_modules/ink/build/components/Box.js.map +1 -0
  194. package/dist/server/node_modules/ink/build/components/Color.js +62 -0
  195. package/dist/server/node_modules/ink/build/components/Cursor.d.ts +83 -0
  196. package/dist/server/node_modules/ink/build/components/Cursor.js +53 -0
  197. package/dist/server/node_modules/ink/build/components/Cursor.js.map +1 -0
  198. package/dist/server/node_modules/ink/build/components/CursorContext.d.ts +11 -0
  199. package/dist/server/node_modules/ink/build/components/CursorContext.js +8 -0
  200. package/dist/server/node_modules/ink/build/components/CursorContext.js.map +1 -0
  201. package/dist/server/node_modules/ink/build/components/ErrorBoundary.d.ts +18 -0
  202. package/dist/server/node_modules/ink/build/components/ErrorBoundary.js +23 -0
  203. package/dist/server/node_modules/ink/build/components/ErrorBoundary.js.map +1 -0
  204. package/dist/server/node_modules/ink/build/components/ErrorOverview.d.ts +6 -0
  205. package/dist/server/node_modules/ink/build/components/ErrorOverview.js +84 -0
  206. package/dist/server/node_modules/ink/build/components/ErrorOverview.js.map +1 -0
  207. package/dist/server/node_modules/ink/build/components/FocusContext.d.ts +16 -0
  208. package/dist/server/node_modules/ink/build/components/FocusContext.js +17 -0
  209. package/dist/server/node_modules/ink/build/components/FocusContext.js.map +1 -0
  210. package/dist/server/node_modules/ink/build/components/Newline.d.ts +13 -0
  211. package/dist/server/node_modules/ink/build/components/Newline.js +8 -0
  212. package/dist/server/node_modules/ink/build/components/Newline.js.map +1 -0
  213. package/dist/server/node_modules/ink/build/components/Spacer.d.ts +7 -0
  214. package/dist/server/node_modules/ink/build/components/Spacer.js +11 -0
  215. package/dist/server/node_modules/ink/build/components/Spacer.js.map +1 -0
  216. package/dist/server/node_modules/ink/build/components/Static.d.ts +24 -0
  217. package/dist/server/node_modules/ink/build/components/Static.js +28 -0
  218. package/dist/server/node_modules/ink/build/components/Static.js.map +1 -0
  219. package/dist/server/node_modules/ink/build/components/StderrContext.d.ts +15 -0
  220. package/dist/server/node_modules/ink/build/components/StderrContext.js +13 -0
  221. package/dist/server/node_modules/ink/build/components/StderrContext.js.map +1 -0
  222. package/dist/server/node_modules/ink/build/components/StdinContext.d.ts +22 -0
  223. package/dist/server/node_modules/ink/build/components/StdinContext.js +19 -0
  224. package/dist/server/node_modules/ink/build/components/StdinContext.js.map +1 -0
  225. package/dist/server/node_modules/ink/build/components/StdoutContext.d.ts +15 -0
  226. package/dist/server/node_modules/ink/build/components/StdoutContext.js +13 -0
  227. package/dist/server/node_modules/ink/build/components/StdoutContext.js.map +1 -0
  228. package/dist/server/node_modules/ink/build/components/Text.d.ts +55 -0
  229. package/dist/server/node_modules/ink/build/components/Text.js +50 -0
  230. package/dist/server/node_modules/ink/build/components/Text.js.map +1 -0
  231. package/dist/server/node_modules/ink/build/components/Transform.d.ts +16 -0
  232. package/dist/server/node_modules/ink/build/components/Transform.js +15 -0
  233. package/dist/server/node_modules/ink/build/components/Transform.js.map +1 -0
  234. package/dist/server/node_modules/ink/build/cursor-helpers.d.ts +38 -0
  235. package/dist/server/node_modules/ink/build/cursor-helpers.js +56 -0
  236. package/dist/server/node_modules/ink/build/cursor-helpers.js.map +1 -0
  237. package/dist/server/node_modules/ink/build/devtools-window-polyfill.d.ts +1 -0
  238. package/dist/server/node_modules/ink/build/devtools-window-polyfill.js +65 -0
  239. package/dist/server/node_modules/ink/build/devtools-window-polyfill.js.map +1 -0
  240. package/dist/server/node_modules/ink/build/devtools.d.ts +1 -0
  241. package/dist/server/node_modules/ink/build/devtools.js +11 -0
  242. package/dist/server/node_modules/ink/build/devtools.js.map +1 -0
  243. package/dist/server/node_modules/ink/build/dom.d.ts +56 -0
  244. package/dist/server/node_modules/ink/build/dom.js +124 -0
  245. package/dist/server/node_modules/ink/build/dom.js.map +1 -0
  246. package/dist/server/node_modules/ink/build/experimental/apply-style.js +140 -0
  247. package/dist/server/node_modules/ink/build/experimental/dom.js +123 -0
  248. package/dist/server/node_modules/ink/build/experimental/output.js +91 -0
  249. package/dist/server/node_modules/ink/build/experimental/reconciler.js +141 -0
  250. package/dist/server/node_modules/ink/build/experimental/renderer.js +81 -0
  251. package/dist/server/node_modules/ink/build/get-max-width.d.ts +3 -0
  252. package/dist/server/node_modules/ink/build/get-max-width.js +10 -0
  253. package/dist/server/node_modules/ink/build/get-max-width.js.map +1 -0
  254. package/dist/server/node_modules/ink/build/hooks/use-app.d.ts +5 -0
  255. package/dist/server/node_modules/ink/build/hooks/use-app.js +8 -0
  256. package/dist/server/node_modules/ink/build/hooks/use-app.js.map +1 -0
  257. package/dist/server/node_modules/ink/build/hooks/use-cursor.d.ts +12 -0
  258. package/dist/server/node_modules/ink/build/hooks/use-cursor.js +29 -0
  259. package/dist/server/node_modules/ink/build/hooks/use-cursor.js.map +1 -0
  260. package/dist/server/node_modules/ink/build/hooks/use-focus-manager.d.ts +28 -0
  261. package/dist/server/node_modules/ink/build/hooks/use-focus-manager.js +17 -0
  262. package/dist/server/node_modules/ink/build/hooks/use-focus-manager.js.map +1 -0
  263. package/dist/server/node_modules/ink/build/hooks/use-focus.d.ts +29 -0
  264. package/dist/server/node_modules/ink/build/hooks/use-focus.js +42 -0
  265. package/dist/server/node_modules/ink/build/hooks/use-focus.js.map +1 -0
  266. package/dist/server/node_modules/ink/build/hooks/use-input.d.ts +131 -0
  267. package/dist/server/node_modules/ink/build/hooks/use-input.js +124 -0
  268. package/dist/server/node_modules/ink/build/hooks/use-input.js.map +1 -0
  269. package/dist/server/node_modules/ink/build/hooks/use-is-screen-reader-enabled.d.ts +5 -0
  270. package/dist/server/node_modules/ink/build/hooks/use-is-screen-reader-enabled.js +11 -0
  271. package/dist/server/node_modules/ink/build/hooks/use-is-screen-reader-enabled.js.map +1 -0
  272. package/dist/server/node_modules/ink/build/hooks/use-stderr.d.ts +5 -0
  273. package/dist/server/node_modules/ink/build/hooks/use-stderr.js +8 -0
  274. package/dist/server/node_modules/ink/build/hooks/use-stderr.js.map +1 -0
  275. package/dist/server/node_modules/ink/build/hooks/use-stdin.d.ts +5 -0
  276. package/dist/server/node_modules/ink/build/hooks/use-stdin.js +8 -0
  277. package/dist/server/node_modules/ink/build/hooks/use-stdin.js.map +1 -0
  278. package/dist/server/node_modules/ink/build/hooks/use-stdout.d.ts +5 -0
  279. package/dist/server/node_modules/ink/build/hooks/use-stdout.js +8 -0
  280. package/dist/server/node_modules/ink/build/hooks/use-stdout.js.map +1 -0
  281. package/dist/server/node_modules/ink/build/hooks/useInput.js +38 -0
  282. package/dist/server/node_modules/ink/build/index.d.ts +34 -0
  283. package/dist/server/node_modules/ink/build/index.js +20 -0
  284. package/dist/server/node_modules/ink/build/index.js.map +1 -0
  285. package/dist/server/node_modules/ink/build/ink.d.ts +90 -0
  286. package/dist/server/node_modules/ink/build/ink.js +637 -0
  287. package/dist/server/node_modules/ink/build/ink.js.map +1 -0
  288. package/dist/server/node_modules/ink/build/input-parser.d.ts +7 -0
  289. package/dist/server/node_modules/ink/build/input-parser.js +154 -0
  290. package/dist/server/node_modules/ink/build/input-parser.js.map +1 -0
  291. package/dist/server/node_modules/ink/build/instance.js +205 -0
  292. package/dist/server/node_modules/ink/build/instances.d.ts +3 -0
  293. package/dist/server/node_modules/ink/build/instances.js +8 -0
  294. package/dist/server/node_modules/ink/build/instances.js.map +1 -0
  295. package/dist/server/node_modules/ink/build/kitty-keyboard.d.ts +23 -0
  296. package/dist/server/node_modules/ink/build/kitty-keyboard.js +32 -0
  297. package/dist/server/node_modules/ink/build/kitty-keyboard.js.map +1 -0
  298. package/dist/server/node_modules/ink/build/layout.d.ts +7 -0
  299. package/dist/server/node_modules/ink/build/layout.js +33 -0
  300. package/dist/server/node_modules/ink/build/layout.js.map +1 -0
  301. package/dist/server/node_modules/ink/build/log-update.d.ts +19 -0
  302. package/dist/server/node_modules/ink/build/log-update.js +242 -0
  303. package/dist/server/node_modules/ink/build/log-update.js.map +1 -0
  304. package/dist/server/node_modules/ink/build/measure-element.d.ts +16 -0
  305. package/dist/server/node_modules/ink/build/measure-element.js +9 -0
  306. package/dist/server/node_modules/ink/build/measure-element.js.map +1 -0
  307. package/dist/server/node_modules/ink/build/measure-text.d.ts +6 -0
  308. package/dist/server/node_modules/ink/build/measure-text.js +21 -0
  309. package/dist/server/node_modules/ink/build/measure-text.js.map +1 -0
  310. package/dist/server/node_modules/ink/build/options.d.ts +52 -0
  311. package/dist/server/node_modules/ink/build/options.js +2 -0
  312. package/dist/server/node_modules/ink/build/options.js.map +1 -0
  313. package/dist/server/node_modules/ink/build/output.d.ts +35 -0
  314. package/dist/server/node_modules/ink/build/output.js +183 -0
  315. package/dist/server/node_modules/ink/build/output.js.map +1 -0
  316. package/dist/server/node_modules/ink/build/parse-keypress.d.ts +22 -0
  317. package/dist/server/node_modules/ink/build/parse-keypress.js +493 -0
  318. package/dist/server/node_modules/ink/build/parse-keypress.js.map +1 -0
  319. package/dist/server/node_modules/ink/build/reconciler.d.ts +4 -0
  320. package/dist/server/node_modules/ink/build/reconciler.js +274 -0
  321. package/dist/server/node_modules/ink/build/reconciler.js.map +1 -0
  322. package/dist/server/node_modules/ink/build/render-background.d.ts +4 -0
  323. package/dist/server/node_modules/ink/build/render-background.js +25 -0
  324. package/dist/server/node_modules/ink/build/render-background.js.map +1 -0
  325. package/dist/server/node_modules/ink/build/render-border.d.ts +4 -0
  326. package/dist/server/node_modules/ink/build/render-border.js +73 -0
  327. package/dist/server/node_modules/ink/build/render-border.js.map +1 -0
  328. package/dist/server/node_modules/ink/build/render-node-to-output.d.ts +14 -0
  329. package/dist/server/node_modules/ink/build/render-node-to-output.js +147 -0
  330. package/dist/server/node_modules/ink/build/render-node-to-output.js.map +1 -0
  331. package/dist/server/node_modules/ink/build/render-to-string.d.ts +38 -0
  332. package/dist/server/node_modules/ink/build/render-to-string.js +115 -0
  333. package/dist/server/node_modules/ink/build/render-to-string.js.map +1 -0
  334. package/dist/server/node_modules/ink/build/render.d.ts +121 -0
  335. package/dist/server/node_modules/ink/build/render.js +55 -0
  336. package/dist/server/node_modules/ink/build/render.js.map +1 -0
  337. package/dist/server/node_modules/ink/build/renderer.d.ts +8 -0
  338. package/dist/server/node_modules/ink/build/renderer.js +55 -0
  339. package/dist/server/node_modules/ink/build/renderer.js.map +1 -0
  340. package/dist/server/node_modules/ink/build/sanitize-ansi.d.ts +2 -0
  341. package/dist/server/node_modules/ink/build/sanitize-ansi.js +27 -0
  342. package/dist/server/node_modules/ink/build/sanitize-ansi.js.map +1 -0
  343. package/dist/server/node_modules/ink/build/screen-reader-update.d.ts +13 -0
  344. package/dist/server/node_modules/ink/build/screen-reader-update.js +38 -0
  345. package/dist/server/node_modules/ink/build/screen-reader-update.js.map +1 -0
  346. package/dist/server/node_modules/ink/build/squash-text-nodes.d.ts +3 -0
  347. package/dist/server/node_modules/ink/build/squash-text-nodes.js +36 -0
  348. package/dist/server/node_modules/ink/build/squash-text-nodes.js.map +1 -0
  349. package/dist/server/node_modules/ink/build/styles.d.ts +240 -0
  350. package/dist/server/node_modules/ink/build/styles.js +232 -0
  351. package/dist/server/node_modules/ink/build/styles.js.map +1 -0
  352. package/dist/server/node_modules/ink/build/utils.d.ts +2 -0
  353. package/dist/server/node_modules/ink/build/utils.js +4 -0
  354. package/dist/server/node_modules/ink/build/utils.js.map +1 -0
  355. package/dist/server/node_modules/ink/build/wrap-text.d.ts +3 -0
  356. package/dist/server/node_modules/ink/build/wrap-text.js +31 -0
  357. package/dist/server/node_modules/ink/build/wrap-text.js.map +1 -0
  358. package/dist/server/node_modules/ink/build/write-synchronized.d.ts +4 -0
  359. package/dist/server/node_modules/ink/build/write-synchronized.js +7 -0
  360. package/dist/server/node_modules/ink/build/write-synchronized.js.map +1 -0
  361. package/dist/server/node_modules/{figures → ink}/license +1 -0
  362. package/dist/server/node_modules/ink/package.json +201 -0
  363. package/dist/server/node_modules/ink/readme.md +2636 -0
  364. package/dist/server/node_modules/slice-ansi/index.d.ts +19 -0
  365. package/dist/server/node_modules/slice-ansi/index.js +260 -0
  366. package/dist/server/node_modules/{widest-line → slice-ansi}/license +1 -0
  367. package/dist/server/node_modules/slice-ansi/package.json +59 -0
  368. package/dist/server/node_modules/slice-ansi/readme.md +54 -0
  369. package/dist/server/node_modules/slice-ansi/tokenize-ansi.js +752 -0
  370. package/dist/server/server.js +1 -1
  371. package/package.json +1 -1
  372. package/dist/client/assets/ai-providers-C-HLT43p.js +0 -1
  373. package/dist/client/assets/index-BlefTMU9.js +0 -1
  374. package/dist/client/assets/registry-DSbGbl6G.js +0 -2
  375. package/dist/client/assets/store-registry-CHPlZpA7.js +0 -2
  376. package/dist/client/assets/useInfiniteQuery-B0aJ536b.js +0 -1
  377. package/dist/client/assets/useSuspenseInfiniteQuery-DMQVbZ7w.js +0 -1
  378. package/dist/client/assets/workflow-detail-cax1DGc8.js +0 -1
  379. package/dist/server/node_modules/cli-truncate/index.d.ts +0 -118
  380. package/dist/server/node_modules/cli-truncate/index.js +0 -168
  381. package/dist/server/node_modules/cli-truncate/package.json +0 -52
  382. package/dist/server/node_modules/cli-truncate/readme.md +0 -154
  383. package/dist/server/node_modules/deepmerge/.editorconfig +0 -7
  384. package/dist/server/node_modules/deepmerge/.eslintcache +0 -1
  385. package/dist/server/node_modules/deepmerge/changelog.md +0 -167
  386. package/dist/server/node_modules/deepmerge/dist/cjs.js +0 -133
  387. package/dist/server/node_modules/deepmerge/dist/umd.js +0 -139
  388. package/dist/server/node_modules/deepmerge/index.d.ts +0 -20
  389. package/dist/server/node_modules/deepmerge/index.js +0 -106
  390. package/dist/server/node_modules/deepmerge/license.txt +0 -21
  391. package/dist/server/node_modules/deepmerge/package.json +0 -42
  392. package/dist/server/node_modules/deepmerge/readme.md +0 -264
  393. package/dist/server/node_modules/deepmerge/rollup.config.js +0 -22
  394. package/dist/server/node_modules/figures/index.d.ts +0 -279
  395. package/dist/server/node_modules/figures/index.js +0 -292
  396. package/dist/server/node_modules/figures/package.json +0 -49
  397. package/dist/server/node_modules/figures/readme.md +0 -337
  398. package/dist/server/node_modules/mimic-fn/index.d.ts +0 -54
  399. package/dist/server/node_modules/mimic-fn/index.js +0 -13
  400. package/dist/server/node_modules/mimic-fn/license +0 -9
  401. package/dist/server/node_modules/mimic-fn/package.json +0 -42
  402. package/dist/server/node_modules/mimic-fn/readme.md +0 -69
  403. package/dist/server/node_modules/pg-int8/LICENSE +0 -13
  404. package/dist/server/node_modules/pg-int8/README.md +0 -16
  405. package/dist/server/node_modules/pg-int8/index.js +0 -100
  406. package/dist/server/node_modules/pg-int8/package.json +0 -24
  407. package/dist/server/node_modules/postgres-array/index.d.ts +0 -4
  408. package/dist/server/node_modules/postgres-array/index.js +0 -97
  409. package/dist/server/node_modules/postgres-array/license +0 -21
  410. package/dist/server/node_modules/postgres-array/package.json +0 -35
  411. package/dist/server/node_modules/postgres-array/readme.md +0 -43
  412. package/dist/server/node_modules/postgres-bytea/index.js +0 -33
  413. package/dist/server/node_modules/postgres-bytea/license +0 -21
  414. package/dist/server/node_modules/postgres-bytea/package.json +0 -34
  415. package/dist/server/node_modules/postgres-bytea/readme.md +0 -34
  416. package/dist/server/node_modules/postgres-date/index.js +0 -116
  417. package/dist/server/node_modules/postgres-date/license +0 -21
  418. package/dist/server/node_modules/postgres-date/package.json +0 -33
  419. package/dist/server/node_modules/postgres-date/readme.md +0 -49
  420. package/dist/server/node_modules/postgres-interval/index.d.ts +0 -20
  421. package/dist/server/node_modules/postgres-interval/index.js +0 -125
  422. package/dist/server/node_modules/postgres-interval/license +0 -21
  423. package/dist/server/node_modules/postgres-interval/package.json +0 -36
  424. package/dist/server/node_modules/postgres-interval/readme.md +0 -48
  425. package/dist/server/node_modules/split2/LICENSE +0 -13
  426. package/dist/server/node_modules/split2/README.md +0 -85
  427. package/dist/server/node_modules/split2/bench.js +0 -27
  428. package/dist/server/node_modules/split2/index.js +0 -141
  429. package/dist/server/node_modules/split2/package.json +0 -39
  430. package/dist/server/node_modules/split2/test.js +0 -409
  431. package/dist/server/node_modules/widest-line/index.d.ts +0 -12
  432. package/dist/server/node_modules/widest-line/index.js +0 -11
  433. package/dist/server/node_modules/widest-line/package.json +0 -60
  434. package/dist/server/node_modules/widest-line/readme.md +0 -26
  435. package/dist/server/node_modules/xtend/.jshintrc +0 -30
  436. package/dist/server/node_modules/xtend/LICENSE +0 -20
  437. package/dist/server/node_modules/xtend/README.md +0 -32
  438. package/dist/server/node_modules/xtend/immutable.js +0 -19
  439. package/dist/server/node_modules/xtend/mutable.js +0 -17
  440. package/dist/server/node_modules/xtend/package.json +0 -55
  441. package/dist/server/node_modules/xtend/test.js +0 -103
  442. /package/dist/server/node_modules/{cli-truncate → get-east-asian-width}/license +0 -0
@@ -7562,5 +7562,5 @@ ${Y.map((Q)=>{let J=`${Q.name}|${Q.description??""}`;if(Q.arguments&&Q.arguments
7562
7562
  Input schema:
7563
7563
  ${U}`:`${H}
7564
7564
 
7565
- This workflow expects structured input. Use COLLECTION_WORKFLOW_GET to inspect the full input schema.`})(),inputSchema:F.object({input:F.record(F.string(),F.unknown()).optional().describe("Input data for the workflow. Steps reference these values via @input.field."),virtual_mcp_id:F.string().optional().describe(W.virtual_mcp_id?`Virtual MCP ID to use for execution (defaults to "${W.virtual_mcp_id}").`:"Virtual MCP ID that will execute the workflow steps."),start_at_epoch_ms:F.number().int().min(0).optional().describe("Unix timestamp (ms) for scheduled execution. Omit to start immediately.")}),outputSchema:F.object({execution_id:F.string().describe("ID of the created workflow execution.")}),execute:async(U)=>{let{connectionId:B,meshUrl:N,token:O}=fl1(U);if(!B||!N)throw Error(`[${K}] Missing MESH_REQUEST_CONTEXT (connectionId or meshUrl).`);let z=U.context,w=z.virtual_mcp_id??W.virtual_mcp_id,E=_l1.workflowId(B,W.title);return{execution_id:await _l1.createExecution(N,O,{workflow_collection_id:E,virtual_mcp_id:w,input:z.input,start_at_epoch_ms:z.start_at_epoch_ms})}}})}):[]]},_98=(X)=>{let Y=null,G=null,Q=null,J=!1,$=()=>{if(!J)console.warn("[runtime] Passing factory functions to tools/prompts/resources is deprecated. Pass createTool()/createPrompt()/createResource() instances directly."),J=!0},Z=(O)=>typeof O==="object"&&O!==null&&(("id"in O)||("name"in O)||("uri"in O));async function W(O,z){if(!O)return[];return(await Promise.all(O.flatMap(async(w)=>{if(Z(w))return[w];$();let E=await w(z);if(Array.isArray(E))return E;return[E]}))).flat()}let K=async(O)=>{if(Y)return Y;if(G)return G;return G=(async()=>{try{let z;if(typeof X.tools==="function")$(),z=await X.tools(O);else z=await W(X.tools,O);let w=typeof X.workflows==="function"?await X.workflows(O):X.workflows;z.push(...fr5({...X,workflows:w}));let E;if(typeof X.prompts==="function")$(),E=await X.prompts(O);else E=await W(X.prompts,O);let P;if(typeof X.resources==="function")$(),P=await X.resources(O);else P=await W(X.resources,O);let A={tools:z,prompts:E,resources:P,workflows:w};return Y=A,A}catch(z){throw G=null,z}})(),G},H=(O,z)=>{for(let w of z.tools)O.registerTool(w.id,{_meta:w._meta,description:w.description,annotations:w.annotations,inputSchema:w.inputSchema&&"shape"in w.inputSchema?w.inputSchema:F.object({}),outputSchema:w.outputSchema&&typeof w.outputSchema==="object"&&"shape"in w.outputSchema?w.outputSchema:void 0},async(E)=>{let P=AJ1(),A=await w.execute({context:E,runtimeContext:P},P);if(A!=null&&typeof A==="object"&&"content"in A&&Array.isArray(A.content)&&A.content.every((V)=>V!=null&&typeof V==="object"&&("type"in V)&&typeof V.type==="string"))return A;return{structuredContent:A,content:[{type:"text",text:JSON.stringify(A)}]}});for(let w of z.prompts)O.registerPrompt(w.name,{title:w.title,description:w.description,argsSchema:w.argsSchema?w.argsSchema:F.object({}).shape},async(E)=>{let P=AJ1();return await w.execute({args:E,runtimeContext:P},P)});for(let w of z.resources)O.resource(w.name,w.uri,{description:w.description,mimeType:w.mimeType},async(E)=>{let P=AJ1(),A=await w.read({uri:E,runtimeContext:P},P),V=A._meta??void 0;if(A.text!==void 0)return{contents:[{uri:A.uri,mimeType:A.mimeType,text:A.text,...V!==void 0?{_meta:V}:{}}]};else if(A.blob!==void 0)return{contents:[{uri:A.uri,mimeType:A.mimeType,blob:A.blob,...V!==void 0?{_meta:V}:{}}]};return{contents:[{uri:A.uri,mimeType:A.mimeType,text:""}]}})},U=async(O)=>{await X.before?.(O);let{instructions:z,...w}=X.serverInfo??{},E=new Az({...w,name:w.name??"@deco/mcp-api",version:w.version??"1.0.0"},{capabilities:{tools:{},prompts:{},resources:{}},...z&&{instructions:z}}),P=await K(O);H(E,P);let A="tools/list",V=E.server._requestHandlers,M=V.get(A);if(M)V.set(A,async(j,R)=>{if(!Q)Q=await M(j,R);return Q});return{server:E,...P}};return{fetch:async(O,z)=>{let{server:w}=await U(z),E=new BH;await w.connect(E);let P=()=>{try{E.close?.()}catch{}try{w.close?.()}catch{}};try{let A=await E.handleRequest(O),V=A.headers.get("content-type");if(!(V?.includes("text/event-stream")||V?.includes("application/json-rpc"))||!A.body)return P(),A;let{readable:j,writable:R}=new TransformStream;return A.body.pipeTo(R).catch(()=>{}).finally(P),new Response(j,{status:A.status,statusText:A.statusText,headers:A.headers})}catch(A){throw P(),A}},callTool:async({toolCallId:O,toolCallInput:z})=>{let w=qJ1.getStore();if(!w)throw Error("Missing state, did you forget to call State.bind?");let E=w?.env,{tools:P}=await K(E),V=P.find((j)=>j.id===O)?.execute;if(!V)throw Error(`Tool ${O} not found or does not have an execute function`);let M=AJ1();return V({context:z,runtimeContext:M},M)}}};var bl1=D(()=>{eX1();N61();lr();F0();ua();Ok0();Nk0();Dk0();Ok0()});var br5=({env:X,server:Y,url:G})=>{X.SELF=new Proxy({},{get:(Q,J)=>{if(J==="toJSON")return null;return async($)=>{return await Y.callTool({toolCallId:J,toolCallInput:$})}}}),X.IS_LOCAL=(G?.startsWith("http://localhost")||G?.startsWith("http://127.0.0.1"))??!1},f98=(X)=>()=>{return{...X??{}}},yr5=({env:X,server:Y,tokenOrContext:G,url:Q,authToken:J})=>{let $=X,Z=J?J.split(" ")[1]:void 0,W;if(typeof G==="string"){let K=d5(G),H=K.metadata??{};W={authorization:Z,state:K.state??H.state??{},token:G,meshUrl:K.meshUrl??H.meshUrl,connectionId:K.connectionId??H.connectionId,organizationId:K.organizationId??H.organizationId,organizationName:K.organizationName??H.organizationName,organizationSlug:K.organizationSlug??H.organizationSlug,ensureAuthenticated:f98(K.user??K.sub)}}else if(typeof G==="object"){W=G;let K=d5(G.token),H=K.metadata??{},U=K.appName;W.authorization??=Z,W.callerApp=U,W.connectionId??=K.connectionId??H.connectionId,W.organizationId??=K.organizationId??H.organizationId,W.organizationName??=K.organizationName??H.organizationName,W.organizationSlug??=K.organizationSlug??H.organizationSlug,W.ensureAuthenticated=f98(K.user??K.sub)}else W={state:{},authorization:Z,token:void 0,meshUrl:void 0,connectionId:void 0,ensureAuthenticated:()=>{throw Error("Unauthorized")}};return $.MESH_REQUEST_CONTEXT=W,W.state=N98(W),br5({env:$,server:Y,url:Q}),$},hr5,b98=(X)=>{let Y=_98(X),G=X.cors??hr5,Q=X.oauth,J=Q?q98(Q):null,$=async(Z,W,K)=>{let H=new URL(Z.url);if(J){if(H.pathname==="/.well-known/oauth-protected-resource"||H.pathname==="/mcp/.well-known/oauth-protected-resource")return J.handleProtectedResourceMetadata(Z);if(H.pathname==="/.well-known/oauth-authorization-server")return J.handleAuthorizationServerMetadata(Z);if(H.pathname==="/authorize")return J.handleAuthorize(Z);if(H.pathname==="/oauth/callback")return J.handleOAuthCallback(Z);if(H.pathname==="/token"&&Z.method==="POST")return J.handleToken(Z);if((H.pathname==="/register"||H.pathname==="/mcp/register")&&Z.method==="POST")return J.handleClientRegistration(Z)}if(H.pathname==="/mcp"){if(Z.method==="GET")return new Response("Method not allowed",{status:405});if(J&&!J.hasAuth(Z)){let U=Z.clone();try{if((await U.json())?.method!=="tools/list")return J.createUnauthorizedResponse(Z)}catch{return J.createUnauthorizedResponse(Z)}}return Y.fetch(Z,W,K)}if(H.pathname.startsWith("/mcp/call-tool")){let U=H.pathname.split("/").pop();if(!U)return new Response("Not found",{status:404});let B=await Z.json(),N=await Y.callTool({toolCallId:U,toolCallInput:B});if(N instanceof Response)return N;return new Response(JSON.stringify(N),{headers:{"Content-Type":"application/json"}})}return X.fetch?.(Z,W,K)||new Response("Not found",{status:404})};return{fetch:async(Z,W,K)=>{if(new URL(Z.url).pathname==="/_healthcheck")return new Response("OK",{status:200});if(G!==!1&&Z.method==="OPTIONS")return z98(Z,G??{});let H=yr5({authToken:Z.headers.get("authorization")??null,env:{...process.env,...W},server:Y,tokenOrContext:Z.headers.get("x-mesh-token")??void 0,url:Z.url}),U=await qJ1.run({req:Z,env:H,ctx:K},async()=>await $(Z,H,K));if(G!==!1)return D98(U,Z,G??{});return U}}};var y98=D(()=>{IJ();ua();w98();Bk0();Bk0();Nk0();bl1();bl1();Dk0();ua();Ml1();hr5={origin:(X)=>{if(X.includes("localhost")||X.includes("127.0.0.1"))return X;return X},credentials:!0,allowMethods:["GET","POST","PUT","DELETE","OPTIONS"],allowHeaders:["Content-Type","Authorization","mcp-protocol-version"]}});function xr5(X,Y){let G=HO({id:"COLLECTION_REGISTRY_APP_LIST",description:"List public registry items",annotations:{readOnlyHint:!0,idempotentHint:!0},inputSchema:cr,outputSchema:ir,execute:async({context:W})=>{return await X.listPublic(Y,{limit:W.limit,offset:W.offset,cursor:W.cursor,tags:W.tags,categories:W.categories,where:W.where})}}),Q=HO({id:"COLLECTION_REGISTRY_APP_GET",description:"Get a public registry item by ID or name",annotations:{readOnlyHint:!0,idempotentHint:!0},inputSchema:mN,outputSchema:FM,execute:async({context:W})=>{let K=W.id??W.name;if(!K)return{item:null};let H=await X.findByIdOrName(Y,K);if(H&&H.is_public)return{item:H};return{item:null}}}),J=HO({id:"COLLECTION_REGISTRY_APP_VERSIONS",description:"Get available versions of a public registry item",annotations:{readOnlyHint:!0,idempotentHint:!0},inputSchema:mN,outputSchema:F.object({versions:F.array(FM.shape.item)}),execute:async({context:W})=>{let K=W.id??W.name;if(!K)return{versions:[]};let H=await X.findByIdOrName(Y,K);if(H&&H.is_public)return{versions:[H]};return{versions:[]}}}),$=HO({id:"COLLECTION_REGISTRY_APP_SEARCH",description:"Search public registry items returning minimal data (id, title, tags, categories, is_public). Use this instead of LIST when you need to find items efficiently without loading full details.",annotations:{readOnlyHint:!0,idempotentHint:!0},inputSchema:NV1,outputSchema:OV1,execute:async({context:W})=>{return await X.search(Y,W,{publicOnly:!0})}}),Z=HO({id:"COLLECTION_REGISTRY_APP_FILTERS",description:"Get available tags and categories for public registry items",annotations:{readOnlyHint:!0,idempotentHint:!0},inputSchema:F.object({}),outputSchema:pr,execute:async()=>{return await X.getFilters(Y,{publicOnly:!0})}});return[G,$,Q,J,Z]}function h98(X){let Y=X.db,G=new Kr(Y);return async(Q)=>{let J=Q.req.param("orgSlug")??Q.req.param("org");if(!J)return Q.json({error:"Organization not found"},404);let $=await Y.selectFrom("organization").select(["id","slug","name"]).where("slug","=",J).executeTakeFirst();if(!$)return Q.json({error:"Organization not found"},404);let Z=xr5(G,$.id),W=b98({tools:Z}),K=new URL(Q.req.url),H=Q.req.path.indexOf("/registry"),U=H>=0?Q.req.path.slice(H+9):"",B=new URL(U||"/",K.origin);K.searchParams.forEach((z,w)=>{B.searchParams.set(w,z)});let N=new Request(B.toString(),{method:Q.req.method,headers:Q.req.raw.headers,body:Q.req.method!=="GET"&&Q.req.method!=="HEAD"?Q.req.raw.body:void 0}),O={organizationId:$.id,db:Y,MESH_REQUEST_CONTEXT:{},MESH_APP_DEPLOYMENT_ID:"public-registry",IS_LOCAL:!1};return await W.fetch(N,O,Q)}}var x98=D(()=>{y98();bl1();F0();QP0();tY()});import{randomUUID as g98}from"crypto";async function ur5(X){let Y=new Date().toISOString(),G=g98(),Q=JX.SELF(X.organizationId),J="registry.publish_request.created",$={requestId:X.request.id,requestedId:X.request.requested_id,title:X.request.title,status:X.request.status,createdAt:X.request.created_at,requester:{name:X.request.requester_name,email:X.request.requester_email}};await X.db.insertInto("events").values({id:G,organization_id:X.organizationId,type:"registry.publish_request.created",source:Q,specversion:"1.0",subject:X.request.id,time:Y,datacontenttype:"application/json",dataschema:null,data:JSON.stringify($),cron:null,status:"pending",attempts:0,last_error:null,next_retry_at:null,created_at:Y,updated_at:Y}).execute();let Z=await X.db.selectFrom("event_subscriptions").select(["id"]).where("organization_id","=",X.organizationId).where("enabled","=",1).where("event_type","=","registry.publish_request.created").where((W)=>W.or([W("publisher","is",null),W("publisher","=",Q)])).execute();if(Z.length>0)await X.db.insertInto("event_deliveries").values(Z.map((W)=>({id:g98(),event_id:G,subscription_id:W.id,status:"pending",attempts:0,last_error:null,delivered_at:null,next_retry_at:null,created_at:Y}))).execute();try{await p1`SELECT pg_notify('mesh_events', ${G})`.execute(X.db)}catch{}}async function lr5(X,Y){let Q=(await X.selectFrom("organization").select(["id"]).where("id","=",Y).execute())[0];if(Q?.id)return Q.id;return(await X.selectFrom("organization").select(["id"]).where("slug","=",Y).execute())[0]?.id??null}async function mr5(X,Y){let G=await X.selectFrom("virtual_mcp_plugin_configs").innerJoin("connections","connections.id","virtual_mcp_plugin_configs.virtual_mcp_id").select(["virtual_mcp_plugin_configs.settings as settings"]).where("connections.organization_id","=",Y).where("virtual_mcp_plugin_configs.plugin_id","=",TM).execute();for(let Q of G){let J=Q.settings,$=typeof J==="string"?(()=>{try{return JSON.parse(J)}catch{return{}}})():J??{};if($.acceptPublishRequests===!0){let Z=$.rateLimitWindow==="minute"?"minute":"hour",W=$.rateLimitMax,K=typeof W==="number"&&Number.isFinite(W)&&W>=1?Math.floor(W):l98;return{acceptPublishRequests:!0,requireApiToken:$.requireApiToken===!0,rateLimitEnabled:$.rateLimitEnabled===void 0?u98:$.rateLimitEnabled===!0,rateLimitWindow:Z,rateLimitMax:K}}}return{acceptPublishRequests:!1,requireApiToken:!1,rateLimitEnabled:u98,rateLimitWindow:gr5,rateLimitMax:l98}}async function dr5(X,Y,G){let Q=G==="minute"?60000:3600000,J=new Date(Date.now()-Q).toISOString(),$=await X.selectFrom("private_registry_publish_request").select((Z)=>Z.fn.countAll().as("count")).where("organization_id","=",Y).where("created_at",">=",J).executeTakeFirst();return Number($?.count??0)}async function cr5(X,Y,G,Q){let J=await X.selectFrom("private_registry_item").select(["id","title"]).where("organization_id","=",Y).where(($)=>$.or([$("id","=",G),$("title","=",Q)])).executeTakeFirst();return J?{id:String(J.id),title:String(J.title)}:null}function m98(X){let{db:Y,db:G}=X,Q=new Hr(G),J=new Fr(G);return async($)=>{let Z=$.req.param("orgRef")??$.req.param("org");if(!Z)return $.json({error:"Organization not found"},404);let W=await lr5(Y,Z);if(!W)return $.json({error:"Organization not found"},404);let K=await mr5(Y,W);if(!K.acceptPublishRequests)return $.json({error:"Publish requests are not enabled for this registry."},403);if(K.requireApiToken){let O=$.req.header("Authorization"),z=O?.startsWith("Bearer ")?O.slice(7).trim():null;if(!z)return $.json({error:"API key required. Use Authorization: Bearer <key>"},401);if(!await J.validate(W,z))return $.json({error:"Invalid API key"},401)}if(K.rateLimitEnabled){if(await dr5(G,W,K.rateLimitWindow)>=K.rateLimitMax)return $.json({error:"Too many publish requests. Please try again later.",retryAfterSeconds:K.rateLimitWindow==="minute"?60:3600},429)}let H;try{H=await $.req.json()}catch{return $.json({error:"Invalid JSON body"},400)}let U=L26.safeParse(H);if(!U.success)return $.json({error:"Invalid publish request payload",details:F.treeifyError(U.error)},400);let B=await cr5(G,W,U.data.data.id,U.data.data.title);if(B)return $.json({error:"A registry item with the same id or title already exists. Please use a different name/id.",conflict:B},409);let N=await Q.createOrUpdate({organization_id:W,requested_id:U.data.data.id,title:U.data.data.title,description:U.data.data.description??null,_meta:U.data.data._meta,server:U.data.data.server,requester_name:U.data.requester?.name??null,requester_email:U.data.requester?.email??null});try{await ur5({db:Y,organizationId:W,request:N})}catch(O){console.warn("[private-registry] failed to emit publish-request event:",O)}return A6.capture({distinctId:U.data.requester?.email??`org:${W}`,event:"registry_publish_request_submitted",groups:{organization:W},properties:{organization_id:W,request_id:N.id,requested_id:N.requested_id,title:U.data.data.title,requester_email:U.data.requester?.email??null}}),$.json({id:N.id,requested_id:N.requested_id,status:N.status},201)}}var u98=!0,gr5="hour",l98=100;var d98=D(()=>{OY();ZX();$7();F0();Za();JP0();ZP0();tY()});var c98={};b6(c98,{createPublishRequestHandler:()=>m98,createPublicMCPHandler:()=>h98});var i98=D(()=>{x98();d98()});var s98={};b6(s98,{createApp:()=>or5});async function ir5(X){let Y=X.connect(),G;try{G=await Promise.race([Y,n98(p98)])}catch{return Y.then((Q)=>Q.release(!0)).catch(()=>{}),!1}try{return await Promise.race([G.query("SELECT 1"),n98(p98)]),G.release(),!0}catch{return G.release(!0),!1}}function n98(X){return new Promise((Y,G)=>setTimeout(()=>G(Error("pg health-check timeout")),X))}async function pr5(X,Y){let{items:G}=await X.storage.connections.list(Y,{where:{field:["connection_url"],operator:"like",value:`${Wp4}%`},limit:1}),Q=G[0];if(!Q?.configuration_state)return null;return Q.configuration_state.project_locator}function nr5(X){let Y=new URLSearchParams;if(X){let[G,Q]=X.split("/");if(G)Y.set("workspace_hint",G);if(Q)Y.set("project_hint",Q)}else Y.set("auto_personal","true");return Y.set("force_new","true"),Y}async function or5(X={}){let Y=X.database??dY(),G=!1;if(PA)clearInterval(PA),PA=null;if(yl1&&yl1.isRunning())Promise.resolve(yl1.stop()).catch((T1)=>{console.error("[EventBus] Error stopping previous worker:",T1)}),g3.stop().catch((T1)=>{console.error("[SSEHub] Error stopping previous broadcast (HMR cleanup):",T1)});let Q,J,$,Z,W,K=null;if(X.eventBus)Q=X.eventBus,J={get:async()=>null,set:async()=>{},invalidate:async()=>{},teardown:()=>{}},$={get:async()=>null,set:async()=>{},invalidate:async()=>{},teardown:()=>{}},Z={start:async()=>{},broadcast:()=>{},stop:async()=>{}},W={init:async()=>{},relay:(T1)=>T1,createReplayStream:async()=>null,purge:()=>{},teardown:()=>{}};else{K=P88(),K.init(h4().natsUrls);let T1=new QL0({getJetStream:()=>K.getJetStream()});T1.init().catch(()=>{}),J=T1;let f1=new pS0({getJetStream:()=>K.getJetStream()});f1.init().catch(()=>{}),$=f1,Z=new nS0({getConnection:()=>K.getConnection()}),W=new rS0({getConnection:()=>K.getConnection(),getJetStream:()=>K.getJetStream()}),Q=u08(Y,K),K.onReady(()=>{T1.init().catch((e1)=>{console.error("[McpListCache] Deferred init failed:",e1)}),f1.init().catch((e1)=>{console.error("[ModelListCache] Deferred init failed:",e1)}),W.init().catch((e1)=>{console.warn("[StreamBuffer] Deferred init failed, late-join disabled:",e1)})})}if(yl1=Q,ma)await ma();JL0(J);let H=new A71(Y.db),U={storage:H,streamBuffer:W,sseHub:g3},B=Nl(),N=new aS0(U,B);Z.start((T1)=>{N.execute({type:"CANCEL",taskId:T1}).catch((f1)=>{console.error("[Decopilot] CancelBroadcast execute failed:",f1)})}).catch((T1)=>{console.error("[Decopilot] CancelBroadcast start failed:",T1)}),K?.onReady(()=>{Z.start().catch((T1)=>{console.error("[CancelBroadcast] Deferred start failed:",T1)})}),W.init().catch((T1)=>{console.warn("[Decopilot] StreamBuffer init failed, attach/late-join disabled:",T1)});let O=null;if(K)O=new Xk0({getConnection:()=>K.getConnection(),getJetStream:()=>K.getJetStream()}),O.init().then(()=>{O.start(B)}).catch(()=>{}),K.onReady(()=>{O.init().then(()=>{O.start(B)}).catch((T1)=>{console.error("[PodHeartbeat] Deferred init failed:",T1)})});ma=async()=>{await O?.stop(),await N.stopAll(),N.dispose(),Z.stop().catch(()=>{}),W.teardown(),J.teardown(),$.teardown(),JL0(null)};let z=new w6;if(z.use("*",K$0({enabled:(T1)=>LD1(T1,"debug")==="1"})),z.use("*",Ea1),z.use("/*",np4({origin:(T1)=>{if(T1.includes("localhost")||T1.includes("127.0.0.1"))return T1;return T1},credentials:!0,allowMethods:["GET","POST","PUT","DELETE","OPTIONS"],allowHeaders:["Content-Type","Authorization","mcp-protocol-version"],exposeHeaders:["WWW-Authenticate"]})),z.use("*",async(T1,f1)=>{await f1(),T1.header("X-Frame-Options","DENY"),T1.header("Content-Security-Policy","frame-ancestors 'none'")}),!h4().noTui)z.use("*",i88());z.use("*",async(T1,f1)=>{if(await f1(),T1.res.status>=500){let Z0=await T1.res.clone().text();console.error(`[5xx Response] ${T1.req.method} ${T1.req.path} - ${T1.res.status}:`,Z0)}}),z.get(wA.HEALTH_LIVE,(T1)=>{return T1.json({status:"ok"})}),z.get(wA.HEALTH_READY,async(T1)=>{if(G)return T1.json({status:"shutting_down"},503);let f1={};if(f1.postgres={status:await ir5(Y.pool)?"up":"down"},K)f1.nats=K.isConnected()?{status:"up"}:{status:"down"};else f1.nats={status:"down"};let e1=f1.postgres.status==="up",Z0=e1?200:503;return T1.json({status:e1?"ready":"not_ready",services:f1},Z0)}),z.get(wA.METRICS,async(T1)=>{try{let f1=await qa1.collect(),e1=tr5.serialize(f1.resourceMetrics);return T1.text(e1,200,{"Content-Type":"text/plain; version=0.0.4; charset=utf-8"})}catch(f1){return console.error("Failed to collect metrics:",f1),T1.text("# Error collecting metrics",500)}}),z.route("/api/config",B88),z.route("/api/auth/custom",H48),z.all("/api/auth/*",async(T1)=>{return await L7.handler(T1.req.raw)});let w=jA0();w.use("*",l7),z.route("/",w),z.get("/.well-known/oauth-protected-resource/api/:org/mcp/:connectionId",jG1),z.route("/",VA0()),z.use("/oauth-proxy/:connectionId/*",l7),z.all("/oauth-proxy/:connectionId/*",t98);let E=async(T1)=>{let e1=await rr5()(T1.req.raw),Z0=await e1.json();return Response.json(Z0,e1)};z.use("/mcp/:gateway?/:connectionId/.well-known/oauth-protected-resource/*",l7),z.get("/mcp/:gateway?/:connectionId/.well-known/oauth-protected-resource/*",E);let P=async(T1)=>{let e1=await ar5()(T1.req.raw),Z0=await e1.json();return Response.json(Z0,e1)};z.get("/.well-known/oauth-authorization-server/*/:gateway?/:connectionId?",P);let A=j08({ttlMs:120000}),V=await kT6({db:Y.db,auth:L7,encryption:{key:h4().encryptionKey},observability:{tracer:hU,meter:cH},eventBus:Q,modelListCache:$,memberRoleCache:A});wU.set(V);let M=new vV(h4().encryptionKey);i36(Y.db,M);let j=Math.random()*2000;if(new Promise((T1)=>setTimeout(T1,j)).then(()=>Q.start()).then(()=>{return n36({db:Y.db,publish:async(T1,f1)=>{await Q.publish(T1,"",f1)}})}).catch((T1)=>{console.error("[EventBus] Error during startup:",T1)}),El)El(),El=null;let R=gI1(Y.db),C=new D71(Y.db),_=new Vl1(10),v=l88({db:Y.db,threadStorage:H}),b=async(T1,f1,e1)=>{let Z0=await R.findById(T1,f1);if(!Z0)throw Error("Automation not found");return PJ1({automation:Z0,triggerId:null,storage:R,streamCoreFn:Vw,meshContextFactory:v,config:{maxConcurrentPerAutomation:3,runTimeoutMs:300000},globalSemaphore:_,deps:{runRegistry:N,cancelBroadcast:Z}})},x=null;if(K){let T1={getConnection:()=>K.getConnection(),getJetStream:()=>K.getJetStream()},f1=new lq(R,EA.publish),e1=1e4,Z0=async()=>{let v0=Date.now();await EA.init(T1),console.log(`[AutomationJobStream] init completed in ${Date.now()-v0}ms`),await EA.startConsumer(async(T6)=>{let R1=await R.findById(T6.automationId,T6.organizationId);if(!R1)return;await PJ1({automation:R1,triggerId:T6.triggerId,storage:R,streamCoreFn:Vw,meshContextFactory:v,config:{maxConcurrentPerAutomation:3,runTimeoutMs:300000},globalSemaphore:_,deps:{runRegistry:N,cancelBroadcast:Z}})});let j0=Date.now();await f1.start(),console.log(`[AutomationJobStream] cronWorker.start() completed in ${Date.now()-j0}ms`)},z4=async(v0=5)=>{for(let j0=1;j0<=v0;j0++)try{await Z0();return}catch(T6){if(j0===v0)throw T6;let R1=Math.min(1000*2**(j0-1),1e4);console.warn(`[AutomationJobStream] Start attempt ${j0}/${v0} failed, retrying in ${R1}ms`),await new Promise((X0)=>setTimeout(X0,R1))}};z4().catch((v0)=>{console.error("[AutomationJobStream] Immediate start failed:",v0)}),K.onReady(()=>{z4().catch((v0)=>{console.error("[AutomationJobStream] Deferred start failed:",v0)})}),x=setInterval(()=>{f1.processNow().catch((v0)=>{console.error("[AutomationCron] Error processing:",v0)})},1e4);let g0=60000,U0=!1,N0=setInterval(async()=>{if(U0)return;try{if(await EA.isHealthy(T1))return;U0=!0,console.warn("[AutomationJobStream] Health check failed, reinitializing..."),await z4()}catch(v0){console.error("[AutomationJobStream] Health re-init failed:",v0)}finally{U0=!1}},g0);El=()=>{if(x)clearInterval(x),x=null;clearInterval(N0),EA.stop(),f1.stop().catch(()=>{})}}let i=new Dl(R,Vw,v,{maxConcurrentPerAutomation:3,runTimeoutMs:300000},_,{runRegistry:N,cancelBroadcast:Z});if("setEventTriggerEngine"in Q)Q.setEventTriggerEngine(i);let n=async(T1)=>{let f1=eu1.safeParse(T1.run_config);if(!f1.success){console.warn(`[recovery] Invalid run_config for ${T1.id}, force-failing`),await H.forceFailIfInProgress(T1.id,T1.organization_id);return}let e1=f1.data,Z0=await v(T1.organization_id,T1.created_by);if(!Z0){console.warn(`[recovery] Cannot build context for ${T1.id}, force-failing`),await H.forceFailIfInProgress(T1.id,T1.organization_id);return}let z4=new Date().toISOString();await H.saveMessages([{id:crypto.randomUUID(),thread_id:T1.id,role:"system",parts:[{type:"text",text:"Run resumed automatically after infrastructure restart."}],metadata:void 0,created_at:z4,updated_at:z4}],T1.organization_id);let g0=await Vw({messages:[],models:Xl1(e1.models),agent:e1.agent,temperature:e1.temperature,toolApprovalLevel:e1.toolApprovalLevel,mode:e1.mode,organizationId:T1.organization_id,userId:T1.created_by,taskId:T1.id,windowSize:e1.windowSize,isResume:!0},Z0,{runRegistry:N,cancelBroadcast:Z});await Wl1(g0)};if(O)O.onPodDeath((T1)=>{N.handlePodDeath(T1,n,Z).catch((f1)=>{console.error(`[Decopilot] Pod death recovery failed for ${T1}:`,f1)})});setTimeout(()=>{N.recoverOrphanedRuns(n).catch((T1)=>{console.error("[recovery] Orphan recovery failed:",T1)})},1e4);let h=[PO(),F$1(),JT()];for(let T1 of h)oS0(T1).then(()=>{}).catch((f1)=>console.error("[monitoring] Retention cleanup failed:",f1));let m=()=>Y.db.deleteFrom("apikey").where("expiresAt","<",new Date).execute().then(()=>{}).catch((T1)=>console.error("[auth] Expired API key cleanup failed:",T1));m(),PA=setInterval(()=>{for(let T1 of h)oS0(T1).catch((f1)=>console.error("[monitoring] Retention cleanup failed:",f1));m()},86400000),PA.unref(),z.use("*",async(T1,f1)=>{if(dS0(T1.req.path))return f1();let e1={measure:async(z4,g0)=>{IK(T1,z4);try{return await g0()}finally{mW(T1,z4)}}},Z0=await wU.create(T1.req.raw,{timings:e1});Z0.automationRunner=b,T1.set("meshContext",Z0);try{await f1()}finally{let z4=Z0.pendingRevalidations;if(z4.length>0)Promise.race([Promise.allSettled(z4),new Promise((U0)=>setTimeout(U0,30000))]).catch((U0)=>console.error("[mesh] revalidation cleanup error:",U0))}}),z.use("/api/:org/decopilot/*",ha),z.use("/api/:org/v1/*",ha),z.use("/api/:org/files/*",ha),z.use("*",async(T1,f1)=>{let e1=T1.req.path;if(e1.startsWith("/api/org-sso/")||e1.startsWith("/api/auth/")||e1.startsWith("/api/tools/management")||e1.startsWith("/oauth-proxy/"))return f1();let Z0=T1.get("meshContext");if(!Z0?.organization?.id||!Z0?.auth?.user?.id)return f1();if(!(await Z0.storage.orgSsoConfig.getByOrgId(Z0.organization.id))?.enforced)return f1();if(!await Z0.storage.orgSsoSessions.isValid(Z0.auth.user.id,Z0.organization.id))return T1.json({error:"SSO authentication required for this organization"},403);return f1()});let e=new w6;e.use("*",l7),e.route("/",ru1()),z.route("/api/org-sso",e),z.get("/api/tools/management",(T1)=>{return T1.json({tools:F$0,grouped:T61()})}),z.use("/mcp/*",async(T1,f1)=>{IK(T1,"mcp");try{return await f1()}finally{mW(T1,"mcp")}});let s=async(T1,f1)=>{let e1=T1.var.meshContext;if(!e1.auth.user?.id&&!e1.auth.apiKey?.id){let Z0=new URL(T1.req.url);return T1.res=new Response(null,{status:401,headers:{"WWW-Authenticate":`Bearer realm="mcp",resource_metadata="${Z0.origin}${Z0.pathname}/.well-known/oauth-protected-resource"`}})}return await f1()};if(z.use("/mcp/:connectionId?",s),z.use("/mcp/gateway/:virtualMcpId?",s),z.use("/mcp/virtual-mcp/:virtualMcpId?",s),z.use("/mcp/self",s),zF()){let{mountDevRoutes:T1}=(K98(),gl1(W98));T1(z,s)}let N1=new w6;N1.use("*",l7),N1.route("/",$V1()),z.route("/mcp",N1);let L1=new w6;L1.use("*",l7),L1.route("/",zl1()),z.route("/mcp/self",L1);let U1=new w6;U1.use("*",l7),U1.route("/",KV1()),z.route("/mcp",U1),z.use("/api/:org/models/*",async(T1,f1)=>{IK(T1,"llm_models");try{return await f1()}finally{mW(T1,"llm_models")}});let w1=jS0({cancelBroadcast:Z,streamBuffer:W,runRegistry:N,threadStorage:H});z.route("/api",w1),z.route("/api",z88);let C1=new w6;C1.use("*",l7),C1.route("/",Dl1()),z.route("/api",C1),z.route("/api",H88);let o1=new w6;o1.use("*",l7),o1.route("/",wl1({tokenStorage:C,eventTriggerEngine:i})),z.route("/api",o1);let m1=new Yk0(Y.db),y1=new w6;y1.use("*",l7),y1.route("/",Ol1({kvStorage:m1})),z.route("/api",y1),z.use("/org/:organizationId/events/:type",l7),z.post("/org/:organizationId/events/:type",r98),z.use("/org/:organizationId/watch",l7),z.get("/org/:organizationId/watch",a98);let Y1=new w6;Y1.use("*",l7),Y1.route("/",Hl1()),z.route("/api",Y1),z.route("/api/deco-sites",l68());let u1=new w6;u1.use("*",l7),u1.route("/",Fl1()),z.route("/api/deco-sites",u1);let W0=new w6;W0.use("*",l7),W0.route("/",Pl1()),z.route("/api/vm-events",W0);let{createPublishRequestHandler:a1,createPublicMCPHandler:P1}=await Promise.resolve().then(() => (i98(),c98)),E1={db:Y.db,vault:{encrypt:(T1)=>M.encrypt(T1),decrypt:(T1)=>M.decrypt(T1)}},B1=a1(E1),$1=P1(E1);z.use("/org/:orgRef/registry/publish-request",l7),z.post("/org/:orgRef/registry/publish-request",B1),z.use("/org/:orgSlug/registry/*",l7),z.all("/org/:orgSlug/registry/*",$1),z.post("/api/:org/registry/publish-request",B1),z.all("/api/:org/registry/*",$1);let M1=Q88({kvStorage:m1,tokenStorage:C,eventTriggerEngine:i,mountDevAssets:zF(),mcpAuth:s,oauthProxyHandler:t98,eventsHandler:r98,watchHandler:a98,betterAuthProtectedResourceHandler:E});return z.route("/api/:org",M1),c36(z,{db:Y.db,vault:M}),z.notFound((T1)=>{return T1.json({error:"Not Found",path:T1.req.path},404)}),z.onError((T1,f1)=>{console.error("Server error :",T1);let e1=T1 instanceof Error?T1.message:"Unknown error";return f1.json({error:"Internal Server Error",message:e1},500)}),Object.assign(z,{markShuttingDown:()=>{G=!0},shutdown:async()=>{if(console.log("[shutdown] Stopping workers..."),await Promise.allSettled([Q.isRunning()?Q.stop():Promise.resolve(),g3.stop(),El?Promise.resolve(El()).finally(()=>{El=null}):Promise.resolve(),ma?Promise.resolve(ma()).finally(()=>{ma=null}):Promise.resolve()]),PA)clearInterval(PA),PA=null;let T1=hR0(yR0());if(T1){let{sweepDockerOrphansOnShutdown:f1}=await Promise.resolve().then(() => (LH(),CM));await f1(T1)}if(K)await K.drain().catch((f1)=>console.error("[shutdown] NATS drain error:",f1));console.log("[shutdown] Flushing telemetry..."),await FL().catch((f1)=>console.error("[shutdown] Telemetry flush error:",f1)),console.log("[shutdown] Closing database..."),await fY6(Y).catch((f1)=>console.error("[shutdown] Database close error:",f1)),console.log("[shutdown] Cleanup complete.")}})}var o98,p98=5000,yl1=null,El=null,ma=null,PA=null,t98=async(X)=>{let Y=X.req.param("connectionId");if(!Y)return X.json({error:"Missing connectionId"},400);let G=X.req.path.split("/").filter(Boolean),Q=G[G.length-1],J=X.get("meshContext");if(!J)J=await wU.create(X.req.raw),X.set("meshContext",J);let $=X.req.param("org")?J.organization?.id:void 0,Z=await J.storage.connections.findById(Y,$);if(!Z?.connection_url)return X.json({error:"Connection not found"},404);let W=await br(Z.connection_url),K,H=new URL(Z.connection_url);if(W.ok)K=(await W.json()).authorization_servers?.[0];if(!K)K=H.origin;let U=await VG1(K);if(!U.ok)return X.json({error:"Failed to get auth server metadata"},502);let B=await U.json(),N;if(Q==="authorize")N=B.authorization_endpoint;else if(Q==="token")N=B.token_endpoint;else if(Q==="register")N=B.registration_endpoint;if(!N)return X.json({error:`Unknown OAuth endpoint: ${Q}`},404);let O=new URL(N),z=new URL(X.req.url);if(O.search=z.search,Q==="authorize"){let R=O.searchParams.get("redirect_uri");if(R){let C=h4().baseUrl??z.origin;try{let _=new URL(R),v=new URL(C);if(!(_.origin===v.origin||_.hostname==="localhost"))return X.json({error:"invalid_request",error_description:"redirect_uri is not allowed"},400)}catch{return X.json({error:"invalid_request",error_description:"redirect_uri is malformed"},400)}O.searchParams.set("redirect_uri",R)}if(O.searchParams.has("resource"))O.searchParams.set("resource",Z.connection_url);if(Kp4(Z.connection_url))try{let C=await pr5(J,Z.organization_id),_=nr5(C);for(let[v,b]of _)O.searchParams.set(v,b)}catch(C){console.warn("[oauth-proxy] Failed to get smart OAuth params, proceeding without:",C)}return X.redirect(O.toString(),302)}let w={Accept:X.req.header("Accept")||"application/json"},E=X.req.header("Content-Type");if(E)w["Content-Type"]=E;let P=X.req.header("Authorization");if(P)w.Authorization=P;let A;if(X.req.method!=="GET"&&X.req.method!=="HEAD")if(Q==="token"&&E?.includes("application/x-www-form-urlencoded")){let R=await X.req.formData();if(R.has("resource"))R.set("resource",Z.connection_url);let C=new URLSearchParams;for(let[_,v]of R.entries())C.append(_,v.toString());A=C.toString()}else A=X.req.raw.body??void 0;let V=await fetch(O.toString(),{method:X.req.method,headers:w,body:A,duplex:"half",redirect:"manual"}),M=new Headers,j=["connection","keep-alive","transfer-encoding","content-encoding","content-length"];for(let[R,C]of V.headers.entries())if(!j.includes(R.toLowerCase()))M.set(R,C);return new Response(V.body,{status:V.status,statusText:V.statusText,headers:M})},r98=async(X)=>{let Y=X.var.meshContext,G=Y.organization?.id??X.req.param("organizationId");if(!G)return X.json({error:"organization id missing"},400);return await Y.eventBus.publish(G,JX.SELF(G),{data:await X.req.json(),type:`public:${X.req.param("type")}`,subject:X.req.query("subject"),deliverAt:X.req.query("deliverAt"),cron:X.req.query("cron")}),X.json({success:!0})},a98=async(X)=>{let Y=X.var.meshContext;if(!(Y.auth.user?.id??Y.auth.apiKey?.userId))return X.json({error:"Unauthorized"},401);let Q=Y.organization?.id??X.req.param("organizationId")??null;if(!Q)return X.json({error:"organization id missing"},400);if(Q!==Y.organization?.id)return X.json({error:"Forbidden access to organization"},403);let J=X.req.query("types"),$=J?J.split(",").map((W)=>W.trim()).filter(Boolean):null,Z=crypto.randomUUID();return DA(X,async(W)=>{if(await W.writeSSE({event:"connected",data:JSON.stringify({listenerId:Z,organizationId:Q,typePatterns:$,connectedAt:new Date().toISOString()})}),!g3.add({id:Z,organizationId:Q,typePatterns:$?.length?$:null,push:(U)=>{W.writeSSE({id:U.id,event:U.type,data:JSON.stringify(U)}).catch(()=>{g3.remove(Q,Z)})}})){await W.writeSSE({event:"error",data:JSON.stringify({error:"Too many connections",message:"SSE connection limit reached. Try again later."})});return}let H=setInterval(()=>{W.writeSSE({event:"keepalive",data:""}).catch(()=>{clearInterval(H)})},30000);await new Promise((U)=>{W.onAbort(()=>{clearInterval(H),g3.remove(Q,Z),U()})})})},tr5,rr5=()=>vB0(L7),ar5=()=>CB0(L7);var e98=D(()=>{e5();$i();ZX();jY();W$0();tp4();H$0();$M();IG1();MP();QO();XS0();TW();KS0();BS0();h68();VS0();MS0();J88();lS0();kS0();WV1();MG1();F88();HV1();_S0();yS0();N88();D88();bS0();fS0();cS0();AA1();Dq1();q88();ZH();A88();I88();R88();Yj1();k88();a3();x88();eS0();zJ1();qS0();Zl1();u88();oE0();m88();yB0();U$0();p88();DJ1();XS0();o98=X1(Rc1(),1);tr5=new o98.PrometheusSerializer});var X58,sr5,er5=(X,Y)=>{if(!X)return{};let G=new Headers(X.headers);if(Y){let Q=G.get("connection");if(Q){let J=Q.split(",").map((Z)=>Z.trim()),$=J.filter((Z)=>!sr5.test(Z));if($.length>0)throw new B9(400,{message:`Invalid Connection header value: ${$.join(", ")}`});J.forEach((Z)=>{G.delete(Z)})}}return X58.forEach((Q)=>{G.delete(Q)}),{method:X.method,body:X.body,duplex:X.body?"half":void 0,headers:G,signal:X.signal}},Xa5=(X)=>{if(!X.headers||Array.isArray(X.headers)||X.headers instanceof Headers)return X;let Y=new Headers;for(let[G,Q]of Object.entries(X.headers))if(Q==null)Y.delete(G);else Y.set(G,Q);return X.headers=Y,X},Y58=async(X,Y)=>{let{raw:G,customFetch:Q,strictConnectionProcessing:J=!1,...$}=Y instanceof Request?{raw:Y}:Y??{},Z=new Request(X,{...er5(G,J),...Xa5($)});Z.headers.delete("accept-encoding");let W=await(Q||fetch)(Z),K=new Headers(W.headers);if(X58.forEach((H)=>{K.delete(H)}),K.has("content-encoding"))K.delete("content-encoding"),K.delete("content-length");return new Response(W.body,{status:W.status,statusText:W.statusText,headers:K})};var G58=D(()=>{Iz();X58=["connection","keep-alive","proxy-authenticate","proxy-authorization","te","trailer","transfer-encoding","upgrade"],sr5=/^[!#$%&'*+\-.0-9A-Z^_`a-z|~]+$/});var Q58=(X)=>(Y)=>{let G=new URL(Y.req.raw.url),Q=new URL(X);return Q.pathname=G.pathname,Q.search=G.search,Y58(Q,{raw:Y.req.raw,headers:{...Y.req.raw.headers}})};var J58=D(()=>{G58()});var K58={};b6(K58,{resolveClientDir:()=>Ka5,resolveAssetPathWithTraversalCheck:()=>W58,isPathWithinDirectory:()=>$58,createAssetHandler:()=>Ha5});import{resolve as TJ1,dirname as Ya5,join as Ga5,extname as Qa5,basename as Ja5,sep as Z58}from"path";function Za5(X,Y){if(X===Y||Ja5(X)==="index.html")return{"Cache-Control":"no-cache"};if(X.includes(`${Z58}assets${Z58}`))return{"Cache-Control":"public, max-age=31536000, immutable"};return{}}function $58(X,Y){let G=TJ1(Y),Q=TJ1(X);return Q===G||Q.startsWith(G+"/")}function W58({requestPath:X,clientDir:Y}){let G=X.startsWith("/")?X.slice(1):X,Q=TJ1(Y,G);if(!$58(Q,Y))return null;return Q}function Ka5(X,Y="../client"){let G=new URL(X),Q=Ya5(G.pathname);return TJ1(Q,Y)}function Ha5(X={}){let{env:Y="production",devServerUrl:G=$a5,clientDir:Q=Wa5,isServerPath:J=()=>!1}=X;if(Y==="development"){let $=Q58(G);return async function(W){let K=new URL(W.url);if(J(K.pathname))return null;let H={req:{raw:W,url:W.url}};return $(H)}}return async function(Z){if(Z.method!=="GET")return null;let W=new URL(Z.url),K;try{K=decodeURIComponent(W.pathname)}catch{return null}if(J(K))return null;let H=W58({requestPath:K,clientDir:Q});if(!H)return null;let U=Ga5(H,"index.html"),B=TJ1(Q,"index.html"),N=Z.headers.get("accept"),z=N?.includes("text/html")||N?.includes("*/*")&&["",".html"].includes(Qa5(H))?[U,B]:[];for(let w of[H,...z])try{let E=Bun.file(w);if(await E.exists())return new Response(E,{headers:Za5(w,B)})}catch{}if(K.includes("/assets/"))return new Response("Not Found",{status:404,headers:{"Cache-Control":"no-store"}});return null}}var $a5,Wa5="./dist/client";var H58=D(()=>{J58();$a5=`http://localhost:${process.env.VITE_PORT||"4000"}`});var F58={};b6(F58,{tryUpgradePreviewWs:()=>Ba5,tryHandlePreviewHttp:()=>Ua5,previewWebSocketHandler:()=>Na5,parsePreviewBaseDomain:()=>Fa5,isPreviewWsData:()=>hl1,extractHandleFromHost:()=>wk0});function Fa5(X){if(!X||X.trim()==="")return null;let Y=X.includes("{handle}")?X.replace("{handle}","__handle__"):X,G;try{G=new URL(Y)}catch{return null}let Q=G.hostname;if(X.includes("{handle}")){let J=Q.indexOf(".");if(J<=0||J===Q.length-1)return null;return Q.slice(J+1)}return Q}function wk0(X,Y){if(!X||!Y)return null;let G=X.indexOf(":"),Q=(G>=0?X.slice(0,G):X).toLowerCase(),$=`.${Y.toLowerCase().replace(/^\.+|\.+$/g,"")}`;if(!Q.endsWith($))return null;let Z=Q.slice(0,Q.length-$.length);if(!Z||Z.includes("."))return null;return Z}async function Ua5(X,Y){let G=wk0(X.headers.get("host"),Y.baseDomain);if(!G)return null;let Q=await Y.getRunner();if(!Q)return jJ1(503,"preview proxy not configured");return Q.proxyPreviewRequest(G,X)}function jJ1(X,Y){return new Response(JSON.stringify({error:Y}),{status:X,headers:{"content-type":"application/json","access-control-allow-origin":"*"}})}function hl1(X){return typeof X==="object"&&X!==null&&X.kind==="preview"}async function Ba5(X,Y,G){if((X.headers.get("upgrade")??"").toLowerCase()!=="websocket")return null;let Q=wk0(X.headers.get("host"),G.baseDomain);if(!Q)return null;let J=await G.getRunner();if(!J)return jJ1(503,"preview proxy not configured");let $=await J.resolvePreviewUpstreamUrl(Q);if(!$)return jJ1(404,"sandbox not found");let Z=new URL(X.url);if(Z.pathname.startsWith("/_decopilot_vm"))return jJ1(404,"not found");let W=`${$.replace(/^http/,"ws")}${Z.pathname}${Z.search}`,K=X.headers.get("sec-websocket-protocol"),H=K?K.split(",").map((N)=>N.trim()).filter(Boolean):[],U={kind:"preview",upstreamUrl:W,upstreamProtocols:H,pending:[],upstream:null,closed:!1};if(!Y.upgrade(X,{data:U}))return jJ1(426,"upgrade failed");return}function IJ1(X,Y,G,Q){if(Y.closed)return;Y.closed=!0;try{X.close(G,Q)}catch{}try{Y.upstream?.close()}catch{}}var Na5;var U58=D(()=>{Na5={open(X){let Y=X.data;if(!hl1(Y))return;let G;try{G=Y.upstreamProtocols.length>0?new WebSocket(Y.upstreamUrl,Y.upstreamProtocols):new WebSocket(Y.upstreamUrl)}catch(Q){console.warn(`[preview-ws] failed to dial upstream ${Y.upstreamUrl}: ${Q instanceof Error?Q.message:String(Q)}`),IJ1(X,Y,1011,"upstream connect failed");return}G.binaryType="arraybuffer",Y.upstream=G,G.addEventListener("open",()=>{while(Y.pending.length>0){let Q=Y.pending.shift();if(Q!==void 0)G.send(Q)}}),G.addEventListener("message",(Q)=>{if(Y.closed)return;X.send(Q.data)}),G.addEventListener("close",(Q)=>{IJ1(X,Y,Q.code||1000,Q.reason||"")}),G.addEventListener("error",()=>{IJ1(X,Y,1011,"upstream error")})},message(X,Y){let G=X.data;if(!hl1(G))return;let Q=G.upstream;if(Q&&Q.readyState===WebSocket.OPEN){Q.send(Y);return}if(G.pending.length>=256){IJ1(X,G,1011,"preview ws backlog overflow");return}G.pending.push(Y)},close(X){let Y=X.data;if(!hl1(Y))return;IJ1(X,Y,1000,"")}}});var B58={};b6(B58,{dim:()=>Oa5,ASCII_ART:()=>za5});var Oa5=(X)=>`\x1B[2m${X}\x1B[22m`,qA=(X,Y,G,Q)=>`\x1B[38;2;${X};${Y};${G}m${Q}\x1B[39m`,za5;var N58=D(()=>{za5=[qA(0,255,100," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588 "),qA(0,238,94,"\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588 \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 "),qA(0,220,86," \u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2588 \u2591 \u2588\u2588\u2588 \u2591\u2591\u2591 \u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588"),qA(0,200,78," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588"),qA(0,180,68," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2591\u2591\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588"),qA(0,160,60," \u2591\u2588\u2588\u2588 \u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591 \u2588\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588 "),qA(0,136,50," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591 "),qA(0,110,40,"\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591 ")]});e5();TW();import{existsSync as Pa5}from"fs";var Ak0=h4();BB4();var{createApp:Da5}=await Promise.resolve().then(() => (e98(),s98)),{isServerPath:wa5}=await Promise.resolve().then(() => (cS0(),E88)),{createAssetHandler:La5,resolveClientDir:w58}=await Promise.resolve().then(() => (H58(),K58)),Ea5=Ak0.port,O58=w58(import.meta.url,"../client"),qa5=Pa5(O58)?O58:w58(import.meta.url,"../dist/client"),Aa5=La5({clientDir:qa5,isServerPath:wa5}),Ta5={"X-Frame-Options":"DENY","Content-Security-Policy":"frame-ancestors 'none'"};function Ia5(X){let Y=new Headers(X.headers);for(let[G,Q]of Object.entries(Ta5))Y.set(G,Q);return new Response(X.body,{status:X.status,statusText:X.statusText,headers:Y})}var L58=[],{parsePreviewBaseDomain:ja5,tryHandlePreviewHttp:Va5,tryUpgradePreviewWs:Ma5,previewWebSocketHandler:Lk0,isPreviewWsData:Ek0}=await Promise.resolve().then(() => (U58(),F58)),{getOrInitSharedRunner:Ra5}=await Promise.resolve().then(() => (QO(),gR0)),E58=ja5(process.env.STUDIO_SANDBOX_PREVIEW_URL_PATTERN),z58={baseDomain:E58??"",getRunner:async()=>{let X=await Ra5();if(!X||X.kind!=="agent-sandbox")return null;return X}},{resolveRunnerKindFromEnv:Sa5}=await Promise.resolve().then(() => (LH(),CM)),Pk0=Sa5(),ka5=Pk0==="docker"||Pk0==="host";if(ka5){let{startLocalSandboxIngress:X}=await Promise.resolve().then(() => (LH(),CM)),{getSharedRunnerIfInit:Y,getOrInitSharedRunner:G}=await Promise.resolve().then(() => (QO(),gR0));if(Pk0==="docker"){let{sweepDockerOrphansOnBoot:J}=await Promise.resolve().then(() => (LH(),CM));await J()}let Q=Number(process.env.SANDBOX_INGRESS_PORT??7070);if(Q>0)L58=X(()=>{let J=Y();if(!J)return null;if(J.kind!=="docker"&&J.kind!=="host")return null;return J},Q),await G()}var qk0=await Da5();if(!Ak0.isCli){let{ASCII_ART:X}=await Promise.resolve().then(() => (N58(),B58));console.log("");for(let Y of X)console.log(Y)}var Ca5=process.env.REUSE_PORT==="true",va5=process.env.DECOCMS_IS_WORKER==="1",_a5=Bun.serve({idleTimeout:0,port:Ea5,hostname:"0.0.0.0",reusePort:Ca5,fetch:async(X,Y)=>{if(E58){let Q=await Ma5(X,Y,z58);if(Q===void 0)return;if(Q)return Q;let J=await Va5(X,z58);if(J)return J}let G=await Aa5(X);if(G)return Ia5(G);return qk0.fetch(X,{server:Y})},websocket:{open(X){if(Ek0(X.data))Lk0.open(X)},message(X,Y){if(Ek0(X.data))Lk0.message(X,Y)},close(X){if(Ek0(X.data))Lk0.close(X)}},development:!1});if(Ak0.localMode&&!va5)Promise.resolve().then(() => (_a(),nu1)).then(async({seedLocalMode:X,markSeedComplete:Y})=>{try{let G=await X()}catch(G){console.error("Failed to seed local mode:",G)}finally{Y()}}).catch(async(X)=>{console.error("Failed to load local-mode module:",X);try{let{markSeedComplete:Y}=await Promise.resolve().then(() => (_a(),nu1));Y()}catch{}});var D58=!1;async function xl1(X){if(D58)return;D58=!0,console.log(`
7565
+ This workflow expects structured input. Use COLLECTION_WORKFLOW_GET to inspect the full input schema.`})(),inputSchema:F.object({input:F.record(F.string(),F.unknown()).optional().describe("Input data for the workflow. Steps reference these values via @input.field."),virtual_mcp_id:F.string().optional().describe(W.virtual_mcp_id?`Virtual MCP ID to use for execution (defaults to "${W.virtual_mcp_id}").`:"Virtual MCP ID that will execute the workflow steps."),start_at_epoch_ms:F.number().int().min(0).optional().describe("Unix timestamp (ms) for scheduled execution. Omit to start immediately.")}),outputSchema:F.object({execution_id:F.string().describe("ID of the created workflow execution.")}),execute:async(U)=>{let{connectionId:B,meshUrl:N,token:O}=fl1(U);if(!B||!N)throw Error(`[${K}] Missing MESH_REQUEST_CONTEXT (connectionId or meshUrl).`);let z=U.context,w=z.virtual_mcp_id??W.virtual_mcp_id,E=_l1.workflowId(B,W.title);return{execution_id:await _l1.createExecution(N,O,{workflow_collection_id:E,virtual_mcp_id:w,input:z.input,start_at_epoch_ms:z.start_at_epoch_ms})}}})}):[]]},_98=(X)=>{let Y=null,G=null,Q=null,J=!1,$=()=>{if(!J)console.warn("[runtime] Passing factory functions to tools/prompts/resources is deprecated. Pass createTool()/createPrompt()/createResource() instances directly."),J=!0},Z=(O)=>typeof O==="object"&&O!==null&&(("id"in O)||("name"in O)||("uri"in O));async function W(O,z){if(!O)return[];return(await Promise.all(O.flatMap(async(w)=>{if(Z(w))return[w];$();let E=await w(z);if(Array.isArray(E))return E;return[E]}))).flat()}let K=async(O)=>{if(Y)return Y;if(G)return G;return G=(async()=>{try{let z;if(typeof X.tools==="function")$(),z=await X.tools(O);else z=await W(X.tools,O);let w=typeof X.workflows==="function"?await X.workflows(O):X.workflows;z.push(...fr5({...X,workflows:w}));let E;if(typeof X.prompts==="function")$(),E=await X.prompts(O);else E=await W(X.prompts,O);let P;if(typeof X.resources==="function")$(),P=await X.resources(O);else P=await W(X.resources,O);let A={tools:z,prompts:E,resources:P,workflows:w};return Y=A,A}catch(z){throw G=null,z}})(),G},H=(O,z)=>{for(let w of z.tools)O.registerTool(w.id,{_meta:w._meta,description:w.description,annotations:w.annotations,inputSchema:w.inputSchema&&"shape"in w.inputSchema?w.inputSchema:F.object({}),outputSchema:w.outputSchema&&typeof w.outputSchema==="object"&&"shape"in w.outputSchema?w.outputSchema:void 0},async(E)=>{let P=AJ1(),A=await w.execute({context:E,runtimeContext:P},P);if(A!=null&&typeof A==="object"&&"content"in A&&Array.isArray(A.content)&&A.content.every((V)=>V!=null&&typeof V==="object"&&("type"in V)&&typeof V.type==="string"))return A;return{structuredContent:A,content:[{type:"text",text:JSON.stringify(A)}]}});for(let w of z.prompts)O.registerPrompt(w.name,{title:w.title,description:w.description,argsSchema:w.argsSchema?w.argsSchema:F.object({}).shape},async(E)=>{let P=AJ1();return await w.execute({args:E,runtimeContext:P},P)});for(let w of z.resources)O.resource(w.name,w.uri,{description:w.description,mimeType:w.mimeType},async(E)=>{let P=AJ1(),A=await w.read({uri:E,runtimeContext:P},P),V=A._meta??void 0;if(A.text!==void 0)return{contents:[{uri:A.uri,mimeType:A.mimeType,text:A.text,...V!==void 0?{_meta:V}:{}}]};else if(A.blob!==void 0)return{contents:[{uri:A.uri,mimeType:A.mimeType,blob:A.blob,...V!==void 0?{_meta:V}:{}}]};return{contents:[{uri:A.uri,mimeType:A.mimeType,text:""}]}})},U=async(O)=>{await X.before?.(O);let{instructions:z,...w}=X.serverInfo??{},E=new Az({...w,name:w.name??"@deco/mcp-api",version:w.version??"1.0.0"},{capabilities:{tools:{},prompts:{},resources:{}},...z&&{instructions:z}}),P=await K(O);H(E,P);let A="tools/list",V=E.server._requestHandlers,M=V.get(A);if(M)V.set(A,async(j,R)=>{if(!Q)Q=await M(j,R);return Q});return{server:E,...P}};return{fetch:async(O,z)=>{let{server:w}=await U(z),E=new BH;await w.connect(E);let P=()=>{try{E.close?.()}catch{}try{w.close?.()}catch{}};try{let A=await E.handleRequest(O),V=A.headers.get("content-type");if(!(V?.includes("text/event-stream")||V?.includes("application/json-rpc"))||!A.body)return P(),A;let{readable:j,writable:R}=new TransformStream;return A.body.pipeTo(R).catch(()=>{}).finally(P),new Response(j,{status:A.status,statusText:A.statusText,headers:A.headers})}catch(A){throw P(),A}},callTool:async({toolCallId:O,toolCallInput:z})=>{let w=qJ1.getStore();if(!w)throw Error("Missing state, did you forget to call State.bind?");let E=w?.env,{tools:P}=await K(E),V=P.find((j)=>j.id===O)?.execute;if(!V)throw Error(`Tool ${O} not found or does not have an execute function`);let M=AJ1();return V({context:z,runtimeContext:M},M)}}};var bl1=D(()=>{eX1();N61();lr();F0();ua();Ok0();Nk0();Dk0();Ok0()});var br5=({env:X,server:Y,url:G})=>{X.SELF=new Proxy({},{get:(Q,J)=>{if(J==="toJSON")return null;return async($)=>{return await Y.callTool({toolCallId:J,toolCallInput:$})}}}),X.IS_LOCAL=(G?.startsWith("http://localhost")||G?.startsWith("http://127.0.0.1"))??!1},f98=(X)=>()=>{return{...X??{}}},yr5=({env:X,server:Y,tokenOrContext:G,url:Q,authToken:J})=>{let $=X,Z=J?J.split(" ")[1]:void 0,W;if(typeof G==="string"){let K=d5(G),H=K.metadata??{};W={authorization:Z,state:K.state??H.state??{},token:G,meshUrl:K.meshUrl??H.meshUrl,connectionId:K.connectionId??H.connectionId,organizationId:K.organizationId??H.organizationId,organizationName:K.organizationName??H.organizationName,organizationSlug:K.organizationSlug??H.organizationSlug,ensureAuthenticated:f98(K.user??K.sub)}}else if(typeof G==="object"){W=G;let K=d5(G.token),H=K.metadata??{},U=K.appName;W.authorization??=Z,W.callerApp=U,W.connectionId??=K.connectionId??H.connectionId,W.organizationId??=K.organizationId??H.organizationId,W.organizationName??=K.organizationName??H.organizationName,W.organizationSlug??=K.organizationSlug??H.organizationSlug,W.ensureAuthenticated=f98(K.user??K.sub)}else W={state:{},authorization:Z,token:void 0,meshUrl:void 0,connectionId:void 0,ensureAuthenticated:()=>{throw Error("Unauthorized")}};return $.MESH_REQUEST_CONTEXT=W,W.state=N98(W),br5({env:$,server:Y,url:Q}),$},hr5,b98=(X)=>{let Y=_98(X),G=X.cors??hr5,Q=X.oauth,J=Q?q98(Q):null,$=async(Z,W,K)=>{let H=new URL(Z.url);if(J){if(H.pathname==="/.well-known/oauth-protected-resource"||H.pathname==="/mcp/.well-known/oauth-protected-resource")return J.handleProtectedResourceMetadata(Z);if(H.pathname==="/.well-known/oauth-authorization-server")return J.handleAuthorizationServerMetadata(Z);if(H.pathname==="/authorize")return J.handleAuthorize(Z);if(H.pathname==="/oauth/callback")return J.handleOAuthCallback(Z);if(H.pathname==="/token"&&Z.method==="POST")return J.handleToken(Z);if((H.pathname==="/register"||H.pathname==="/mcp/register")&&Z.method==="POST")return J.handleClientRegistration(Z)}if(H.pathname==="/mcp"){if(Z.method==="GET")return new Response("Method not allowed",{status:405});if(J&&!J.hasAuth(Z)){let U=Z.clone();try{if((await U.json())?.method!=="tools/list")return J.createUnauthorizedResponse(Z)}catch{return J.createUnauthorizedResponse(Z)}}return Y.fetch(Z,W,K)}if(H.pathname.startsWith("/mcp/call-tool")){let U=H.pathname.split("/").pop();if(!U)return new Response("Not found",{status:404});let B=await Z.json(),N=await Y.callTool({toolCallId:U,toolCallInput:B});if(N instanceof Response)return N;return new Response(JSON.stringify(N),{headers:{"Content-Type":"application/json"}})}return X.fetch?.(Z,W,K)||new Response("Not found",{status:404})};return{fetch:async(Z,W,K)=>{if(new URL(Z.url).pathname==="/_healthcheck")return new Response("OK",{status:200});if(G!==!1&&Z.method==="OPTIONS")return z98(Z,G??{});let H=yr5({authToken:Z.headers.get("authorization")??null,env:{...process.env,...W},server:Y,tokenOrContext:Z.headers.get("x-mesh-token")??void 0,url:Z.url}),U=await qJ1.run({req:Z,env:H,ctx:K},async()=>await $(Z,H,K));if(G!==!1)return D98(U,Z,G??{});return U}}};var y98=D(()=>{IJ();ua();w98();Bk0();Bk0();Nk0();bl1();bl1();Dk0();ua();Ml1();hr5={origin:(X)=>{if(X.includes("localhost")||X.includes("127.0.0.1"))return X;return X},credentials:!0,allowMethods:["GET","POST","PUT","DELETE","OPTIONS"],allowHeaders:["Content-Type","Authorization","mcp-protocol-version"]}});function xr5(X,Y){let G=HO({id:"COLLECTION_REGISTRY_APP_LIST",description:"List public registry items",annotations:{readOnlyHint:!0,idempotentHint:!0},inputSchema:cr,outputSchema:ir,execute:async({context:W})=>{return await X.listPublic(Y,{limit:W.limit,offset:W.offset,cursor:W.cursor,tags:W.tags,categories:W.categories,where:W.where})}}),Q=HO({id:"COLLECTION_REGISTRY_APP_GET",description:"Get a public registry item by ID or name",annotations:{readOnlyHint:!0,idempotentHint:!0},inputSchema:mN,outputSchema:FM,execute:async({context:W})=>{let K=W.id??W.name;if(!K)return{item:null};let H=await X.findByIdOrName(Y,K);if(H&&H.is_public)return{item:H};return{item:null}}}),J=HO({id:"COLLECTION_REGISTRY_APP_VERSIONS",description:"Get available versions of a public registry item",annotations:{readOnlyHint:!0,idempotentHint:!0},inputSchema:mN,outputSchema:F.object({versions:F.array(FM.shape.item)}),execute:async({context:W})=>{let K=W.id??W.name;if(!K)return{versions:[]};let H=await X.findByIdOrName(Y,K);if(H&&H.is_public)return{versions:[H]};return{versions:[]}}}),$=HO({id:"COLLECTION_REGISTRY_APP_SEARCH",description:"Search public registry items returning minimal data (id, title, tags, categories, is_public). Use this instead of LIST when you need to find items efficiently without loading full details.",annotations:{readOnlyHint:!0,idempotentHint:!0},inputSchema:NV1,outputSchema:OV1,execute:async({context:W})=>{return await X.search(Y,W,{publicOnly:!0})}}),Z=HO({id:"COLLECTION_REGISTRY_APP_FILTERS",description:"Get available tags and categories for public registry items",annotations:{readOnlyHint:!0,idempotentHint:!0},inputSchema:F.object({}),outputSchema:pr,execute:async()=>{return await X.getFilters(Y,{publicOnly:!0})}});return[G,$,Q,J,Z]}function h98(X){let Y=X.db,G=new Kr(Y);return async(Q)=>{let J=Q.req.param("orgSlug")??Q.req.param("org");if(!J)return Q.json({error:"Organization not found"},404);let $=await Y.selectFrom("organization").select(["id","slug","name"]).where("slug","=",J).executeTakeFirst();if(!$)return Q.json({error:"Organization not found"},404);let Z=xr5(G,$.id),W=b98({tools:Z}),K=new URL(Q.req.url),H=Q.req.path.indexOf("/registry"),U=H>=0?Q.req.path.slice(H+9):"",B=new URL(U||"/",K.origin);K.searchParams.forEach((z,w)=>{B.searchParams.set(w,z)});let N=new Request(B.toString(),{method:Q.req.method,headers:Q.req.raw.headers,body:Q.req.method!=="GET"&&Q.req.method!=="HEAD"?Q.req.raw.body:void 0}),O={organizationId:$.id,db:Y,MESH_REQUEST_CONTEXT:{},MESH_APP_DEPLOYMENT_ID:"public-registry",IS_LOCAL:!1};return await W.fetch(N,O,Q)}}var x98=D(()=>{y98();bl1();F0();QP0();tY()});import{randomUUID as g98}from"crypto";async function ur5(X){let Y=new Date().toISOString(),G=g98(),Q=JX.SELF(X.organizationId),J="registry.publish_request.created",$={requestId:X.request.id,requestedId:X.request.requested_id,title:X.request.title,status:X.request.status,createdAt:X.request.created_at,requester:{name:X.request.requester_name,email:X.request.requester_email}};await X.db.insertInto("events").values({id:G,organization_id:X.organizationId,type:"registry.publish_request.created",source:Q,specversion:"1.0",subject:X.request.id,time:Y,datacontenttype:"application/json",dataschema:null,data:JSON.stringify($),cron:null,status:"pending",attempts:0,last_error:null,next_retry_at:null,created_at:Y,updated_at:Y}).execute();let Z=await X.db.selectFrom("event_subscriptions").select(["id"]).where("organization_id","=",X.organizationId).where("enabled","=",1).where("event_type","=","registry.publish_request.created").where((W)=>W.or([W("publisher","is",null),W("publisher","=",Q)])).execute();if(Z.length>0)await X.db.insertInto("event_deliveries").values(Z.map((W)=>({id:g98(),event_id:G,subscription_id:W.id,status:"pending",attempts:0,last_error:null,delivered_at:null,next_retry_at:null,created_at:Y}))).execute();try{await p1`SELECT pg_notify('mesh_events', ${G})`.execute(X.db)}catch{}}async function lr5(X,Y){let Q=(await X.selectFrom("organization").select(["id"]).where("id","=",Y).execute())[0];if(Q?.id)return Q.id;return(await X.selectFrom("organization").select(["id"]).where("slug","=",Y).execute())[0]?.id??null}async function mr5(X,Y){let G=await X.selectFrom("virtual_mcp_plugin_configs").innerJoin("connections","connections.id","virtual_mcp_plugin_configs.virtual_mcp_id").select(["virtual_mcp_plugin_configs.settings as settings"]).where("connections.organization_id","=",Y).where("virtual_mcp_plugin_configs.plugin_id","=",TM).execute();for(let Q of G){let J=Q.settings,$=typeof J==="string"?(()=>{try{return JSON.parse(J)}catch{return{}}})():J??{};if($.acceptPublishRequests===!0){let Z=$.rateLimitWindow==="minute"?"minute":"hour",W=$.rateLimitMax,K=typeof W==="number"&&Number.isFinite(W)&&W>=1?Math.floor(W):l98;return{acceptPublishRequests:!0,requireApiToken:$.requireApiToken===!0,rateLimitEnabled:$.rateLimitEnabled===void 0?u98:$.rateLimitEnabled===!0,rateLimitWindow:Z,rateLimitMax:K}}}return{acceptPublishRequests:!1,requireApiToken:!1,rateLimitEnabled:u98,rateLimitWindow:gr5,rateLimitMax:l98}}async function dr5(X,Y,G){let Q=G==="minute"?60000:3600000,J=new Date(Date.now()-Q).toISOString(),$=await X.selectFrom("private_registry_publish_request").select((Z)=>Z.fn.countAll().as("count")).where("organization_id","=",Y).where("created_at",">=",J).executeTakeFirst();return Number($?.count??0)}async function cr5(X,Y,G,Q){let J=await X.selectFrom("private_registry_item").select(["id","title"]).where("organization_id","=",Y).where(($)=>$.or([$("id","=",G),$("title","=",Q)])).executeTakeFirst();return J?{id:String(J.id),title:String(J.title)}:null}function m98(X){let{db:Y,db:G}=X,Q=new Hr(G),J=new Fr(G);return async($)=>{let Z=$.req.param("orgRef")??$.req.param("org");if(!Z)return $.json({error:"Organization not found"},404);let W=await lr5(Y,Z);if(!W)return $.json({error:"Organization not found"},404);let K=await mr5(Y,W);if(!K.acceptPublishRequests)return $.json({error:"Publish requests are not enabled for this registry."},403);if(K.requireApiToken){let O=$.req.header("Authorization"),z=O?.startsWith("Bearer ")?O.slice(7).trim():null;if(!z)return $.json({error:"API key required. Use Authorization: Bearer <key>"},401);if(!await J.validate(W,z))return $.json({error:"Invalid API key"},401)}if(K.rateLimitEnabled){if(await dr5(G,W,K.rateLimitWindow)>=K.rateLimitMax)return $.json({error:"Too many publish requests. Please try again later.",retryAfterSeconds:K.rateLimitWindow==="minute"?60:3600},429)}let H;try{H=await $.req.json()}catch{return $.json({error:"Invalid JSON body"},400)}let U=L26.safeParse(H);if(!U.success)return $.json({error:"Invalid publish request payload",details:F.treeifyError(U.error)},400);let B=await cr5(G,W,U.data.data.id,U.data.data.title);if(B)return $.json({error:"A registry item with the same id or title already exists. Please use a different name/id.",conflict:B},409);let N=await Q.createOrUpdate({organization_id:W,requested_id:U.data.data.id,title:U.data.data.title,description:U.data.data.description??null,_meta:U.data.data._meta,server:U.data.data.server,requester_name:U.data.requester?.name??null,requester_email:U.data.requester?.email??null});try{await ur5({db:Y,organizationId:W,request:N})}catch(O){console.warn("[private-registry] failed to emit publish-request event:",O)}return A6.capture({distinctId:U.data.requester?.email??`org:${W}`,event:"registry_publish_request_submitted",groups:{organization:W},properties:{organization_id:W,request_id:N.id,requested_id:N.requested_id,title:U.data.data.title,requester_email:U.data.requester?.email??null}}),$.json({id:N.id,requested_id:N.requested_id,status:N.status},201)}}var u98=!0,gr5="hour",l98=100;var d98=D(()=>{OY();ZX();$7();F0();Za();JP0();ZP0();tY()});var c98={};b6(c98,{createPublishRequestHandler:()=>m98,createPublicMCPHandler:()=>h98});var i98=D(()=>{x98();d98()});var s98={};b6(s98,{createApp:()=>or5});async function ir5(X){let Y=X.connect(),G;try{G=await Promise.race([Y,n98(p98)])}catch{return Y.then((Q)=>Q.release(!0)).catch(()=>{}),!1}try{return await Promise.race([G.query("SELECT 1"),n98(p98)]),G.release(),!0}catch{return G.release(!0),!1}}function n98(X){return new Promise((Y,G)=>setTimeout(()=>G(Error("pg health-check timeout")),X))}async function pr5(X,Y){let{items:G}=await X.storage.connections.list(Y,{where:{field:["connection_url"],operator:"like",value:`${Wp4}%`},limit:1}),Q=G[0];if(!Q?.configuration_state)return null;return Q.configuration_state.project_locator}function nr5(X){let Y=new URLSearchParams;if(X){let[G,Q]=X.split("/");if(G)Y.set("workspace_hint",G);if(Q)Y.set("project_hint",Q)}else Y.set("auto_personal","true");return Y.set("force_new","true"),Y}async function or5(X={}){let Y=X.database??dY(),G=!1;if(PA)clearInterval(PA),PA=null;if(yl1&&yl1.isRunning())Promise.resolve(yl1.stop()).catch((T1)=>{console.error("[EventBus] Error stopping previous worker:",T1)}),g3.stop().catch((T1)=>{console.error("[SSEHub] Error stopping previous broadcast (HMR cleanup):",T1)});let Q,J,$,Z,W,K=null;if(X.eventBus)Q=X.eventBus,J={get:async()=>null,set:async()=>{},invalidate:async()=>{},teardown:()=>{}},$={get:async()=>null,set:async()=>{},invalidate:async()=>{},teardown:()=>{}},Z={start:async()=>{},broadcast:()=>{},stop:async()=>{}},W={init:async()=>{},relay:(T1)=>T1,createReplayStream:async()=>null,purge:()=>{},teardown:()=>{}};else{K=P88(),K.init(h4().natsUrls);let T1=new QL0({getJetStream:()=>K.getJetStream()});T1.init().catch(()=>{}),J=T1;let f1=new pS0({getJetStream:()=>K.getJetStream()});f1.init().catch(()=>{}),$=f1,Z=new nS0({getConnection:()=>K.getConnection()}),W=new rS0({getConnection:()=>K.getConnection(),getJetStream:()=>K.getJetStream()}),Q=u08(Y,K),K.onReady(()=>{T1.init().catch((e1)=>{console.error("[McpListCache] Deferred init failed:",e1)}),f1.init().catch((e1)=>{console.error("[ModelListCache] Deferred init failed:",e1)}),W.init().catch((e1)=>{console.warn("[StreamBuffer] Deferred init failed, late-join disabled:",e1)})})}if(yl1=Q,ma)await ma();JL0(J);let H=new A71(Y.db),U={storage:H,streamBuffer:W,sseHub:g3},B=Nl(),N=new aS0(U,B);Z.start((T1)=>{N.execute({type:"CANCEL",taskId:T1}).catch((f1)=>{console.error("[Decopilot] CancelBroadcast execute failed:",f1)})}).catch((T1)=>{console.error("[Decopilot] CancelBroadcast start failed:",T1)}),K?.onReady(()=>{Z.start().catch((T1)=>{console.error("[CancelBroadcast] Deferred start failed:",T1)})}),W.init().catch((T1)=>{console.warn("[Decopilot] StreamBuffer init failed, attach/late-join disabled:",T1)});let O=null;if(K)O=new Xk0({getConnection:()=>K.getConnection(),getJetStream:()=>K.getJetStream()}),O.init().then(()=>{O.start(B)}).catch(()=>{}),K.onReady(()=>{O.init().then(()=>{O.start(B)}).catch((T1)=>{console.error("[PodHeartbeat] Deferred init failed:",T1)})});ma=async()=>{await O?.stop(),await N.stopAll(),N.dispose(),Z.stop().catch(()=>{}),W.teardown(),J.teardown(),$.teardown(),JL0(null)};let z=new w6;if(z.use("*",K$0({enabled:(T1)=>LD1(T1,"debug")==="1"})),z.use("*",Ea1),z.use("/*",np4({origin:(T1)=>{if(T1.includes("localhost")||T1.includes("127.0.0.1"))return T1;return T1},credentials:!0,allowMethods:["GET","POST","PUT","DELETE","OPTIONS"],allowHeaders:["Content-Type","Authorization","mcp-protocol-version"],exposeHeaders:["WWW-Authenticate"]})),z.use("*",async(T1,f1)=>{await f1(),T1.header("X-Frame-Options","DENY"),T1.header("Content-Security-Policy","frame-ancestors 'none'")}),!h4().noTui)z.use("*",i88());z.use("*",async(T1,f1)=>{if(await f1(),T1.res.status>=500){let Z0=await T1.res.clone().text();console.error(`[5xx Response] ${T1.req.method} ${T1.req.path} - ${T1.res.status}:`,Z0)}}),z.get(wA.HEALTH_LIVE,(T1)=>{return T1.json({status:"ok"})}),z.get(wA.HEALTH_READY,async(T1)=>{if(G)return T1.json({status:"shutting_down"},503);let f1={};if(f1.postgres={status:await ir5(Y.pool)?"up":"down"},K)f1.nats=K.isConnected()?{status:"up"}:{status:"down"};else f1.nats={status:"down"};let e1=f1.postgres.status==="up",Z0=e1?200:503;return T1.json({status:e1?"ready":"not_ready",services:f1},Z0)}),z.get(wA.METRICS,async(T1)=>{try{let f1=await qa1.collect(),e1=tr5.serialize(f1.resourceMetrics);return T1.text(e1,200,{"Content-Type":"text/plain; version=0.0.4; charset=utf-8"})}catch(f1){return console.error("Failed to collect metrics:",f1),T1.text("# Error collecting metrics",500)}}),z.route("/api/config",B88),z.route("/api/auth/custom",H48),z.all("/api/auth/*",async(T1)=>{return await L7.handler(T1.req.raw)});let w=jA0();w.use("*",l7),z.route("/",w),z.get("/.well-known/oauth-protected-resource/api/:org/mcp/:connectionId",jG1),z.route("/",VA0()),z.use("/oauth-proxy/:connectionId/*",l7),z.all("/oauth-proxy/:connectionId/*",t98);let E=async(T1)=>{let e1=await rr5()(T1.req.raw),Z0=await e1.json();return Response.json(Z0,e1)};z.use("/mcp/:gateway?/:connectionId/.well-known/oauth-protected-resource/*",l7),z.get("/mcp/:gateway?/:connectionId/.well-known/oauth-protected-resource/*",E);let P=async(T1)=>{let e1=await ar5()(T1.req.raw),Z0=await e1.json();return Response.json(Z0,e1)};z.get("/.well-known/oauth-authorization-server/*/:gateway?/:connectionId?",P);let A=j08({ttlMs:120000}),V=await kT6({db:Y.db,auth:L7,encryption:{key:h4().encryptionKey},observability:{tracer:hU,meter:cH},eventBus:Q,modelListCache:$,memberRoleCache:A});wU.set(V);let M=new vV(h4().encryptionKey);i36(Y.db,M);let j=Math.random()*2000;if(new Promise((T1)=>setTimeout(T1,j)).then(()=>Q.start()).then(()=>{return n36({db:Y.db,publish:async(T1,f1)=>{await Q.publish(T1,"",f1)}})}).catch((T1)=>{console.error("[EventBus] Error during startup:",T1)}),El)El(),El=null;let R=gI1(Y.db),C=new D71(Y.db),_=new Vl1(10),v=l88({db:Y.db,threadStorage:H}),b=async(T1,f1,e1)=>{let Z0=await R.findById(T1,f1);if(!Z0)throw Error("Automation not found");return PJ1({automation:Z0,triggerId:null,storage:R,streamCoreFn:Vw,meshContextFactory:v,config:{maxConcurrentPerAutomation:3,runTimeoutMs:300000},globalSemaphore:_,deps:{runRegistry:N,cancelBroadcast:Z}})},x=null;if(K){let T1={getConnection:()=>K.getConnection(),getJetStream:()=>K.getJetStream()},f1=new lq(R,EA.publish),e1=1e4,Z0=async()=>{let v0=Date.now();await EA.init(T1),console.log(`[AutomationJobStream] init completed in ${Date.now()-v0}ms`),await EA.startConsumer(async(T6)=>{let R1=await R.findById(T6.automationId,T6.organizationId);if(!R1)return;await PJ1({automation:R1,triggerId:T6.triggerId,storage:R,streamCoreFn:Vw,meshContextFactory:v,config:{maxConcurrentPerAutomation:3,runTimeoutMs:300000},globalSemaphore:_,deps:{runRegistry:N,cancelBroadcast:Z}})});let j0=Date.now();await f1.start(),console.log(`[AutomationJobStream] cronWorker.start() completed in ${Date.now()-j0}ms`)},z4=async(v0=5)=>{for(let j0=1;j0<=v0;j0++)try{await Z0();return}catch(T6){if(j0===v0)throw T6;let R1=Math.min(1000*2**(j0-1),1e4);console.warn(`[AutomationJobStream] Start attempt ${j0}/${v0} failed, retrying in ${R1}ms`),await new Promise((X0)=>setTimeout(X0,R1))}};z4().catch((v0)=>{console.error("[AutomationJobStream] Immediate start failed:",v0)}),K.onReady(()=>{z4().catch((v0)=>{console.error("[AutomationJobStream] Deferred start failed:",v0)})}),x=setInterval(()=>{f1.processNow().catch((v0)=>{console.error("[AutomationCron] Error processing:",v0)})},1e4);let g0=60000,U0=!1,N0=setInterval(async()=>{if(U0)return;try{if(await EA.isHealthy(T1))return;U0=!0,console.warn("[AutomationJobStream] Health check failed, reinitializing..."),await z4()}catch(v0){console.error("[AutomationJobStream] Health re-init failed:",v0)}finally{U0=!1}},g0);El=()=>{if(x)clearInterval(x),x=null;clearInterval(N0),EA.stop(),f1.stop().catch(()=>{})}}let i=new Dl(R,Vw,v,{maxConcurrentPerAutomation:3,runTimeoutMs:300000},_,{runRegistry:N,cancelBroadcast:Z});if("setEventTriggerEngine"in Q)Q.setEventTriggerEngine(i);let n=async(T1)=>{let f1=eu1.safeParse(T1.run_config);if(!f1.success){console.warn(`[recovery] Invalid run_config for ${T1.id}, force-failing`),await H.forceFailIfInProgress(T1.id,T1.organization_id);return}let e1=f1.data,Z0=await v(T1.organization_id,T1.created_by);if(!Z0){console.warn(`[recovery] Cannot build context for ${T1.id}, force-failing`),await H.forceFailIfInProgress(T1.id,T1.organization_id);return}let z4=new Date().toISOString();await H.saveMessages([{id:crypto.randomUUID(),thread_id:T1.id,role:"system",parts:[{type:"text",text:"Run resumed automatically after infrastructure restart."}],metadata:void 0,created_at:z4,updated_at:z4}],T1.organization_id);let g0=await Vw({messages:[],models:Xl1(e1.models),agent:e1.agent,temperature:e1.temperature,toolApprovalLevel:e1.toolApprovalLevel,mode:e1.mode,organizationId:T1.organization_id,userId:T1.created_by,taskId:T1.id,windowSize:e1.windowSize,isResume:!0},Z0,{runRegistry:N,cancelBroadcast:Z});await Wl1(g0)};if(O)O.onPodDeath((T1)=>{N.handlePodDeath(T1,n,Z).catch((f1)=>{console.error(`[Decopilot] Pod death recovery failed for ${T1}:`,f1)})});setTimeout(()=>{N.recoverOrphanedRuns(n).catch((T1)=>{console.error("[recovery] Orphan recovery failed:",T1)})},1e4);let h=[PO(),F$1(),JT()];for(let T1 of h)oS0(T1).then(()=>{}).catch((f1)=>console.error("[monitoring] Retention cleanup failed:",f1));let m=()=>Y.db.deleteFrom("apikey").where("expiresAt","<",new Date).execute().then(()=>{}).catch((T1)=>console.error("[auth] Expired API key cleanup failed:",T1));m(),PA=setInterval(()=>{for(let T1 of h)oS0(T1).catch((f1)=>console.error("[monitoring] Retention cleanup failed:",f1));m()},86400000),PA.unref(),z.use("*",async(T1,f1)=>{if(dS0(T1.req.path))return f1();let e1={measure:async(z4,g0)=>{IK(T1,z4);try{return await g0()}finally{mW(T1,z4)}}},Z0=await wU.create(T1.req.raw,{timings:e1});Z0.automationRunner=b,T1.set("meshContext",Z0);try{await f1()}finally{let z4=Z0.pendingRevalidations;if(z4.length>0)Promise.race([Promise.allSettled(z4),new Promise((U0)=>setTimeout(U0,30000))]).catch((U0)=>console.error("[mesh] revalidation cleanup error:",U0))}}),z.use("/api/:org/decopilot/*",ha),z.use("/api/:org/v1/*",ha),z.use("/api/:org/files/*",ha),z.use("*",async(T1,f1)=>{let e1=T1.req.path;if(e1.startsWith("/api/org-sso/")||e1.startsWith("/api/auth/")||e1.startsWith("/api/tools/management")||e1.startsWith("/oauth-proxy/"))return f1();let Z0=T1.get("meshContext");if(!Z0?.organization?.id||!Z0?.auth?.user?.id)return f1();if(!(await Z0.storage.orgSsoConfig.getByOrgId(Z0.organization.id))?.enforced)return f1();if(!await Z0.storage.orgSsoSessions.isValid(Z0.auth.user.id,Z0.organization.id))return T1.json({error:"SSO authentication required for this organization"},403);return f1()});let e=new w6;e.use("*",l7),e.route("/",ru1()),z.route("/api/org-sso",e),z.get("/api/tools/management",(T1)=>{return T1.json({tools:F$0,grouped:T61()})}),z.use("/mcp/*",async(T1,f1)=>{IK(T1,"mcp");try{return await f1()}finally{mW(T1,"mcp")}});let s=async(T1,f1)=>{let e1=T1.var.meshContext;if(!e1.auth.user?.id&&!e1.auth.apiKey?.id){let Z0=new URL(T1.req.url);return T1.res=new Response(null,{status:401,headers:{"WWW-Authenticate":`Bearer realm="mcp",resource_metadata="${Z0.origin}${Z0.pathname}/.well-known/oauth-protected-resource"`}})}return await f1()};if(z.use("/mcp/:connectionId?",s),z.use("/mcp/gateway/:virtualMcpId?",s),z.use("/mcp/virtual-mcp/:virtualMcpId?",s),z.use("/mcp/self",s),zF()){let{mountDevRoutes:T1}=(K98(),gl1(W98));T1(z,s)}let N1=new w6;N1.use("*",l7),N1.route("/",$V1()),z.route("/mcp",N1);let L1=new w6;L1.use("*",l7),L1.route("/",zl1()),z.route("/mcp/self",L1);let U1=new w6;U1.use("*",l7),U1.route("/",KV1()),z.route("/mcp",U1),z.use("/api/:org/models/*",async(T1,f1)=>{IK(T1,"llm_models");try{return await f1()}finally{mW(T1,"llm_models")}});let w1=jS0({cancelBroadcast:Z,streamBuffer:W,runRegistry:N,threadStorage:H});z.route("/api",w1),z.route("/api",z88);let C1=new w6;C1.use("*",l7),C1.route("/",Dl1()),z.route("/api",C1),z.route("/api",H88);let o1=new w6;o1.use("*",l7),o1.route("/",wl1({tokenStorage:C,eventTriggerEngine:i})),z.route("/api",o1);let m1=new Yk0(Y.db),y1=new w6;y1.use("*",l7),y1.route("/",Ol1({kvStorage:m1})),z.route("/api",y1),z.use("/org/:organizationId/events/:type",l7),z.post("/org/:organizationId/events/:type",r98),z.use("/org/:organizationId/watch",l7),z.get("/org/:organizationId/watch",a98);let Y1=new w6;Y1.use("*",l7),Y1.route("/",Hl1()),z.route("/api",Y1),z.route("/api/deco-sites",l68());let u1=new w6;u1.use("*",l7),u1.route("/",Fl1()),z.route("/api/deco-sites",u1);let W0=new w6;W0.use("*",l7),W0.route("/",Pl1()),z.route("/api/vm-events",W0);let{createPublishRequestHandler:a1,createPublicMCPHandler:P1}=await Promise.resolve().then(() => (i98(),c98)),E1={db:Y.db,vault:{encrypt:(T1)=>M.encrypt(T1),decrypt:(T1)=>M.decrypt(T1)}},B1=a1(E1),$1=P1(E1);z.use("/org/:orgRef/registry/publish-request",l7),z.post("/org/:orgRef/registry/publish-request",B1),z.use("/org/:orgSlug/registry/*",l7),z.all("/org/:orgSlug/registry/*",$1),z.post("/api/:org/registry/publish-request",B1),z.all("/api/:org/registry/*",$1);let M1=Q88({kvStorage:m1,tokenStorage:C,eventTriggerEngine:i,mountDevAssets:zF(),mcpAuth:s,oauthProxyHandler:t98,eventsHandler:r98,watchHandler:a98,betterAuthProtectedResourceHandler:E});return z.route("/api/:org",M1),c36(z,{db:Y.db,vault:M}),z.notFound((T1)=>{return T1.json({error:"Not Found",path:T1.req.path},404)}),z.onError((T1,f1)=>{console.error("Server error :",T1);let e1=T1 instanceof Error?T1.message:"Unknown error";return f1.json({error:"Internal Server Error",message:e1},500)}),Object.assign(z,{markShuttingDown:()=>{G=!0},shutdown:async()=>{if(console.log("[shutdown] Stopping workers..."),await Promise.allSettled([Q.isRunning()?Q.stop():Promise.resolve(),g3.stop(),El?Promise.resolve(El()).finally(()=>{El=null}):Promise.resolve(),ma?Promise.resolve(ma()).finally(()=>{ma=null}):Promise.resolve()]),PA)clearInterval(PA),PA=null;let T1=hR0(yR0());if(T1){let{sweepDockerOrphansOnShutdown:f1}=await Promise.resolve().then(() => (LH(),CM));await f1(T1)}if(K)await K.drain().catch((f1)=>console.error("[shutdown] NATS drain error:",f1));console.log("[shutdown] Flushing telemetry..."),await FL().catch((f1)=>console.error("[shutdown] Telemetry flush error:",f1)),console.log("[shutdown] Closing database..."),await fY6(Y).catch((f1)=>console.error("[shutdown] Database close error:",f1)),console.log("[shutdown] Cleanup complete.")}})}var o98,p98=5000,yl1=null,El=null,ma=null,PA=null,t98=async(X)=>{let Y=X.req.param("connectionId");if(!Y)return X.json({error:"Missing connectionId"},400);let G=X.req.path.split("/").filter(Boolean),Q=G[G.length-1],J=X.get("meshContext");if(!J)J=await wU.create(X.req.raw),X.set("meshContext",J);let $=X.req.param("org")?J.organization?.id:void 0,Z=await J.storage.connections.findById(Y,$);if(!Z?.connection_url)return X.json({error:"Connection not found"},404);let W=await br(Z.connection_url),K,H=new URL(Z.connection_url);if(W.ok)K=(await W.json()).authorization_servers?.[0];if(!K)K=H.origin;let U=await VG1(K);if(!U.ok)return X.json({error:"Failed to get auth server metadata"},502);let B=await U.json(),N;if(Q==="authorize")N=B.authorization_endpoint;else if(Q==="token")N=B.token_endpoint;else if(Q==="register")N=B.registration_endpoint;if(!N)return X.json({error:`Unknown OAuth endpoint: ${Q}`},404);let O=new URL(N),z=new URL(X.req.url);if(O.search=z.search,Q==="authorize"){let R=O.searchParams.get("redirect_uri");if(R){let C=h4().baseUrl??z.origin;try{let _=new URL(R),v=new URL(C);if(!(_.origin===v.origin||_.hostname==="localhost"))return X.json({error:"invalid_request",error_description:"redirect_uri is not allowed"},400)}catch{return X.json({error:"invalid_request",error_description:"redirect_uri is malformed"},400)}O.searchParams.set("redirect_uri",R)}if(O.searchParams.has("resource"))O.searchParams.set("resource",Z.connection_url);if(Kp4(Z.connection_url))try{let C=await pr5(J,Z.organization_id),_=nr5(C);for(let[v,b]of _)O.searchParams.set(v,b)}catch(C){console.warn("[oauth-proxy] Failed to get smart OAuth params, proceeding without:",C)}return X.redirect(O.toString(),302)}let w={Accept:X.req.header("Accept")||"application/json"},E=X.req.header("Content-Type");if(E)w["Content-Type"]=E;let P=X.req.header("Authorization");if(P)w.Authorization=P;let A;if(X.req.method!=="GET"&&X.req.method!=="HEAD")if(Q==="token"&&E?.includes("application/x-www-form-urlencoded")){let R=await X.req.formData();if(R.has("resource"))R.set("resource",Z.connection_url);let C=new URLSearchParams;for(let[_,v]of R.entries())C.append(_,v.toString());A=C.toString()}else if(Q==="register"&&E?.toLowerCase().includes("application/json")){let R=await J.db.selectFrom("organization").select(["id","slug","name"]).where("id","=",Z.organization_id).executeTakeFirst(),C=await X.req.text(),_={};try{_=C?JSON.parse(C):{}}catch{A=C}let v=typeof _==="object"&&_!==null&&!Array.isArray(_);if(A===void 0&&!v)A=C;if(A===void 0){let b=_,x=b.metadata&&typeof b.metadata==="object"?b.metadata:{};b.metadata={...x,organization_id:Z.organization_id,...R?.slug?{organization_slug:R.slug}:{},...R?.name?{organization_name:R.name}:{}},A=JSON.stringify(b),w["Content-Type"]="application/json"}}else A=X.req.raw.body??void 0;let V=await fetch(O.toString(),{method:X.req.method,headers:w,body:A,duplex:"half",redirect:"manual"}),M=new Headers,j=["connection","keep-alive","transfer-encoding","content-encoding","content-length"];for(let[R,C]of V.headers.entries())if(!j.includes(R.toLowerCase()))M.set(R,C);return new Response(V.body,{status:V.status,statusText:V.statusText,headers:M})},r98=async(X)=>{let Y=X.var.meshContext,G=Y.organization?.id??X.req.param("organizationId");if(!G)return X.json({error:"organization id missing"},400);return await Y.eventBus.publish(G,JX.SELF(G),{data:await X.req.json(),type:`public:${X.req.param("type")}`,subject:X.req.query("subject"),deliverAt:X.req.query("deliverAt"),cron:X.req.query("cron")}),X.json({success:!0})},a98=async(X)=>{let Y=X.var.meshContext;if(!(Y.auth.user?.id??Y.auth.apiKey?.userId))return X.json({error:"Unauthorized"},401);let Q=Y.organization?.id??X.req.param("organizationId")??null;if(!Q)return X.json({error:"organization id missing"},400);if(Q!==Y.organization?.id)return X.json({error:"Forbidden access to organization"},403);let J=X.req.query("types"),$=J?J.split(",").map((W)=>W.trim()).filter(Boolean):null,Z=crypto.randomUUID();return DA(X,async(W)=>{if(await W.writeSSE({event:"connected",data:JSON.stringify({listenerId:Z,organizationId:Q,typePatterns:$,connectedAt:new Date().toISOString()})}),!g3.add({id:Z,organizationId:Q,typePatterns:$?.length?$:null,push:(U)=>{W.writeSSE({id:U.id,event:U.type,data:JSON.stringify(U)}).catch(()=>{g3.remove(Q,Z)})}})){await W.writeSSE({event:"error",data:JSON.stringify({error:"Too many connections",message:"SSE connection limit reached. Try again later."})});return}let H=setInterval(()=>{W.writeSSE({event:"keepalive",data:""}).catch(()=>{clearInterval(H)})},30000);await new Promise((U)=>{W.onAbort(()=>{clearInterval(H),g3.remove(Q,Z),U()})})})},tr5,rr5=()=>vB0(L7),ar5=()=>CB0(L7);var e98=D(()=>{e5();$i();ZX();jY();W$0();tp4();H$0();$M();IG1();MP();QO();XS0();TW();KS0();BS0();h68();VS0();MS0();J88();lS0();kS0();WV1();MG1();F88();HV1();_S0();yS0();N88();D88();bS0();fS0();cS0();AA1();Dq1();q88();ZH();A88();I88();R88();Yj1();k88();a3();x88();eS0();zJ1();qS0();Zl1();u88();oE0();m88();yB0();U$0();p88();DJ1();XS0();o98=X1(Rc1(),1);tr5=new o98.PrometheusSerializer});var X58,sr5,er5=(X,Y)=>{if(!X)return{};let G=new Headers(X.headers);if(Y){let Q=G.get("connection");if(Q){let J=Q.split(",").map((Z)=>Z.trim()),$=J.filter((Z)=>!sr5.test(Z));if($.length>0)throw new B9(400,{message:`Invalid Connection header value: ${$.join(", ")}`});J.forEach((Z)=>{G.delete(Z)})}}return X58.forEach((Q)=>{G.delete(Q)}),{method:X.method,body:X.body,duplex:X.body?"half":void 0,headers:G,signal:X.signal}},Xa5=(X)=>{if(!X.headers||Array.isArray(X.headers)||X.headers instanceof Headers)return X;let Y=new Headers;for(let[G,Q]of Object.entries(X.headers))if(Q==null)Y.delete(G);else Y.set(G,Q);return X.headers=Y,X},Y58=async(X,Y)=>{let{raw:G,customFetch:Q,strictConnectionProcessing:J=!1,...$}=Y instanceof Request?{raw:Y}:Y??{},Z=new Request(X,{...er5(G,J),...Xa5($)});Z.headers.delete("accept-encoding");let W=await(Q||fetch)(Z),K=new Headers(W.headers);if(X58.forEach((H)=>{K.delete(H)}),K.has("content-encoding"))K.delete("content-encoding"),K.delete("content-length");return new Response(W.body,{status:W.status,statusText:W.statusText,headers:K})};var G58=D(()=>{Iz();X58=["connection","keep-alive","proxy-authenticate","proxy-authorization","te","trailer","transfer-encoding","upgrade"],sr5=/^[!#$%&'*+\-.0-9A-Z^_`a-z|~]+$/});var Q58=(X)=>(Y)=>{let G=new URL(Y.req.raw.url),Q=new URL(X);return Q.pathname=G.pathname,Q.search=G.search,Y58(Q,{raw:Y.req.raw,headers:{...Y.req.raw.headers}})};var J58=D(()=>{G58()});var K58={};b6(K58,{resolveClientDir:()=>Ka5,resolveAssetPathWithTraversalCheck:()=>W58,isPathWithinDirectory:()=>$58,createAssetHandler:()=>Ha5});import{resolve as TJ1,dirname as Ya5,join as Ga5,extname as Qa5,basename as Ja5,sep as Z58}from"path";function Za5(X,Y){if(X===Y||Ja5(X)==="index.html")return{"Cache-Control":"no-cache"};if(X.includes(`${Z58}assets${Z58}`))return{"Cache-Control":"public, max-age=31536000, immutable"};return{}}function $58(X,Y){let G=TJ1(Y),Q=TJ1(X);return Q===G||Q.startsWith(G+"/")}function W58({requestPath:X,clientDir:Y}){let G=X.startsWith("/")?X.slice(1):X,Q=TJ1(Y,G);if(!$58(Q,Y))return null;return Q}function Ka5(X,Y="../client"){let G=new URL(X),Q=Ya5(G.pathname);return TJ1(Q,Y)}function Ha5(X={}){let{env:Y="production",devServerUrl:G=$a5,clientDir:Q=Wa5,isServerPath:J=()=>!1}=X;if(Y==="development"){let $=Q58(G);return async function(W){let K=new URL(W.url);if(J(K.pathname))return null;let H={req:{raw:W,url:W.url}};return $(H)}}return async function(Z){if(Z.method!=="GET")return null;let W=new URL(Z.url),K;try{K=decodeURIComponent(W.pathname)}catch{return null}if(J(K))return null;let H=W58({requestPath:K,clientDir:Q});if(!H)return null;let U=Ga5(H,"index.html"),B=TJ1(Q,"index.html"),N=Z.headers.get("accept"),z=N?.includes("text/html")||N?.includes("*/*")&&["",".html"].includes(Qa5(H))?[U,B]:[];for(let w of[H,...z])try{let E=Bun.file(w);if(await E.exists())return new Response(E,{headers:Za5(w,B)})}catch{}if(K.includes("/assets/"))return new Response("Not Found",{status:404,headers:{"Cache-Control":"no-store"}});return null}}var $a5,Wa5="./dist/client";var H58=D(()=>{J58();$a5=`http://localhost:${process.env.VITE_PORT||"4000"}`});var F58={};b6(F58,{tryUpgradePreviewWs:()=>Ba5,tryHandlePreviewHttp:()=>Ua5,previewWebSocketHandler:()=>Na5,parsePreviewBaseDomain:()=>Fa5,isPreviewWsData:()=>hl1,extractHandleFromHost:()=>wk0});function Fa5(X){if(!X||X.trim()==="")return null;let Y=X.includes("{handle}")?X.replace("{handle}","__handle__"):X,G;try{G=new URL(Y)}catch{return null}let Q=G.hostname;if(X.includes("{handle}")){let J=Q.indexOf(".");if(J<=0||J===Q.length-1)return null;return Q.slice(J+1)}return Q}function wk0(X,Y){if(!X||!Y)return null;let G=X.indexOf(":"),Q=(G>=0?X.slice(0,G):X).toLowerCase(),$=`.${Y.toLowerCase().replace(/^\.+|\.+$/g,"")}`;if(!Q.endsWith($))return null;let Z=Q.slice(0,Q.length-$.length);if(!Z||Z.includes("."))return null;return Z}async function Ua5(X,Y){let G=wk0(X.headers.get("host"),Y.baseDomain);if(!G)return null;let Q=await Y.getRunner();if(!Q)return jJ1(503,"preview proxy not configured");return Q.proxyPreviewRequest(G,X)}function jJ1(X,Y){return new Response(JSON.stringify({error:Y}),{status:X,headers:{"content-type":"application/json","access-control-allow-origin":"*"}})}function hl1(X){return typeof X==="object"&&X!==null&&X.kind==="preview"}async function Ba5(X,Y,G){if((X.headers.get("upgrade")??"").toLowerCase()!=="websocket")return null;let Q=wk0(X.headers.get("host"),G.baseDomain);if(!Q)return null;let J=await G.getRunner();if(!J)return jJ1(503,"preview proxy not configured");let $=await J.resolvePreviewUpstreamUrl(Q);if(!$)return jJ1(404,"sandbox not found");let Z=new URL(X.url);if(Z.pathname.startsWith("/_decopilot_vm"))return jJ1(404,"not found");let W=`${$.replace(/^http/,"ws")}${Z.pathname}${Z.search}`,K=X.headers.get("sec-websocket-protocol"),H=K?K.split(",").map((N)=>N.trim()).filter(Boolean):[],U={kind:"preview",upstreamUrl:W,upstreamProtocols:H,pending:[],upstream:null,closed:!1};if(!Y.upgrade(X,{data:U}))return jJ1(426,"upgrade failed");return}function IJ1(X,Y,G,Q){if(Y.closed)return;Y.closed=!0;try{X.close(G,Q)}catch{}try{Y.upstream?.close()}catch{}}var Na5;var U58=D(()=>{Na5={open(X){let Y=X.data;if(!hl1(Y))return;let G;try{G=Y.upstreamProtocols.length>0?new WebSocket(Y.upstreamUrl,Y.upstreamProtocols):new WebSocket(Y.upstreamUrl)}catch(Q){console.warn(`[preview-ws] failed to dial upstream ${Y.upstreamUrl}: ${Q instanceof Error?Q.message:String(Q)}`),IJ1(X,Y,1011,"upstream connect failed");return}G.binaryType="arraybuffer",Y.upstream=G,G.addEventListener("open",()=>{while(Y.pending.length>0){let Q=Y.pending.shift();if(Q!==void 0)G.send(Q)}}),G.addEventListener("message",(Q)=>{if(Y.closed)return;X.send(Q.data)}),G.addEventListener("close",(Q)=>{IJ1(X,Y,Q.code||1000,Q.reason||"")}),G.addEventListener("error",()=>{IJ1(X,Y,1011,"upstream error")})},message(X,Y){let G=X.data;if(!hl1(G))return;let Q=G.upstream;if(Q&&Q.readyState===WebSocket.OPEN){Q.send(Y);return}if(G.pending.length>=256){IJ1(X,G,1011,"preview ws backlog overflow");return}G.pending.push(Y)},close(X){let Y=X.data;if(!hl1(Y))return;IJ1(X,Y,1000,"")}}});var B58={};b6(B58,{dim:()=>Oa5,ASCII_ART:()=>za5});var Oa5=(X)=>`\x1B[2m${X}\x1B[22m`,qA=(X,Y,G,Q)=>`\x1B[38;2;${X};${Y};${G}m${Q}\x1B[39m`,za5;var N58=D(()=>{za5=[qA(0,255,100," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588 "),qA(0,238,94,"\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588 \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 "),qA(0,220,86," \u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2588 \u2591 \u2588\u2588\u2588 \u2591\u2591\u2591 \u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588"),qA(0,200,78," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588"),qA(0,180,68," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2591\u2591\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588"),qA(0,160,60," \u2591\u2588\u2588\u2588 \u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591 \u2588\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588 "),qA(0,136,50," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591 "),qA(0,110,40,"\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591 ")]});e5();TW();import{existsSync as Pa5}from"fs";var Ak0=h4();BB4();var{createApp:Da5}=await Promise.resolve().then(() => (e98(),s98)),{isServerPath:wa5}=await Promise.resolve().then(() => (cS0(),E88)),{createAssetHandler:La5,resolveClientDir:w58}=await Promise.resolve().then(() => (H58(),K58)),Ea5=Ak0.port,O58=w58(import.meta.url,"../client"),qa5=Pa5(O58)?O58:w58(import.meta.url,"../dist/client"),Aa5=La5({clientDir:qa5,isServerPath:wa5}),Ta5={"X-Frame-Options":"DENY","Content-Security-Policy":"frame-ancestors 'none'"};function Ia5(X){let Y=new Headers(X.headers);for(let[G,Q]of Object.entries(Ta5))Y.set(G,Q);return new Response(X.body,{status:X.status,statusText:X.statusText,headers:Y})}var L58=[],{parsePreviewBaseDomain:ja5,tryHandlePreviewHttp:Va5,tryUpgradePreviewWs:Ma5,previewWebSocketHandler:Lk0,isPreviewWsData:Ek0}=await Promise.resolve().then(() => (U58(),F58)),{getOrInitSharedRunner:Ra5}=await Promise.resolve().then(() => (QO(),gR0)),E58=ja5(process.env.STUDIO_SANDBOX_PREVIEW_URL_PATTERN),z58={baseDomain:E58??"",getRunner:async()=>{let X=await Ra5();if(!X||X.kind!=="agent-sandbox")return null;return X}},{resolveRunnerKindFromEnv:Sa5}=await Promise.resolve().then(() => (LH(),CM)),Pk0=Sa5(),ka5=Pk0==="docker"||Pk0==="host";if(ka5){let{startLocalSandboxIngress:X}=await Promise.resolve().then(() => (LH(),CM)),{getSharedRunnerIfInit:Y,getOrInitSharedRunner:G}=await Promise.resolve().then(() => (QO(),gR0));if(Pk0==="docker"){let{sweepDockerOrphansOnBoot:J}=await Promise.resolve().then(() => (LH(),CM));await J()}let Q=Number(process.env.SANDBOX_INGRESS_PORT??7070);if(Q>0)L58=X(()=>{let J=Y();if(!J)return null;if(J.kind!=="docker"&&J.kind!=="host")return null;return J},Q),await G()}var qk0=await Da5();if(!Ak0.isCli){let{ASCII_ART:X}=await Promise.resolve().then(() => (N58(),B58));console.log("");for(let Y of X)console.log(Y)}var Ca5=process.env.REUSE_PORT==="true",va5=process.env.DECOCMS_IS_WORKER==="1",_a5=Bun.serve({idleTimeout:0,port:Ea5,hostname:"0.0.0.0",reusePort:Ca5,fetch:async(X,Y)=>{if(E58){let Q=await Ma5(X,Y,z58);if(Q===void 0)return;if(Q)return Q;let J=await Va5(X,z58);if(J)return J}let G=await Aa5(X);if(G)return Ia5(G);return qk0.fetch(X,{server:Y})},websocket:{open(X){if(Ek0(X.data))Lk0.open(X)},message(X,Y){if(Ek0(X.data))Lk0.message(X,Y)},close(X){if(Ek0(X.data))Lk0.close(X)}},development:!1});if(Ak0.localMode&&!va5)Promise.resolve().then(() => (_a(),nu1)).then(async({seedLocalMode:X,markSeedComplete:Y})=>{try{let G=await X()}catch(G){console.error("Failed to seed local mode:",G)}finally{Y()}}).catch(async(X)=>{console.error("Failed to load local-mode module:",X);try{let{markSeedComplete:Y}=await Promise.resolve().then(() => (_a(),nu1));Y()}catch{}});var D58=!1;async function xl1(X){if(D58)return;D58=!0,console.log(`
7566
7566
  [shutdown] Received ${X}, shutting down gracefully...`);let Y=setTimeout(()=>{console.error("[shutdown] Timed out after 55s, forcing exit."),process.exit(1)},55000);Y.unref?.();let G=0;try{qk0.markShuttingDown();for(let Q of L58)Q.close();await new Promise((Q)=>setTimeout(Q,2000)),await _a5.stop(!0),await qk0.shutdown()}catch(Q){console.error("[shutdown] Error during shutdown:",Q),G=1}clearTimeout(Y),process.exit(G)}process.on("SIGTERM",()=>xl1("SIGTERM"));process.on("SIGINT",()=>xl1("SIGINT"));process.on("SIGHUP",()=>xl1("SIGHUP"));process.on("unhandledRejection",(X)=>{console.error("[process] Unhandled rejection:",X)});process.on("uncaughtException",(X)=>{console.error("[process] Uncaught exception:",X),xl1("uncaughtException")});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "decocms",
3
- "version": "2.309.0",
3
+ "version": "2.310.0",
4
4
  "description": "Deco CMS — Self-hostable MCP Gateway for managing AI connections and tools",
5
5
  "author": "Deco team",
6
6
  "repository": {
@@ -1 +0,0 @@
1
- import{e as t,j as i}from"./index-BFIwa8W4.js";import{O as m}from"./select-model-Vwe69qWq.js";import"./checkbox-BJiR6nKO.js";import"./Check-DXPBjwC9.js";import"./input-C66FZPPf.js";import"./dialog-BZytMGON.js";import"./X-CGShNfee.js";import"./drawer-D-6kJz55.js";import"./tooltip-CzkIRbGJ.js";import"./select-CsQfJ0qv.js";import"./ChevronDown-BzUdsdeu.js";import"./ChevronUp-CkOPdM7g.js";import"./skeleton-DFE9g6JF.js";import"./Tool01-CIMPkAjR.js";import"./RefreshCcw01-DDZo1WKt.js";import"./SearchMd-BvQQOrkm.js";import"./Settings02-CYadYmOF.js";import"./use-ai-providers-BSpy6MGb.js";import"./constants-CnfWGYKH.js";import"./chat-context-BnJMVusJ.js";import"./use-virtual-mcp-BW1ujP1y.js";import"./use-collections-BgNhuD43.js";import"./use-decopilot-events-Bd5bEjkf.js";import"./create-sse-subscription-CxkOgzKf.js";import"./use-tasks-D6w8iRzc.js";import"./use-organization-settings-Cl63rukI.js";import"./ai-providers-logos-DD3qZ33J.js";import"./Zap-D7WiwjAV.js";import"./use-debounced-autosave-DO41C7Df.js";import"./AlertCircle-DfpOj9uk.js";import"./CheckCircle-DenvulPR.js";import"./Trash01-4PBXkXRo.js";import"./index-CE54Jnz-.js";import"./settings-section-Bcn_yZSc.js";import"./card-DdVfFEw2.js";import"./ArrowUpRight-DtiNC8xj.js";import"./switch-B9pehtZv.js";import"./toggle-group-BKADQha7.js";import"./avatar-BbisflHp.js";import"./User01-nh8Rby1P.js";import"./alert-dialog-CZ6BxFHK.js";import"./formatDistanceToNow-Cb2QZZJn.js";import"./differenceInSeconds-NQ4PDo0z.js";import"./unwrap-tool-result-BYXdCQMg.js";function V(){const o=t.c(1);let r;return o[0]===Symbol.for("react.memo_cache_sentinel")?(r=i.jsx(m,{}),o[0]=r):r=o[0],r}export{V as default};
@@ -1 +0,0 @@
1
- import{e as n,j as r,r as d,g as h,O as f,l as u}from"./index-BFIwa8W4.js";import{S as j,a as b,b as S}from"./index-CE54Jnz-.js";import{u as _}from"./tooltip-CzkIRbGJ.js";import{u as k,T as y,a as T,b as i,S as g}from"./index--ghksYAo.js";import{C as v}from"./chat-context-BnJMVusJ.js";import"./X-CGShNfee.js";import"./agent-icon-GBX3RKid.js";import"./AlertCircle-DfpOj9uk.js";import"./Tool01-CIMPkAjR.js";import"./XClose-BnCJyyB-.js";import"./RefreshCcw01-DDZo1WKt.js";import"./ArrowNarrowLeft-CGsSFJZH.js";import"./XCircle-CTrtJtfR.js";import"./ArrowUpRight-DtiNC8xj.js";import"./ZapSquare-DhbSIk6a.js";import"./Users03-CItFKGX1.js";import"./CheckCircle-DenvulPR.js";import"./Check-DXPBjwC9.js";import"./ChevronDown-BzUdsdeu.js";import"./ChevronRight-8RBDSI4c.js";import"./ChevronUp-CkOPdM7g.js";import"./DotsVertical-CCxgBVsk.js";import"./Container-B2b9FJMR.js";import"./Star01-BM8AlGEC.js";import"./Palette-qMNBtXtx.js";import"./SearchMd-BvQQOrkm.js";import"./LinkExternal01-C_eUHFUm.js";import"./Lock01-SmEMRGOb.js";import"./Sun-B2OKfrtR.js";import"./Play-DmVY8R1A.js";import"./Plus-B19lTgl_.js";import"./Settings02-CYadYmOF.js";import"./Shield01-GS3q0eea.js";import"./Trash01-4PBXkXRo.js";import"./User01-nh8Rby1P.js";import"./Zap-D7WiwjAV.js";import"./shell-layout-BQPFdNnv.js";import"./dialog-BZytMGON.js";import"./required-auth-layout-4lbvRXP9.js";import"./use-tasks-D6w8iRzc.js";import"./use-collections-BgNhuD43.js";import"./constants-CnfWGYKH.js";import"./use-organization-settings-Cl63rukI.js";import"./use-org-sso-BbOiG5xt.js";import"./pair-Bl_sqsCX.js";import"./index-C39RwBnQ.js";import"./use-copy-DUQETT2i.js";import"./differenceInSeconds-NQ4PDo0z.js";import"./content-blocks-o63cs2vh.js";import"./types-CiOXD-c9.js";import"./integration-icon-fPkSifk0.js";import"./use-virtual-mcp-BW1ujP1y.js";import"./skeleton-DFE9g6JF.js";import"./popover-DIqVWKAH.js";import"./drawer-D-6kJz55.js";import"./avatar-BbisflHp.js";import"./alert-dialog-CZ6BxFHK.js";import"./form-Bi1l8-LL.js";import"./label-BMe1SNEP.js";import"./input-C66FZPPf.js";import"./index-CzZgNQPp.js";import"./use-mcp-tools-Dneo9PV9.js";import"./use-ai-providers-BSpy6MGb.js";import"./index-BgSyGi69.js";import"./switch-B9pehtZv.js";import"./use-connection-BypaB8s_.js";import"./lean-canvas-recruit-modal-BP1iZHjy.js";import"./use-navigate-to-agent-jsYNoTy7.js";import"./collection-search-BBFkmets.js";import"./checkbox-BJiR6nKO.js";import"./extract-connection-data-Bj_pawjK.js";import"./constants-sHQufsXI.js";import"./collections-C5AWnYf0.js";import"./tabs-Dxl_bMcE.js";import"./select-CsQfJ0qv.js";import"./toggle-group-BKADQha7.js";import"./select-model-Vwe69qWq.js";import"./ai-providers-logos-DD3qZ33J.js";import"./use-debounced-autosave-DO41C7Df.js";import"./settings-section-Bcn_yZSc.js";import"./card-DdVfFEw2.js";import"./formatDistanceToNow-Cb2QZZJn.js";import"./unwrap-tool-result-BYXdCQMg.js";import"./dropdown-menu-BpdWPWdq.js";import"./index-C03HvIgQ.js";import"./question-004-sINsf4GQ.js";import"./connection-slug-eyAPH6o3.js";import"./connection-card--P5ycKzL.js";import"./use-registry-connections-nKQr071c.js";import"./useInfiniteQuery-B0aJ536b.js";import"./infiniteQueryObserver-NmUU_rOy.js";import"./collection-tabs--b599n6J.js";import"./badge-B32WzuEH.js";import"./textarea-DH2INXqG.js";import"./connection-form-helpers-BeJI6IBg.js";import"./use-infinite-scroll-QOTO_hJO.js";import"./useSuspenseInfiniteQuery-DMQVbZ7w.js";import"./collection-search-D62A0L7U.js";import"./use-create-virtual-mcp-Cr6RxP_0.js";import"./empty-state-DuLPP0P_.js";import"./use-decopilot-events-Bd5bEjkf.js";import"./create-sse-subscription-CxkOgzKf.js";import"./task-status-BWs0NSVc.js";const N=280;function P(){const t=n.c(2),{tasksOpen:e}=k();if(!e)return null;let o;t[0]===Symbol.for("react.memo_cache_sentinel")?(o={width:`${N}px`},t[0]=o):o=t[0];let m;return t[1]===Symbol.for("react.memo_cache_sentinel")?(m=r.jsx("aside",{className:"shrink-0 h-full bg-sidebar pb-1",style:o,children:r.jsx("div",{className:"h-full p-0.5 pt-0.25",children:r.jsx("div",{className:"h-full bg-background rounded-[0.75rem] overflow-hidden card-shadow",children:r.jsx(y,{})})})}),t[1]=m):m=t[1],m}function C(){const t=n.c(1);let e;return t[0]===Symbol.for("react.memo_cache_sentinel")?(e=r.jsx(d.Suspense,{fallback:null,children:r.jsx(P,{})}),t[0]=e):e=t[0],e}function x(){const t=n.c(1);let e;return t[0]===Symbol.for("react.memo_cache_sentinel")?(e=r.jsx("div",{className:"flex-1 flex items-center justify-center",children:r.jsx(u,{size:20,className:"animate-spin text-muted-foreground"})}),t[0]=e):e=t[0],e}function gr(){const t=n.c(7),e=_();let o;t[0]===Symbol.for("react.memo_cache_sentinel")?(o={strict:!1},t[0]=o):o=t[0];const c=!!h(o).taskId;let s;t[1]===Symbol.for("react.memo_cache_sentinel")?(s={"--sidebar-width-icon":"3.5rem"},t[1]=s):s=t[1];let l;t[2]===Symbol.for("react.memo_cache_sentinel")?(l=r.jsx(g,{}),t[2]=l):l=t[2];let p;t[3]===Symbol.for("react.memo_cache_sentinel")?(p={background:"transparent",containerType:"inline-size"},t[3]=p):p=t[3];let a;return t[4]!==c||t[5]!==e?(a=r.jsx(j,{defaultOpen:!1,children:r.jsx("div",{className:"flex flex-col h-dvh overflow-hidden",children:r.jsxs(b,{className:"flex-1 bg-sidebar",style:s,children:[l,r.jsx(S,{className:"flex flex-col",style:p,children:r.jsx(v,{children:r.jsx(T,{children:e?r.jsx(d.Suspense,{fallback:r.jsx(x,{}),children:r.jsx(f,{})}):r.jsxs(i,{children:[r.jsxs(i.Header,{children:[r.jsxs(i.LeftColumn,{children:[r.jsx(i.Nav,{}),r.jsx(i.TogglesSlot,{})]}),r.jsx(i.CenterSlot,{}),r.jsxs(i.RightColumn,{children:[r.jsx(i.TabsSlot,{}),r.jsx(i.RightSlot,{})]})]}),r.jsxs("div",{className:"flex-1 min-h-0 flex flex-row",children:[c&&r.jsx(C,{}),r.jsx(d.Suspense,{fallback:r.jsx(x,{}),children:r.jsx(f,{})})]})]})})})})]})})}),t[4]=c,t[5]=e,t[6]=a):a=t[6],a}export{gr as default};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/registry-layout-BaLlt8iJ.js","assets/index-BFIwa8W4.js","assets/index-CpHJcJk3.css","assets/ArrowNarrowLeft-CGsSFJZH.js","assets/CheckCircle-DenvulPR.js","assets/Container-B2b9FJMR.js","assets/Settings02-CYadYmOF.js","assets/XCircle-CTrtJtfR.js","assets/constants-CnfWGYKH.js","assets/useInfiniteQuery-B0aJ536b.js","assets/infiniteQueryObserver-NmUU_rOy.js","assets/badge-B32WzuEH.js","assets/input-C66FZPPf.js","assets/dropdown-menu-BpdWPWdq.js","assets/Check-DXPBjwC9.js","assets/ChevronRight-8RBDSI4c.js","assets/DotsVertical-CCxgBVsk.js","assets/table-CvhbCrhO.js","assets/toggle-group-BKADQha7.js","assets/use-view-mode-EFwbm8pp.js","assets/tooltip-CzkIRbGJ.js","assets/SearchMd-BvQQOrkm.js","assets/dialog-BZytMGON.js","assets/X-CGShNfee.js","assets/AlertCircle-DfpOj9uk.js","assets/alert-dialog-CZ6BxFHK.js","assets/card-DdVfFEw2.js","assets/Trash01-4PBXkXRo.js","assets/label-BMe1SNEP.js","assets/select-CsQfJ0qv.js","assets/ChevronDown-BzUdsdeu.js","assets/ChevronUp-CkOPdM7g.js","assets/switch-B9pehtZv.js","assets/textarea-DH2INXqG.js","assets/RefreshCcw01-DDZo1WKt.js","assets/checkbox-BJiR6nKO.js","assets/LinkExternal01-C_eUHFUm.js","assets/use-copy-DUQETT2i.js","assets/Plus-B19lTgl_.js","assets/Play-DmVY8R1A.js"])))=>i.map(i=>d[i]);
2
- import{e as a,j as t,r,l as i,_ as o}from"./index-BFIwa8W4.js";const n=r.lazy(()=>o(()=>import("./registry-layout-BaLlt8iJ.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39])));function c(){const s=a.c(1);let e;return s[0]===Symbol.for("react.memo_cache_sentinel")?(e=t.jsx(r.Suspense,{fallback:t.jsx("div",{className:"flex-1 flex items-center justify-center",children:t.jsx(i,{size:20,className:"animate-spin text-muted-foreground"})}),children:t.jsx(n,{})}),s[0]=e):e=s[0],e}export{c as default};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/registry-layout-BaLlt8iJ.js","assets/index-BFIwa8W4.js","assets/index-CpHJcJk3.css","assets/ArrowNarrowLeft-CGsSFJZH.js","assets/CheckCircle-DenvulPR.js","assets/Container-B2b9FJMR.js","assets/Settings02-CYadYmOF.js","assets/XCircle-CTrtJtfR.js","assets/constants-CnfWGYKH.js","assets/useInfiniteQuery-B0aJ536b.js","assets/infiniteQueryObserver-NmUU_rOy.js","assets/badge-B32WzuEH.js","assets/input-C66FZPPf.js","assets/dropdown-menu-BpdWPWdq.js","assets/Check-DXPBjwC9.js","assets/ChevronRight-8RBDSI4c.js","assets/DotsVertical-CCxgBVsk.js","assets/table-CvhbCrhO.js","assets/toggle-group-BKADQha7.js","assets/use-view-mode-EFwbm8pp.js","assets/tooltip-CzkIRbGJ.js","assets/SearchMd-BvQQOrkm.js","assets/dialog-BZytMGON.js","assets/X-CGShNfee.js","assets/AlertCircle-DfpOj9uk.js","assets/alert-dialog-CZ6BxFHK.js","assets/card-DdVfFEw2.js","assets/Trash01-4PBXkXRo.js","assets/label-BMe1SNEP.js","assets/select-CsQfJ0qv.js","assets/ChevronDown-BzUdsdeu.js","assets/ChevronUp-CkOPdM7g.js","assets/switch-B9pehtZv.js","assets/textarea-DH2INXqG.js","assets/RefreshCcw01-DDZo1WKt.js","assets/checkbox-BJiR6nKO.js","assets/LinkExternal01-C_eUHFUm.js","assets/use-copy-DUQETT2i.js","assets/Plus-B19lTgl_.js","assets/Play-DmVY8R1A.js"])))=>i.map(i=>d[i]);
2
- import{e as n,f as c,g as m,j as r,l as f,r as l,_ as u}from"./index-BFIwa8W4.js";const _=l.lazy(()=>u(()=>import("./registry-layout-BaLlt8iJ.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39])));function x(){const e=n.c(5),o=c();let t;e[0]===Symbol.for("react.memo_cache_sentinel")?(t={from:"/shell/$org"},e[0]=t):t=e[0];const{org:i}=m(t);let s;e[1]===Symbol.for("react.memo_cache_sentinel")?(s=r.jsx("div",{className:"h-full flex items-center justify-center",children:r.jsx(f,{size:20,className:"animate-spin text-muted-foreground"})}),e[1]=s):s=e[1];let a;return e[2]!==o||e[3]!==i?(a=r.jsx(l.Suspense,{fallback:s,children:r.jsx(_,{onBack:()=>o({to:"/$org/settings/store",params:{org:i}})})}),e[2]=o,e[3]=i,e[4]=a):a=e[4],a}export{x as default};
@@ -1 +0,0 @@
1
- import{I as u}from"./infiniteQueryObserver-NmUU_rOy.js";import{c2 as i}from"./index-BFIwa8W4.js";function t(e,r){return i(e,u,r)}export{t as u};
@@ -1 +0,0 @@
1
- import{I as s}from"./infiniteQueryObserver-NmUU_rOy.js";import{c2 as u,c3 as n}from"./index-BFIwa8W4.js";function a(r,e){return u({...r,enabled:!0,suspense:!0,throwOnError:n},s,e)}export{a as u};
@@ -1 +0,0 @@
1
- import{e as s,g as l,j as o,l as a,E as n,r as c}from"./index-BFIwa8W4.js";import{a as f}from"./index-gC4su7X_.js";import"./index-Dr1V1Dds.js";import"./constants-CnfWGYKH.js";import"./collections-C5AWnYf0.js";import"./index-BheN5Hjz.js";import"./use-virtual-mcp-BW1ujP1y.js";import"./use-collections-BgNhuD43.js";import"./monaco-editor-C457mqYB.js";import"./index-C39RwBnQ.js";import"./accordion-CgT_Vu18.js";import"./agent-icon-GBX3RKid.js";import"./AlertCircle-DfpOj9uk.js";import"./Tool01-CIMPkAjR.js";import"./XClose-BnCJyyB-.js";import"./RefreshCcw01-DDZo1WKt.js";import"./ArrowNarrowLeft-CGsSFJZH.js";import"./XCircle-CTrtJtfR.js";import"./ArrowUpRight-DtiNC8xj.js";import"./ZapSquare-DhbSIk6a.js";import"./Users03-CItFKGX1.js";import"./CheckCircle-DenvulPR.js";import"./Check-DXPBjwC9.js";import"./ChevronDown-BzUdsdeu.js";import"./ChevronRight-8RBDSI4c.js";import"./ChevronUp-CkOPdM7g.js";import"./DotsVertical-CCxgBVsk.js";import"./Container-B2b9FJMR.js";import"./Star01-BM8AlGEC.js";import"./Palette-qMNBtXtx.js";import"./SearchMd-BvQQOrkm.js";import"./index-CE54Jnz-.js";import"./tooltip-CzkIRbGJ.js";import"./X-CGShNfee.js";import"./LinkExternal01-C_eUHFUm.js";import"./Lock01-SmEMRGOb.js";import"./Sun-B2OKfrtR.js";import"./Play-DmVY8R1A.js";import"./Plus-B19lTgl_.js";import"./Settings02-CYadYmOF.js";import"./Shield01-GS3q0eea.js";import"./Trash01-4PBXkXRo.js";import"./User01-nh8Rby1P.js";import"./Zap-D7WiwjAV.js";import"./badge-B32WzuEH.js";import"./select-CsQfJ0qv.js";import"./view-mode-toggle-P1fMVeBh.js";import"./layout-DbOAzt16.js";import"./use-connection-BypaB8s_.js";import"./use-mcp-tools-Dneo9PV9.js";import"./dialog-BZytMGON.js";import"./index-C03HvIgQ.js";import"./dropdown-menu-BpdWPWdq.js";import"./integration-icon-fPkSifk0.js";import"./scroll-area-Dpf0WEDP.js";import"./index-CzZgNQPp.js";import"./empty-state-BQISF-I3.js";import"./create-sse-subscription-CxkOgzKf.js";import"./input-C66FZPPf.js";function gt(){const t=s.c(4);let r;t[0]===Symbol.for("react.memo_cache_sentinel")?(r={from:"/shell/$org/settings/workflows/$itemId"},t[0]=r):r=t[0];const{itemId:e}=l(r);let i;t[1]===Symbol.for("react.memo_cache_sentinel")?(i=o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(a,{size:32,className:"animate-spin text-muted-foreground"})}),t[1]=i):i=t[1];const p=decodeURIComponent(e);let m;return t[2]!==p?(m=o.jsx(n,{children:o.jsx(c.Suspense,{fallback:i,children:o.jsx(f,{itemId:p})})}),t[2]=p,t[3]=m):m=t[3],m}export{gt as default};
@@ -1,118 +0,0 @@
1
- export type Options = {
2
- /**
3
- The position to truncate the string.
4
-
5
- @default 'end'
6
- */
7
- readonly position?: 'start' | 'middle' | 'end';
8
-
9
- /**
10
- Add a space between the text and the ellipsis.
11
-
12
- @default false
13
-
14
- @example
15
- ```
16
- import cliTruncate from 'cli-truncate';
17
-
18
- cliTruncate('unicorns', 5, {position: 'end', space: true});
19
- //=> 'uni …'
20
-
21
- cliTruncate('unicorns', 5, {position: 'end', space: false});
22
- //=> 'unic…'
23
-
24
- cliTruncate('unicorns', 6, {position: 'start', space: true});
25
- //=> '… orns'
26
-
27
- cliTruncate('unicorns', 7, {position: 'middle', space: true});
28
- //=> 'uni … s'
29
- ```
30
- */
31
- readonly space?: boolean;
32
-
33
- /**
34
- Truncate the string from a whitespace if it is within 3 characters from the actual breaking point.
35
-
36
- @default false
37
-
38
- @example
39
- ```
40
- import cliTruncate from 'cli-truncate';
41
-
42
- cliTruncate('unicorns rainbow dragons', 20, {position: 'start', preferTruncationOnSpace: true});
43
- //=> '…rainbow dragons'
44
-
45
- cliTruncate('unicorns rainbow dragons', 20, {position: 'middle', preferTruncationOnSpace: true});
46
- //=> 'unicorns…dragons'
47
-
48
- cliTruncate('unicorns rainbow dragons', 6, {position: 'end', preferTruncationOnSpace: true});
49
- //=> 'unico…'
50
- ````
51
- */
52
- readonly preferTruncationOnSpace?: boolean;
53
-
54
- /**
55
- The character to use at the breaking point.
56
-
57
- @default '…'
58
-
59
- @example
60
- ```
61
- import cliTruncate from 'cli-truncate';
62
-
63
- cliTruncate('unicorns', 5, {position: 'end'});
64
- //=> 'unic…'
65
-
66
- cliTruncate('unicorns', 5, {position: 'end', truncationCharacter: '.'});
67
- //=> 'unic.'
68
-
69
- cliTruncate('unicorns', 5, {position: 'end', truncationCharacter: ''});
70
- //=> 'unico'
71
- */
72
- readonly truncationCharacter?: string;
73
- };
74
-
75
- /**
76
- Truncate a string to a specific width in the terminal.
77
-
78
- @param text - The text to truncate.
79
- @param columns - The number of columns to occupy in the terminal.
80
-
81
- @example
82
- ```
83
- import cliTruncate from 'cli-truncate';
84
-
85
- cliTruncate('unicorn', 4);
86
- //=> 'uni…'
87
-
88
- // Truncate at different positions
89
- cliTruncate('unicorn', 4, {position: 'start'});
90
- //=> '…orn'
91
-
92
- cliTruncate('unicorn', 4, {position: 'middle'});
93
- //=> 'un…n'
94
-
95
- cliTruncate('\u001B[31municorn\u001B[39m', 4);
96
- //=> '\u001B[31muni…\u001B[39m'
97
-
98
- // Note: When truncating styled text (ANSI escapes), the truncation character inherits the style at the breaking point for `position: 'start'` and `position: 'end'`. This does not apply to `position: 'middle'`.
99
-
100
- // Truncate Unicode surrogate pairs
101
- cliTruncate('uni\uD83C\uDE00corn', 5);
102
- //=> 'uni\uD83C\uDE00…'
103
-
104
- // Truncate fullwidth characters
105
- cliTruncate('안녕하세요', 3);
106
- //=> '안…'
107
-
108
- // Truncate the paragraph to the terminal width
109
- const paragraph = 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa.';
110
- cliTruncate(paragraph, process.stdout.columns);
111
- //=> 'Lorem ipsum dolor sit amet, consectetuer adipiscing…'
112
- ```
113
- */
114
- export default function cliTruncate(
115
- text: string,
116
- columns: number,
117
- options?: Options
118
- ): string;
@@ -1,168 +0,0 @@
1
- import sliceAnsi from 'slice-ansi';
2
- import stringWidth from 'string-width';
3
-
4
- function getIndexOfNearestSpace(string, wantedIndex, shouldSearchRight) {
5
- if (string.charAt(wantedIndex) === ' ') {
6
- return wantedIndex;
7
- }
8
-
9
- const direction = shouldSearchRight ? 1 : -1;
10
-
11
- for (let index = 0; index <= 3; index++) {
12
- const finalIndex = wantedIndex + (index * direction);
13
- if (string.charAt(finalIndex) === ' ') {
14
- return finalIndex;
15
- }
16
- }
17
-
18
- return wantedIndex;
19
- }
20
-
21
- export default function cliTruncate(text, columns, options = {}) {
22
- const {
23
- position = 'end',
24
- space = false,
25
- preferTruncationOnSpace = false,
26
- } = options;
27
-
28
- let {truncationCharacter = '…'} = options;
29
-
30
- if (typeof text !== 'string') {
31
- throw new TypeError(`Expected \`input\` to be a string, got ${typeof text}`);
32
- }
33
-
34
- if (typeof columns !== 'number') {
35
- throw new TypeError(`Expected \`columns\` to be a number, got ${typeof columns}`);
36
- }
37
-
38
- if (columns < 1) {
39
- return '';
40
- }
41
-
42
- const length = stringWidth(text);
43
-
44
- if (length <= columns) {
45
- return text;
46
- }
47
-
48
- if (columns === 1) {
49
- return truncationCharacter;
50
- }
51
-
52
- // ANSI escape sequence constants
53
- const ANSI = {
54
- ESC: 27,
55
- LEFT_BRACKET: 91,
56
- LETTER_M: 109,
57
- };
58
-
59
- const isSgrParameter = code => (code >= 48 && code <= 57) || code === 59; // 0-9 or ;
60
-
61
- function leadingSgrSpanEndIndex(string) {
62
- let index = 0;
63
- while (index + 2 < string.length && string.codePointAt(index) === ANSI.ESC && string.codePointAt(index + 1) === ANSI.LEFT_BRACKET) {
64
- let j = index + 2;
65
- while (j < string.length && isSgrParameter(string.codePointAt(j))) {
66
- j++;
67
- }
68
-
69
- if (j < string.length && string.codePointAt(j) === ANSI.LETTER_M) {
70
- index = j + 1;
71
- continue;
72
- }
73
-
74
- break;
75
- }
76
-
77
- return index;
78
- }
79
-
80
- function trailingSgrSpanStartIndex(string) {
81
- let start = string.length;
82
- while (start > 1 && string.codePointAt(start - 1) === ANSI.LETTER_M) {
83
- let j = start - 2;
84
- while (j >= 0 && isSgrParameter(string.codePointAt(j))) {
85
- j--;
86
- }
87
-
88
- if (j >= 1 && string.codePointAt(j - 1) === ANSI.ESC && string.codePointAt(j) === ANSI.LEFT_BRACKET) {
89
- start = j - 1;
90
- continue;
91
- }
92
-
93
- break;
94
- }
95
-
96
- return start;
97
- }
98
-
99
- function appendWithInheritedStyleFromEnd(visible, suffix) {
100
- const start = trailingSgrSpanStartIndex(visible);
101
- if (start === visible.length) {
102
- return visible + suffix;
103
- }
104
-
105
- return visible.slice(0, start) + suffix + visible.slice(start);
106
- }
107
-
108
- function prependWithInheritedStyleFromStart(prefix, visible) {
109
- const end = leadingSgrSpanEndIndex(visible);
110
- if (end === 0) {
111
- return prefix + visible;
112
- }
113
-
114
- return visible.slice(0, end) + prefix + visible.slice(end);
115
- }
116
-
117
- if (position === 'start') {
118
- if (preferTruncationOnSpace) {
119
- const nearestSpace = getIndexOfNearestSpace(text, length - columns + 1, true);
120
- const right = sliceAnsi(text, nearestSpace, length).trim();
121
- return prependWithInheritedStyleFromStart(truncationCharacter, right);
122
- }
123
-
124
- if (space) {
125
- truncationCharacter += ' ';
126
- }
127
-
128
- const right = sliceAnsi(text, length - columns + stringWidth(truncationCharacter), length);
129
- return prependWithInheritedStyleFromStart(truncationCharacter, right);
130
- }
131
-
132
- if (position === 'middle') {
133
- if (space) {
134
- truncationCharacter = ` ${truncationCharacter} `;
135
- }
136
-
137
- const half = Math.floor(columns / 2);
138
-
139
- if (preferTruncationOnSpace) {
140
- const spaceNearFirstBreakPoint = getIndexOfNearestSpace(text, half);
141
- const spaceNearSecondBreakPoint = getIndexOfNearestSpace(text, length - (columns - half) + 1, true);
142
- return sliceAnsi(text, 0, spaceNearFirstBreakPoint) + truncationCharacter + sliceAnsi(text, spaceNearSecondBreakPoint, length).trim();
143
- }
144
-
145
- return (
146
- sliceAnsi(text, 0, half)
147
- + truncationCharacter
148
- + sliceAnsi(text, length - (columns - half) + stringWidth(truncationCharacter), length)
149
- );
150
- }
151
-
152
- if (position === 'end') {
153
- if (preferTruncationOnSpace) {
154
- const nearestSpace = getIndexOfNearestSpace(text, columns - 1);
155
- const left = sliceAnsi(text, 0, nearestSpace);
156
- return appendWithInheritedStyleFromEnd(left, truncationCharacter);
157
- }
158
-
159
- if (space) {
160
- truncationCharacter = ` ${truncationCharacter}`;
161
- }
162
-
163
- const left = sliceAnsi(text, 0, columns - stringWidth(truncationCharacter));
164
- return appendWithInheritedStyleFromEnd(left, truncationCharacter);
165
- }
166
-
167
- throw new Error(`Expected \`options.position\` to be either \`start\`, \`middle\` or \`end\`, got ${position}`);
168
- }