decocms 3.100.2 → 3.100.3

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 (213) hide show
  1. package/dist/client/assets/{AlertCircle-xh2gP926.js → AlertCircle-IF35eH2B.js} +1 -1
  2. package/dist/client/assets/{ArrowUpRight-BJ5BynUq.js → ArrowUpRight-DLcrm0Kb.js} +1 -1
  3. package/dist/client/assets/{CheckCircle-CGc5ki5Q.js → CheckCircle-BBLKlRqm.js} +1 -1
  4. package/dist/client/assets/{ChevronDown-NSf4QmQ0.js → ChevronDown-D8u6b6Hj.js} +1 -1
  5. package/dist/client/assets/{ChevronLeft-5Qu2HV9W.js → ChevronLeft-mvEfx0__.js} +1 -1
  6. package/dist/client/assets/{ChevronRight-BYPwadVH.js → ChevronRight-COmB-JR5.js} +1 -1
  7. package/dist/client/assets/{ChevronUp-BGzJtIMY.js → ChevronUp-BPaj5xiw.js} +1 -1
  8. package/dist/client/assets/{DotsVertical-gX-z7zlI.js → DotsVertical-BiPOg6wW.js} +1 -1
  9. package/dist/client/assets/{Eye-2BypmL4O.js → Eye-CBny3xPY.js} +1 -1
  10. package/dist/client/assets/{FilterLines-BXLRcN4S.js → FilterLines-DZwtRrbd.js} +1 -1
  11. package/dist/client/assets/{Globe01-C9WTYAfh.js → Globe01-CMFQeUnI.js} +1 -1
  12. package/dist/client/assets/{Globe04-DbuSJHMt.js → Globe04-CvtSpSzr.js} +1 -1
  13. package/dist/client/assets/{HardDrive-HjdaQ7O-.js → HardDrive-DuIG5ixJ.js} +1 -1
  14. package/dist/client/assets/{Key01-BRr8GVuW.js → Key01-BlxIIs6c.js} +1 -1
  15. package/dist/client/assets/{LayoutLeft-LI18VuAo.js → LayoutLeft-BH-1gosu.js} +1 -1
  16. package/dist/client/assets/{LinkExternal01-Bilw4gt9.js → LinkExternal01-BfSZ3B4s.js} +1 -1
  17. package/dist/client/assets/{Monitor01-B7ufM-ly.js → Monitor01-D-p9CNh0.js} +1 -1
  18. package/dist/client/assets/{Palette-BZAEJSRe.js → Palette-CfRsxr1z.js} +1 -1
  19. package/dist/client/assets/{Play-B6TdL6I4.js → Play-DDtjN9BX.js} +1 -1
  20. package/dist/client/assets/{Plus-C3SPCO-A.js → Plus-Cz4gMfEU.js} +1 -1
  21. package/dist/client/assets/{SearchLg-_a3uqaRE.js → SearchLg-BTidSs6W.js} +1 -1
  22. package/dist/client/assets/{SearchMd-lypPgb_V.js → SearchMd-H3luQCgb.js} +1 -1
  23. package/dist/client/assets/{Settings02-DFxSsmg1.js → Settings02-D-ESkDA_.js} +1 -1
  24. package/dist/client/assets/{Shield01-DevvngUq.js → Shield01-DWZYTcNb.js} +1 -1
  25. package/dist/client/assets/{Star01-_5Kq6KMt.js → Star01-DDU3_T-M.js} +1 -1
  26. package/dist/client/assets/{Stars01-D1LstVKq.js → Stars01-CI-dJi4J.js} +1 -1
  27. package/dist/client/assets/{Stars02-Bmj1q6De.js → Stars02-ow6fRmYz.js} +1 -1
  28. package/dist/client/assets/{Sun-CmVghThU.js → Sun-BjhfmeY8.js} +1 -1
  29. package/dist/client/assets/{SwitchHorizontal01-Bc6V__tI.js → SwitchHorizontal01-D7RvFiQ2.js} +1 -1
  30. package/dist/client/assets/{Tool01-BpflFDtE.js → Tool01-4W49s6El.js} +1 -1
  31. package/dist/client/assets/{Trash01-CvFj-Aly.js → Trash01-D_njW4tp.js} +1 -1
  32. package/dist/client/assets/{Upload01-DBkVeuhm.js → Upload01-fLz0lGYk.js} +1 -1
  33. package/dist/client/assets/{User01-zHIrFE-g.js → User01-C1TOLtYF.js} +1 -1
  34. package/dist/client/assets/{Users01-DXXbxkD3.js → Users01-bSxD3Xt9.js} +1 -1
  35. package/dist/client/assets/{Users03-DQWhxbkh.js → Users03-BhbLGQ61.js} +1 -1
  36. package/dist/client/assets/{X-2g4W4cWe.js → X-BnqLL0jV.js} +1 -1
  37. package/dist/client/assets/{XCircle-BIqsIsuV.js → XCircle-Ah8NNnmp.js} +1 -1
  38. package/dist/client/assets/{XClose-CgiBxckE.js → XClose-BPfurM13.js} +1 -1
  39. package/dist/client/assets/{Zap-tYFgPiG4.js → Zap-CiLf-e-I.js} +1 -1
  40. package/dist/client/assets/{ZapSquare-DUe1pVWA.js → ZapSquare-RXzO36Rz.js} +1 -1
  41. package/dist/client/assets/{ZoomOut-DW4-a9sy.js → ZoomOut-R8_zF_Wb.js} +1 -1
  42. package/dist/client/assets/{access-gate-BX4tcUBQ.js → access-gate-O8wcXqp6.js} +1 -1
  43. package/dist/client/assets/{add-section-modal-DmCya5cT.js → add-section-modal-DtWEPK0S.js} +1 -1
  44. package/dist/client/assets/{agent-icon-C_q7mSRa.js → agent-icon-BDPNsMce.js} +1 -1
  45. package/dist/client/assets/{agents-list-DXTESopF.js → agents-list-5DpgF2DC.js} +1 -1
  46. package/dist/client/assets/{ai-providers-1m5GWMNm.js → ai-providers-4D1zZsQe.js} +1 -1
  47. package/dist/client/assets/{alert-DS4RxgF-.js → alert-CeuWAH7i.js} +1 -1
  48. package/dist/client/assets/{alert-dialog-BBRhUlbP.js → alert-dialog-DHUM8l_B.js} +1 -1
  49. package/dist/client/assets/{app-editor-BHmfB8p3.js → app-editor-BTC2ABkX.js} +1 -1
  50. package/dist/client/assets/{auth-CMjBgF5h.js → auth-C-hmZ80e.js} +1 -1
  51. package/dist/client/assets/{auth-catchall-BbEidmqe.js → auth-catchall-DHacyV1C.js} +1 -1
  52. package/dist/client/assets/{auth-entry-BiOseq_N.js → auth-entry-BBUKpA64.js} +1 -1
  53. package/dist/client/assets/{auth-split-layout-CoIv0LmJ.js → auth-split-layout-BZ72oDvr.js} +1 -1
  54. package/dist/client/assets/{authenticate-and-persist-oauth-BvyQB7dF.js → authenticate-and-persist-oauth-CX3yaAd6.js} +1 -1
  55. package/dist/client/assets/{automation-list-row-BWnN_a2j.js → automation-list-row-DU-dIwgA.js} +1 -1
  56. package/dist/client/assets/{automation-runs-DbMhc53f.js → automation-runs-mFqCdcaS.js} +1 -1
  57. package/dist/client/assets/{automations-Bf2-pC6n.js → automations-x8Rxrrok.js} +1 -1
  58. package/dist/client/assets/{avatar-Dmeek_03.js → avatar-myXlbS4i.js} +1 -1
  59. package/dist/client/assets/{badge-SVLIkm4C.js → badge-DJeVrqHq.js} +1 -1
  60. package/dist/client/assets/{block-document-D-RYnjON.js → block-document-C-gdW49_.js} +1 -1
  61. package/dist/client/assets/{brand-context-OnrWnQRk.js → brand-context-BL_YucMN.js} +1 -1
  62. package/dist/client/assets/{buckets-BakAzp-G.js → buckets-udrHkl-P.js} +1 -1
  63. package/dist/client/assets/{capability-load-error-D-AqSbCQ.js → capability-load-error-BPlj2jq-.js} +1 -1
  64. package/dist/client/assets/{card-Cq9QBuRs.js → card-5etfy4U1.js} +1 -1
  65. package/dist/client/assets/{category-editor-CKRL5b46.js → category-editor-BcASejmx.js} +1 -1
  66. package/dist/client/assets/{chat-context-BAIBlE7E.js → chat-context-J4sHp5Rq.js} +1 -1
  67. package/dist/client/assets/{checkbox-DrjXx2dQ.js → checkbox-DJelQCgd.js} +1 -1
  68. package/dist/client/assets/{cli-auth-success-DzTtWmct.js → cli-auth-success-G5GbtdOT.js} +1 -1
  69. package/dist/client/assets/{collection-detail-CYHhFBTq.js → collection-detail-pFenSMeB.js} +1 -1
  70. package/dist/client/assets/{collection-display-button-ZJa359hu.js → collection-display-button-BsRjlSws.js} +1 -1
  71. package/dist/client/assets/{collection-search-BUIUupDY.js → collection-search-C0bfbt_X.js} +1 -1
  72. package/dist/client/assets/{collection-tabs-BWhjSwu7.js → collection-tabs-BVmkTQ4x.js} +1 -1
  73. package/dist/client/assets/{command-Sfrh6rdN.js → command-C4SEYI1Q.js} +1 -1
  74. package/dist/client/assets/{commerce-onboarding-BOu3wmeW.js → commerce-onboarding-CPEEYI9W.js} +1 -1
  75. package/dist/client/assets/{connect-desktop-dialog-Bj4g6gPe.js → connect-desktop-dialog-DdfubaPk.js} +1 -1
  76. package/dist/client/assets/{connection-card-D7ThMD9D.js → connection-card-C2TAXF28.js} +1 -1
  77. package/dist/client/assets/{connection-detail-t92Nzotx.js → connection-detail-C5A5kAJu.js} +1 -1
  78. package/dist/client/assets/{connection-form-helpers-PQPYx5Zz.js → connection-form-helpers-C1FGx0hq.js} +1 -1
  79. package/dist/client/assets/{connections-B81rVF_A.js → connections-DA7obcks.js} +1 -1
  80. package/dist/client/assets/{context-menu-BK1jOmhB.js → context-menu-DVZokr9B.js} +1 -1
  81. package/dist/client/assets/{decopilot-sJs6Xo8i.js → decopilot-CRo0_ThU.js} +1 -1
  82. package/dist/client/assets/{decopilot-sse-pool-DuRfF0Dk.js → decopilot-sse-pool-Bpugf3a2.js} +1 -1
  83. package/dist/client/assets/{dialog-BixLDqwV.js → dialog-ClSaeiaj.js} +1 -1
  84. package/dist/client/assets/{domain-settings-D_Woeurr.js → domain-settings-7S4pTjO6.js} +1 -1
  85. package/dist/client/assets/{drawer-B0_yoYfs.js → drawer-B-kan4co.js} +1 -1
  86. package/dist/client/assets/{dropdown-menu-BDGnR4sN.js → dropdown-menu-BvZyXk47.js} +1 -1
  87. package/dist/client/assets/{empty-state-DgVsexvC.js → empty-state-B9-73daZ.js} +1 -1
  88. package/dist/client/assets/{extract-connection-data-CtzU7uhg.js → extract-connection-data-DvtK5ODp.js} +1 -1
  89. package/dist/client/assets/{file-explorer-BdL86z0N.js → file-explorer-D-2jldDa.js} +1 -1
  90. package/dist/client/assets/{file-type-icon-DRtEsml_.js → file-type-icon-Bnn23YKO.js} +1 -1
  91. package/dist/client/assets/{files-BpAgWOWx.js → files-Cil4qaIS.js} +1 -1
  92. package/dist/client/assets/{form-CGo-7i8F.js → form-bu9s2VW3.js} +1 -1
  93. package/dist/client/assets/{general-BtN0nxh5.js → general-BnvuSEKD.js} +1 -1
  94. package/dist/client/assets/{github-repo-picker-cNqdJDFb.js → github-repo-picker-BHvz3VCf.js} +1 -1
  95. package/dist/client/assets/{hooks-xetpHtWN.js → hooks-JLG4pp-c.js} +1 -1
  96. package/dist/client/assets/{import-from-deco-dialog-D3rVPWz9.js → import-from-deco-dialog-B3T1MXMW.js} +1 -1
  97. package/dist/client/assets/{index-DpWtfqBx.js → index-1JGYyWuK.js} +1 -1
  98. package/dist/client/assets/{index-CKUj5Vg8.js → index-3KxVYywS.js} +1 -1
  99. package/dist/client/assets/{index-BlVtZ9M7.js → index-7UvZNa3Y.js} +1 -1
  100. package/dist/client/assets/{index-D4LbT1da.js → index-B-cFOXZ3.js} +1 -1
  101. package/dist/client/assets/{index-ruwDpMdL.js → index-BMviit6x.js} +3 -3
  102. package/dist/client/assets/{index-D5Mf24iW.js → index-BO3-mUD_.js} +1 -1
  103. package/dist/client/assets/{index-T-2ekuRX.js → index-BSY1nG-7.js} +29 -29
  104. package/dist/client/assets/{index-KXyotJ3W.js → index-Bfa72CDi.js} +1 -1
  105. package/dist/client/assets/{index-Cr9dstDR.js → index-C7KULa2k.js} +1 -1
  106. package/dist/client/assets/{index-C71ZWi3r.js → index-Cz9jTFL1.js} +1 -1
  107. package/dist/client/assets/{index-Cffn-1tZ.js → index-D1y1P7t1.js} +1 -1
  108. package/dist/client/assets/{index-CqFY0Ww5.js → index-DXvvKuwV.js} +1 -1
  109. package/dist/client/assets/{index-CKeYHEIS.js → index-DiUge1s2.js} +1 -1
  110. package/dist/client/assets/{index-D_rp3YDb.js → index-Lz8-wcS9.js} +1 -1
  111. package/dist/client/assets/{index-redirect-Cj9YIUbd.js → index-redirect-fKbzT7U-.js} +1 -1
  112. package/dist/client/assets/{input-DnS0RXH7.js → input-84QOvYtD.js} +1 -1
  113. package/dist/client/assets/{integration-icon-QfRDLf2K.js → integration-icon-DpPIOXKJ.js} +1 -1
  114. package/dist/client/assets/{label-Bj3DgQac.js → label-DKVEBzIV.js} +1 -1
  115. package/dist/client/assets/{login-CSuzOjQ7.js → login-Dbryec3m.js} +1 -1
  116. package/dist/client/assets/{mcp-oauth-FevntFHy.js → mcp-oauth-BN-tckDy.js} +1 -1
  117. package/dist/client/assets/{members-fpWaXwzz.js → members-DBHmG8c0.js} +1 -1
  118. package/dist/client/assets/{monaco-editor-DMz3v73F.js → monaco-editor-D4WUlA9U.js} +1 -1
  119. package/dist/client/assets/{monitoring-stats-row-BcPnhsw1.js → monitoring-stats-row-Dpwhig3O.js} +1 -1
  120. package/dist/client/assets/{oauth-callback-BPges5B-.js → oauth-callback-CrgM7daU.js} +1 -1
  121. package/dist/client/assets/{oauth-callback-ai-provider-nL7-AhOX.js → oauth-callback-ai-provider-CQbkAXBj.js} +1 -1
  122. package/dist/client/assets/{onboarding-BPWWtjJu.js → onboarding-DZvWsPKD.js} +1 -1
  123. package/dist/client/assets/{org-install-DBDtqP33.js → org-install-DcuaPCIU.js} +1 -1
  124. package/dist/client/assets/{org-layout-DiG_IYqU.js → org-layout-BNDvA1aS.js} +1 -1
  125. package/dist/client/assets/{organization-choice-BA1Zc6Ei.js → organization-choice-CLuRx-WN.js} +1 -1
  126. package/dist/client/assets/{page-seo-form-C1Vu3MH-.js → page-seo-form-LEKDxFUE.js} +1 -1
  127. package/dist/client/assets/page-seo-sheet-dc-IGffc.js +1 -0
  128. package/dist/client/assets/{popover-YgnHMc8h.js → popover-Bg8DnGyQ.js} +1 -1
  129. package/dist/client/assets/{post-editor-diAgkpdP.js → post-editor-cCe9Tcf9.js} +1 -1
  130. package/dist/client/assets/{preview-dialog-CFJ93GLJ.js → preview-dialog-zKv5ldt2.js} +1 -1
  131. package/dist/client/assets/{primitives-CmNbb24w.js → primitives-CouL2wae.js} +1 -1
  132. package/dist/client/assets/{profile-BFh5gdC2.js → profile-DPA9Q0AG.js} +1 -1
  133. package/dist/client/assets/project-app-view-C4XLDkyh.js +1 -0
  134. package/dist/client/assets/record-editor-DDgCGxT8.js +1 -0
  135. package/dist/client/assets/registry-CsID0igH.js +2 -0
  136. package/dist/client/assets/{registry-layout-BaxWi9Bz.js → registry-layout-D63u5pGV.js} +1 -1
  137. package/dist/client/assets/{require-capability-BHgnEKCl.js → require-capability-slTAjF6m.js} +1 -1
  138. package/dist/client/assets/{required-auth-layout-DkFHvtsu.js → required-auth-layout-DmTDXihN.js} +1 -1
  139. package/dist/client/assets/{reset-password-Bs3iQANJ.js → reset-password-BoWYfWwd.js} +1 -1
  140. package/dist/client/assets/{roles-BOcbpsIe.js → roles-lCiAQRyM.js} +1 -1
  141. package/dist/client/assets/{scroll-area-D_dyKd-Z.js → scroll-area-OstNgFow.js} +1 -1
  142. package/dist/client/assets/{search-input-By7oI5Q5.js → search-input-hGApBbRj.js} +1 -1
  143. package/dist/client/assets/{secrets-doI38fJ_.js → secrets-CYCFb41e.js} +1 -1
  144. package/dist/client/assets/{sections-editor-CY9-Znlt.js → sections-editor-CX-Vu83z.js} +1 -1
  145. package/dist/client/assets/{select-CAcrdsL_.js → select-B2Z8zd6P.js} +1 -1
  146. package/dist/client/assets/{select-model-MBVN6kuK.js → select-model-DTQjkyLZ.js} +1 -1
  147. package/dist/client/assets/{seo-editor-Sk6QUSv7.js → seo-editor-B_0MSQOk.js} +1 -1
  148. package/dist/client/assets/{settings-layout-kBLQA67v.js → settings-layout-BxkmnZY7.js} +1 -1
  149. package/dist/client/assets/{settings-section-1OO9c1xM.js → settings-section-BSLmy0g7.js} +1 -1
  150. package/dist/client/assets/{sheet-DA4VamFN.js → sheet-vvUTZ74N.js} +1 -1
  151. package/dist/client/assets/{shell-controls-D1OYy0z_.js → shell-controls-CPiHYS5j.js} +1 -1
  152. package/dist/client/assets/{shell-layout-BT7hKb3G.js → shell-layout-CLQoRtBg.js} +1 -1
  153. package/dist/client/assets/{shell-route-loading-vPV1iq7F.js → shell-route-loading-BZUkhIz9.js} +1 -1
  154. package/dist/client/assets/{sidebar-BUXiwafF.js → sidebar-BF6ATMVg.js} +1 -1
  155. package/dist/client/assets/{skeleton-CyRwZcp0.js → skeleton-BTSbewUG.js} +1 -1
  156. package/dist/client/assets/{sortable.esm-8jtXOgrb.js → sortable.esm-D2Iztnx_.js} +1 -1
  157. package/dist/client/assets/{sso-B8ZU6Bz7.js → sso-B2OYFr0O.js} +1 -1
  158. package/dist/client/assets/{store-C95iY6bb.js → store-h4nvryb_.js} +1 -1
  159. package/dist/client/assets/store-registry-DOBSES3V.js +2 -0
  160. package/dist/client/assets/{studio-tools-BvtnsF_A.js → studio-tools-_Wxk2Jd7.js} +1 -1
  161. package/dist/client/assets/{switch-DWK9I380.js → switch-B1RcTAyG.js} +1 -1
  162. package/dist/client/assets/{table-Ct674G4f.js → table-DNlhFM_Z.js} +1 -1
  163. package/dist/client/assets/{tabs-2XCSq7S2.js → tabs-BP5wnGDU.js} +1 -1
  164. package/dist/client/assets/{task-status-DHz44qdi.js → task-status-Cfkktrnr.js} +1 -1
  165. package/dist/client/assets/{textarea-DuWb2193.js → textarea-CC1TqEY9.js} +1 -1
  166. package/dist/client/assets/{toggle-group-BWb6AMW2.js → toggle-group-BzZDRbKW.js} +1 -1
  167. package/dist/client/assets/{toolbar-CGqq02hl.js → toolbar-g55K5knO.js} +1 -1
  168. package/dist/client/assets/{tooltip-B0n0Zj4m.js → tooltip-G94tT-OS.js} +1 -1
  169. package/dist/client/assets/{types-DNkW-qxI.js → types-BsB03XvT.js} +1 -1
  170. package/dist/client/assets/{use-ai-providers-DpINQmua.js → use-ai-providers-COQDzF9I.js} +1 -1
  171. package/dist/client/assets/{use-automations-u8zUfs8N.js → use-automations-CT-gFdPq.js} +1 -1
  172. package/dist/client/assets/{use-capability-C6io7gkh.js → use-capability-D2KaoqX2.js} +1 -1
  173. package/dist/client/assets/{use-clock-tick-KPk_UeMl.js → use-clock-tick-BOKTfr99.js} +1 -1
  174. package/dist/client/assets/{use-collections-DO_bdqzo.js → use-collections-DRIQeBt6.js} +1 -1
  175. package/dist/client/assets/{use-connection-DwZdqHeu.js → use-connection-Crt2igWa.js} +1 -1
  176. package/dist/client/assets/{use-copy-C2wLpsxb.js → use-copy-Bo7YR7vW.js} +1 -1
  177. package/dist/client/assets/{use-create-virtual-mcp-CmdgvCXx.js → use-create-virtual-mcp-CRGQh2w7.js} +1 -1
  178. package/dist/client/assets/{use-debounced-autosave-DYv0JtIS.js → use-debounced-autosave-B_tMK8Rg.js} +1 -1
  179. package/dist/client/assets/{use-debounced-value-Dvdv2Jwo.js → use-debounced-value-zveMYg1e.js} +1 -1
  180. package/dist/client/assets/{use-delete-connection-CkzsoVTI.js → use-delete-connection-Dk3z6UCj.js} +1 -1
  181. package/dist/client/assets/{use-file-configs-9zZJ75I2.js → use-file-configs-CrDClJ-_.js} +1 -1
  182. package/dist/client/assets/{use-infinite-scroll-iBPvCYYm.js → use-infinite-scroll-BHpjwmQy.js} +1 -1
  183. package/dist/client/assets/{use-join-requests-B0B1VhPG.js → use-join-requests-FVgAMfzJ.js} +1 -1
  184. package/dist/client/assets/{use-mcp-client-CR6UtoZn.js → use-mcp-client-K5_7VIIX.js} +1 -1
  185. package/dist/client/assets/{use-mcp-prompts-CrIxoUoW.js → use-mcp-prompts-Cu7AH1TS.js} +1 -1
  186. package/dist/client/assets/{use-mcp-tools-C0xRWDX-.js → use-mcp-tools-D0hBO4XY.js} +1 -1
  187. package/dist/client/assets/{use-members-DjJFYci1.js → use-members-B3P96lQ9.js} +1 -1
  188. package/dist/client/assets/{use-mobile-CI3wHW4c.js → use-mobile-uFY2Z9nU.js} +1 -1
  189. package/dist/client/assets/{use-navigate-to-agent-BHyXMmUh.js → use-navigate-to-agent-BJ7Y365f.js} +1 -1
  190. package/dist/client/assets/{use-org-auth-client-Ca3w1FrO.js → use-org-auth-client-nKlpPXqo.js} +1 -1
  191. package/dist/client/assets/{use-org-sso-CC1p2rvN.js → use-org-sso-5sfrdD50.js} +1 -1
  192. package/dist/client/assets/{use-organization-roles-C2mQGS2C.js → use-organization-roles-BWsrnArQ.js} +1 -1
  193. package/dist/client/assets/{use-organization-settings-CN_9ek_R.js → use-organization-settings-DPauQq3s.js} +1 -1
  194. package/dist/client/assets/{use-registry-connections-DmXZ1gnO.js → use-registry-connections-DrdcXLaN.js} +1 -1
  195. package/dist/client/assets/{use-secrets-JgTQvjZL.js → use-secrets-BguaFZij.js} +1 -1
  196. package/dist/client/assets/{use-status-sounds-D-qWJ3JY.js → use-status-sounds-BiVeY5gM.js} +1 -1
  197. package/dist/client/assets/{use-view-mode-DBqNTYqM.js → use-view-mode-B2FAlmRw.js} +1 -1
  198. package/dist/client/assets/{use-virtual-mcp-ouY2cM52.js → use-virtual-mcp-BFwaSaJR.js} +1 -1
  199. package/dist/client/assets/useInfiniteQuery-CD6eIajW.js +1 -0
  200. package/dist/client/assets/useSuspenseInfiniteQuery-Cg2Z6nlx.js +1 -0
  201. package/dist/client/assets/{useSuspenseQueries-ynze-oJ6.js → useSuspenseQueries-AlJYndes.js} +1 -1
  202. package/dist/client/assets/{variant-calendar-CkFYC222.js → variant-calendar-BTV-EEUJ.js} +1 -1
  203. package/dist/client/assets/{view-mode-toggle-D0X3i5sw.js → view-mode-toggle-x1qOeuWA.js} +1 -1
  204. package/dist/client/index.html +1 -1
  205. package/dist/server/cli.js +115 -30
  206. package/package.json +1 -1
  207. package/dist/client/assets/page-seo-sheet-CIG6B5Bw.js +0 -1
  208. package/dist/client/assets/project-app-view-BlrXuRv5.js +0 -1
  209. package/dist/client/assets/record-editor-C6KE7bzf.js +0 -1
  210. package/dist/client/assets/registry-1YsyUjwX.js +0 -2
  211. package/dist/client/assets/store-registry-FeOrJ1SK.js +0 -2
  212. package/dist/client/assets/useInfiniteQuery-DLRLsmsK.js +0 -1
  213. package/dist/client/assets/useSuspenseInfiniteQuery-C3kvI5Fr.js +0 -1
@@ -13715,6 +13715,48 @@ function syncOriginRemote(repoDir, cloneUrl) {
13715
13715
  gitSync(["remote", "set-url", "origin", cloneUrl], { cwd: repoDir });
13716
13716
  }
13717
13717
 
13718
+ // daemon/git/git-async.ts
13719
+ import { spawn } from "child_process";
13720
+ var DEFAULT_GIT_TIMEOUT_MS2 = 30000;
13721
+ function gitAsync(args, opts) {
13722
+ return new Promise((resolve, reject) => {
13723
+ const asUser = opts.asUser !== false;
13724
+ const spawnOpts = {
13725
+ cwd: opts.cwd,
13726
+ env: opts.env,
13727
+ stdio: ["ignore", "pipe", "pipe"],
13728
+ timeout: opts.timeoutMs ?? DEFAULT_GIT_TIMEOUT_MS2
13729
+ };
13730
+ if (asUser) {
13731
+ spawnOpts.uid = DECO_UID;
13732
+ spawnOpts.gid = DECO_GID;
13733
+ }
13734
+ const child = spawn("git", args, spawnOpts);
13735
+ const out = [];
13736
+ const err = [];
13737
+ child.stdout?.on("data", (d) => out.push(d));
13738
+ child.stderr?.on("data", (d) => err.push(d));
13739
+ child.on("error", (e) => {
13740
+ const gitErr = new Error(\`git \${args.join(" ")}: \${e.message}\`);
13741
+ gitErr.stderr = Buffer.concat(err).toString("utf-8");
13742
+ gitErr.status = -1;
13743
+ reject(gitErr);
13744
+ });
13745
+ child.on("close", (code, signal) => {
13746
+ const stderr = Buffer.concat(err).toString("utf-8");
13747
+ if (code === 0) {
13748
+ resolve(Buffer.concat(out).toString("utf-8").trim());
13749
+ return;
13750
+ }
13751
+ const reason = signal ? \` (killed by \${signal})\` : "";
13752
+ const gitErr = new Error(\`git \${args.join(" ")} exited \${code}\${reason}\${stderr ? \`: \${stderr.trim()}\` : ""}\`);
13753
+ gitErr.stderr = stderr;
13754
+ gitErr.status = code ?? -1;
13755
+ reject(gitErr);
13756
+ });
13757
+ });
13758
+ }
13759
+
13718
13760
  // daemon/routes/git.ts
13719
13761
  function gitEnv3(repoDir) {
13720
13762
  return {
@@ -13736,9 +13778,25 @@ function tryGit2(repoDir, args) {
13736
13778
  return null;
13737
13779
  }
13738
13780
  }
13781
+ async function runGitAsync(repoDir, args, opts) {
13782
+ return gitAsync(["-c", "safe.directory=*", ...args], {
13783
+ cwd: repoDir,
13784
+ env: { ...gitEnv3(repoDir), ...opts?.env }
13785
+ });
13786
+ }
13787
+ async function tryGitAsync(repoDir, args) {
13788
+ try {
13789
+ return await runGitAsync(repoDir, args);
13790
+ } catch {
13791
+ return null;
13792
+ }
13793
+ }
13739
13794
  function isGitRepo(repoDir) {
13740
13795
  return tryGit2(repoDir, ["rev-parse", "--git-dir"]) !== null;
13741
13796
  }
13797
+ function repoNotReadyResponse() {
13798
+ return jsonResponse({ error: "repository not initialized", notReady: true }, 409);
13799
+ }
13742
13800
  function computeWorkingTreeStatus(repoDir) {
13743
13801
  const porcelain = runGit2(repoDir, ["status", "--porcelain=v1", "-z"]);
13744
13802
  const files = parsePorcelainFiles(porcelain);
@@ -13810,37 +13868,40 @@ function computeStatus(repoDir) {
13810
13868
  const divergence = computeBranchDivergence(repoDir);
13811
13869
  return { ...working, ...divergence };
13812
13870
  }
13813
- function readWorkingFile(repoDir, filePath) {
13814
- const abs = path3.join(repoDir, filePath);
13871
+ function readRefFile(repoDir, ref, filePath) {
13872
+ return tryGit2(repoDir, ["show", \`\${ref}:\${filePath}\`]);
13873
+ }
13874
+ async function readWorkingFileAsync(repoDir, filePath) {
13815
13875
  try {
13816
- return fs4.readFileSync(abs, "utf8");
13876
+ return await fs4.promises.readFile(path3.join(repoDir, filePath), "utf8");
13817
13877
  } catch {
13818
13878
  return null;
13819
13879
  }
13820
13880
  }
13821
- function readRefFile(repoDir, ref, filePath) {
13822
- return tryGit2(repoDir, ["show", \`\${ref}:\${filePath}\`]);
13881
+ async function readRefFileAsync(repoDir, ref, filePath) {
13882
+ return tryGitAsync(repoDir, ["show", \`\${ref}:\${filePath}\`]);
13823
13883
  }
13824
- function computeDiff(repoDir) {
13884
+ async function computeDiff(repoDir) {
13825
13885
  const status = computeWorkingTreeStatus(repoDir);
13826
13886
  const paths = [
13827
13887
  ...new Set(status.files.map((f) => f.path).filter((p) => p.length > 0))
13828
13888
  ];
13829
13889
  const diffs = {};
13830
- for (const filePath of paths) {
13890
+ await Promise.all(paths.map(async (filePath) => {
13831
13891
  const file = status.files.find((f) => f.path === filePath);
13832
13892
  const index = file?.index ?? " ";
13833
13893
  const working = file?.working_dir ?? " ";
13834
13894
  const isDeleted = index === "D" || working === "D";
13835
- const isNew = index === "?" && working === "?" || index === "A" || working === "A" || !readRefFile(repoDir, "HEAD", filePath) && !isDeleted;
13895
+ const head2 = await readRefFileAsync(repoDir, "HEAD", filePath);
13896
+ const isNew = index === "?" && working === "?" || index === "A" || working === "A" || !head2 && !isDeleted;
13836
13897
  diffs[filePath] = {
13837
- from: isNew ? null : readRefFile(repoDir, "HEAD", filePath),
13838
- to: isDeleted ? null : readWorkingFile(repoDir, filePath)
13898
+ from: isNew ? null : head2,
13899
+ to: isDeleted ? null : await readWorkingFileAsync(repoDir, filePath)
13839
13900
  };
13840
- }
13901
+ }));
13841
13902
  return { diffs };
13842
13903
  }
13843
- function computeDiffAgainstBase(repoDir, base, headSha) {
13904
+ async function computeDiffAgainstBase(repoDir, base, headSha) {
13844
13905
  assertValidRemoteBranchName(base);
13845
13906
  const branch = tryGit2(repoDir, ["rev-parse", "--abbrev-ref", "HEAD"]);
13846
13907
  if (!branch || branch === "HEAD") {
@@ -13848,10 +13909,17 @@ function computeDiffAgainstBase(repoDir, base, headSha) {
13848
13909
  }
13849
13910
  assertValidRemoteBranchName(branch);
13850
13911
  try {
13851
- runGit2(repoDir, ["fetch", "--depth", "100", "origin", base, branch]);
13912
+ await runGitAsync(repoDir, [
13913
+ "fetch",
13914
+ "--depth",
13915
+ "100",
13916
+ "origin",
13917
+ base,
13918
+ branch
13919
+ ]);
13852
13920
  } catch {}
13853
13921
  if (headSha && /^[0-9a-f]{40}$/i.test(headSha)) {
13854
- tryGit2(repoDir, ["fetch", "--depth", "100", "origin", headSha]);
13922
+ await tryGitAsync(repoDir, ["fetch", "--depth", "100", "origin", headSha]);
13855
13923
  }
13856
13924
  const upstream = \`origin/\${base}\`;
13857
13925
  if (!tryGit2(repoDir, ["rev-parse", "--verify", upstream])) {
@@ -13867,18 +13935,26 @@ function computeDiffAgainstBase(repoDir, base, headSha) {
13867
13935
  let paths = listThreeDotDiffPaths(repoDir, upstream, headRef);
13868
13936
  if (paths.length === 0) {
13869
13937
  try {
13870
- runGit2(repoDir, ["fetch", "--deepen", "500", "origin", base, branch]);
13938
+ await runGitAsync(repoDir, [
13939
+ "fetch",
13940
+ "--deepen",
13941
+ "500",
13942
+ "origin",
13943
+ base,
13944
+ branch
13945
+ ]);
13871
13946
  } catch {}
13872
13947
  paths = listThreeDotDiffPaths(repoDir, upstream, headRef);
13873
13948
  }
13874
13949
  const mergeBase = tryGit2(repoDir, ["merge-base", upstream, headRef]) ?? upstream;
13875
13950
  const diffs = {};
13876
- for (const filePath of paths) {
13877
- diffs[filePath] = {
13878
- from: readRefFile(repoDir, mergeBase, filePath),
13879
- to: readRefFile(repoDir, headRef, filePath)
13880
- };
13881
- }
13951
+ await Promise.all(paths.map(async (filePath) => {
13952
+ const [from, to] = await Promise.all([
13953
+ readRefFileAsync(repoDir, mergeBase, filePath),
13954
+ readRefFileAsync(repoDir, headRef, filePath)
13955
+ ]);
13956
+ diffs[filePath] = { from, to };
13957
+ }));
13882
13958
  return { diffs, mergeBaseSha: mergeBase.trim() };
13883
13959
  }
13884
13960
  function listThreeDotDiffPaths(repoDir, leftRef, rightRef) {
@@ -14005,7 +14081,7 @@ function discard(deps, filepaths) {
14005
14081
  function makeGitStatusHandler(deps) {
14006
14082
  return async (_req) => {
14007
14083
  if (!isGitRepo(deps.repoDir)) {
14008
- return jsonResponse({ error: "repository not initialized", notReady: true }, 409);
14084
+ return repoNotReadyResponse();
14009
14085
  }
14010
14086
  try {
14011
14087
  return jsonResponse(computeStatus(deps.repoDir));
@@ -14017,7 +14093,7 @@ function makeGitStatusHandler(deps) {
14017
14093
  function makeGitDiffHandler(deps) {
14018
14094
  return async (req) => {
14019
14095
  if (!isGitRepo(deps.repoDir)) {
14020
- return jsonResponse({ error: "repository not initialized", notReady: true }, 409);
14096
+ return repoNotReadyResponse();
14021
14097
  }
14022
14098
  try {
14023
14099
  let base;
@@ -14033,7 +14109,7 @@ function makeGitDiffHandler(deps) {
14033
14109
  headSha = rawHead;
14034
14110
  } catch {}
14035
14111
  }
14036
- const result = base ? computeDiffAgainstBase(deps.repoDir, base, headSha) : computeDiff(deps.repoDir);
14112
+ const result = base ? await computeDiffAgainstBase(deps.repoDir, base, headSha) : await computeDiff(deps.repoDir);
14037
14113
  return jsonResponse(result);
14038
14114
  } catch (err) {
14039
14115
  if (err instanceof InvalidRemoteBranchNameError) {
@@ -14045,6 +14121,9 @@ function makeGitDiffHandler(deps) {
14045
14121
  }
14046
14122
  function makeGitPublishHandler(deps) {
14047
14123
  return async (req) => {
14124
+ if (!isGitRepo(deps.repoDir)) {
14125
+ return repoNotReadyResponse();
14126
+ }
14048
14127
  let body;
14049
14128
  try {
14050
14129
  body = await parseJsonBody(req);
@@ -14060,6 +14139,9 @@ function makeGitPublishHandler(deps) {
14060
14139
  }
14061
14140
  function makeGitDiscardHandler(deps) {
14062
14141
  return async (req) => {
14142
+ if (!isGitRepo(deps.repoDir)) {
14143
+ return repoNotReadyResponse();
14144
+ }
14063
14145
  let body;
14064
14146
  try {
14065
14147
  body = await parseJsonBody(req);
@@ -14080,6 +14162,9 @@ function makeGitDiscardHandler(deps) {
14080
14162
  }
14081
14163
  function makeGitRebaseHandler(deps) {
14082
14164
  return async (req) => {
14165
+ if (!isGitRepo(deps.repoDir)) {
14166
+ return repoNotReadyResponse();
14167
+ }
14083
14168
  let body;
14084
14169
  try {
14085
14170
  body = await parseJsonBody(req);
@@ -72494,7 +72579,7 @@ var claudeCodeHarnessFactory = {
72494
72579
  };
72495
72580
 
72496
72581
  // ../../node_modules/.bun/ai-sdk-provider-codex-cli@1.2.2+3c5d820c62823f0b/node_modules/ai-sdk-provider-codex-cli/dist/index.js
72497
- import { spawn } from "child_process";
72582
+ import { spawn as spawn2 } from "child_process";
72498
72583
  import { randomUUID, randomBytes } from "crypto";
72499
72584
  import { createRequire as createRequire2 } from "module";
72500
72585
  import { mkdtempSync as mkdtempSync3, writeFileSync as writeFileSync2, rmSync as rmSync2, readFileSync as readFileSync3 } from "fs";
@@ -74384,7 +74469,7 @@ var ExecLanguageModel = class {
74384
74469
  const stream = new ReadableStream({
74385
74470
  start: (controller) => {
74386
74471
  const startTime = Date.now();
74387
- const child = spawn(cmd, args, { env, cwd, stdio: ["pipe", "pipe", "pipe"] });
74472
+ const child = spawn2(cmd, args, { env, cwd, stdio: ["pipe", "pipe", "pipe"] });
74388
74473
  child.stdin.write(promptText);
74389
74474
  child.stdin.end();
74390
74475
  controller.enqueue({ type: "stream-start", warnings });
@@ -77011,7 +77096,7 @@ var AppServerRpcClient = class extends EventEmitter {
77011
77096
  const args = [...base.args, "app-server", "--listen", "stdio://"];
77012
77097
  this.lastStderr = "";
77013
77098
  this.expectedExitSignal = undefined;
77014
- this.child = spawn(base.cmd, args, {
77099
+ this.child = spawn2(base.cmd, args, {
77015
77100
  stdio: ["pipe", "pipe", "pipe"],
77016
77101
  env: {
77017
77102
  ...process.env,
@@ -78133,7 +78218,7 @@ import fs7 from "fs";
78133
78218
  import path5 from "path";
78134
78219
  import { Readable, Transform } from "stream";
78135
78220
  import { pipeline as pipeline2 } from "stream/promises";
78136
- import { spawn as spawn2 } from "child_process";
78221
+ import { spawn as spawn3 } from "child_process";
78137
78222
  var TRANSFER_DEADLINE_MS = 5 * 60000;
78138
78223
  function spawnOpts(extra = {}) {
78139
78224
  return { ...extra };
@@ -78418,7 +78503,7 @@ function makeGrepHandler(deps) {
78418
78503
  args.push("--glob", body.glob);
78419
78504
  args.push("--", body.pattern, searchPath);
78420
78505
  const limit = body.limit ?? 250;
78421
- const child = spawn2("rg", args, spawnOpts({
78506
+ const child = spawn3("rg", args, spawnOpts({
78422
78507
  cwd: deps.repoDir,
78423
78508
  stdio: ["ignore", "pipe", "pipe"]
78424
78509
  }));
@@ -80864,7 +80949,7 @@ ${$}`;_(Z);return}if(E(null,B),t.strategy==="count"){if(w--,w===0)_()}if(t.strat
80864
80949
  SELECT * FROM link_sandboxes WHERE handle = $handle
80865
80950
  `);function _(v){if(t===void 0)return!0;let h=wM(v),D=h&&wM(t)?YVu(t):t,g=h?YVu(v):WVu(v),O=bQt(D,g);return O===""||!O.startsWith("..")&&!QQt(O)}return{upsert(v){f.run({$handle:v.handle,$status:v.status,$sandboxPath:v.sandboxPath,$port:v.port??null,$previewUrl:v.previewUrl??null,$repoCloneUrl:v.repoCloneUrl??null,$branch:v.branch??null,$projectName:v.projectName??null,$error:v.error??null,$now:Date.now()})},list(){return l.all().map(X1i)},reconcile(){let v=Date.now();for(let h of l.all().map(X1i)){if(!_(h.sandboxPath)){c.run({$handle:h.handle,$now:v});continue}if(!wM(h.sandboxPath)){E.run({$handle:h.handle,$now:v});continue}if(h.status==="spawning"||h.status==="ready"||h.status==="failed"||h.status==="missing")$.run({$handle:h.handle,$now:v})}return l.all().map(X1i)},prune(v){let h=[],D=[],g=this.reconcile();for(let O of g){if(!_(O.sandboxPath)){D.push({handle:O.handle,sandboxPath:O.sandboxPath,reason:"outside_root",deletedFiles:!1});continue}if(v.missing&&O.status==="missing"){w.run({$handle:O.handle}),h.push({handle:O.handle,sandboxPath:O.sandboxPath,reason:"missing",deletedFiles:!1});continue}if(!v.merged||!wM(O.sandboxPath))continue;if(O.branch===null||O.branch.trim()===""){D.push({handle:O.handle,sandboxPath:O.sandboxPath,reason:"no_branch",deletedFiles:!1});continue}if(!p2(O.sandboxPath,["rev-parse","--is-inside-work-tree"]).ok){D.push({handle:O.handle,sandboxPath:O.sandboxPath,reason:"git_unavailable",deletedFiles:!1});continue}let Z=p2(O.sandboxPath,["status","--porcelain"]);if(!Z.ok){D.push({handle:O.handle,sandboxPath:O.sandboxPath,reason:"git_unavailable",deletedFiles:!1});continue}if(Z.stdout.trim()!==""){D.push({handle:O.handle,sandboxPath:O.sandboxPath,reason:"dirty_worktree",deletedFiles:!1});continue}let B=zVu(O.sandboxPath,O.branch);if(B===null){D.push({handle:O.handle,sandboxPath:O.sandboxPath,reason:"git_unavailable",deletedFiles:!1});continue}if(!B){D.push({handle:O.handle,sandboxPath:O.sandboxPath,reason:"branch_not_merged",deletedFiles:!1});continue}LQt(O.sandboxPath,{recursive:!0,force:!0}),w.run({$handle:O.handle}),h.push({handle:O.handle,sandboxPath:O.sandboxPath,reason:"merged",deletedFiles:!0})}return{removed:h,skipped:D}},delete(v){w.run({$handle:v})},inspect(v){let h=d.get({$handle:v});if(h===null)return null;let D=X1i(h),g=0,O=null;if(wM(D.sandboxPath)&&p2(D.sandboxPath,["rev-parse","--is-inside-work-tree"]).ok){let Z=p2(D.sandboxPath,["status","--porcelain"]);if(Z.ok){let B=Z.stdout.trim();g=B===""?0:B.split(`
80866
80951
  `).length}if(D.branch!==null&&D.branch.trim()!=="")O=zVu(D.sandboxPath,D.branch)}return{handle:D.handle,branch:D.branch,sandboxPath:D.sandboxPath,dirtyCount:g,merged:O}},close(){u.close()}}}var vHi=()=>{};function HVu(i,u){let t=u?[["umount","-f",i]]:[["fusermount","-u",i],["umount",i]];for(let f of t)if(Bun.spawnSync(f,{stdout:"ignore",stderr:"ignore",timeout:5000}).exitCode===0)break}import{existsSync as qQt,readdirSync as VQt}from"fs";import{rm as rQt}from"fs/promises";import{join as bVu}from"path";async function RVu(i,u={}){let t=u.detach??mQt,f=u.exists??qQt,l=u.readdir??(($)=>VQt($)),c=u.rm??(($)=>rQt($,{recursive:!0,force:!0})),E=bVu(i,"org");if(f(E))for(let $ of l(E))t(bVu(E,$));await c(i)}var mQt=(i)=>HVu(i,process.platform==="darwin");var CVu=()=>{};import{join as eQt}from"path";function MVu(i){let u=i.purge??RVu;return{stopSandbox(t){return i.provider.deleteSandbox(t)},inspectSandbox(t){return i.registry.inspect(t)},async removeSandbox(t){try{return await u6(async()=>{if(await i.provider.deleteSandbox(t),i.provider.hasHandle(t))throw Error("Can't delete \u2014 run in progress");let l=i.registry.inspect(t)?.sandboxPath??eQt(i.dataDir,"sandboxes",t);await u(l)},{maxAttempts:2,minTimeout:250,jitter:0}),i.registry.delete(t),{ok:!0}}catch(f){let l=f instanceof J6?f.cause:f;return{ok:!1,error:l instanceof Error?l.message:String(l)}}}}}var qVu=N(()=>{Bl();CVu()});import{randomBytes as aQt}from"crypto";import{mkdir as oQt}from"fs/promises";import{createServer as sQt}from"net";import{join as pQt}from"path";function VVu(i,u){return Error(`sandbox failed to start: ${i}`,{cause:u})}function iHt(i){if(!(i instanceof Error))return!1;return i.name==="TimeoutError"||/timed out|timeout|operation was aborted|aborted/i.test(i.message)}function rVu(i){if(i instanceof Error){let u=i.cause;if(u instanceof Error&&u.message)return u.message;return i.message}return String(i)}function uHt(i){if(!i)return null;let u=i.trim().replace(/\/+$/,"");if(!u)return null;let t=u.split(/[/:]/).filter(Boolean).at(-1);if(!t)return null;return t.replace(/\.git$/i,"")||null}function tHt(i){return{repoCloneUrl:i.repo?.cloneUrl??null,branch:i.repo?.branch??null,projectName:uHt(i.repo?.cloneUrl)}}function mVu(i){let u=i.maxSandboxes??20,t=new Map,f=i.pickPort??fHt,l=i.fetchImpl??fetch,c=i.resolvePreviewUrl??((g,O)=>`http://127.0.0.1:${O}`),E=(g)=>pQt(i.dataDir,"sandboxes",g),$=(g)=>{try{i.registry?.upsert(g)}catch(O){console.warn(`[user-desktop] failed to persist sandbox lifecycle handle=${g.handle} status=${g.status}:`,O)}},w=(g)=>{try{i.onEvent?.(g)}catch{}},d=async(g)=>{let O=new AbortController,Z=setTimeout(()=>O.abort(),1500);try{let B=await l(`${g}/health`,{signal:O.signal});if(!B.ok)console.warn(`[user-desktop] probe ${g}/health \u2192 ${B.status} (treating as dead)`);return B.ok}catch(B){return console.warn(`[user-desktop] probe ${g}/health failed: ${B instanceof Error?B.message:String(B)} (treating as dead)`),!1}finally{clearTimeout(Z)}},_=(g)=>{console.warn(`[user-desktop] evicting dead daemon handle=${g.handle} port=${g.port}`);try{g.process.kill("SIGTERM")}catch{}if(t.get(g.handle)===g)t.delete(g.handle),$({handle:g.handle,status:"stopped",sandboxPath:E(g.handle),port:null,previewUrl:null,...g.registryMetadata,error:null}),w({handle:g.handle,phase:"evicted"})},v=new Map;function h(){if(t.size<u)return;let g=[...t.values()].filter((Z)=>Z.activeDispatchCount===0).sort((Z,B)=>Z.lastUsedAt-B.lastUsedAt);if(g.length===0){console.warn(`[user-desktop] at cap ${t.size}/${u} but every sandbox is pinned (active dispatch) \u2014 exceeding cap temporarily`);return}let O=g[0];console.log(`[user-desktop] evicting LRU victim handle=${O.handle} port=${O.port} (cap ${u} reached, size=${t.size})`);try{O.process.kill("SIGTERM")}catch{}t.delete(O.handle),$({handle:O.handle,status:"stopped",sandboxPath:E(O.handle),port:null,previewUrl:null,...O.registryMetadata,error:null}),w({handle:O.handle,phase:"evicted"})}let D=async(g)=>{let O=tHt(g),Z=E(g.handle);$({handle:g.handle,status:"spawning",sandboxPath:Z,port:null,previewUrl:null,...O,error:null}),w({handle:g.handle,phase:"spawning"}),h();let B,F=null,y;try{await oQt(Z,{recursive:!0}),console.log(`[user-desktop] ensure handle=${g.handle} repo=${g.repo?.cloneUrl??"(none)"} branch=${g.repo?.branch??"(none)"} runtime=${g.workload?.runtime??"(autodetect)"} pm=${g.workload?.packageManager??"(autodetect)"}`),y=aQt(24).toString("hex");let[j,A]=await Promise.all([f(),f()]);B=j,console.log(`[user-desktop] spawn handle=${g.handle} port=${B} devPort=${A} workdir=${Z}`),F=await Promise.resolve(i.spawnDaemon({workdir:Z,handle:g.handle,port:B,daemonToken:y,offloadAllowedHosts:g.offloadAllowedHosts??[],offloadAllowSameHostDev:g.offloadAllowSameHostDev??!1,orgFsConfigJson:g.orgFsConfigJson}));try{await i.waitForHealth(B)}catch(n){throw VVu("the sandbox didn't come online in time",n)}console.log(`[user-desktop] healthy handle=${g.handle} port=${B} \u2014 posting config`);try{await i.postConfig(B,A,{repo:g.repo,workload:g.workload,operator:g.operator},y)}catch(n){throw VVu(iHt(n)?"configuration timed out":"the sandbox rejected its configuration",n)}}catch(j){if(console.error(`[user-desktop] sandbox bring-up failed handle=${g.handle} port=${B??"(none)"}${F?" (killing daemon)":""}:`,j),F)try{F.kill("SIGKILL")}catch{}throw w({handle:g.handle,phase:"failed",error:rVu(j)}),$({handle:g.handle,status:"failed",sandboxPath:Z,port:null,previewUrl:null,...O,error:rVu(j)}),j}if(!F||B===void 0)throw Error("sandbox bring-up invariant violated");let T=`http://127.0.0.1:${B}`,U=c(g.handle,B);console.log(`[user-desktop] ready handle=${g.handle} port=${B} sandboxApiUrl=${T} previewUrl=${U}`);let I={handle:g.handle,port:B,process:F,sandboxApiUrl:T,previewUrl:U,lastUsedAt:Date.now(),activeDispatchCount:0,daemonToken:y,registryMetadata:O};if(t.set(g.handle,I),$({handle:g.handle,status:"ready",sandboxPath:Z,port:B,previewUrl:U,...O,error:null}),w({handle:g.handle,phase:"ready",port:B,previewUrl:U}),F.exited)F.exited.then(()=>{if(t.get(g.handle)===I)console.warn(`[user-desktop] daemon process exited unexpectedly handle=${g.handle} port=${B} \u2014 removing from cache`),t.delete(g.handle),$({handle:g.handle,status:"stopped",sandboxPath:Z,port:null,previewUrl:null,...O,error:null}),w({handle:g.handle,phase:"evicted"});else console.log(`[user-desktop] daemon process exited handle=${g.handle} port=${B} (already replaced/removed)`)});return{sandboxApiUrl:T,previewUrl:U,port:B}};return{async ensureSandbox(g){let O=t.get(g.handle);if(O){if(await d(O.sandboxApiUrl))return console.log(`[user-desktop] cache hit handle=${g.handle} port=${O.port} (alive)`),O.lastUsedAt=Date.now(),{sandboxApiUrl:O.sandboxApiUrl,previewUrl:O.previewUrl,port:O.port};console.warn(`[user-desktop] cache stale handle=${g.handle} port=${O.port} \u2014 respawning`),_(O)}let Z=v.get(g.handle);if(Z)return console.log(`[user-desktop] joining in-flight ensure handle=${g.handle}`),Z;let B=D(g).finally(()=>{v.delete(g.handle)});return v.set(g.handle,B),B},proxyPort(g){let O=t.get(g);if(O)O.lastUsedAt=Date.now();return O?.port??null},getDaemonToken(g){return t.get(g)?.daemonToken??null},hasHandle(g){return t.has(g)||v.has(g)},recordHit(g){let O=t.get(g);if(O)O.lastUsedAt=Date.now()},acquireDispatch(g){let O=t.get(g);if(!O)return()=>{};O.activeDispatchCount+=1;let Z=!1;return()=>{if(Z)return;Z=!0;let B=t.get(g);if(B)B.activeDispatchCount=Math.max(0,B.activeDispatchCount-1)}},listSandboxes(){return[...t.values()]},async deleteSandbox(g){let O=t.get(g);if(!O){console.log(`[user-desktop] delete handle=${g} (not found, no-op)`);return}if(O.activeDispatchCount>0){console.warn(`[user-desktop] delete handle=${g} port=${O.port} REFUSED \u2014 ${O.activeDispatchCount} active dispatch(es) in flight`);return}console.log(`[user-desktop] delete handle=${g} port=${O.port}`);try{O.process.kill("SIGTERM")}catch{}t.delete(g),$({handle:g,status:"stopped",sandboxPath:E(g),port:null,previewUrl:null,repoCloneUrl:null,branch:null,projectName:null,error:null}),w({handle:g,phase:"deleted"})},async shutdown(){console.log(`[user-desktop] shutdown \u2014 killing ${t.size} sandbox(es)`);for(let g of t.values())try{g.process.kill("SIGTERM")}catch{}t.clear()}}}function fHt(){return new Promise((i,u)=>{let t=sQt();t.unref(),t.on("error",u),t.listen(0,"127.0.0.1",()=>{let f=t.address();if(f&&typeof f==="object"){let l=f.port;t.close(()=>i(l))}else t.close(()=>u(Error("could not allocate port")))})})}var eVu=()=>{};import{randomUUID as lHt}from"crypto";import{hostname as cHt}from"os";async function aVu(i){let u=cHt()||void 0;i.monitor?.onMachine?.(u??"this machine");let t=XHu(i.dataDir,{outFd:i.logFd,perSandboxLog:i.perSandboxLogs,hotReload:i.hotReload}),f=K1i({path:J1i(i.dataDir),managedSandboxRoot:`${i.dataDir}/sandboxes`}),l=!1,c=()=>{if(l)return;l=!0;try{f.close()}catch{}};try{let E=0,$=mVu({dataDir:i.dataDir,registry:f,resolvePreviewUrl:(n,q)=>E>0?`http://${n}.localhost:${E}`:`http://127.0.0.1:${q}`,spawnDaemon:async(n)=>{let q={DAEMON_BOOT_ID:lHt(),APP_ROOT:n.workdir,PROXY_PORT:String(n.port),DAEMON_TOKEN:n.daemonToken,OFFLOAD_ALLOWED_HOSTS:n.offloadAllowedHosts.join(","),...n.offloadAllowSameHostDev?{OFFLOAD_ALLOW_SAME_HOST_DEV:"1"}:{}};if(n.orgFsConfigJson){let Y=await YHu(i.dataDir);if(Y)q.ORGFS_CONFIG=n.orgFsConfigJson,q.ORGFS_RCLONE_PATH=Y}let S=await t({workdir:n.workdir,env:q,daemonPort:n.port});return{port:n.port,kill:(Y)=>S.kill(Y),exited:S.exited.then(()=>{return})}},postConfig:async(n,q,S,Y)=>{let V={port:q};if(S.workload)V.runtime=S.workload.runtime,V.packageManager={name:S.workload.packageManager,...S.workload.packageManagerPath?{path:S.workload.packageManagerPath}:{}};let L={application:V},Ei=sd(S.operator??null);if(Ei)L.operator=Ei;if(S.repo)L.git={repository:{cloneUrl:S.repo.cloneUrl,branch:S.repo.branch},...S.repo.userName&&S.repo.userEmail?{identity:{userName:S.repo.userName,userEmail:S.repo.userEmail}}:{}};await EO(`http://127.0.0.1:${n}`,Y,L)},waitForHealth:async(n)=>{await K4i(`http://127.0.0.1:${n}`)},maxSandboxes:20,onEvent:i.monitor?.onEvent}),w=await PVu({port:i.port,lookupSandboxPort:(n)=>$.proxyPort(n)});E=w.port,console.log(`Local ingress listening on http://127.0.0.1:${w.port} (use http://<handle>.localhost:${w.port}/)`),i.monitor?.onIngress?.(w.port);let d=LHu({provider:$}),_=async()=>{let n=await R2({dataDir:i.dataDir,target:i.clusterBaseUrl});if(!n)throw Object.assign(Error(`Session for ${i.clusterBaseUrl} is no longer valid \u2014 run \`deco auth login --target ${i.clusterBaseUrl}\` and restart \`deco link\`.`),{fatal:!0});return n.accessToken},v=await KVu(i.dataDir),h=process.env.npm_package_version??"0.0.0",D=await _Hi(),g=XVu(D,{onChange:(n)=>{console.log(`[link-daemon] capabilities detected: +${n.join(",")} (now: ${D.join(",")})`)}}),O=pLi({path:`${i.dataDir}/link/outbox.sqlite`});O.clear();let Z=()=>{},B=new AbortController,F={clusterBaseUrl:i.clusterBaseUrl,getAccessToken:_,provider:$,outbox:O,controlHandler:d,capabilities:D,machineId:v,cliVersion:h,previewPort:w.port,onConnected:()=>{i.monitor?.onCluster?.("linked"),console.log(`Linked to ${i.clusterBaseUrl}`)},onShutdown:()=>Z(),runLifetimeSignal:B.signal};console.log(`[link-daemon] transport=tunnel cluster=${i.clusterBaseUrl}`);let y=await vVu(F);console.log("[link-daemon] active transport=tunnel");let T,U=new Promise((n)=>{T=n}),I=!1,j=async()=>{if(I)return;I=!0,B.abort(),console.log(`
80867
- Shutting down\u2026`),g();try{await y.close()}catch{}try{await w.stop()}catch{}try{await $.shutdown()}catch{}try{O.close()}catch{}c(),T(0)};process.on("SIGINT",()=>void j()),process.on("SIGTERM",()=>void j()),Z=()=>{console.log("Disconnect requested from the Studio web UI \u2014 shutting down. Run `bunx decocms@latest link` to reconnect."),j()},y.closed.then(()=>{if(i.monitor?.onCluster?.("closed"),!I)console.error("Cluster connection closed permanently; exiting."),j()});let A=MVu({provider:$,registry:f,dataDir:i.dataDir});return{stopped:U,stop:j,stopSandbox:A.stopSandbox,removeSandbox:A.removeSandbox,inspectSandbox:A.inspectSandbox}}catch(E){throw c(),E}}var oVu=N(()=>{VLi();JC();JHu();WHu();zHu();izi();hVu();xVu();JVu();SVu();XC();vHi();qVu();eVu()});function hHi(i){return i.map((u)=>typeof u==="string"?u:String(u)).join(" ")}var S1i;var DHi=N(()=>{S1i={name:"decocms",version:"3.100.2",description:"Deco CMS \u2014 Self-hostable MCP Gateway for managing AI connections and tools",author:"Deco team",repository:{type:"git",url:"git+https://github.com/decocms/studio.git",directory:"apps/mesh"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:'bun run migrate && concurrently "bun run dev:client" "bun run dev:server"',"dev:servers":'concurrently "bun run dev:client" "bun run dev:server"',"dev:client":"vite dev","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts","build:client":"bun --bun vite build","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","db:migrate":"bun run ./dist/server/migrate.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts",test:"bun test","test:ct":"playwright test -c playwright-ct.config.ts","test:ct:ui":"playwright test -c playwright-ct.config.ts --ui","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts","smoke:link":"bun run scripts/smoke-link.ts",prepublishOnly:"bun run build:client && bun run build:server"},optionalDependencies:{"@anthropic-ai/claude-agent-sdk":"^0.3.181","@duckdb/node-api":"^1.5.0-r.1","@openai/codex":"0.141.0","@openai/codex-darwin-arm64":"npm:@openai/codex@0.141.0-darwin-arm64","@openai/codex-darwin-x64":"npm:@openai/codex@0.141.0-darwin-x64","@openai/codex-linux-arm64":"npm:@openai/codex@0.141.0-linux-arm64","@openai/codex-linux-x64":"npm:@openai/codex@0.141.0-linux-x64","@openai/codex-win32-arm64":"npm:@openai/codex@0.141.0-win32-arm64","@openai/codex-win32-x64":"npm:@openai/codex@0.141.0-win32-x64"},dependencies:{"@ai-sdk/anthropic":"^3.0.85","@ai-sdk/google":"^3.0.83","@ai-sdk/openai":"^3.0.73","@anthropic-ai/sdk":"^0.105.0","@aws-sdk/client-s3":"^3.1013.0","@aws-sdk/client-sts":"^3.1013.0","@aws-sdk/lib-storage":"^3.1013.0","@aws-sdk/s3-request-presigner":"^3.1013.0","@clickhouse/client":"^1.8.1","@dbos-inc/dbos-sdk":"^4.21.6","@dnd-kit/core":"^6.3.1","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@inkjs/ui":"^2.0.0","@modelcontextprotocol/ext-apps":"^1.7.1","@openrouter/ai-sdk-provider":"^2.9.1","@opentelemetry/core":"^2.6.0","@tanstack/react-virtual":"3.13.24","@xterm/addon-fit":"^0.11.0","@xterm/xterm":"^6.0.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0","@nats-io/jetstream":"3.4.0","@nats-io/kv":"3.4.0","@nats-io/nats-core":"3.4.0","@nats-io/transport-node":"3.4.0",kysely:"^0.28.12","node-pty":"^1.0.0","posthog-js":"^1.371.1","posthog-node":"^5.0.0",react:"^19.2.6","react-dom":"^19.2.6"},devDependencies:{"@ai-sdk/provider":"^3.0.10","@ai-sdk/react":"^3.0.210","@better-auth/sso":"1.4.1","@daveyplate/better-auth-ui":"^3.2.7","@deco/ui":"workspace:*","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/harness":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/mesh-sdk":"workspace:*","@decocms/runtime":"workspace:*","@decocms/sandbox":"workspace:*","@decocms/std":"workspace:*","@decocms/tunnel":"workspace:*","@floating-ui/react":"^0.27.16","@happy-dom/global-registrator":"^20.9.0","@hookform/resolvers":"^5.2.2","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.29.0","@monaco-editor/react":"^4.7.0","@nats-io/jwt":"0.0.10-5","@opentelemetry/api":"^1.9.0","@opentelemetry/api-logs":"^0.211.0","@opentelemetry/exporter-logs-otlp-proto":"^0.211.0","@opentelemetry/exporter-prometheus":"^0.208.0","@opentelemetry/exporter-trace-otlp-proto":"^0.207.0","@opentelemetry/instrumentation-runtime-node":"^0.24.0","@opentelemetry/resources":"^2.6.0","@opentelemetry/sdk-logs":"^0.211.0","@opentelemetry/sdk-metrics":"^2.2.0","@opentelemetry/sdk-node":"^0.207.0","@opentelemetry/sdk-trace-base":"^2.5.0","@playwright/experimental-ct-react":"1.59.1","@playwright/test":"^1.58.2","@radix-ui/react-avatar":"^1.1.10","@radix-ui/react-checkbox":"^1.3.3","@radix-ui/react-dialog":"^1.1.15","@radix-ui/react-dropdown-menu":"^2.1.16","@radix-ui/react-label":"^2.1.7","@radix-ui/react-select":"^2.2.6","@radix-ui/react-separator":"^1.1.7","@radix-ui/react-slot":"^1.2.3","@radix-ui/react-tabs":"^1.1.13","@rjsf/shadcn":"^6.6.2","@rjsf/utils":"^6.6.2","@rjsf/validator-ajv8":"^6.6.2","@tailwindcss/vite":"^4.1.17","@tanstack/react-query":"5.100.10","@tanstack/react-router":"1.169.2","@testing-library/jest-dom":"^6.9.1","@testing-library/react":"^16.3.2","@tiptap/core":"3.20.2","@tiptap/extension-placeholder":"3.20.2","@tiptap/pm":"3.20.2","@tiptap/react":"3.20.2","@tiptap/starter-kit":"3.20.2","@tiptap/suggestion":"3.20.2","@types/bun":"^1.3.1","@types/google.maps":"^3.65.2","@types/pg":"^8.15.6","@types/react-syntax-highlighter":"^15.5.13","@untitledui/icons":"^0.0.19","@vercel/nft":"^1.1.1","@vitejs/plugin-react":"^5.1.0",ai:"^6.0.208","babel-plugin-react-compiler":"^1.0.0","better-auth":"1.4.22","class-variance-authority":"^0.7.1",clsx:"^2.1.1",concurrently:"^9.2.1",croner:"^9.1.0","date-fns":"^4.1.0",degit:"^2.8.4",hono:"^4.10.7","input-otp":"^1.4.2",jose:"^6.0.11","lucide-react":"^0.468.0",marked:"^15.0.6",nanoid:"^5.1.6",pg:"^8.16.3",prettier:"^3.4.2","react-hook-form":"^7.66.0","react-markdown":"^10.1.0","react-resizable-panels":"^2.1.7","react-syntax-highlighter":"^15.6.1",recharts:"^3.6.0","rehype-raw":"^7.0.0","remark-gfm":"^4.0.0","sass-embedded":"^1.97.2",sonner:"^2.0.7","tailwind-merge":"^3.3.1",tailwindcss:"^4.1.17",typescript:"^5.9.3",vite:"^7.2.1","vite-tsconfig-paths":"^5.1.4",zod:"^4.0.0"},homepage:"https://github.com/decocms/studio",keywords:["mcp","model-context-protocol","ai","gateway","self-hosted","mesh","tools"],license:"MIT",publishConfig:{access:"public"}}});var dM={};Qi(dM,{printBanner:()=>wHt,bannerLines:()=>sVu,BANNER_LINES:()=>Y1i,BANNER_GRADIENT:()=>W1i});function $Ht(i){let u=Number.parseInt(i.slice(1),16);return[u>>16&255,u>>8&255,u&255]}function sVu(i){let u=Y1i.map((t,f)=>{let[l,c,E]=$Ht(W1i[f]);return`\x1B[38;2;${l};${c};${E}m${t}\x1B[39m`});if(i!==void 0)u.push(`\x1B[2m v${i}\x1B[22m`);return u}function wHt(i){console.log("");for(let u of sVu(i))console.log(u);console.log("")}var Y1i,W1i;var TY=N(()=>{Y1i=[" \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 ","\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 "," \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"," \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"," \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"," \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 "," \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 ","\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 "],W1i=["#00ff64","#00ee5e","#00dc56","#00c84e","#00b444","#00a03c","#008832","#006e28"]});import{Box as dHt,Text as pVu}from"ink";import{jsx as _Ht,jsxs as iru}from"react/jsx-runtime";function L1i({version:i}){return iru(dHt,{flexDirection:"column",marginTop:1,children:[Y1i.map((u,t)=>_Ht(pVu,{color:W1i[t],children:u},t)),iru(pVu,{dimColor:!0,children:[" v",i]})]})}var gHi=N(()=>{TY()});function uru(i){let u=i.branch??i.handle,t=[];if(i.dirtyCount>0)t.push(`${i.dirtyCount} uncommitted file${i.dirtyCount===1?"":"s"}`);if(i.merged===!1)t.push("branch not merged");return t.length>0?`\u26A0 ${t.join(", ")} \u2014 delete ${u}? (y/n)`:`Delete ${u}? (y/n)`}function UY(i){return[...i.values()].map((u)=>u.handle).sort((u,t)=>u.localeCompare(t))}function tru(i,u,t){if(i.length===0)return null;let f=u===null?-1:i.indexOf(u);if(f===-1)return t>0?i[0]:i[i.length-1];let l=Math.max(0,Math.min(i.length-1,f+t));return i[l]}function fru(i,u,t){if(t!==u)return t;let f=i.indexOf(u);if(f===-1)return t;return i[f+1]??i[f-1]??null}var BHi={};Qi(BHi,{subscribeLinkState:()=>NHi,setSelectedHandle:()=>OHi,setRemoving:()=>H1i,setPersistedSandboxes:()=>yHt,setPendingConfirm:()=>vM,setMachine:()=>OHt,setLogPath:()=>BHt,setLinkActions:()=>FHt,setIngress:()=>NHt,setDaemonError:()=>ZHt,setClusterUrl:()=>gHt,setCluster:()=>DHt,setActionError:()=>Q1i,resetLinkStateForTests:()=>UHt,removeSandboxRow:()=>ZHi,pushSandboxEvent:()=>THt,getLinkState:()=>_M,applySandboxEvent:()=>lru});function hHt(i){return i==="spawning"||i==="ready"||i==="failed"}function lru(i,u){let t=new Map(i),f=t.get(u.handle);if(u.phase==="evicted"||u.phase==="deleted"){if(f)t.set(u.handle,{...f,port:null,previewUrl:null,status:"stopped",error:null});return t}return t.set(u.handle,{handle:u.handle,port:u.port??f?.port??null,previewUrl:u.previewUrl??f?.previewUrl??null,status:u.phase,error:u.phase==="failed"?u.error??"failed":null,projectName:f?.projectName??null,branch:f?.branch??null,sandboxPath:f?.sandboxPath??null}),t}function cru(){return{cluster:"connecting",clusterUrl:null,ingressUrl:null,ingressPort:null,machine:null,cap:vHt,sandboxes:new Map,daemonError:null,logPath:null,selectedHandle:null,pendingConfirm:null,removingHandles:new Set,actionError:null,actions:null}}function X$(){for(let i of z1i)i()}function _M(){return tf}function NHi(i){return z1i.add(i),()=>z1i.delete(i)}function DHt(i){tf={...tf,cluster:i},X$()}function gHt(i){tf={...tf,clusterUrl:i},X$()}function NHt(i,u){tf={...tf,ingressPort:i,ingressUrl:u},X$()}function OHt(i){tf={...tf,machine:i},X$()}function ZHt(i){tf={...tf,daemonError:i},X$()}function BHt(i){tf={...tf,logPath:i},X$()}function OHi(i){tf={...tf,selectedHandle:i},X$()}function vM(i){tf={...tf,pendingConfirm:i},X$()}function Q1i(i){tf={...tf,actionError:i},X$()}function H1i(i,u){if(tf.removingHandles.has(i)===u)return;let t=new Set(tf.removingHandles);if(u)t.add(i);else t.delete(i);tf={...tf,removingHandles:t},X$()}function FHt(i){tf={...tf,actions:i},X$()}function ZHi(i){let u=UY(tf.sandboxes),t=fru(u,i,tf.selectedHandle),f=new Map(tf.sandboxes);f.delete(i);let l=new Set(tf.removingHandles);l.delete(i),tf={...tf,sandboxes:f,selectedHandle:t,pendingConfirm:null,removingHandles:l},X$()}function yHt(i){let u=new Map;for(let t of i)u.set(t.handle,{handle:t.handle,port:t.port,previewUrl:t.previewUrl,status:t.status,error:t.error,projectName:t.projectName,branch:t.branch,sandboxPath:t.sandboxPath});for(let[t,f]of tf.sandboxes)if(hHt(f.status))u.set(t,f);tf={...tf,sandboxes:u},X$()}function THt(i){tf={...tf,sandboxes:lru(tf.sandboxes,i)},X$()}function UHt(){tf=cru(),z1i.clear()}var vHt=20,tf,z1i;var hM=N(()=>{tf=cru(),z1i=new Set});import{spawn as PHt}from"child_process";function xHt(i){if(i==="darwin")return"open";if(i==="win32")return"start";return"xdg-open"}function Eru(i,u=process.platform){let t=xHt(u);try{PHt(t,[i],{stdio:"ignore",detached:!0}).unref()}catch{}}var $ru=()=>{};function wru(i,u={}){let t=u.openUrl??Eru,f=_M(),l=UY(f.sandboxes),c=f.selectedHandle!==null&&l.includes(f.selectedHandle)?f.selectedHandle:l[0]??null,E=f.actions;switch(i.type){case"move":OHi(tru(l,f.selectedHandle,i.delta));return;case"open":{if(c===null)return;let $=f.sandboxes.get(c);if($?.status==="ready"&&$.previewUrl)t($.previewUrl);return}case"stop":if(c!==null&&E)E.stopSandbox(c);return;case"delete":{if(c===null||!E)return;let $=E.inspectSandbox(c),w=f.sandboxes.get(c);Q1i(null),vM({handle:c,branch:$?.branch??w?.branch??null,dirtyCount:$?.dirtyCount??0,merged:$?.merged??null});return}case"confirmYes":{let $=f.pendingConfirm;if(vM(null),$===null||!E)return;H1i($.handle,!0),E.removeSandbox($.handle).then((w)=>{if(w.ok)ZHi($.handle);else H1i($.handle,!1),Q1i(w.error)});return}case"confirmNo":vM(null);return;case"quit":if(E)E.quit();return}}var dru=N(()=>{hM();$ru()});function _ru(i,u,t){if(t)return i==="y"||i==="Y"?{type:"confirmYes"}:{type:"confirmNo"};if(u.upArrow||i==="k")return{type:"move",delta:-1};if(u.downArrow||i==="j")return{type:"move",delta:1};if(i==="s")return{type:"stop"};if(i==="d")return{type:"delete"};if(i==="o")return{type:"open"};if(i==="q"||u.ctrl===!0&&i==="c")return{type:"quit"};return null}var vru={};Qi(vru,{LinkApp:()=>nHt});import{Box as H1,Text as cl,useInput as IHt}from"ink";import{useSyncExternalStore as AHt}from"react";import{jsx as xf,jsxs as d5}from"react/jsx-runtime";function GHt(i,u){if(u)return{color:"yellow",text:"\u25CC Removing\u2026"};if(i.status==="ready")return{color:"green",text:"\u25CF Live"};if(i.status==="spawning")return{color:"yellow",text:"\u25CC Starting\u2026"};if(i.status==="stopped")return{color:"gray",text:"\u25A0 Stopped"};if(i.status==="missing")return{color:"yellow",text:"\u25A1 Missing"};if(i.status==="merged")return{color:"cyan",text:"\u2713 Merged"};if(i.status==="invalid")return{color:"red",text:"\u2717 Invalid"};if(i.status==="failed")return{color:"red",text:`\u2717 Failed: ${i.error??"failed"}`};return{color:"red",text:`\u2717 Error: ${i.error??""}`}}function nHt(){let i=AHt(NHi,_M),u=[...i.sandboxes.values()].sort((l,c)=>l.handle.localeCompare(c.handle)),t=UY(i.sandboxes),f=i.selectedHandle!==null&&t.includes(i.selectedHandle)?i.selectedHandle:t[0]??null;return IHt((l,c)=>{let E=_ru(l,c,i.pendingConfirm!==null);if(E!==null)wru(E)}),d5(H1,{flexDirection:"column",children:[xf(L1i,{version:S1i.version}),xf(H1,{marginBottom:1,children:xf(cl,{dimColor:!0,children:"\u2500".repeat(80)})}),xf(H1,{children:i.cluster==="linked"?d5(cl,{color:"green",children:["\u2713 Connected to ",i.clusterUrl??"deco"]}):i.cluster==="connecting"?d5(cl,{color:"yellow",children:["\u25CC Connecting to ",i.clusterUrl??"deco","\u2026"]}):d5(cl,{color:"red",children:["\u2717 Disconnected from ",i.clusterUrl??"deco"]})}),xf(H1,{children:i.ingressUrl?d5(cl,{color:"green",children:["\u2713 Serving at ",i.ingressUrl]}):xf(cl,{dimColor:!0,children:"\u25CC Starting local server\u2026"})}),xf(H1,{marginBottom:1,children:xf(cl,{dimColor:!0,children:`${"Computer".padEnd(16)}${i.machine??"this computer"} \xB7 ${u.length} of ${i.cap} previews`})}),u.length===0?xf(cl,{dimColor:!0,children:"No previews running yet."}):d5(H1,{flexDirection:"column",children:[d5(H1,{children:[xf(H1,{width:2,flexShrink:0}),xf(H1,{width:PY.project,flexShrink:0,marginRight:1,children:xf(cl,{dimColor:!0,wrap:"truncate-end",children:"PROJECT"})}),xf(H1,{width:PY.branch,flexShrink:0,marginRight:1,children:xf(cl,{dimColor:!0,wrap:"truncate-end",children:"BRANCH"})}),xf(H1,{width:PY.status,flexShrink:0,marginRight:1,children:xf(cl,{dimColor:!0,wrap:"truncate-end",children:"STATUS"})}),xf(H1,{flexGrow:1,children:xf(cl,{dimColor:!0,wrap:"truncate-end",children:"PREVIEW URL"})})]}),u.map((l)=>{let c=GHt(l,i.removingHandles.has(l.handle)),E=l.handle===f;return d5(H1,{children:[xf(H1,{width:2,flexShrink:0,children:xf(cl,{color:"cyan",children:E?"\u203A":" "})}),xf(H1,{width:PY.project,flexShrink:0,marginRight:1,children:xf(cl,{bold:E,wrap:"truncate-end",children:l.projectName??l.handle})}),xf(H1,{width:PY.branch,flexShrink:0,marginRight:1,children:xf(cl,{bold:E,wrap:"truncate-end",children:l.branch??"\u2014"})}),xf(H1,{width:PY.status,flexShrink:0,marginRight:1,children:xf(cl,{color:c.color,bold:E,wrap:"truncate-end",children:c.text})}),xf(H1,{flexGrow:1,children:xf(cl,{dimColor:!0,wrap:"truncate-end",children:l.previewUrl??"\u2014"})})]},l.handle)})]}),i.daemonError?xf(H1,{marginTop:1,children:d5(cl,{color:"red",children:["\u26A0 ",i.daemonError]})}):null,i.logPath?xf(H1,{marginTop:1,children:d5(cl,{dimColor:!0,children:["Logs: ",i.logPath]})}):null,i.pendingConfirm?xf(H1,{marginTop:1,children:xf(cl,{color:"yellow",children:uru(i.pendingConfirm)})}):null,i.actionError?xf(H1,{marginTop:1,children:d5(cl,{color:"red",children:["\u2717 ",i.actionError]})}):null,xf(H1,{marginTop:1,children:xf(cl,{dimColor:!0,children:"\u2191\u2193 move \xB7 s stop \xB7 d delete \xB7 o open \xB7 q quit"})})]})}var PY;var hru=N(()=>{DHi();gHi();dru();hM();PY={project:18,branch:22,status:14}});var Dru={};Qi(Dru,{runLinkCommand:()=>WHt});import{closeSync as kHt,mkdirSync as jHt,openSync as XHt,writeSync as JHt}from"fs";import{homedir as KHt}from"os";import{join as FHi}from"path";function SHt(i,u){let t={log:console.log,warn:console.warn,error:console.error},f=(l)=>{if(u===void 0)return;try{JHt(u,`${hHi(l)}
80952
+ Shutting down\u2026`),g();try{await y.close()}catch{}try{await w.stop()}catch{}try{await $.shutdown()}catch{}try{O.close()}catch{}c(),T(0)};process.on("SIGINT",()=>void j()),process.on("SIGTERM",()=>void j()),Z=()=>{console.log("Disconnect requested from the Studio web UI \u2014 shutting down. Run `bunx decocms@latest link` to reconnect."),j()},y.closed.then(()=>{if(i.monitor?.onCluster?.("closed"),!I)console.error("Cluster connection closed permanently; exiting."),j()});let A=MVu({provider:$,registry:f,dataDir:i.dataDir});return{stopped:U,stop:j,stopSandbox:A.stopSandbox,removeSandbox:A.removeSandbox,inspectSandbox:A.inspectSandbox}}catch(E){throw c(),E}}var oVu=N(()=>{VLi();JC();JHu();WHu();zHu();izi();hVu();xVu();JVu();SVu();XC();vHi();qVu();eVu()});function hHi(i){return i.map((u)=>typeof u==="string"?u:String(u)).join(" ")}var S1i;var DHi=N(()=>{S1i={name:"decocms",version:"3.100.3",description:"Deco CMS \u2014 Self-hostable MCP Gateway for managing AI connections and tools",author:"Deco team",repository:{type:"git",url:"git+https://github.com/decocms/studio.git",directory:"apps/mesh"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:'bun run migrate && concurrently "bun run dev:client" "bun run dev:server"',"dev:servers":'concurrently "bun run dev:client" "bun run dev:server"',"dev:client":"vite dev","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts","build:client":"bun --bun vite build","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","db:migrate":"bun run ./dist/server/migrate.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts",test:"bun test","test:ct":"playwright test -c playwright-ct.config.ts","test:ct:ui":"playwright test -c playwright-ct.config.ts --ui","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts","smoke:link":"bun run scripts/smoke-link.ts",prepublishOnly:"bun run build:client && bun run build:server"},optionalDependencies:{"@anthropic-ai/claude-agent-sdk":"^0.3.181","@duckdb/node-api":"^1.5.0-r.1","@openai/codex":"0.141.0","@openai/codex-darwin-arm64":"npm:@openai/codex@0.141.0-darwin-arm64","@openai/codex-darwin-x64":"npm:@openai/codex@0.141.0-darwin-x64","@openai/codex-linux-arm64":"npm:@openai/codex@0.141.0-linux-arm64","@openai/codex-linux-x64":"npm:@openai/codex@0.141.0-linux-x64","@openai/codex-win32-arm64":"npm:@openai/codex@0.141.0-win32-arm64","@openai/codex-win32-x64":"npm:@openai/codex@0.141.0-win32-x64"},dependencies:{"@ai-sdk/anthropic":"^3.0.85","@ai-sdk/google":"^3.0.83","@ai-sdk/openai":"^3.0.73","@anthropic-ai/sdk":"^0.105.0","@aws-sdk/client-s3":"^3.1013.0","@aws-sdk/client-sts":"^3.1013.0","@aws-sdk/lib-storage":"^3.1013.0","@aws-sdk/s3-request-presigner":"^3.1013.0","@clickhouse/client":"^1.8.1","@dbos-inc/dbos-sdk":"^4.21.6","@dnd-kit/core":"^6.3.1","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@inkjs/ui":"^2.0.0","@modelcontextprotocol/ext-apps":"^1.7.1","@openrouter/ai-sdk-provider":"^2.9.1","@opentelemetry/core":"^2.6.0","@tanstack/react-virtual":"3.13.24","@xterm/addon-fit":"^0.11.0","@xterm/xterm":"^6.0.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0","@nats-io/jetstream":"3.4.0","@nats-io/kv":"3.4.0","@nats-io/nats-core":"3.4.0","@nats-io/transport-node":"3.4.0",kysely:"^0.28.12","node-pty":"^1.0.0","posthog-js":"^1.371.1","posthog-node":"^5.0.0",react:"^19.2.6","react-dom":"^19.2.6"},devDependencies:{"@ai-sdk/provider":"^3.0.10","@ai-sdk/react":"^3.0.210","@better-auth/sso":"1.4.1","@daveyplate/better-auth-ui":"^3.2.7","@deco/ui":"workspace:*","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/harness":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/mesh-sdk":"workspace:*","@decocms/runtime":"workspace:*","@decocms/sandbox":"workspace:*","@decocms/std":"workspace:*","@decocms/tunnel":"workspace:*","@floating-ui/react":"^0.27.16","@happy-dom/global-registrator":"^20.9.0","@hookform/resolvers":"^5.2.2","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.29.0","@monaco-editor/react":"^4.7.0","@nats-io/jwt":"0.0.10-5","@opentelemetry/api":"^1.9.0","@opentelemetry/api-logs":"^0.211.0","@opentelemetry/exporter-logs-otlp-proto":"^0.211.0","@opentelemetry/exporter-prometheus":"^0.208.0","@opentelemetry/exporter-trace-otlp-proto":"^0.207.0","@opentelemetry/instrumentation-runtime-node":"^0.24.0","@opentelemetry/resources":"^2.6.0","@opentelemetry/sdk-logs":"^0.211.0","@opentelemetry/sdk-metrics":"^2.2.0","@opentelemetry/sdk-node":"^0.207.0","@opentelemetry/sdk-trace-base":"^2.5.0","@playwright/experimental-ct-react":"1.59.1","@playwright/test":"^1.58.2","@radix-ui/react-avatar":"^1.1.10","@radix-ui/react-checkbox":"^1.3.3","@radix-ui/react-dialog":"^1.1.15","@radix-ui/react-dropdown-menu":"^2.1.16","@radix-ui/react-label":"^2.1.7","@radix-ui/react-select":"^2.2.6","@radix-ui/react-separator":"^1.1.7","@radix-ui/react-slot":"^1.2.3","@radix-ui/react-tabs":"^1.1.13","@rjsf/shadcn":"^6.6.2","@rjsf/utils":"^6.6.2","@rjsf/validator-ajv8":"^6.6.2","@tailwindcss/vite":"^4.1.17","@tanstack/react-query":"5.100.10","@tanstack/react-router":"1.169.2","@testing-library/jest-dom":"^6.9.1","@testing-library/react":"^16.3.2","@tiptap/core":"3.20.2","@tiptap/extension-placeholder":"3.20.2","@tiptap/pm":"3.20.2","@tiptap/react":"3.20.2","@tiptap/starter-kit":"3.20.2","@tiptap/suggestion":"3.20.2","@types/bun":"^1.3.1","@types/google.maps":"^3.65.2","@types/pg":"^8.15.6","@types/react-syntax-highlighter":"^15.5.13","@untitledui/icons":"^0.0.19","@vercel/nft":"^1.1.1","@vitejs/plugin-react":"^5.1.0",ai:"^6.0.208","babel-plugin-react-compiler":"^1.0.0","better-auth":"1.4.22","class-variance-authority":"^0.7.1",clsx:"^2.1.1",concurrently:"^9.2.1",croner:"^9.1.0","date-fns":"^4.1.0",degit:"^2.8.4",hono:"^4.10.7","input-otp":"^1.4.2",jose:"^6.0.11","lucide-react":"^0.468.0",marked:"^15.0.6",nanoid:"^5.1.6",pg:"^8.16.3",prettier:"^3.4.2","react-hook-form":"^7.66.0","react-markdown":"^10.1.0","react-resizable-panels":"^2.1.7","react-syntax-highlighter":"^15.6.1",recharts:"^3.6.0","rehype-raw":"^7.0.0","remark-gfm":"^4.0.0","sass-embedded":"^1.97.2",sonner:"^2.0.7","tailwind-merge":"^3.3.1",tailwindcss:"^4.1.17",typescript:"^5.9.3",vite:"^7.2.1","vite-tsconfig-paths":"^5.1.4",zod:"^4.0.0"},homepage:"https://github.com/decocms/studio",keywords:["mcp","model-context-protocol","ai","gateway","self-hosted","mesh","tools"],license:"MIT",publishConfig:{access:"public"}}});var dM={};Qi(dM,{printBanner:()=>wHt,bannerLines:()=>sVu,BANNER_LINES:()=>Y1i,BANNER_GRADIENT:()=>W1i});function $Ht(i){let u=Number.parseInt(i.slice(1),16);return[u>>16&255,u>>8&255,u&255]}function sVu(i){let u=Y1i.map((t,f)=>{let[l,c,E]=$Ht(W1i[f]);return`\x1B[38;2;${l};${c};${E}m${t}\x1B[39m`});if(i!==void 0)u.push(`\x1B[2m v${i}\x1B[22m`);return u}function wHt(i){console.log("");for(let u of sVu(i))console.log(u);console.log("")}var Y1i,W1i;var TY=N(()=>{Y1i=[" \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 ","\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 "," \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"," \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"," \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"," \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 "," \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 ","\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 "],W1i=["#00ff64","#00ee5e","#00dc56","#00c84e","#00b444","#00a03c","#008832","#006e28"]});import{Box as dHt,Text as pVu}from"ink";import{jsx as _Ht,jsxs as iru}from"react/jsx-runtime";function L1i({version:i}){return iru(dHt,{flexDirection:"column",marginTop:1,children:[Y1i.map((u,t)=>_Ht(pVu,{color:W1i[t],children:u},t)),iru(pVu,{dimColor:!0,children:[" v",i]})]})}var gHi=N(()=>{TY()});function uru(i){let u=i.branch??i.handle,t=[];if(i.dirtyCount>0)t.push(`${i.dirtyCount} uncommitted file${i.dirtyCount===1?"":"s"}`);if(i.merged===!1)t.push("branch not merged");return t.length>0?`\u26A0 ${t.join(", ")} \u2014 delete ${u}? (y/n)`:`Delete ${u}? (y/n)`}function UY(i){return[...i.values()].map((u)=>u.handle).sort((u,t)=>u.localeCompare(t))}function tru(i,u,t){if(i.length===0)return null;let f=u===null?-1:i.indexOf(u);if(f===-1)return t>0?i[0]:i[i.length-1];let l=Math.max(0,Math.min(i.length-1,f+t));return i[l]}function fru(i,u,t){if(t!==u)return t;let f=i.indexOf(u);if(f===-1)return t;return i[f+1]??i[f-1]??null}var BHi={};Qi(BHi,{subscribeLinkState:()=>NHi,setSelectedHandle:()=>OHi,setRemoving:()=>H1i,setPersistedSandboxes:()=>yHt,setPendingConfirm:()=>vM,setMachine:()=>OHt,setLogPath:()=>BHt,setLinkActions:()=>FHt,setIngress:()=>NHt,setDaemonError:()=>ZHt,setClusterUrl:()=>gHt,setCluster:()=>DHt,setActionError:()=>Q1i,resetLinkStateForTests:()=>UHt,removeSandboxRow:()=>ZHi,pushSandboxEvent:()=>THt,getLinkState:()=>_M,applySandboxEvent:()=>lru});function hHt(i){return i==="spawning"||i==="ready"||i==="failed"}function lru(i,u){let t=new Map(i),f=t.get(u.handle);if(u.phase==="evicted"||u.phase==="deleted"){if(f)t.set(u.handle,{...f,port:null,previewUrl:null,status:"stopped",error:null});return t}return t.set(u.handle,{handle:u.handle,port:u.port??f?.port??null,previewUrl:u.previewUrl??f?.previewUrl??null,status:u.phase,error:u.phase==="failed"?u.error??"failed":null,projectName:f?.projectName??null,branch:f?.branch??null,sandboxPath:f?.sandboxPath??null}),t}function cru(){return{cluster:"connecting",clusterUrl:null,ingressUrl:null,ingressPort:null,machine:null,cap:vHt,sandboxes:new Map,daemonError:null,logPath:null,selectedHandle:null,pendingConfirm:null,removingHandles:new Set,actionError:null,actions:null}}function X$(){for(let i of z1i)i()}function _M(){return tf}function NHi(i){return z1i.add(i),()=>z1i.delete(i)}function DHt(i){tf={...tf,cluster:i},X$()}function gHt(i){tf={...tf,clusterUrl:i},X$()}function NHt(i,u){tf={...tf,ingressPort:i,ingressUrl:u},X$()}function OHt(i){tf={...tf,machine:i},X$()}function ZHt(i){tf={...tf,daemonError:i},X$()}function BHt(i){tf={...tf,logPath:i},X$()}function OHi(i){tf={...tf,selectedHandle:i},X$()}function vM(i){tf={...tf,pendingConfirm:i},X$()}function Q1i(i){tf={...tf,actionError:i},X$()}function H1i(i,u){if(tf.removingHandles.has(i)===u)return;let t=new Set(tf.removingHandles);if(u)t.add(i);else t.delete(i);tf={...tf,removingHandles:t},X$()}function FHt(i){tf={...tf,actions:i},X$()}function ZHi(i){let u=UY(tf.sandboxes),t=fru(u,i,tf.selectedHandle),f=new Map(tf.sandboxes);f.delete(i);let l=new Set(tf.removingHandles);l.delete(i),tf={...tf,sandboxes:f,selectedHandle:t,pendingConfirm:null,removingHandles:l},X$()}function yHt(i){let u=new Map;for(let t of i)u.set(t.handle,{handle:t.handle,port:t.port,previewUrl:t.previewUrl,status:t.status,error:t.error,projectName:t.projectName,branch:t.branch,sandboxPath:t.sandboxPath});for(let[t,f]of tf.sandboxes)if(hHt(f.status))u.set(t,f);tf={...tf,sandboxes:u},X$()}function THt(i){tf={...tf,sandboxes:lru(tf.sandboxes,i)},X$()}function UHt(){tf=cru(),z1i.clear()}var vHt=20,tf,z1i;var hM=N(()=>{tf=cru(),z1i=new Set});import{spawn as PHt}from"child_process";function xHt(i){if(i==="darwin")return"open";if(i==="win32")return"start";return"xdg-open"}function Eru(i,u=process.platform){let t=xHt(u);try{PHt(t,[i],{stdio:"ignore",detached:!0}).unref()}catch{}}var $ru=()=>{};function wru(i,u={}){let t=u.openUrl??Eru,f=_M(),l=UY(f.sandboxes),c=f.selectedHandle!==null&&l.includes(f.selectedHandle)?f.selectedHandle:l[0]??null,E=f.actions;switch(i.type){case"move":OHi(tru(l,f.selectedHandle,i.delta));return;case"open":{if(c===null)return;let $=f.sandboxes.get(c);if($?.status==="ready"&&$.previewUrl)t($.previewUrl);return}case"stop":if(c!==null&&E)E.stopSandbox(c);return;case"delete":{if(c===null||!E)return;let $=E.inspectSandbox(c),w=f.sandboxes.get(c);Q1i(null),vM({handle:c,branch:$?.branch??w?.branch??null,dirtyCount:$?.dirtyCount??0,merged:$?.merged??null});return}case"confirmYes":{let $=f.pendingConfirm;if(vM(null),$===null||!E)return;H1i($.handle,!0),E.removeSandbox($.handle).then((w)=>{if(w.ok)ZHi($.handle);else H1i($.handle,!1),Q1i(w.error)});return}case"confirmNo":vM(null);return;case"quit":if(E)E.quit();return}}var dru=N(()=>{hM();$ru()});function _ru(i,u,t){if(t)return i==="y"||i==="Y"?{type:"confirmYes"}:{type:"confirmNo"};if(u.upArrow||i==="k")return{type:"move",delta:-1};if(u.downArrow||i==="j")return{type:"move",delta:1};if(i==="s")return{type:"stop"};if(i==="d")return{type:"delete"};if(i==="o")return{type:"open"};if(i==="q"||u.ctrl===!0&&i==="c")return{type:"quit"};return null}var vru={};Qi(vru,{LinkApp:()=>nHt});import{Box as H1,Text as cl,useInput as IHt}from"ink";import{useSyncExternalStore as AHt}from"react";import{jsx as xf,jsxs as d5}from"react/jsx-runtime";function GHt(i,u){if(u)return{color:"yellow",text:"\u25CC Removing\u2026"};if(i.status==="ready")return{color:"green",text:"\u25CF Live"};if(i.status==="spawning")return{color:"yellow",text:"\u25CC Starting\u2026"};if(i.status==="stopped")return{color:"gray",text:"\u25A0 Stopped"};if(i.status==="missing")return{color:"yellow",text:"\u25A1 Missing"};if(i.status==="merged")return{color:"cyan",text:"\u2713 Merged"};if(i.status==="invalid")return{color:"red",text:"\u2717 Invalid"};if(i.status==="failed")return{color:"red",text:`\u2717 Failed: ${i.error??"failed"}`};return{color:"red",text:`\u2717 Error: ${i.error??""}`}}function nHt(){let i=AHt(NHi,_M),u=[...i.sandboxes.values()].sort((l,c)=>l.handle.localeCompare(c.handle)),t=UY(i.sandboxes),f=i.selectedHandle!==null&&t.includes(i.selectedHandle)?i.selectedHandle:t[0]??null;return IHt((l,c)=>{let E=_ru(l,c,i.pendingConfirm!==null);if(E!==null)wru(E)}),d5(H1,{flexDirection:"column",children:[xf(L1i,{version:S1i.version}),xf(H1,{marginBottom:1,children:xf(cl,{dimColor:!0,children:"\u2500".repeat(80)})}),xf(H1,{children:i.cluster==="linked"?d5(cl,{color:"green",children:["\u2713 Connected to ",i.clusterUrl??"deco"]}):i.cluster==="connecting"?d5(cl,{color:"yellow",children:["\u25CC Connecting to ",i.clusterUrl??"deco","\u2026"]}):d5(cl,{color:"red",children:["\u2717 Disconnected from ",i.clusterUrl??"deco"]})}),xf(H1,{children:i.ingressUrl?d5(cl,{color:"green",children:["\u2713 Serving at ",i.ingressUrl]}):xf(cl,{dimColor:!0,children:"\u25CC Starting local server\u2026"})}),xf(H1,{marginBottom:1,children:xf(cl,{dimColor:!0,children:`${"Computer".padEnd(16)}${i.machine??"this computer"} \xB7 ${u.length} of ${i.cap} previews`})}),u.length===0?xf(cl,{dimColor:!0,children:"No previews running yet."}):d5(H1,{flexDirection:"column",children:[d5(H1,{children:[xf(H1,{width:2,flexShrink:0}),xf(H1,{width:PY.project,flexShrink:0,marginRight:1,children:xf(cl,{dimColor:!0,wrap:"truncate-end",children:"PROJECT"})}),xf(H1,{width:PY.branch,flexShrink:0,marginRight:1,children:xf(cl,{dimColor:!0,wrap:"truncate-end",children:"BRANCH"})}),xf(H1,{width:PY.status,flexShrink:0,marginRight:1,children:xf(cl,{dimColor:!0,wrap:"truncate-end",children:"STATUS"})}),xf(H1,{flexGrow:1,children:xf(cl,{dimColor:!0,wrap:"truncate-end",children:"PREVIEW URL"})})]}),u.map((l)=>{let c=GHt(l,i.removingHandles.has(l.handle)),E=l.handle===f;return d5(H1,{children:[xf(H1,{width:2,flexShrink:0,children:xf(cl,{color:"cyan",children:E?"\u203A":" "})}),xf(H1,{width:PY.project,flexShrink:0,marginRight:1,children:xf(cl,{bold:E,wrap:"truncate-end",children:l.projectName??l.handle})}),xf(H1,{width:PY.branch,flexShrink:0,marginRight:1,children:xf(cl,{bold:E,wrap:"truncate-end",children:l.branch??"\u2014"})}),xf(H1,{width:PY.status,flexShrink:0,marginRight:1,children:xf(cl,{color:c.color,bold:E,wrap:"truncate-end",children:c.text})}),xf(H1,{flexGrow:1,children:xf(cl,{dimColor:!0,wrap:"truncate-end",children:l.previewUrl??"\u2014"})})]},l.handle)})]}),i.daemonError?xf(H1,{marginTop:1,children:d5(cl,{color:"red",children:["\u26A0 ",i.daemonError]})}):null,i.logPath?xf(H1,{marginTop:1,children:d5(cl,{dimColor:!0,children:["Logs: ",i.logPath]})}):null,i.pendingConfirm?xf(H1,{marginTop:1,children:xf(cl,{color:"yellow",children:uru(i.pendingConfirm)})}):null,i.actionError?xf(H1,{marginTop:1,children:d5(cl,{color:"red",children:["\u2717 ",i.actionError]})}):null,xf(H1,{marginTop:1,children:xf(cl,{dimColor:!0,children:"\u2191\u2193 move \xB7 s stop \xB7 d delete \xB7 o open \xB7 q quit"})})]})}var PY;var hru=N(()=>{DHi();gHi();dru();hM();PY={project:18,branch:22,status:14}});var Dru={};Qi(Dru,{runLinkCommand:()=>WHt});import{closeSync as kHt,mkdirSync as jHt,openSync as XHt,writeSync as JHt}from"fs";import{homedir as KHt}from"os";import{join as FHi}from"path";function SHt(i,u){let t={log:console.log,warn:console.warn,error:console.error},f=(l)=>{if(u===void 0)return;try{JHt(u,`${hHi(l)}
80868
80953
  `)}catch{}};return console.log=(...l)=>f(l),console.warn=(...l)=>f(l),console.error=(...l)=>{f(l),i(hHi(l))},()=>{console.log=t.log,console.warn=t.warn,console.error=t.error}}async function YHt(i,u){let t;try{t=await fetch(`${i}/api/links/me`,{headers:{authorization:`Bearer ${u}`},signal:AbortSignal.timeout(1e4)})}catch{return}if(t.status===401||t.status===403)throw Error(`Authentication rejected by ${i} \u2014 the session token was not accepted. `+`Run \`deco auth login --target ${i}\` and try again.`)}async function WHt(i={}){let u=i.port??5174,t=i.dataDir??process.env.DATA_DIR??process.env.DECOCMS_HOME??FHi(KHt(),"deco"),f=i.clusterBaseUrl??process.env.MESH_CLUSTER_URL??"https://studio.decocms.com",l,c,E,$=()=>{if(E===void 0)return;try{E.close()}catch{}finally{E=void 0}};try{let w=FHi(t,"sandboxes");E=K1i({path:J1i(t),managedSandboxRoot:w});let d=await k4i({dataDir:t,intent:"Link",target:f});if(process.env.DECOCMS_LINK_MANAGED!=="1")await YHt(f,d.accessToken);let _=E.reconcile();if(i.prune){let g=E.prune({missing:!0,merged:!0});if(!i.tui)console.log(`Pruned local sandboxes: removed ${g.removed.length}, skipped ${g.skipped.length}.`);_=E.reconcile()}let v;if(i.tui){let{render:g}=await import("ink"),{createElement:O}=await import("react"),{LinkApp:Z}=await Promise.resolve().then(() => (hru(),vru)),{pushSandboxEvent:B,setCluster:F,setClusterUrl:y,setDaemonError:T,setIngress:U,setLogPath:I,setMachine:j,setPersistedSandboxes:A}=await Promise.resolve().then(() => (hM(),BHi));jHt(t,{recursive:!0});let n=FHi(t,"link.log");c=XHt(n,"w"),I(n),A(_),y(f),F("connecting"),v={onEvent:(q)=>B(q),onIngress:(q)=>U(q,`http://127.0.0.1:${q}`),onCluster:(q)=>F(q),onMachine:(q)=>j(q)},l=SHt(T,c),g(O(Z),{patchConsole:!1})}else if(i.banner!==!1){let{printBanner:g}=await Promise.resolve().then(() => (TY(),dM));g(i.version??"0.0.0")}$();let h=process.env.DECOCMS_LINK_MANAGED!=="1",D=await aVu({port:u,clusterBaseUrl:f,dataDir:t,session:d,monitor:v,logFd:c,perSandboxLogs:h,hotReload:i.hotReload});if(i.tui){let{setLinkActions:g}=await Promise.resolve().then(() => (hM(),BHi));g({stopSandbox:D.stopSandbox,removeSandbox:D.removeSandbox,inspectSandbox:D.inspectSandbox,quit:D.stop})}return await D.stopped}catch(w){return l?.(),console.error(w instanceof Error?w.message:String(w)),1}finally{if(l?.(),c!==void 0)try{kHt(c)}catch{}$()}}var gru=N(()=>{qLi();oVu();vHi()});var IHi={};Qi(IHi,{resolveDevLinkClusterUrl:()=>HHt,populateDevLinkToxiProxy:()=>yru,isDevLinkToxiProxyEnabled:()=>QHt,ensureDevLinkToxiProxy:()=>qHt,buildDevLinkToxiProxyConfig:()=>Bru,DEV_LINK_TOXIPROXY_SERVICE_NAME:()=>Oru,DEV_LINK_TOXIPROXY_PROXY_NAME:()=>Zru});function QHt(i=process.env){return i.DECO_DEV_LINK_TOXIPROXY==="1"}function yHi(i,u){if(!Number.isInteger(i)||i<1||i>65535)throw Error(`${u} must be an integer port in 1..65535`);return i}function Bru(i){let u=new URL(i.serverUrl);if(u.protocol!=="http:")throw Error("DECO_DEV_LINK_TOXIPROXY only supports http local Studio URLs");let t=yHi(i.apiPort,"apiPort"),f=yHi(i.listenPort,"listenPort");if(u.port.length===0)throw Error("serverUrl must include an explicit valid port");let l=yHi(Number.parseInt(u.port,10),"upstreamPort"),c=`http://127.0.0.1:${l}`,E=`http://127.0.0.1:${f}`;return{serviceName:Oru,proxyName:Zru,apiUrl:`http://127.0.0.1:${t}`,listen:`0.0.0.0:${f}`,upstream:`host.docker.internal:${l}`,publicTargetUrl:c,clusterUrl:E,logLine:`[dev-link-toxiproxy] ready: ${E} -> ${c}`}}function HHt(i){return i.toxiproxy?.clusterUrl??i.serverUrl}async function THi(i,u,t){if(i.ok)return;let f=await i.text();throw Error(`ToxiProxy ${u} failed for ${t}: status=${i.status} statusText=${i.statusText} body=${f}`)}function xHi(i){if(i instanceof Error)return i.name==="Error"?i.message:`${i.name}: ${i.message}`;return String(i)}function Fru(i){if(!(i instanceof Error))return!1;if(i.name==="TimeoutError")return!0;return Fru(i.cause)}async function UHi(i,u,t,f){try{return await i(t,f)}catch(l){throw Error(`ToxiProxy ${u} failed for ${t}: ${xHi(l)}`,{cause:l})}}async function yru(i,u=fetch){let t=`${i.apiUrl}/reset`,f=await UHi(u,"reset",t,{method:"POST"});await THi(f,"reset",t);let l=`${i.apiUrl}/populate`,c=await UHi(u,"populate",l,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify([{name:i.proxyName,listen:i.listen,upstream:i.upstream,enabled:!0}])});await THi(c,"populate",l)}async function bHt(i,u){let t=`${i.apiUrl}/version`;try{await u6(async()=>{let f=await UHi(u,"readiness check",t,{method:"GET",signal:AbortSignal.timeout(zHt)});await THi(f,"readiness check",t)},{maxAttempts:LHt,minTimeout:Nru,maxTimeout:Nru,multiplier:1,jitter:0,isRetriable:(f)=>!Fru(f)})}catch(f){let l=f instanceof J6?f.cause:f;throw Error(`ToxiProxy API did not become ready at ${t}: ${xHi(l)}`,{cause:l})}}async function RHt(i){if(i===null)return"";return await new Response(i).text()}async function PHi(i,u={}){let t=["docker",...i].join(" "),f=(()=>{try{return Bun.spawn(["docker",...i],{stdout:"ignore",stderr:"pipe"})}catch($){throw Error(`Docker command failed to start (${t}): ${xHi($)}`,{cause:$})}})(),[l,c]=await Promise.all([f.exited,RHt(f.stderr)]);if(l===0||u.ignoreFailure===!0)return;let E=c.trim().length>0?`: ${c.trim()}`:"";throw Error(`Docker command failed (${t}) with exit ${l}${E}`)}async function CHt(i,u){let t=`deco-dev-link-toxiproxy-${i}`;await PHi(["rm","-f",t],{ignoreFailure:!0}),await PHi(["run","--rm","-d","--name",t,"-p",`127.0.0.1:${i}:8474`,"-p",`127.0.0.1:${u}:${u}`,"ghcr.io/shopify/toxiproxy:2.12.0","-host=0.0.0.0"])}async function MHt(i,u){let t=`deco-dev-link-toxiproxy-${i}`;await PHi(["rm","-f",t],{ignoreFailure:!0})}async function qHt(i){let u=Bru(i),t=i.startDaemon??CHt,f=i.stopDaemon??(i.startDaemon===void 0?MHt:void 0);await t(i.apiPort,i.listenPort);let l=i.fetchImpl??fetch;try{await bHt(u,l),await yru(u,l)}catch(c){if(f!==void 0)try{await f(i.apiPort,i.listenPort)}catch{}throw c}return{config:u,stop:async()=>{if(f!==void 0)await f(i.apiPort,i.listenPort)}}}var Oru="ToxiProxy",Zru="dev_link_studio",LHt=20,Nru=100,zHt=100;var AHi=N(()=>{Bl()});var Tru={};Qi(Tru,{migrateBetterAuth:()=>GHi});import{getMigrations as VHt}from"better-auth/db";import{sso as rHt}from"@better-auth/sso";import{organization as mHt}from"@decocms/better-auth/plugins";import{admin as eHt,apiKey as aHt,jwt as oHt,magicLink as sHt,mcp as pHt,openAPI as ibt}from"better-auth/plugins";import{emailOTP as ubt}from"better-auth/plugins/email-otp";async function GHi(i){let t={database:IC(i||z2()),plugins:[mHt({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),eHt(),aHt(),oHt(),ibt(),pHt({loginPage:"/login"}),rHt(),sHt({sendMagicLink:async()=>{}}),ubt({sendVerificationOTP:async()=>{}})]},{toBeAdded:f,toBeCreated:l,runMigrations:c}=await VHt(t);if(!f.length&&!l.length)return"up to date";return await c(),`${l.length+f.length} table(s) migrated`}var nHi=N(()=>{zE()});var kHi={};Qi(kHi,{up:()=>tbt,down:()=>fbt});import{sql as m_}from"kysely";async function tbt(i){await i.schema.createTable("connections").addColumn("id","text",(u)=>u.primaryKey()).addColumn("organizationId","text",(u)=>u.notNull().references("organization.id").onDelete("cascade")).addColumn("createdById","text",(u)=>u.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(u)=>u.notNull()).addColumn("description","text").addColumn("icon","text").addColumn("appName","text").addColumn("appId","text").addColumn("connectionType","text",(u)=>u.notNull()).addColumn("connectionUrl","text",(u)=>u.notNull()).addColumn("connectionToken","text").addColumn("connectionHeaders","text").addColumn("oauthConfig","text").addColumn("metadata","text").addColumn("tools","text").addColumn("bindings","text").addColumn("status","text",(u)=>u.notNull().defaultTo("active")).addColumn("createdAt","text",(u)=>u.notNull().defaultTo(m_`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(u)=>u.notNull().defaultTo(m_`CURRENT_TIMESTAMP`)).execute(),await i.schema.createTable("api_keys").addColumn("id","text",(u)=>u.primaryKey()).addColumn("userId","text",(u)=>u.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(u)=>u.notNull()).addColumn("hashedKey","text",(u)=>u.notNull().unique()).addColumn("permissions","text",(u)=>u.notNull()).addColumn("expiresAt","text").addColumn("remaining","integer").addColumn("metadata","text").addColumn("createdAt","text",(u)=>u.notNull().defaultTo(m_`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(u)=>u.notNull().defaultTo(m_`CURRENT_TIMESTAMP`)).execute(),await i.schema.createTable("audit_logs").addColumn("id","text",(u)=>u.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(u)=>u.references("user.id").onDelete("set null")).addColumn("connectionId","text",(u)=>u.references("connections.id").onDelete("set null")).addColumn("toolName","text",(u)=>u.notNull()).addColumn("allowed","integer",(u)=>u.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(u)=>u.notNull().defaultTo(m_`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await i.schema.createTable("oauth_clients").addColumn("id","text",(u)=>u.primaryKey()).addColumn("clientId","text",(u)=>u.notNull().unique()).addColumn("clientSecret","text").addColumn("clientName","text",(u)=>u.notNull()).addColumn("redirectUris","text",(u)=>u.notNull()).addColumn("grantTypes","text",(u)=>u.notNull()).addColumn("scope","text").addColumn("clientUri","text").addColumn("logoUri","text").addColumn("createdAt","text",(u)=>u.notNull().defaultTo(m_`CURRENT_TIMESTAMP`)).execute(),await i.schema.createTable("oauth_authorization_codes").addColumn("code","text",(u)=>u.primaryKey()).addColumn("clientId","text",(u)=>u.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(u)=>u.notNull().references("user.id").onDelete("cascade")).addColumn("redirectUri","text",(u)=>u.notNull()).addColumn("scope","text").addColumn("codeChallenge","text").addColumn("codeChallengeMethod","text").addColumn("expiresAt","text",(u)=>u.notNull()).addColumn("createdAt","text",(u)=>u.notNull().defaultTo(m_`CURRENT_TIMESTAMP`)).execute(),await i.schema.createTable("oauth_refresh_tokens").addColumn("token","text",(u)=>u.primaryKey()).addColumn("clientId","text",(u)=>u.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(u)=>u.notNull().references("user.id").onDelete("cascade")).addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(u)=>u.notNull().defaultTo(m_`CURRENT_TIMESTAMP`)).execute(),await i.schema.createTable("downstream_tokens").addColumn("id","text",(u)=>u.primaryKey()).addColumn("connectionId","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("userId","text",(u)=>u.references("user.id").onDelete("cascade")).addColumn("accessToken","text",(u)=>u.notNull()).addColumn("refreshToken","text").addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(u)=>u.notNull().defaultTo(m_`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(u)=>u.notNull().defaultTo(m_`CURRENT_TIMESTAMP`)).execute(),await i.schema.createIndex("idx_connections_organizationId").on("connections").column("organizationId").execute(),await i.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await i.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await i.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}async function fbt(i){await i.schema.dropTable("downstream_tokens").execute(),await i.schema.dropTable("oauth_refresh_tokens").execute(),await i.schema.dropTable("oauth_authorization_codes").execute(),await i.schema.dropTable("oauth_clients").execute(),await i.schema.dropTable("audit_logs").execute(),await i.schema.dropTable("api_keys").execute(),await i.schema.dropTable("connections").execute()}var Uru=()=>{};var jHi={};Qi(jHi,{up:()=>lbt,down:()=>cbt});import{sql as Pru}from"kysely";async function lbt(i){await i.schema.createTable("organization_settings").addColumn("organizationId","text",(u)=>u.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(u)=>u.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(u)=>u.notNull().defaultTo(Pru`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(u)=>u.notNull().defaultTo(Pru`CURRENT_TIMESTAMP`)).execute()}async function cbt(i){await i.schema.dropTable("organization_settings").execute()}var xru=()=>{};var XHi={};Qi(XHi,{up:()=>Ebt,down:()=>$bt});async function Ebt(i){await i.schema.alterTable("connections").renameColumn("name","title").execute(),await i.schema.alterTable("connections").renameColumn("createdById","created_by").execute(),await i.schema.alterTable("connections").renameColumn("createdAt","created_at").execute(),await i.schema.alterTable("connections").renameColumn("updatedAt","updated_at").execute(),await i.schema.alterTable("connections").renameColumn("organizationId","organization_id").execute(),await i.schema.alterTable("connections").renameColumn("connectionType","connection_type").execute(),await i.schema.alterTable("connections").renameColumn("connectionUrl","connection_url").execute(),await i.schema.alterTable("connections").renameColumn("connectionToken","connection_token").execute(),await i.schema.alterTable("connections").renameColumn("connectionHeaders","connection_headers").execute(),await i.schema.alterTable("connections").renameColumn("oauthConfig","oauth_config").execute(),await i.schema.alterTable("connections").renameColumn("appName","app_name").execute(),await i.schema.alterTable("connections").renameColumn("appId","app_id").execute()}async function $bt(i){await i.schema.alterTable("connections").renameColumn("title","name").execute(),await i.schema.alterTable("connections").renameColumn("created_by","createdById").execute(),await i.schema.alterTable("connections").renameColumn("created_at","createdAt").execute(),await i.schema.alterTable("connections").renameColumn("updated_at","updatedAt").execute(),await i.schema.alterTable("connections").renameColumn("organization_id","organizationId").execute(),await i.schema.alterTable("connections").renameColumn("connection_type","connectionType").execute(),await i.schema.alterTable("connections").renameColumn("connection_url","connectionUrl").execute(),await i.schema.alterTable("connections").renameColumn("connection_token","connectionToken").execute(),await i.schema.alterTable("connections").renameColumn("connection_headers","connectionHeaders").execute(),await i.schema.alterTable("connections").renameColumn("oauth_config","oauthConfig").execute(),await i.schema.alterTable("connections").renameColumn("app_name","appName").execute(),await i.schema.alterTable("connections").renameColumn("app_id","appId").execute()}var JHi={};Qi(JHi,{up:()=>wbt,down:()=>dbt});async function wbt(i){await i.schema.createTable("organization_settings_new").addColumn("organizationId","text",(u)=>u.primaryKey().references("organization.id").onDelete("cascade")).addColumn("createdAt","text",(u)=>u.notNull()).addColumn("updatedAt","text",(u)=>u.notNull()).execute(),await i.insertInto("organization_settings_new").columns(["organizationId","createdAt","updatedAt"]).expression((u)=>u.selectFrom("organization_settings").select(["organizationId","createdAt","updatedAt"])).execute(),await i.schema.dropTable("organization_settings").execute(),await i.schema.alterTable("organization_settings_new").renameTo("organization_settings").execute()}async function dbt(i){await i.schema.createTable("organization_settings_new").addColumn("organizationId","text",(u)=>u.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(u)=>u.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(u)=>u.notNull()).addColumn("updatedAt","text",(u)=>u.notNull()).execute(),await i.insertInto("organization_settings_new").columns(["organizationId","modelsBindingConnectionId","createdAt","updatedAt"]).expression((u)=>u.selectFrom("organization_settings").select(["organizationId",u.val(null).as("modelsBindingConnectionId"),"createdAt","updatedAt"])).execute(),await i.schema.dropTable("organization_settings").execute(),await i.schema.alterTable("organization_settings_new").renameTo("organization_settings").execute()}var KHi={};Qi(KHi,{up:()=>_bt,down:()=>vbt});async function _bt(i){await i.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await i.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function vbt(i){await i.schema.alterTable("connections").dropColumn("configuration_state").execute(),await i.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var SHi={};Qi(SHi,{up:()=>Dbt,down:()=>gbt});import{sql as hbt}from"kysely";async function Dbt(i){await i.schema.alterTable("organization_settings").addColumn("sidebar_items",hbt`text`).execute()}async function gbt(i){await i.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var Iru=()=>{};var YHi={};Qi(YHi,{up:()=>Nbt,down:()=>Obt});async function Nbt(i){await i.schema.createTable("monitoring_logs").addColumn("id","text",(u)=>u.primaryKey()).addColumn("organization_id","text",(u)=>u.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("connection_title","text",(u)=>u.notNull()).addColumn("tool_name","text",(u)=>u.notNull()).addColumn("input","text",(u)=>u.notNull()).addColumn("output","text",(u)=>u.notNull()).addColumn("is_error","integer",(u)=>u.notNull()).addColumn("error_message","text").addColumn("duration_ms","integer",(u)=>u.notNull()).addColumn("timestamp","text",(u)=>u.notNull()).addColumn("user_id","text").addColumn("request_id","text",(u)=>u.notNull()).execute(),await i.schema.createIndex("monitoring_logs_org_timestamp").on("monitoring_logs").columns(["organization_id","timestamp"]).execute(),await i.schema.createIndex("monitoring_logs_connection_timestamp").on("monitoring_logs").columns(["connection_id","timestamp"]).execute(),await i.schema.createIndex("monitoring_logs_is_error").on("monitoring_logs").columns(["organization_id","is_error","timestamp"]).execute()}async function Obt(i){await i.schema.dropIndex("monitoring_logs_is_error").execute(),await i.schema.dropIndex("monitoring_logs_connection_timestamp").execute(),await i.schema.dropIndex("monitoring_logs_org_timestamp").execute(),await i.schema.dropTable("monitoring_logs").execute()}var WHi={};Qi(WHi,{up:()=>Zbt,down:()=>Bbt});import{sql as DM}from"kysely";async function Zbt(i){await i.schema.createTable("events").addColumn("id","text",(u)=>u.primaryKey()).addColumn("organization_id","text",(u)=>u.notNull().references("organization.id").onDelete("cascade")).addColumn("type","text",(u)=>u.notNull()).addColumn("source","text",(u)=>u.notNull()).addColumn("specversion","text",(u)=>u.notNull().defaultTo("1.0")).addColumn("subject","text").addColumn("time","text",(u)=>u.notNull()).addColumn("datacontenttype","text",(u)=>u.notNull().defaultTo("application/json")).addColumn("dataschema","text").addColumn("data","text").addColumn("cron","varchar(255)").addColumn("status","text",(u)=>u.notNull().defaultTo("pending")).addColumn("attempts","integer",(u)=>u.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("next_retry_at","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(DM`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(u)=>u.notNull().defaultTo(DM`CURRENT_TIMESTAMP`)).execute(),await i.schema.createTable("event_subscriptions").addColumn("id","text",(u)=>u.primaryKey()).addColumn("organization_id","text",(u)=>u.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("publisher","text").addColumn("event_type","text",(u)=>u.notNull()).addColumn("filter","text").addColumn("enabled","integer",(u)=>u.notNull().defaultTo(1)).addColumn("created_at","text",(u)=>u.notNull().defaultTo(DM`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(u)=>u.notNull().defaultTo(DM`CURRENT_TIMESTAMP`)).execute(),await i.schema.createTable("event_deliveries").addColumn("id","text",(u)=>u.primaryKey()).addColumn("event_id","text",(u)=>u.notNull()).addColumn("subscription_id","text",(u)=>u.notNull().references("event_subscriptions.id").onDelete("cascade")).addColumn("status","text",(u)=>u.notNull().defaultTo("pending")).addColumn("attempts","integer",(u)=>u.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("delivered_at","text").addColumn("next_retry_at","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(DM`CURRENT_TIMESTAMP`)).execute(),await i.schema.createIndex("idx_events_org_status").on("events").columns(["organization_id","status"]).execute(),await i.schema.createIndex("idx_events_source").on("events").columns(["source"]).execute(),await i.schema.createIndex("idx_events_type").on("events").columns(["type"]).execute(),await i.schema.createIndex("idx_events_retry").on("events").columns(["status","next_retry_at"]).execute(),await i.schema.createIndex("idx_subscriptions_connection").on("event_subscriptions").columns(["connection_id"]).execute(),await i.schema.createIndex("idx_subscriptions_type").on("event_subscriptions").columns(["event_type"]).execute(),await i.schema.createIndex("idx_subscriptions_org_enabled").on("event_subscriptions").columns(["organization_id","enabled"]).execute(),await i.schema.createIndex("idx_subscriptions_unique").on("event_subscriptions").columns(["connection_id","event_type","publisher","filter"]).unique().execute(),await i.schema.createIndex("idx_deliveries_event").on("event_deliveries").columns(["event_id"]).execute(),await i.schema.createIndex("idx_deliveries_subscription_status").on("event_deliveries").columns(["subscription_id","status"]).execute(),await i.schema.createIndex("idx_deliveries_retry").on("event_deliveries").columns(["status","next_retry_at"]).execute()}async function Bbt(i){await i.schema.dropIndex("idx_deliveries_retry").execute(),await i.schema.dropIndex("idx_deliveries_subscription_status").execute(),await i.schema.dropIndex("idx_deliveries_event").execute(),await i.schema.dropIndex("idx_subscriptions_unique").execute(),await i.schema.dropIndex("idx_subscriptions_org_enabled").execute(),await i.schema.dropIndex("idx_subscriptions_type").execute(),await i.schema.dropIndex("idx_subscriptions_connection").execute(),await i.schema.dropIndex("idx_events_retry").execute(),await i.schema.dropIndex("idx_events_type").execute(),await i.schema.dropIndex("idx_events_source").execute(),await i.schema.dropIndex("idx_events_org_status").execute(),await i.schema.dropTable("event_deliveries").execute(),await i.schema.dropTable("event_subscriptions").execute(),await i.schema.dropTable("events").execute()}var Aru=()=>{};var LHi={};Qi(LHi,{up:()=>ybt,down:()=>Tbt});import{sql as Fbt}from"kysely";async function ybt(i){await i.schema.dropTable("audit_logs").ifExists().execute()}async function Tbt(i){await i.schema.createTable("audit_logs").ifNotExists().addColumn("id","text",(u)=>u.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(u)=>u.references("user.id").onDelete("set null")).addColumn("connectionId","text",(u)=>u.references("connections.id").onDelete("set null")).addColumn("toolName","text",(u)=>u.notNull()).addColumn("allowed","integer",(u)=>u.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(u)=>u.notNull().defaultTo(Fbt`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await i.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await i.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await i.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}var Gru=()=>{};var zHi={};Qi(zHi,{up:()=>Ubt,down:()=>Pbt});import{sql as b1i}from"kysely";async function Ubt(i){await i.schema.createTable("gateways").addColumn("id","text",(u)=>u.primaryKey()).addColumn("organization_id","text",(u)=>u.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(u)=>u.notNull()).addColumn("description","text").addColumn("tool_selection_strategy","text").addColumn("status","text",(u)=>u.notNull().defaultTo("active")).addColumn("is_default","integer",(u)=>u.notNull().defaultTo(0)).addColumn("created_at","text",(u)=>u.notNull().defaultTo(b1i`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(u)=>u.notNull().defaultTo(b1i`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(u)=>u.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await i.schema.createTable("gateway_connections").addColumn("id","text",(u)=>u.primaryKey()).addColumn("gateway_id","text",(u)=>u.notNull().references("gateways.id").onDelete("cascade")).addColumn("connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("selected_tools","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(b1i`CURRENT_TIMESTAMP`)).execute(),await i.schema.createIndex("idx_gateways_org").on("gateways").columns(["organization_id"]).execute(),await i.schema.createIndex("idx_gateways_org_status").on("gateways").columns(["organization_id","status"]).execute(),await b1i`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(i),await i.schema.createIndex("idx_gateway_connections_gateway").on("gateway_connections").columns(["gateway_id"]).execute(),await i.schema.createIndex("idx_gateway_connections_connection").on("gateway_connections").columns(["connection_id"]).execute(),await i.schema.createIndex("idx_gateway_connections_unique").on("gateway_connections").columns(["gateway_id","connection_id"]).unique().execute()}async function Pbt(i){await i.schema.dropIndex("idx_gateway_connections_unique").execute(),await i.schema.dropIndex("idx_gateway_connections_connection").execute(),await i.schema.dropIndex("idx_gateway_connections_gateway").execute(),await i.schema.dropIndex("idx_gateways_default_per_org").execute(),await i.schema.dropIndex("idx_gateways_org_status").execute(),await i.schema.dropIndex("idx_gateways_org").execute(),await i.schema.dropTable("gateway_connections").execute(),await i.schema.dropTable("gateways").execute()}var nru=()=>{};var QHi={};Qi(QHi,{up:()=>xbt,down:()=>Ibt});async function xbt(i){await i.schema.alterTable("gateways").addColumn("icon","text").execute()}async function Ibt(i){await i.schema.alterTable("gateways").dropColumn("icon").execute()}var HHi={};Qi(HHi,{up:()=>Abt,down:()=>Gbt});import{sql as R1i}from"kysely";async function Abt(i){await i.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(u)=>u.notNull().defaultTo("inclusion")).execute(),await R1i`
80869
80954
  UPDATE gateways
80870
80955
  SET tool_selection_mode = CASE
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "decocms",
3
- "version": "3.100.2",
3
+ "version": "3.100.3",
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{c as it,r as E,j as e,i as rt}from"./index-ruwDpMdL.js";import{S as mt,b as pt,c as st,d as at}from"./sheet-DA4VamFN.js";import{S as nt}from"./scroll-area-D_dyKd-Z.js";import{r as lt,c as ct,u as dt,a as St,i as ft,f as ut,d as vt,P as ht,S as gt}from"./page-seo-form-C1Vu3MH-.js";import{p as xt}from"./index-T-2ekuRX.js";import"./X-2g4W4cWe.js";import"./agent-icon-C_q7mSRa.js";import"./AlertCircle-xh2gP926.js";import"./Tool01-BpflFDtE.js";import"./SwitchHorizontal01-Bc6V__tI.js";import"./Settings02-DFxSsmg1.js";import"./XCircle-BIqsIsuV.js";import"./ArrowUpRight-BJ5BynUq.js";import"./ZapSquare-DUe1pVWA.js";import"./Users03-DQWhxbkh.js";import"./CheckCircle-CGc5ki5Q.js";import"./ChevronUp-BGzJtIMY.js";import"./ChevronDown-NSf4QmQ0.js";import"./ChevronLeft-5Qu2HV9W.js";import"./ChevronRight-BYPwadVH.js";import"./DotsVertical-gX-z7zlI.js";import"./Stars02-Bmj1q6De.js";import"./Eye-2BypmL4O.js";import"./ZoomOut-DW4-a9sy.js";import"./Globe01-C9WTYAfh.js";import"./FilterLines-BXLRcN4S.js";import"./Star01-_5Kq6KMt.js";import"./Globe04-DbuSJHMt.js";import"./HardDrive-HjdaQ7O-.js";import"./Key01-BRr8GVuW.js";import"./LayoutLeft-LI18VuAo.js";import"./LinkExternal01-Bilw4gt9.js";import"./Monitor01-B7ufM-ly.js";import"./Sun-CmVghThU.js";import"./Palette-BZAEJSRe.js";import"./Play-B6TdL6I4.js";import"./Plus-C3SPCO-A.js";import"./SearchLg-_a3uqaRE.js";import"./SearchMd-lypPgb_V.js";import"./Shield01-DevvngUq.js";import"./Stars01-D1LstVKq.js";import"./Trash01-CvFj-Aly.js";import"./Upload01-DBkVeuhm.js";import"./User01-zHIrFE-g.js";import"./Users01-DXXbxkD3.js";import"./XClose-CgiBxckE.js";import"./Zap-tYFgPiG4.js";import"./use-clock-tick-KPk_UeMl.js";import"./differenceInSeconds-NQ4PDo0z.js";import"./use-copy-C2wLpsxb.js";import"./tooltip-B0n0Zj4m.js";import"./file-type-icon-DRtEsml_.js";import"./dialog-BixLDqwV.js";import"./use-mobile-CI3wHW4c.js";import"./tab-id-BptcWVWa.js";import"./content-blocks-o63cs2vh.js";import"./types-DNkW-qxI.js";import"./use-mcp-client-CR6UtoZn.js";import"./auth-CMjBgF5h.js";import"./chat-context-BAIBlE7E.js";import"./hooks-xetpHtWN.js";import"./decopilot-sse-pool-DuRfF0Dk.js";import"./backoff-CrEUbyZT.js";import"./delay-CnY5UFtP.js";import"./use-virtual-mcp-ouY2cM52.js";import"./use-collections-DO_bdqzo.js";import"./use-ai-providers-DpINQmua.js";import"./studio-tools-BvtnsF_A.js";import"./use-organization-settings-CN_9ek_R.js";import"./shell-layout-BT7hKb3G.js";import"./avatar-Dmeek_03.js";import"./required-auth-layout-DkFHvtsu.js";import"./use-org-sso-CC1p2rvN.js";import"./integration-icon-QfRDLf2K.js";import"./use-navigate-to-agent-BHyXMmUh.js";import"./use-connection-DwZdqHeu.js";import"./use-mcp-prompts-CrIxoUoW.js";import"./form-CGo-7i8F.js";import"./label-Bj3DgQac.js";import"./input-DnS0RXH7.js";import"./select-CAcrdsL_.js";import"./switch-DWK9I380.js";import"./index-Cr9dstDR.js";import"./drawer-B0_yoYfs.js";import"./collection-search-BUIUupDY.js";import"./tabs-2XCSq7S2.js";import"./toggle-group-BWb6AMW2.js";import"./sortable.esm-8jtXOgrb.js";import"./connection-slug-eyAPH6o3.js";import"./connection-card-D7ThMD9D.js";import"./use-registry-connections-DmXZ1gnO.js";import"./useInfiniteQuery-DLRLsmsK.js";import"./use-infinite-scroll-iBPvCYYm.js";import"./extract-connection-data-CtzU7uhg.js";import"./card-Cq9QBuRs.js";import"./collection-tabs-BWhjSwu7.js";import"./badge-SVLIkm4C.js";import"./textarea-DuWb2193.js";import"./connection-form-helpers-PQPYx5Zz.js";import"./authenticate-and-persist-oauth-BvyQB7dF.js";import"./mcp-oauth-FevntFHy.js";import"./useSuspenseInfiniteQuery-C3kvI5Fr.js";import"./connect-desktop-dialog-Bj4g6gPe.js";import"./decopilot-sJs6Xo8i.js";import"./checkbox-DrjXx2dQ.js";import"./skeleton-CyRwZcp0.js";import"./ai-providers-logos-DD3qZ33J.js";import"./settings-section-1OO9c1xM.js";import"./popover-YgnHMc8h.js";import"./command-Sfrh6rdN.js";import"./index-D_rp3YDb.js";import"./dropdown-menu-BDGnR4sN.js";import"./question-004-sINsf4GQ.js";import"./use-status-sounds-D-qWJ3JY.js";import"./empty-state-DgVsexvC.js";import"./toolbar-CGqq02hl.js";import"./preview-dialog-CFJ93GLJ.js";import"./index-KXyotJ3W.js";import"./use-mcp-tools-C0xRWDX-.js";import"./use-capability-C6io7gkh.js";import"./shell-route-loading-vPV1iq7F.js";import"./index-BlVtZ9M7.js";import"./alert-dialog-BBRhUlbP.js";import"./use-debounced-autosave-DYv0JtIS.js";import"./index-CKUj5Vg8.js";import"./sidebar-BUXiwafF.js";import"./search-input-By7oI5Q5.js";import"./github-repo-picker-cNqdJDFb.js";import"./use-debounced-value-Dvdv2Jwo.js";import"./use-secrets-JgTQvjZL.js";import"./formatDistanceToNow-Cb2QZZJn.js";import"./view-mode-toggle-D0X3i5sw.js";import"./automation-runs-DbMhc53f.js";import"./table-Ct674G4f.js";import"./use-members-DjJFYci1.js";import"./use-org-auth-client-Ca3w1FrO.js";import"./task-status-DHz44qdi.js";import"./use-automations-u8zUfs8N.js";import"./use-file-configs-9zZJ75I2.js";import"./monaco-editor-DMz3v73F.js";import"./select-model-MBVN6kuK.js";import"./automation-list-row-BWnN_a2j.js";function ii(u){const t=it.c(46),{open:N,onOpenChange:P,orgSlug:Q,virtualMcpId:U,branch:W,decofile:G,meta:s,target:m,onSaved:X}=u,o=lt(G,m,s),k=m.kind==="site"?"site":m.pageKey,[Y,Z]=E.useState(k),[tt,i]=E.useState(null),[J,g]=E.useState(void 0),[x,y]=E.useState(0);Y!==k&&(Z(k),i(null),g(void 0),y(wt));const{persistSeo:a,persistRawSeo:I,flush:K,isPending:D}=ct({orgSlug:Q,virtualMcpId:U,branch:W,target:m,resolved:o,onSaved:X}),w=m.kind==="page",ot=w?o?.rawSeoData:void 0,v=J!==void 0?J:ot,et=w?dt(v)??void 0:void 0,h=tt??et??o?.seoData??{},p=o?St(h,o):null,n=p&&(!w||ft(v))?xt(p,s):null,_=m.kind==="page"?ut(G,s)?.seoData??void 0:void 0;let j;t[0]!==s?(j=vt(s),t[0]=s,t[1]=j):j=t[1];const M=j;let R;t[2]!==a||t[3]!==o||t[4]!==i?(R=r=>{if(!o)return;const L=r;i(L),a(L)},t[2]=a,t[3]=o,t[4]=i,t[5]=R):R=t[5];const V=R;let F;t[6]!==K||t[7]!==P?(F=r=>{r||K(),P(r)},t[6]=K,t[7]=P,t[8]=F):F=t[8];const z=F,A=m.kind==="site"?"Site SEO":"Page SEO",T=w&&o,B=m.kind==="site"&&o&&n,H=m.kind==="site"?"No site-level SEO block found.":o?"SEO schema not found for this page.":"Could not load page SEO.";let C;t[9]!==i?(C=()=>i(null),t[9]=i,t[10]=C):C=t[10];const $=C;let O;t[11]!==y?(O=()=>y(yt),t[11]=y,t[12]=O):O=t[12];const q=O;let l;t[13]!==A?(l=e.jsx(mt,{className:"text-sm font-semibold",children:A}),t[13]=A,t[14]=l):l=t[14];let c;t[15]!==D?(c=D&&e.jsx(rt,{size:14,className:"animate-spin text-muted-foreground"}),t[15]=D,t[16]=c):c=t[16];let d;t[17]!==l||t[18]!==c?(d=e.jsxs(pt,{className:"px-4 py-3 border-b flex-row items-center justify-between space-y-0",children:[l,c]}),t[17]=l,t[18]=c,t[19]=d):d=t[19];let S;t[20]!==p||t[21]!==q||t[22]!==$||t[23]!==M||t[24]!==v||t[25]!==h||t[26]!==H||t[27]!==x||t[28]!==V||t[29]!==I||t[30]!==a||t[31]!==o||t[32]!==n||t[33]!==i||t[34]!==g||t[35]!==T||t[36]!==B||t[37]!==_?(S=!o||!T&&!B?e.jsx("div",{className:"flex h-full items-center justify-center text-sm text-muted-foreground",children:H}):e.jsx(nt,{className:"flex-1 min-h-0 [&_[data-slot=scroll-area-viewport]>div]:!block",children:e.jsx("div",{className:"px-6 py-4",children:e.jsx("div",{className:"mx-auto max-w-sm",children:T?e.jsx(ht,{rawSeo:v,innerSeo:h,defaultResolveType:M,seoSchema:n,activeResolveType:p,seoTypeOptions:o.seoTypeOptions,formResetKey:x,siteDefaultSeo:_,onPersistRaw:r=>{g(r),I(r)},onInnerChange:r=>{i(r),a(r)},onClearForm:$,onBumpFormKey:q}):n&&p&&e.jsx(gt,{schema:n,resolveType:p,value:h,formResetKey:x,onChange:V})})})}),t[20]=p,t[21]=q,t[22]=$,t[23]=M,t[24]=v,t[25]=h,t[26]=H,t[27]=x,t[28]=V,t[29]=I,t[30]=a,t[31]=o,t[32]=n,t[33]=i,t[34]=g,t[35]=T,t[36]=B,t[37]=_,t[38]=S):S=t[38];let f;t[39]!==d||t[40]!==S?(f=e.jsxs(st,{side:"right",className:"w-[400px] sm:max-w-[440px] p-0 gap-0",children:[d,S]}),t[39]=d,t[40]=S,t[41]=f):f=t[41];let b;return t[42]!==z||t[43]!==N||t[44]!==f?(b=e.jsx(at,{open:N,onOpenChange:z,children:f}),t[42]=z,t[43]=N,t[44]=f,t[45]=b):b=t[45],b}function yt(u){return u+1}function wt(u){return u+1}export{ii as SeoSheet};
@@ -1 +0,0 @@
1
- import{c as $,D as H,j as A}from"./index-ruwDpMdL.js";import{l as L,g as E,s as y}from"./scroll-area-D_dyKd-Z.js";import{p as O,u as k}from"./use-mcp-client-CR6UtoZn.js";import{b as q,c as B}from"./use-mcp-tools-C0xRWDX-.js";import{u as Y}from"./index-T-2ekuRX.js";import{c as G}from"./content-blocks-o63cs2vh.js";import{g as K,M as V,a as w}from"./types-DNkW-qxI.js";import{u as z,b as F}from"./chat-context-BAIBlE7E.js";import{b as J}from"./shell-layout-BT7hKb3G.js";import"./agent-icon-C_q7mSRa.js";import"./AlertCircle-xh2gP926.js";import"./Tool01-BpflFDtE.js";import"./SwitchHorizontal01-Bc6V__tI.js";import"./Settings02-DFxSsmg1.js";import"./XCircle-BIqsIsuV.js";import"./ArrowUpRight-BJ5BynUq.js";import"./ZapSquare-DUe1pVWA.js";import"./Users03-DQWhxbkh.js";import"./CheckCircle-CGc5ki5Q.js";import"./ChevronUp-BGzJtIMY.js";import"./ChevronDown-NSf4QmQ0.js";import"./ChevronLeft-5Qu2HV9W.js";import"./ChevronRight-BYPwadVH.js";import"./DotsVertical-gX-z7zlI.js";import"./Stars02-Bmj1q6De.js";import"./Eye-2BypmL4O.js";import"./ZoomOut-DW4-a9sy.js";import"./Globe01-C9WTYAfh.js";import"./FilterLines-BXLRcN4S.js";import"./Star01-_5Kq6KMt.js";import"./Globe04-DbuSJHMt.js";import"./HardDrive-HjdaQ7O-.js";import"./Key01-BRr8GVuW.js";import"./LayoutLeft-LI18VuAo.js";import"./LinkExternal01-Bilw4gt9.js";import"./Monitor01-B7ufM-ly.js";import"./Sun-CmVghThU.js";import"./Palette-BZAEJSRe.js";import"./Play-B6TdL6I4.js";import"./Plus-C3SPCO-A.js";import"./SearchLg-_a3uqaRE.js";import"./SearchMd-lypPgb_V.js";import"./Shield01-DevvngUq.js";import"./Stars01-D1LstVKq.js";import"./Trash01-CvFj-Aly.js";import"./Upload01-DBkVeuhm.js";import"./User01-zHIrFE-g.js";import"./Users01-DXXbxkD3.js";import"./XClose-CgiBxckE.js";import"./X-2g4W4cWe.js";import"./Zap-tYFgPiG4.js";import"./use-clock-tick-KPk_UeMl.js";import"./differenceInSeconds-NQ4PDo0z.js";import"./use-copy-C2wLpsxb.js";import"./tooltip-B0n0Zj4m.js";import"./file-type-icon-DRtEsml_.js";import"./dialog-BixLDqwV.js";import"./use-mobile-CI3wHW4c.js";import"./tab-id-BptcWVWa.js";import"./hooks-xetpHtWN.js";import"./decopilot-sse-pool-DuRfF0Dk.js";import"./backoff-CrEUbyZT.js";import"./delay-CnY5UFtP.js";import"./studio-tools-BvtnsF_A.js";import"./sheet-DA4VamFN.js";import"./integration-icon-QfRDLf2K.js";import"./use-virtual-mcp-ouY2cM52.js";import"./use-collections-DO_bdqzo.js";import"./use-navigate-to-agent-BHyXMmUh.js";import"./use-connection-DwZdqHeu.js";import"./use-mcp-prompts-CrIxoUoW.js";import"./form-CGo-7i8F.js";import"./label-Bj3DgQac.js";import"./input-DnS0RXH7.js";import"./select-CAcrdsL_.js";import"./auth-CMjBgF5h.js";import"./index-Cr9dstDR.js";import"./drawer-B0_yoYfs.js";import"./collection-search-BUIUupDY.js";import"./tabs-2XCSq7S2.js";import"./toggle-group-BWb6AMW2.js";import"./sortable.esm-8jtXOgrb.js";import"./connection-slug-eyAPH6o3.js";import"./connection-card-D7ThMD9D.js";import"./use-registry-connections-DmXZ1gnO.js";import"./use-organization-settings-CN_9ek_R.js";import"./useInfiniteQuery-DLRLsmsK.js";import"./use-infinite-scroll-iBPvCYYm.js";import"./extract-connection-data-CtzU7uhg.js";import"./card-Cq9QBuRs.js";import"./collection-tabs-BWhjSwu7.js";import"./badge-SVLIkm4C.js";import"./textarea-DuWb2193.js";import"./connection-form-helpers-PQPYx5Zz.js";import"./authenticate-and-persist-oauth-BvyQB7dF.js";import"./mcp-oauth-FevntFHy.js";import"./useSuspenseInfiniteQuery-C3kvI5Fr.js";import"./use-ai-providers-DpINQmua.js";import"./connect-desktop-dialog-Bj4g6gPe.js";import"./decopilot-sJs6Xo8i.js";import"./checkbox-DrjXx2dQ.js";import"./skeleton-CyRwZcp0.js";import"./ai-providers-logos-DD3qZ33J.js";import"./avatar-Dmeek_03.js";import"./settings-section-1OO9c1xM.js";import"./popover-YgnHMc8h.js";import"./command-Sfrh6rdN.js";import"./index-D_rp3YDb.js";import"./dropdown-menu-BDGnR4sN.js";import"./question-004-sINsf4GQ.js";import"./use-status-sounds-D-qWJ3JY.js";import"./empty-state-DgVsexvC.js";import"./toolbar-CGqq02hl.js";import"./preview-dialog-CFJ93GLJ.js";import"./index-KXyotJ3W.js";import"./use-capability-C6io7gkh.js";import"./shell-route-loading-vPV1iq7F.js";import"./index-BlVtZ9M7.js";import"./alert-dialog-BBRhUlbP.js";import"./switch-DWK9I380.js";import"./use-debounced-autosave-DYv0JtIS.js";import"./index-CKUj5Vg8.js";import"./sidebar-BUXiwafF.js";import"./search-input-By7oI5Q5.js";import"./github-repo-picker-cNqdJDFb.js";import"./use-debounced-value-Dvdv2Jwo.js";import"./use-secrets-JgTQvjZL.js";import"./formatDistanceToNow-Cb2QZZJn.js";import"./view-mode-toggle-D0X3i5sw.js";import"./automation-runs-DbMhc53f.js";import"./table-Ct674G4f.js";import"./use-members-DjJFYci1.js";import"./use-org-auth-client-Ca3w1FrO.js";import"./task-status-DHz44qdi.js";import"./use-automations-u8zUfs8N.js";import"./use-file-configs-9zZJ75I2.js";import"./monaco-editor-DMz3v73F.js";import"./select-model-MBVN6kuK.js";import"./automation-list-row-BWnN_a2j.js";import"./required-auth-layout-DkFHvtsu.js";import"./use-org-sso-CC1p2rvN.js";const Q={};function W(S){const t=$.c(37),{client:r,resourceURI:h,tool:o,connectionId:p,orgId:l,args:M}=S,{sendMessage:I}=z(),{setAppContext:u,clearAppContext:n}=F(),{setChatOpen:f,openTab:g}=J(),e=`${p}:${o.name}`;let a;t[0]!==g?(a=C=>C==="inline"?(g("0"),"inline"):"fullscreen",t[0]=g,t[1]=a):a=t[1];const m=a,s=M??Q;let c;t[2]!==r||t[3]!==o.name||t[4]!==s?(c={client:r,toolName:o.name,toolArguments:s},t[2]=r,t[3]=o.name,t[4]=s,t[5]=c):c=t[5];const{data:i}=B(c);let x;if(t[6]!==o._meta||t[7]!==o.name){const C=E(o._meta);x=y(o.name,C),t[6]=o._meta,t[7]=o.name,t[8]=x}else x=t[8];const U=x;let d;t[9]!==o.inputSchema?(d=o.inputSchema??{type:"object"},t[9]=o.inputSchema,t[10]=d):d=t[10];let N;t[11]!==U||t[12]!==d||t[13]!==o?(N={...o,name:U,inputSchema:d},t[11]=U,t[12]=d,t[13]=o,t[14]=N):N=t[14];const b=N;let _;t[15]!==I||t[16]!==f?(_=C=>{const D=G(C.content);D.content.length>0&&(f(!0),I({tiptapDoc:D}))},t[15]=I,t[16]=f,t[17]=_):_=t[17];const j=_;let P;t[18]!==b?(P={tool:b},t[18]=b,t[19]=P):P=t[19];let T;t[20]!==u||t[21]!==e?(T=C=>u(e,C),t[20]=u,t[21]=e,t[22]=T):T=t[22];let R;t[23]!==n||t[24]!==e?(R=()=>n(e),t[23]=n,t[24]=e,t[25]=R):R=t[25];let v;return t[26]!==r||t[27]!==j||t[28]!==m||t[29]!==l||t[30]!==h||t[31]!==P||t[32]!==T||t[33]!==R||t[34]!==s||t[35]!==i?(v=A.jsx(V,{resourceURI:h,orgId:l,toolInfo:P,toolInput:s,toolResult:i,displayMode:"fullscreen",minHeight:w.fullscreen.minHeight,maxHeight:w.fullscreen.maxHeight,client:r,onMessage:j,onUpdateModelContext:T,onTeardown:R,onRequestDisplayMode:m,className:"h-full"}),t[26]=r,t[27]=j,t[28]=m,t[29]=l,t[30]=h,t[31]=P,t[32]=T,t[33]=R,t[34]=s,t[35]=i,t[36]=v):v=t[36],v}function ye(S){const t=$.c(24),{connectionId:r,toolName:h,args:o}=S,{org:p}=H(),l=Y();let M;t[0]!==r||t[1]!==l?(M=O(r)&&l.vmEntry?.sandboxProviderKind==="user-desktop"&&l.previewUrl?`${l.previewUrl.replace(/\/+$/,"")}/api/mcp`:void 0,t[0]=r,t[1]=l,t[2]=M):M=t[2];const I=M;let u;t[3]!==r||t[4]!==I||t[5]!==p.id||t[6]!==p.slug?(u={connectionId:r,orgId:p.id,orgSlug:p.slug,mcpUrl:I},t[3]=r,t[4]=I,t[5]=p.id,t[6]=p.slug,t[7]=u):u=t[7];const n=k(u);let f;t[8]!==n?(f={client:n},t[8]=n,t[9]=f):f=t[9];const{data:g}=q(f);let e,a,m;t[10]!==h||t[11]!==g.tools?(e=L(decodeURIComponent(h)),m=g.tools.find(i=>i.name===e)??g.tools.find(i=>{const x=E(i._meta);if(!x)return!1;if(y(i.name,x)===e)return!0;const d=y(e,x);return d!==e&&i.name===d}),a=m?._meta?K(m._meta):void 0,t[10]=h,t[11]=g.tools,t[12]=e,t[13]=a,t[14]=m):(e=t[12],a=t[13],m=t[14]);const s=a;if(!m||!s){let i;return t[15]!==e?(i=A.jsx("div",{className:"flex items-center justify-center h-full w-full",children:A.jsxs("p",{className:"text-sm text-muted-foreground",children:['Tool "',e,'" not found or has no UI']})}),t[15]=e,t[16]=i):i=t[16],i}let c;return t[17]!==o||t[18]!==n||t[19]!==r||t[20]!==p.id||t[21]!==s||t[22]!==m?(c=A.jsx(W,{client:n,resourceURI:s,tool:m,connectionId:r,orgId:p.id,args:o}),t[17]=o,t[18]=n,t[19]=r,t[20]=p.id,t[21]=s,t[22]=m,t[23]=c):c=t[23],c}export{ye as AppViewContent};
@@ -1 +0,0 @@
1
- import{c as S,j as r}from"./index-ruwDpMdL.js";import{I as T}from"./input-DnS0RXH7.js";import{L as C}from"./label-Bj3DgQac.js";import{T as L}from"./textarea-DuWb2193.js";import{at as A,au as R,as as D,av as J,aw as K}from"./index-T-2ekuRX.js";import{u as M,s as P}from"./primitives-CmNbb24w.js";import"./index-Cr9dstDR.js";import"./chat-context-BAIBlE7E.js";import"./hooks-xetpHtWN.js";import"./use-mcp-client-CR6UtoZn.js";import"./auth-CMjBgF5h.js";import"./decopilot-sse-pool-DuRfF0Dk.js";import"./backoff-CrEUbyZT.js";import"./delay-CnY5UFtP.js";import"./use-virtual-mcp-ouY2cM52.js";import"./use-collections-DO_bdqzo.js";import"./use-ai-providers-DpINQmua.js";import"./studio-tools-BvtnsF_A.js";import"./tab-id-BptcWVWa.js";import"./use-organization-settings-CN_9ek_R.js";import"./scroll-area-D_dyKd-Z.js";import"./agent-icon-C_q7mSRa.js";import"./AlertCircle-xh2gP926.js";import"./Tool01-BpflFDtE.js";import"./SwitchHorizontal01-Bc6V__tI.js";import"./Settings02-DFxSsmg1.js";import"./XCircle-BIqsIsuV.js";import"./ArrowUpRight-BJ5BynUq.js";import"./ZapSquare-DUe1pVWA.js";import"./Users03-DQWhxbkh.js";import"./CheckCircle-CGc5ki5Q.js";import"./ChevronUp-BGzJtIMY.js";import"./ChevronDown-NSf4QmQ0.js";import"./ChevronLeft-5Qu2HV9W.js";import"./ChevronRight-BYPwadVH.js";import"./DotsVertical-gX-z7zlI.js";import"./Stars02-Bmj1q6De.js";import"./Eye-2BypmL4O.js";import"./ZoomOut-DW4-a9sy.js";import"./Globe01-C9WTYAfh.js";import"./FilterLines-BXLRcN4S.js";import"./Star01-_5Kq6KMt.js";import"./Globe04-DbuSJHMt.js";import"./HardDrive-HjdaQ7O-.js";import"./Key01-BRr8GVuW.js";import"./LayoutLeft-LI18VuAo.js";import"./LinkExternal01-Bilw4gt9.js";import"./Monitor01-B7ufM-ly.js";import"./Sun-CmVghThU.js";import"./Palette-BZAEJSRe.js";import"./Play-B6TdL6I4.js";import"./Plus-C3SPCO-A.js";import"./SearchLg-_a3uqaRE.js";import"./SearchMd-lypPgb_V.js";import"./Shield01-DevvngUq.js";import"./Stars01-D1LstVKq.js";import"./Trash01-CvFj-Aly.js";import"./Upload01-DBkVeuhm.js";import"./User01-zHIrFE-g.js";import"./Users01-DXXbxkD3.js";import"./XClose-CgiBxckE.js";import"./X-2g4W4cWe.js";import"./Zap-tYFgPiG4.js";import"./use-clock-tick-KPk_UeMl.js";import"./differenceInSeconds-NQ4PDo0z.js";import"./use-copy-C2wLpsxb.js";import"./tooltip-B0n0Zj4m.js";import"./file-type-icon-DRtEsml_.js";import"./dialog-BixLDqwV.js";import"./use-mobile-CI3wHW4c.js";import"./content-blocks-o63cs2vh.js";import"./types-DNkW-qxI.js";import"./shell-layout-BT7hKb3G.js";import"./avatar-Dmeek_03.js";import"./required-auth-layout-DkFHvtsu.js";import"./use-org-sso-CC1p2rvN.js";import"./sheet-DA4VamFN.js";import"./integration-icon-QfRDLf2K.js";import"./use-navigate-to-agent-BHyXMmUh.js";import"./use-connection-DwZdqHeu.js";import"./use-mcp-prompts-CrIxoUoW.js";import"./form-CGo-7i8F.js";import"./select-CAcrdsL_.js";import"./drawer-B0_yoYfs.js";import"./collection-search-BUIUupDY.js";import"./tabs-2XCSq7S2.js";import"./toggle-group-BWb6AMW2.js";import"./sortable.esm-8jtXOgrb.js";import"./connection-slug-eyAPH6o3.js";import"./connection-card-D7ThMD9D.js";import"./use-registry-connections-DmXZ1gnO.js";import"./useInfiniteQuery-DLRLsmsK.js";import"./use-infinite-scroll-iBPvCYYm.js";import"./extract-connection-data-CtzU7uhg.js";import"./card-Cq9QBuRs.js";import"./collection-tabs-BWhjSwu7.js";import"./badge-SVLIkm4C.js";import"./connection-form-helpers-PQPYx5Zz.js";import"./authenticate-and-persist-oauth-BvyQB7dF.js";import"./mcp-oauth-FevntFHy.js";import"./useSuspenseInfiniteQuery-C3kvI5Fr.js";import"./connect-desktop-dialog-Bj4g6gPe.js";import"./decopilot-sJs6Xo8i.js";import"./checkbox-DrjXx2dQ.js";import"./skeleton-CyRwZcp0.js";import"./ai-providers-logos-DD3qZ33J.js";import"./settings-section-1OO9c1xM.js";import"./popover-YgnHMc8h.js";import"./command-Sfrh6rdN.js";import"./index-D_rp3YDb.js";import"./dropdown-menu-BDGnR4sN.js";import"./question-004-sINsf4GQ.js";import"./use-status-sounds-D-qWJ3JY.js";import"./empty-state-DgVsexvC.js";import"./toolbar-CGqq02hl.js";import"./preview-dialog-CFJ93GLJ.js";import"./index-KXyotJ3W.js";import"./use-mcp-tools-C0xRWDX-.js";import"./use-capability-C6io7gkh.js";import"./shell-route-loading-vPV1iq7F.js";import"./index-BlVtZ9M7.js";import"./alert-dialog-BBRhUlbP.js";import"./switch-DWK9I380.js";import"./use-debounced-autosave-DYv0JtIS.js";import"./index-CKUj5Vg8.js";import"./sidebar-BUXiwafF.js";import"./search-input-By7oI5Q5.js";import"./github-repo-picker-cNqdJDFb.js";import"./use-debounced-value-Dvdv2Jwo.js";import"./use-secrets-JgTQvjZL.js";import"./formatDistanceToNow-Cb2QZZJn.js";import"./view-mode-toggle-D0X3i5sw.js";import"./automation-runs-DbMhc53f.js";import"./table-Ct674G4f.js";import"./use-members-DjJFYci1.js";import"./use-org-auth-client-Ca3w1FrO.js";import"./task-status-DHz44qdi.js";import"./use-automations-u8zUfs8N.js";import"./use-file-configs-9zZJ75I2.js";import"./monaco-editor-DMz3v73F.js";import"./select-model-MBVN6kuK.js";import"./automation-list-row-BWnN_a2j.js";const $={authors:[{key:"name",label:"Name",widget:"text"},{key:"email",label:"Email",widget:"text",placeholder:"author@example.com"},{key:"jobTitle",label:"Job title",widget:"text"},{key:"company",label:"Company",widget:"text"},{key:"avatar",label:"Avatar",widget:"image"}]},q={authors:"Author"};function fr(B){const t=S.c(34),{orgSlug:v,virtualMcpId:j,branch:w,kind:p,blockKey:g,block:f}=B;let y;t[0]!==w||t[1]!==v||t[2]!==j?(y={orgSlug:v,virtualMcpId:j,branch:w},t[0]=w,t[1]=v,t[2]=j,t[3]=y):y=t[3];const m=A(y);let d;t[4]!==f||t[5]!==p?(d=R(f,p),t[4]=f,t[5]=p,t[6]=d):d=t[6];const F=d;let h;t[7]!==g||t[8]!==p||t[9]!==m?(h=e=>{m.mutate({blockKey:g,data:J(g,p,e)})},t[7]=g,t[8]=p,t[9]=m,t[10]=h):h=t[10];const[i,E]=M(F,h);let k;t[11]!==i||t[12]!==E?(k=(e,o)=>E({...i,[e]:o}),t[11]=i,t[12]=E,t[13]=k):k=t[13];const a=k,N=q[p];let s;t[14]!==N?(s=r.jsx("span",{className:"text-sm font-medium",children:N}),t[14]=N,t[15]=s):s=t[15];let l;t[16]!==m.isError||t[17]!==m.isPending?(l=r.jsx(D,{isPending:m.isPending,isError:m.isError}),t[16]=m.isError,t[17]=m.isPending,t[18]=l):l=t[18];let n;t[19]!==s||t[20]!==l?(n=r.jsxs("div",{className:"flex h-12 shrink-0 items-center justify-between border-b px-6",children:[s,l]}),t[19]=s,t[20]=l,t[21]=n):n=t[21];const I=$[p];let c;if(t[22]!==i||t[23]!==a||t[24]!==I){let e;t[26]!==i||t[27]!==a?(e=o=>r.jsx("div",{className:"space-y-2",children:o.widget==="image"?r.jsx(K,{schema:{type:"string",format:"image-uri",title:o.label},value:i[o.key],onChange:u=>a(o.key,u),path:o.key,label:o.label}):r.jsxs(r.Fragment,{children:[r.jsx(C,{htmlFor:o.key,children:o.label}),o.widget==="textarea"?r.jsx(L,{id:o.key,value:P(i[o.key]),onChange:u=>a(o.key,u.target.value),rows:3}):r.jsx(T,{id:o.key,value:P(i[o.key]),placeholder:o.placeholder,onChange:u=>a(o.key,u.target.value),className:"h-10"})]})},o.key),t[26]=i,t[27]=a,t[28]=e):e=t[28],c=I.map(e),t[22]=i,t[23]=a,t[24]=I,t[25]=c}else c=t[25];let x;t[29]!==c?(x=r.jsx("div",{className:"min-w-0 flex-1 overflow-y-auto px-6 py-6",children:r.jsx("div",{className:"mx-auto max-w-xl space-y-6",children:c})}),t[29]=c,t[30]=x):x=t[30];let b;return t[31]!==x||t[32]!==n?(b=r.jsxs("div",{className:"flex h-full flex-col",children:[n,x]}),t[31]=x,t[32]=n,t[33]=b):b=t[33],b}export{fr as RecordEditor};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/registry-layout-BaxWi9Bz.js","assets/index-ruwDpMdL.js","assets/index-h9qXUa58.css","assets/XCircle-BIqsIsuV.js","assets/CheckCircle-CGc5ki5Q.js","assets/Settings02-DFxSsmg1.js","assets/use-mcp-client-CR6UtoZn.js","assets/auth-CMjBgF5h.js","assets/useInfiniteQuery-DLRLsmsK.js","assets/use-infinite-scroll-iBPvCYYm.js","assets/studio-tools-BvtnsF_A.js","assets/badge-SVLIkm4C.js","assets/input-DnS0RXH7.js","assets/dropdown-menu-BDGnR4sN.js","assets/ChevronUp-BGzJtIMY.js","assets/ChevronRight-BYPwadVH.js","assets/DotsVertical-gX-z7zlI.js","assets/table-Ct674G4f.js","assets/toggle-group-BWb6AMW2.js","assets/use-view-mode-DBqNTYqM.js","assets/use-mobile-CI3wHW4c.js","assets/FilterLines-BXLRcN4S.js","assets/Globe01-C9WTYAfh.js","assets/SearchMd-lypPgb_V.js","assets/dialog-BixLDqwV.js","assets/X-2g4W4cWe.js","assets/AlertCircle-xh2gP926.js","assets/Upload01-DBkVeuhm.js","assets/alert-dialog-BBRhUlbP.js","assets/card-Cq9QBuRs.js","assets/Trash01-CvFj-Aly.js","assets/label-Bj3DgQac.js","assets/select-CAcrdsL_.js","assets/tooltip-B0n0Zj4m.js","assets/ChevronDown-NSf4QmQ0.js","assets/switch-DWK9I380.js","assets/textarea-DuWb2193.js","assets/checkbox-DrjXx2dQ.js","assets/Eye-2BypmL4O.js","assets/LinkExternal01-Bilw4gt9.js","assets/use-copy-C2wLpsxb.js","assets/Key01-BRr8GVuW.js","assets/Plus-C3SPCO-A.js","assets/mcp-oauth-FevntFHy.js","assets/Play-B6TdL6I4.js"])))=>i.map(i=>d[i]);
2
- import{c as s,j as e,r as i,i as a,am as o}from"./index-ruwDpMdL.js";import{R as m}from"./require-capability-BHgnEKCl.js";import"./use-capability-C6io7gkh.js";import"./access-gate-BX4tcUBQ.js";import"./capability-load-error-D-AqSbCQ.js";const n=i.lazy(()=>o(()=>import("./registry-layout-BaxWi9Bz.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,40,41,42,43,44])));function f(){const r=s.c(1);let t;return r[0]===Symbol.for("react.memo_cache_sentinel")?(t=e.jsx(m,{capability:"registry:manage",area:"the registry",children:e.jsx(i.Suspense,{fallback:e.jsx("div",{className:"flex-1 flex items-center justify-center",children:e.jsx(a,{size:20,className:"animate-spin text-muted-foreground"})}),children:e.jsx(n,{})})}),r[0]=t):t=r[0],t}export{f as default};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/registry-layout-BaxWi9Bz.js","assets/index-ruwDpMdL.js","assets/index-h9qXUa58.css","assets/XCircle-BIqsIsuV.js","assets/CheckCircle-CGc5ki5Q.js","assets/Settings02-DFxSsmg1.js","assets/use-mcp-client-CR6UtoZn.js","assets/auth-CMjBgF5h.js","assets/useInfiniteQuery-DLRLsmsK.js","assets/use-infinite-scroll-iBPvCYYm.js","assets/studio-tools-BvtnsF_A.js","assets/badge-SVLIkm4C.js","assets/input-DnS0RXH7.js","assets/dropdown-menu-BDGnR4sN.js","assets/ChevronUp-BGzJtIMY.js","assets/ChevronRight-BYPwadVH.js","assets/DotsVertical-gX-z7zlI.js","assets/table-Ct674G4f.js","assets/toggle-group-BWb6AMW2.js","assets/use-view-mode-DBqNTYqM.js","assets/use-mobile-CI3wHW4c.js","assets/FilterLines-BXLRcN4S.js","assets/Globe01-C9WTYAfh.js","assets/SearchMd-lypPgb_V.js","assets/dialog-BixLDqwV.js","assets/X-2g4W4cWe.js","assets/AlertCircle-xh2gP926.js","assets/Upload01-DBkVeuhm.js","assets/alert-dialog-BBRhUlbP.js","assets/card-Cq9QBuRs.js","assets/Trash01-CvFj-Aly.js","assets/label-Bj3DgQac.js","assets/select-CAcrdsL_.js","assets/tooltip-B0n0Zj4m.js","assets/ChevronDown-NSf4QmQ0.js","assets/switch-DWK9I380.js","assets/textarea-DuWb2193.js","assets/checkbox-DrjXx2dQ.js","assets/Eye-2BypmL4O.js","assets/LinkExternal01-Bilw4gt9.js","assets/use-copy-C2wLpsxb.js","assets/Key01-BRr8GVuW.js","assets/Plus-C3SPCO-A.js","assets/mcp-oauth-FevntFHy.js","assets/Play-B6TdL6I4.js"])))=>i.map(i=>d[i]);
2
- import{c as m,b as n,e as c,j as t,i as p,r as l,am as f}from"./index-ruwDpMdL.js";import{R as u}from"./require-capability-BHgnEKCl.js";import"./use-capability-C6io7gkh.js";import"./access-gate-BX4tcUBQ.js";import"./capability-load-error-D-AqSbCQ.js";const g=l.lazy(()=>f(()=>import("./registry-layout-BaxWi9Bz.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,40,41,42,43,44])));function j(){const e=m.c(5),i=n();let s;e[0]===Symbol.for("react.memo_cache_sentinel")?(s={from:"/shell/$org"},e[0]=s):s=e[0];const{org:o}=c(s);let r;e[1]===Symbol.for("react.memo_cache_sentinel")?(r=t.jsx("div",{className:"h-full flex items-center justify-center",children:t.jsx(p,{size:20,className:"animate-spin text-muted-foreground"})}),e[1]=r):r=e[1];let a;return e[2]!==i||e[3]!==o?(a=t.jsx(u,{capability:"registry:manage",area:"the registry",children:t.jsx(l.Suspense,{fallback:r,children:t.jsx(g,{onBack:()=>i({to:"/$org/settings/store",params:{org:o}})})})}),e[2]=i,e[3]=o,e[4]=a):a=e[4],a}export{j as default};
@@ -1 +0,0 @@
1
- import{I as u}from"./use-infinite-scroll-iBPvCYYm.js";import{cJ as i}from"./index-ruwDpMdL.js";function t(e,r){return i(e,u,r)}export{t as u};
@@ -1 +0,0 @@
1
- import{I as s}from"./use-infinite-scroll-iBPvCYYm.js";import{cJ as u,aC as n}from"./index-ruwDpMdL.js";function a(r,e){return u({...r,enabled:!0,suspense:!0,throwOnError:n},s,e)}export{a as u};