decocms 4.378.5 → 4.378.6
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.
- package/dist/client/assets/{AlertCircle-DUQUFYaF.js → AlertCircle-C8J_5OD-.js} +1 -1
- package/dist/client/assets/{AreaChart-De0rzDSG.js → AreaChart-TP66AE4u.js} +1 -1
- package/dist/client/assets/{ArrowLeft-Y9la6rZZ.js → ArrowLeft-NXmrtSZ9.js} +1 -1
- package/dist/client/assets/{ArrowRight-BBKECzS9.js → ArrowRight-DY51oJBF.js} +1 -1
- package/dist/client/assets/{ArrowUp-6pRC5zxT.js → ArrowUp-3u51v_nn.js} +1 -1
- package/dist/client/assets/{CartesianChart-D24glgKF.js → CartesianChart-DT-YCii5.js} +1 -1
- package/dist/client/assets/{CheckCircle-1npsquac.js → CheckCircle-BSF_60Rb.js} +1 -1
- package/dist/client/assets/{ChevronUp-DEm3RB07.js → ChevronUp-DwkYjKCN.js} +1 -1
- package/dist/client/assets/{Copy01-C8ZVxwty.js → Copy01-WOPqiSpQ.js} +1 -1
- package/dist/client/assets/{CreditCard01-h8nLE_EA.js → CreditCard01-lcAl62WX.js} +1 -1
- package/dist/client/assets/{DotsVertical-_C5DpumE.js → DotsVertical-IlF6zgHP.js} +1 -1
- package/dist/client/assets/{Download01-Cx-FY4dE.js → Download01-BKWwtlM9.js} +1 -1
- package/dist/client/assets/{ErrorBarContext-vWtpQHka.js → ErrorBarContext-DtcfMp3W.js} +1 -1
- package/dist/client/assets/{Eye-CpuYUC0F.js → Eye-C4mCgYZN.js} +1 -1
- package/dist/client/assets/{Globe01-Bib8-TUj.js → Globe01-C_TtWVoU.js} +1 -1
- package/dist/client/assets/{Globe04-V9Mfy9Iv.js → Globe04-BW3SZNKr.js} +1 -1
- package/dist/client/assets/{Image01-CH3lG_1n.js → Image01-CGdxk7_Z.js} +1 -1
- package/dist/client/assets/{Key01-BIDbA3UJ.js → Key01-C6v_ajaP.js} +1 -1
- package/dist/client/assets/{LayoutLeft-BJ1TrIOg.js → LayoutLeft-1tsW1DhZ.js} +1 -1
- package/dist/client/assets/{Line-DWAiS1xS.js → Line-xv3m3DGi.js} +1 -1
- package/dist/client/assets/{Link01-CaDYgjtx.js → Link01-CYhkQTJt.js} +1 -1
- package/dist/client/assets/{LinkExternal01-CjYoJMe3.js → LinkExternal01-BqctQuDZ.js} +1 -1
- package/dist/client/assets/{Monitor01-AD78jdqt.js → Monitor01-BZ8To8Fp.js} +1 -1
- package/dist/client/assets/{Package-Cat5_UNe.js → Package-DGZwUf6v.js} +1 -1
- package/dist/client/assets/{Palette-CzTz2LtS.js → Palette-Djht5dup.js} +1 -1
- package/dist/client/assets/{Play-BdI0zbSO.js → Play-DvkHcc1q.js} +1 -1
- package/dist/client/assets/{Plus-CwgG72IO.js → Plus-CGSoF5CG.js} +1 -1
- package/dist/client/assets/{SearchLg-ZvRcqn3W.js → SearchLg-Cx-MwTcY.js} +1 -1
- package/dist/client/assets/{SearchMd-B0VdgyKU.js → SearchMd-CAhL0r0l.js} +1 -1
- package/dist/client/assets/{Sector-DaqxbEsS.js → Sector-Af8W-T2v.js} +1 -1
- package/dist/client/assets/{Settings02-Baqg3CUl.js → Settings02-Cqb1qnlG.js} +1 -1
- package/dist/client/assets/{Share07-CWvJdFTO.js → Share07-B6vLrcUr.js} +1 -1
- package/dist/client/assets/{Stars01-CMLlnK1V.js → Stars01-CF8bc5RJ.js} +1 -1
- package/dist/client/assets/{Sun-BsR4wR1s.js → Sun-bBHl3Dld.js} +1 -1
- package/dist/client/assets/{Tool01-CGOI2oHu.js → Tool01-CZtPNpr-.js} +1 -1
- package/dist/client/assets/{Tool02-906BAkI6.js → Tool02-J3K1QQtC.js} +1 -1
- package/dist/client/assets/{Trash01-CjUG9I2s.js → Trash01-OoqrOGXJ.js} +1 -1
- package/dist/client/assets/{TrendUp01-D0eD1Hpk.js → TrendUp01-Bg-hcltX.js} +1 -1
- package/dist/client/assets/{Upload01-CnXbdhM1.js → Upload01-DYLPTPqp.js} +1 -1
- package/dist/client/assets/{User01-Bc75Ax_-.js → User01-xIK6O0Ml.js} +1 -1
- package/dist/client/assets/{UserSquare-Bi3r4CZX.js → UserSquare-CLORvhc5.js} +1 -1
- package/dist/client/assets/{Users01-CgTx_1CO.js → Users01-D6AfO54P.js} +1 -1
- package/dist/client/assets/{X-BitUdCux.js → X-C-NTz7Ff.js} +1 -1
- package/dist/client/assets/{XCircle-Bq4XYEO_.js → XCircle-BPYYRi-R.js} +1 -1
- package/dist/client/assets/{XClose-BEaOQ5-a.js → XClose-D8-lO7UW.js} +1 -1
- package/dist/client/assets/{Zap-BTaWy9tI.js → Zap-B8_3XfrJ.js} +1 -1
- package/dist/client/assets/{ZoomOut-CR3hlPod.js → ZoomOut-D9zZ0TL1.js} +1 -1
- package/dist/client/assets/{access-gate-PlDRl2uB.js → access-gate-llnbqAn3.js} +1 -1
- package/dist/client/assets/{add-connection-dialog-ucLlAXth.js → add-connection-dialog-BzULEfGr.js} +1 -1
- package/dist/client/assets/{agent-analytics-sRd5vsr9.js → agent-analytics-DGSQ2UgT.js} +1 -1
- package/dist/client/assets/agent-app-Chz9tQSs.js +1 -0
- package/dist/client/assets/{agent-assets-DZ-h1nZ5.js → agent-assets-KEOS2fmx.js} +1 -1
- package/dist/client/assets/{agent-automation-tp7-YZPr.js → agent-automation-1W4id8O6.js} +1 -1
- package/dist/client/assets/{agent-automations-BnJQAsBZ.js → agent-automations-CL6a7rRQ.js} +1 -1
- package/dist/client/assets/{agent-connect-sources-CzxHnTy-.js → agent-connect-sources-C9-gZLP6.js} +1 -1
- package/dist/client/assets/agent-deck-DU2oZyDO.js +1 -0
- package/dist/client/assets/{agent-e2e-HCnKLTiw.js → agent-e2e-BpNbgO7Y.js} +1 -1
- package/dist/client/assets/{agent-experiments-CmBk3ixz.js → agent-experiments-IQ8p_5pL.js} +1 -1
- package/dist/client/assets/agent-file-Gg_uYp0K.js +1 -0
- package/dist/client/assets/{agent-git-Dpf_t-lE.js → agent-git-CfHhzAxo.js} +1 -1
- package/dist/client/assets/{agent-hosting-Bw9zZLwt.js → agent-hosting-Dk1eSeLD.js} +1 -1
- package/dist/client/assets/{agent-icon-B9Ovc7Gv.js → agent-icon-BxBMICNf.js} +1 -1
- package/dist/client/assets/agent-library-file-DbDPIP1r.js +1 -0
- package/dist/client/assets/{agent-monitor-j0d998L3.js → agent-monitor-BYQWE_P-.js} +1 -1
- package/dist/client/assets/{agent-overview-xT2L8TX7.js → agent-overview-yKlaxhtx.js} +1 -1
- package/dist/client/assets/agent-settings-Dybr1a_G.js +1 -0
- package/dist/client/assets/{agent-site-editor-Chz-N3NP.js → agent-site-editor-bCwu7syk.js} +1 -1
- package/dist/client/assets/agent-site-editor-code-IbWXqk6B.js +2 -0
- package/dist/client/assets/{agent-site-editor-content-wKSoBZ56.js → agent-site-editor-content-Dt1c_eoE.js} +2 -2
- package/dist/client/assets/{agent-site-editor-preview-Dxd0UPLk.js → agent-site-editor-preview-CuZXUc9j.js} +3 -3
- package/dist/client/assets/agent-view-BsftJPUe.js +1 -0
- package/dist/client/assets/{agent-view-guard-DaHNXwEz.js → agent-view-guard-YMHgRp39.js} +1 -1
- package/dist/client/assets/{agents-list-CHnO30aL.js → agents-list-DD7YHIij.js} +1 -1
- package/dist/client/assets/{ai-providers-BFflcTan.js → ai-providers-BwLlqau0.js} +1 -1
- package/dist/client/assets/{alert-D7CPM4CB.js → alert-DzP5mor0.js} +1 -1
- package/dist/client/assets/{alert-dialog-yn-CBCTa.js → alert-dialog-Cpy9pq73.js} +1 -1
- package/dist/client/assets/api-keys-kB7bXYZi.js +1 -0
- package/dist/client/assets/{api-keys-BpvtIH-U.js → api-keys-t0atwhAP.js} +1 -1
- package/dist/client/assets/app-editor-CyDbFmvE.js +1 -0
- package/dist/client/assets/{asset-utils-B6FcZESP.js → asset-utils-Cf386_TL.js} +1 -1
- package/dist/client/assets/{auth-CDTDu40D.js → auth-CvPXxmqe.js} +1 -1
- package/dist/client/assets/{auth-catchall-KUYXzB2E.js → auth-catchall-BPCrgHcJ.js} +1 -1
- package/dist/client/assets/{auth-entry-BqYXeH-n.js → auth-entry-CDwtMpXU.js} +1 -1
- package/dist/client/assets/{auth-split-layout-CohyRVh_.js → auth-split-layout-6cO54JDE.js} +1 -1
- package/dist/client/assets/{authenticate-and-persist-oauth-d4wbGos9.js → authenticate-and-persist-oauth-dYToHnTo.js} +1 -1
- package/dist/client/assets/{automation-list-row-1CzMRzk9.js → automation-list-row-DTTnYXRq.js} +1 -1
- package/dist/client/assets/{automation-runs-BKdmaI3q.js → automation-runs-DNMYq5Mk.js} +1 -1
- package/dist/client/assets/{automations-CqpFUp4c.js → automations-BGNiXT4Z.js} +1 -1
- package/dist/client/assets/{autosend-DjtetB08.js → autosend-LbMiIEzD.js} +1 -1
- package/dist/client/assets/{avatar-D0st77WU.js → avatar-B2v4_6Qb.js} +1 -1
- package/dist/client/assets/{badge-DxiEk-Wv.js → badge-CSyGhw9b.js} +1 -1
- package/dist/client/assets/{block-document-VCTwzWmm.js → block-document-z6XDyyH_.js} +1 -1
- package/dist/client/assets/{blocks-preview-workspace-context-oS85YcHi.js → blocks-preview-workspace-context-w9NxFM0F.js} +1 -1
- package/dist/client/assets/{breadcrumb-BNI5grY1.js → breadcrumb-BmjFWuy6.js} +1 -1
- package/dist/client/assets/{buckets-z-At-LeQ.js → buckets-B2obZKQb.js} +1 -1
- package/dist/client/assets/{build-improve-prompt-doc-zaBBP95f.js → build-improve-prompt-doc-DL2NsUpR.js} +1 -1
- package/dist/client/assets/{bulk-category-panel-DtTZhqNs.js → bulk-category-panel-CJJ15WIG.js} +1 -1
- package/dist/client/assets/{calendar-CO6fov1b.js → calendar-CZaIhXkh.js} +1 -1
- package/dist/client/assets/{capability-load-error-7flA6gOC.js → capability-load-error-6qeWYunS.js} +1 -1
- package/dist/client/assets/category-editor-CSpW3qkz.js +1 -0
- package/dist/client/assets/{chart-CXSOAmEt.js → chart-D4sKKBn6.js} +1 -1
- package/dist/client/assets/{chat-context-lBgdOyCx.js → chat-context-BR3TxYpY.js} +1 -1
- package/dist/client/assets/{chat-draft-D1NCaXPy.js → chat-draft-ChZIc1th.js} +1 -1
- package/dist/client/assets/{checkbox-DskoM8tv.js → checkbox-D9HkVzO7.js} +1 -1
- package/dist/client/assets/{choose-editor-DOzItUyO.js → choose-editor-CTTULhqU.js} +1 -1
- package/dist/client/assets/{cli-auth-success-CKkmd5GE.js → cli-auth-success-D55M8ixe.js} +1 -1
- package/dist/client/assets/{client-icons-DWc1MqCi.js → client-icons-Ct3015ck.js} +1 -1
- package/dist/client/assets/{collapsible-DprE22lR.js → collapsible-7ctuvNsV.js} +1 -1
- package/dist/client/assets/{collection-detail-BQwLYKQ3.js → collection-detail-DiOuwxH4.js} +1 -1
- package/dist/client/assets/{collection-display-button-CNJhQHEe.js → collection-display-button-B8FWDSqF.js} +1 -1
- package/dist/client/assets/{collection-search-YpYcQtCi.js → collection-search-Cllz941g.js} +1 -1
- package/dist/client/assets/{collection-table-wrapper-B7dAqd-x.js → collection-table-wrapper-CVytdmif.js} +1 -1
- package/dist/client/assets/{collection-tabs-YHW8ukTb.js → collection-tabs-BJEMsXSV.js} +1 -1
- package/dist/client/assets/{combobox-CXcmgLlC.js → combobox-SDqJL17e.js} +1 -1
- package/dist/client/assets/{command-BGd4vbTf.js → command-DVhZPqo-.js} +1 -1
- package/dist/client/assets/{companion-mcps-section-C0yPI2u4.js → companion-mcps-section-gDOW8nru.js} +1 -1
- package/dist/client/assets/{connect-rJ70Js7A.js → connect-DoIh35up.js} +1 -1
- package/dist/client/assets/{connect-layout-BBL59zGb.js → connect-layout-NTatStbe.js} +1 -1
- package/dist/client/assets/{connection-DzMOW2xr.js → connection-D9WUOz9f.js} +1 -1
- package/dist/client/assets/{connection-card-F7s_sFsc.js → connection-card-DeRzo7Np.js} +1 -1
- package/dist/client/assets/{connection-detail-MPVQti9D.js → connection-detail-4rDFFt8I.js} +1 -1
- package/dist/client/assets/{connection-form-helpers-C9m_Mx2-.js → connection-form-helpers-BIrkW8oD.js} +1 -1
- package/dist/client/assets/{connections-aO5U6h4k.js → connections-DxfyI6zm.js} +1 -1
- package/dist/client/assets/{create-organization-dialog-BIPTgOT1.js → create-organization-dialog-Bbuhr1SX.js} +1 -1
- package/dist/client/assets/{decofile-api-CRRYWSZp.js → decofile-api-DmWvc73_.js} +1 -1
- package/dist/client/assets/{decopilot-DBApDyob.js → decopilot-nwA07KQe.js} +1 -1
- package/dist/client/assets/{dialog-goOlhXJo.js → dialog-nqNOYTcf.js} +1 -1
- package/dist/client/assets/{discover-DCRWHQ1Y.js → discover-DEhyUH_d.js} +1 -1
- package/dist/client/assets/{domain-settings-C_W5PIdl.js → domain-settings-B7KNpSP-.js} +1 -1
- package/dist/client/assets/{download-app-dialog-3rTznN2X.js → download-app-dialog-CvV4q-Zn.js} +1 -1
- package/dist/client/assets/{drawer-By4r6IsU.js → drawer-DorjaNaA.js} +1 -1
- package/dist/client/assets/{editor-B-eI672E.js → editor-BKz4OxTG.js} +1 -1
- package/dist/client/assets/{empty-state-BK1JqU2j.js → empty-state-4GG-FJJI.js} +1 -1
- package/dist/client/assets/{empty-state-Cg4Ma2xY.js → empty-state-CImG8m1c.js} +1 -1
- package/dist/client/assets/{extract-connection-data-DNwMdoTh.js → extract-connection-data-n3FtGXPY.js} +1 -1
- package/dist/client/assets/{feature-gate-0NNz8e1a.js → feature-gate-DQcnAo2U.js} +1 -1
- package/dist/client/assets/{feature-paywall-BPWMjWBw.js → feature-paywall-g73HMCfq.js} +1 -1
- package/dist/client/assets/{file-explorer-MrJVuuro.js → file-explorer-CtlkbP3P.js} +1 -1
- package/dist/client/assets/{file-preview-D8gWgUuQ.js → file-preview-DrulRthQ.js} +1 -1
- package/dist/client/assets/{file-share-button-BRGcnxJB.js → file-share-button-DXozbsCG.js} +1 -1
- package/dist/client/assets/{file-type-icon-D-ju5BhN.js → file-type-icon-CAAznf1U.js} +1 -1
- package/dist/client/assets/{folder-icon-BpbqYQ7_.js → folder-icon-B85DLPhy.js} +1 -1
- package/dist/client/assets/{form-U3K_sLLF.js → form-_CWmpc9x.js} +1 -1
- package/dist/client/assets/{gateway-client--6W-HSOB.js → gateway-client-CXW3G5Wu.js} +1 -1
- package/dist/client/assets/{general-BwZw1cr9.js → general-1Cmkl-Jk.js} +1 -1
- package/dist/client/assets/{github-icon-CTLvfMfm.js → github-icon-DijeQA9v.js} +1 -1
- package/dist/client/assets/{home-BDaRr1Wv.js → home-Cb5tf65i.js} +1 -1
- package/dist/client/assets/{hooks-6TcjjOJk.js → hooks-BPwxMsEw.js} +1 -1
- package/dist/client/assets/{hooks-D1g36Tjv.js → hooks-Dms2_dmv.js} +1 -1
- package/dist/client/assets/{icon-button-0sq4yzUq.js → icon-button-DVm2V_v3.js} +1 -1
- package/dist/client/assets/{index-BIAXzm9t.js → index-9bZFY7qj.js} +1 -1
- package/dist/client/assets/{index-CpTCZd2v.js → index-B8SeRHgO.js} +1 -1
- package/dist/client/assets/{index-CAdtaAAF.js → index-Bcl8IK6G.js} +1 -1
- package/dist/client/assets/{index-igKotsxi.js → index-BkyFRnOx.js} +1 -1
- package/dist/client/assets/{index-Dqao3o7w.js → index-C4D5WPS3.js} +2 -2
- package/dist/client/assets/{index-C8n50X2b.js → index-CZmI-F5h.js} +1 -1
- package/dist/client/assets/{index-DpPyfLll.js → index-Cilgva3Z.js} +1 -1
- package/dist/client/assets/{index-Df9c3ehM.js → index-DNZf1jFh.js} +1 -1
- package/dist/client/assets/{index-BfYkzuN5.js → index-DWXneIe6.js} +1 -1
- package/dist/client/assets/{index-w4oABX8T.js → index-DcjIsxdn.js} +1 -1
- package/dist/client/assets/{index-ClXBCHGr.js → index-DhA87jVD.js} +1 -1
- package/dist/client/assets/{index-CEo_EvLm.js → index-DrpPwp3X.js} +1 -1
- package/dist/client/assets/{index-CFlUyKSK.js → index-_pfY0rBi.js} +1 -1
- package/dist/client/assets/{index-redirect-C7-jIChc.js → index-redirect-DMvmfZN7.js} +1 -1
- package/dist/client/assets/{index-BRt8AMxN.js → index-wZcL3YUL.js} +1 -1
- package/dist/client/assets/{infiniteQueryObserver-JEjgZTKi.js → infiniteQueryObserver-CUCEOa2C.js} +1 -1
- package/dist/client/assets/{infra-billing-D0GeGoA6.js → infra-billing-3Ohd_9Qi.js} +1 -1
- package/dist/client/assets/{input-CzOfwsbe.js → input-BHHwfO8L.js} +1 -1
- package/dist/client/assets/{input-BiKaQJTe.js → input-Dj599yLK.js} +1 -1
- package/dist/client/assets/{input-Cp20Sq13.js → input-Yx4fNU0S.js} +1 -1
- package/dist/client/assets/{integration-icon-BxF2ZWka.js → integration-icon-CKOIc1TL.js} +1 -1
- package/dist/client/assets/{label-7KE19Fdc.js → label-BE8PwIRm.js} +1 -1
- package/dist/client/assets/{last-preview-page-kAs6ifNV.js → last-preview-page-Bw8ycOv8.js} +1 -1
- package/dist/client/assets/{layout-Dl9GzWHu.js → layout-B9e8T_8z.js} +1 -1
- package/dist/client/assets/{legacy-agents-deep-D9TW7PsM.js → legacy-agents-deep-zJyaAHRn.js} +1 -1
- package/dist/client/assets/{legacy-main-redirect-jjqZJcln.js → legacy-main-redirect-DJGd_X67.js} +1 -1
- package/dist/client/assets/{library-CTLBQCTW.js → library-gDahNbZ-.js} +1 -1
- package/dist/client/assets/{login-B6HXSOPN.js → login-C79WY03V.js} +1 -1
- package/dist/client/assets/{markdown-DRG7XKmO.js → markdown-COZ8Zf0d.js} +1 -1
- package/dist/client/assets/{mcp-app-renderer-uMgKrVo-.js → mcp-app-renderer-DYSkANSY.js} +1 -1
- package/dist/client/assets/{mcp-oauth-Dsvwqhz5.js → mcp-oauth-jtvl0YoP.js} +1 -1
- package/dist/client/assets/{members-B7LJieLt.js → members-CfuojVrl.js} +1 -1
- package/dist/client/assets/{message-templates-h3W8tmtO.js → message-templates-DxDX6BFG.js} +1 -1
- package/dist/client/assets/{mini-report-page-Bc6vW6xX.js → mini-report-page-B_pvV1EH.js} +1 -1
- package/dist/client/assets/{mock-board-BD1kpOZg.js → mock-board-DMmcbSPl.js} +3 -3
- package/dist/client/assets/{monaco-editor-ozcdZTYP.js → monaco-editor-Bsw82XKF.js} +1 -1
- package/dist/client/assets/{monitoring-stats-row-BL9B-YQt.js → monitoring-stats-row-BMCxrM71.js} +1 -1
- package/dist/client/assets/{multi-select-B2gMyJrW.js → multi-select-B2DiPp85.js} +1 -1
- package/dist/client/assets/{mustache-C5ochPJT.js → mustache-DUWLoszF.js} +1 -1
- package/dist/client/assets/{oauth-callback-qaazNmaj.js → oauth-callback-DUXZuYvq.js} +1 -1
- package/dist/client/assets/{oauth-callback-ai-provider-Bfck72cm.js → oauth-callback-ai-provider-CCzda8oM.js} +1 -1
- package/dist/client/assets/{onboarding-DRTT6V2b.js → onboarding-D2daUPyK.js} +1 -1
- package/dist/client/assets/{optimistic-project-sidebar-views-B9v4-DIt.js → optimistic-project-sidebar-views-BfAkO0vy.js} +1 -1
- package/dist/client/assets/{org-file-open-context-CN8gdvw_.js → org-file-open-context-CEPySix7.js} +1 -1
- package/dist/client/assets/{organization-choice-BuJq2CBt.js → organization-choice-BPnX7X7N.js} +1 -1
- package/dist/client/assets/{orgs-DdrweKOE.js → orgs-BNFpYgKg.js} +1 -1
- package/dist/client/assets/{page-seo-form-_CrBW00u.js → page-seo-form-CcEwS14s.js} +1 -1
- package/dist/client/assets/{pair-CnFu0Tkh.js → pair-DbDfdCee.js} +1 -1
- package/dist/client/assets/{plan-ladder-Cuev7CBS.js → plan-ladder-BvnPATWo.js} +1 -1
- package/dist/client/assets/{popover-Blnc0to3.js → popover-C0ZfjA5Y.js} +1 -1
- package/dist/client/assets/{post-calendar-PoEgYOYV.js → post-calendar-BRgP3Ibf.js} +1 -1
- package/dist/client/assets/{post-editor-BvW3C-rs.js → post-editor-61ODA8S7.js} +1 -1
- package/dist/client/assets/{preview-content-Bmnl5h-x.js → preview-content-BSj86a5i.js} +1 -1
- package/dist/client/assets/{preview-dialog-rhBx16p2.js → preview-dialog-CMD1gJok.js} +1 -1
- package/dist/client/assets/{primitives-kotBbvO0.js → primitives-DzZBndgG.js} +1 -1
- package/dist/client/assets/{profile-ChoWMHA6.js → profile-Dr2FXs35.js} +1 -1
- package/dist/client/assets/{project-app-view-CKelCKga.js → project-app-view-DlPLbw36.js} +1 -1
- package/dist/client/assets/{project-feed-DIVXhIDG.js → project-feed-Cb1RpeNh.js} +1 -1
- package/dist/client/assets/{project-icon-B0C-pcKb.js → project-icon-DyPTp2g3.js} +1 -1
- package/dist/client/assets/project-reports-C7fLNs9t.js +1 -0
- package/dist/client/assets/project-tasks-hI2CtoVv.js +1 -0
- package/dist/client/assets/{prompts-B7l0QzPX.js → prompts-DdkYVKeJ.js} +1 -1
- package/dist/client/assets/record-editor-Ce6YT1Ua.js +1 -0
- package/dist/client/assets/{redirect-editor-CfqsFciy.js → redirect-editor-BIJTNcka.js} +1 -1
- package/dist/client/assets/registry-CC4wEV4H.js +2 -0
- package/dist/client/assets/{registry-layout-BmLE9VoC.js → registry-layout-CJ5PD5hC.js} +1 -1
- package/dist/client/assets/reports-Byf4EUTp.js +1 -0
- package/dist/client/assets/{reports-CbYXmVTK.js → reports-DxrhJPFn.js} +1 -1
- package/dist/client/assets/{reports-onboarding-B_077qJH.js → reports-onboarding-B8h50ZnU.js} +1 -1
- package/dist/client/assets/{reports-tab-Z-DzcyRs.js → reports-tab-D4qU9uYo.js} +2 -2
- package/dist/client/assets/{repositories-R2gQOWTh.js → repositories-DXcy4eTd.js} +1 -1
- package/dist/client/assets/{repository-import-picker-Cxc3zStZ.js → repository-import-picker-BwVynZIn.js} +1 -1
- package/dist/client/assets/{repository-picker-CPWPMa1z.js → repository-picker-B2A7S9bS.js} +1 -1
- package/dist/client/assets/{require-capability-KHfuPVlZ.js → require-capability-f8OcFa65.js} +1 -1
- package/dist/client/assets/{required-auth-layout-BJDtR2sf.js → required-auth-layout-CAvQncpv.js} +1 -1
- package/dist/client/assets/{reset-password-5I4TBoEH.js → reset-password-B-D-4-3N.js} +1 -1
- package/dist/client/assets/{resizable-0MDw90Gg.js → resizable-cFczxib2.js} +1 -1
- package/dist/client/assets/{review-settings-BEC2Tnkk.js → review-settings-BMs7PeD7.js} +1 -1
- package/dist/client/assets/{rich-text-link-control-vO39ZAxY.js → rich-text-link-control-3-vMeyxI.js} +1 -1
- package/dist/client/assets/{roles-B5Ef72nC.js → roles-Cmdr8QdH.js} +1 -1
- package/dist/client/assets/{route-DK-bX4Ey.js → route-CfRc6_gk.js} +1 -1
- package/dist/client/assets/{route-Crlon5aK.js → route-CpdIiZ7q.js} +1 -1
- package/dist/client/assets/{route-pAYIaa24.js → route-DhIu0HwY.js} +1 -1
- package/dist/client/assets/{route-page-header-s4gxQfrH.js → route-page-header-yYASB2W7.js} +1 -1
- package/dist/client/assets/{runnable-block-editor-CiQ4NAyH.js → runnable-block-editor-B5SGQnCw.js} +1 -1
- package/dist/client/assets/{sandbox-lifecycle-context-7guycN-K.js → sandbox-lifecycle-context-N5IFYJNN.js} +1 -1
- package/dist/client/assets/{schema-DpJ14-bb.js → schema-oRB8q4X9.js} +1 -1
- package/dist/client/assets/{scroll-area-BO6lWU5U.js → scroll-area-DT8zsvFy.js} +1 -1
- package/dist/client/assets/{search-input-BoXJWgWp.js → search-input-VhabAXUC.js} +1 -1
- package/dist/client/assets/{search-toggle-Da_h2dsL.js → search-toggle-mxN7fw9K.js} +1 -1
- package/dist/client/assets/{secrets-B0TRv-Qd.js → secrets-DUZPHEcn.js} +1 -1
- package/dist/client/assets/{sections-editor-Di9Ntocm.js → sections-editor-C8ay4aEI.js} +1 -1
- package/dist/client/assets/{select-model-DIpsCv6W.js → select-model-DJPgdLHa.js} +1 -1
- package/dist/client/assets/{select-BUebXFpZ.js → select-w2qmJgjl.js} +1 -1
- package/dist/client/assets/{seo-editor-I0cKGZeU.js → seo-editor-BYC-TXRR.js} +1 -1
- package/dist/client/assets/{separator-BHwsQiw2.js → separator-DSGgBkEn.js} +1 -1
- package/dist/client/assets/{settings-tab-B69gqGr1.js → settings-tab-BgxWPNjh.js} +1 -1
- package/dist/client/assets/{sheet-CZiOMLMT.js → sheet-DJ082J_Q.js} +1 -1
- package/dist/client/assets/{shell-layout-DQQ7GbTN.js → shell-layout-B5TCiOXQ.js} +1 -1
- package/dist/client/assets/{sidebar-BQf__r7e.js → sidebar-BENAFWnN.js} +1 -1
- package/dist/client/assets/{skill-preview-CPsdPvuq.js → skill-preview-D_VJlUCY.js} +1 -1
- package/dist/client/assets/{skills-CMoFbP0A.js → skills-C3ed8KLe.js} +1 -1
- package/dist/client/assets/{sso-BcDBn8o-.js → sso-CB6_i-p5.js} +1 -1
- package/dist/client/assets/store-registry-D1fCswMK.js +2 -0
- package/dist/client/assets/{store-Cw4e8Nr2.js → store-t1L4JSiR.js} +1 -1
- package/dist/client/assets/{switch-kI5UyNbv.js → switch-CsAFKXy5.js} +1 -1
- package/dist/client/assets/{synced-repos-DAF87glO.js → synced-repos-BOBwNgRC.js} +1 -1
- package/dist/client/assets/{table-DZWYZvhY.js → table-CjzPjMVZ.js} +1 -1
- package/dist/client/assets/{tabs-CZrOjKZC.js → tabs-CXRvmfC6.js} +1 -1
- package/dist/client/assets/{task-board-D4lbA7ou.js → task-board-BiwyxfRN.js} +1 -1
- package/dist/client/assets/{task-route-DhUsIpyF.js → task-route-efbDqMEf.js} +1 -1
- package/dist/client/assets/{task-status-CThzMNsa.js → task-status-CrNs36B5.js} +1 -1
- package/dist/client/assets/{taskboard-analytics-CU2qVhNj.js → taskboard-analytics-DyL6uuZg.js} +1 -1
- package/dist/client/assets/tasks-CwL-9H-v.js +1 -0
- package/dist/client/assets/{tasks-DYAiWb91.js → tasks-DoiW9Zmo.js} +1 -1
- package/dist/client/assets/{textarea-CJKi_Atc.js → textarea-DccV7C8O.js} +1 -1
- package/dist/client/assets/{thread-button-DUtv3mjQ.js → thread-button-BvvGVIpd.js} +1 -1
- package/dist/client/assets/{thread-intent-YR5p4Kky.js → thread-intent-CAUH7YoC.js} +1 -1
- package/dist/client/assets/{thread-route-DGVg-k9W.js → thread-route--IntZpKJ.js} +1 -1
- package/dist/client/assets/{thread-route-B5gBIznS.js → thread-route-CFZruFMJ.js} +1 -1
- package/dist/client/assets/{thread-sheet-body-B2oaIkoP.js → thread-sheet-body-B374LO98.js} +1 -1
- package/dist/client/assets/{toggle-group-BPRDEhqx.js → toggle-group-DnJNTzA3.js} +1 -1
- package/dist/client/assets/{toolbar-icon-button-BMVwlKxQ.js → toolbar-icon-button-Dezq9myT.js} +1 -1
- package/dist/client/assets/{tooltip-CF4dwrh2.js → tooltip-DIraYTo1.js} +1 -1
- package/dist/client/assets/{track-CixO_v3B.js → track-t-wDZzfl.js} +1 -1
- package/dist/client/assets/{types-DhyonOMn.js → types-BsB0KN6-.js} +1 -1
- package/dist/client/assets/{usage-stats-DvQ297Yx.js → usage-stats-D5vigVWL.js} +1 -1
- package/dist/client/assets/{use-ai-providers-vEz3ro7k.js → use-ai-providers-C7nj7TI7.js} +1 -1
- package/dist/client/assets/{use-automations-DANxIF3h.js → use-automations-B8JEOqfX.js} +1 -1
- package/dist/client/assets/{use-autosave-CG23D772.js → use-autosave-Dnd1twQr.js} +1 -1
- package/dist/client/assets/{use-connect-companion-Dk6y80m_.js → use-connect-companion-G00KIy91.js} +1 -1
- package/dist/client/assets/{use-connection-QJoKwO5e.js → use-connection-C_2fR0SN.js} +1 -1
- package/dist/client/assets/{use-copy-DHjSsTks.js → use-copy-BB5cS2zz.js} +1 -1
- package/dist/client/assets/{use-create-virtual-mcp-yn1APflL.js → use-create-virtual-mcp-BnR_0sN3.js} +1 -1
- package/dist/client/assets/{use-date-fns-locale-BUuLToKi.js → use-date-fns-locale-ByCgxbf8.js} +1 -1
- package/dist/client/assets/{use-debounced-autosave-CPNHgCy0.js → use-debounced-autosave-KVvNrO5l.js} +1 -1
- package/dist/client/assets/{use-debounced-value-D9VzG-vp.js → use-debounced-value-CDc5vVFx.js} +1 -1
- package/dist/client/assets/{use-deco-credits-BG6Zh6Dt.js → use-deco-credits-BE2QdukV.js} +1 -1
- package/dist/client/assets/{use-decopilot-events-C2JOXMtB.js → use-decopilot-events-DeIEfboq.js} +1 -1
- package/dist/client/assets/{use-delete-connection-DZQS1UGs.js → use-delete-connection-_qCyAVPr.js} +1 -1
- package/dist/client/assets/{use-deployment-admin-Cw9xnGal.js → use-deployment-admin-BArJGMXk.js} +1 -1
- package/dist/client/assets/{use-entitlements-CQERN3rv.js → use-entitlements-D_m5Ltup.js} +1 -1
- package/dist/client/assets/{use-fast-preview-draft-url-D_HdZxtv.js → use-fast-preview-draft-url-cGEdAb1N.js} +1 -1
- package/dist/client/assets/{use-file-configs-X2SDrIhL.js → use-file-configs-BU38nOy_.js} +1 -1
- package/dist/client/assets/{use-in-settings-CkVnfSch.js → use-in-settings-BoAoToEK.js} +1 -1
- package/dist/client/assets/{use-infinite-scroll-DBnUXxiH.js → use-infinite-scroll-Ce8qpOcJ.js} +1 -1
- package/dist/client/assets/{use-join-requests-DEQcz79p.js → use-join-requests-CW76mlxp.js} +1 -1
- package/dist/client/assets/{use-main-panel-tabs-BEvW4S_x.js → use-main-panel-tabs-B9dFUEKf.js} +1 -1
- package/dist/client/assets/{use-mcp-auth-status-CgBdvNTB.js → use-mcp-auth-status-BDakpxu6.js} +1 -1
- package/dist/client/assets/{use-mcp-client-BFa3VhRq.js → use-mcp-client-Cesfi_7b.js} +1 -1
- package/dist/client/assets/{use-mcp-prompts-Cf4K9jTL.js → use-mcp-prompts-gHiLeqgc.js} +1 -1
- package/dist/client/assets/{use-mcp-tools-DLU1fFgW.js → use-mcp-tools-BR7vevjO.js} +1 -1
- package/dist/client/assets/{use-members-CSi53FnV.js → use-members-hb0GJpQA.js} +1 -1
- package/dist/client/assets/{use-mobile-D_zVYNYk.js → use-mobile-CIIXM8q9.js} +1 -1
- package/dist/client/assets/{use-navigate-to-agent-B8ixZy6F.js → use-navigate-to-agent-l34sE8Ny.js} +1 -1
- package/dist/client/assets/{use-open-billing-url-CpnATgxC.js → use-open-billing-url-DsCDhMD6.js} +1 -1
- package/dist/client/assets/{use-org-auth-client-jWveZsH5.js → use-org-auth-client-BThAJvaU.js} +1 -1
- package/dist/client/assets/{use-org-fs-CYT17juv.js → use-org-fs-BbCNMpEE.js} +1 -1
- package/dist/client/assets/{use-org-repo-syncs-tWLgS-M8.js → use-org-repo-syncs-DB3FRN4L.js} +1 -1
- package/dist/client/assets/{use-org-sso-BpKh9tYw.js → use-org-sso-CcdPhBOt.js} +1 -1
- package/dist/client/assets/{use-organization-roles-CxbQnYmJ.js → use-organization-roles-BKoFEoqa.js} +1 -1
- package/dist/client/assets/{use-organization-settings-DtqAkPaw.js → use-organization-settings-nMCs47Iz.js} +1 -1
- package/dist/client/assets/{use-panel-navigate-D88z3Lo_.js → use-panel-navigate-Ck4MA22j.js} +1 -1
- package/dist/client/assets/{use-project-native-view-presence-CGIi0SQc.js → use-project-native-view-presence-BbsMAM9n.js} +1 -1
- package/dist/client/assets/{use-project-scope-DmR2XH7n.js → use-project-scope-87FX0yHr.js} +1 -1
- package/dist/client/assets/{use-registry-connections-Bkn7UeFm.js → use-registry-connections-Cog2-3vX.js} +1 -1
- package/dist/client/assets/{use-releases-CdMZq1z2.js → use-releases-Cu4cJ8ti.js} +1 -1
- package/dist/client/assets/{use-reports-diagnostic-DHtqiF5D.js → use-reports-diagnostic-DV-wzrmt.js} +1 -1
- package/dist/client/assets/{use-route-default-main-BO9PFgJ7.js → use-route-default-main-Ct79y-vo.js} +1 -1
- package/dist/client/assets/{use-secrets-qkEaoUMp.js → use-secrets-bO0Rl7TB.js} +1 -1
- package/dist/client/assets/{use-section-preview-base-uXunhgTC.js → use-section-preview-base-uc4gC-qO.js} +1 -1
- package/dist/client/assets/{use-session-runtime-CUvOMag5.js → use-session-runtime-BuDnzXl8.js} +1 -1
- package/dist/client/assets/{use-tags-DN9kBegx.js → use-tags-B8hN3tcj.js} +1 -1
- package/dist/client/assets/{use-task-board-analytics-BGQzDjUa.js → use-task-board-analytics-DVmmA5qK.js} +1 -1
- package/dist/client/assets/{use-task-metadata-DlyUHKcB.js → use-task-metadata-DEk9Zkp0.js} +1 -1
- package/dist/client/assets/{use-thread-outputs-Chha-Yt1.js → use-thread-outputs-CemKLTVn.js} +1 -1
- package/dist/client/assets/{use-view-mode-BIG5Ox_d.js → use-view-mode-CR9woT6i.js} +1 -1
- package/dist/client/assets/{use-virtual-mcp-BwaPOYs3.js → use-virtual-mcp-DxMrXdTq.js} +1 -1
- package/dist/client/assets/useInfiniteQuery-KXhLkSY7.js +1 -0
- package/dist/client/assets/{useQueries-B_mqosXB.js → useQueries-CvGNJ1xF.js} +1 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-nP29phsw.js +1 -0
- package/dist/client/assets/{users-Ct_duE0I.js → users-DLnRyEWD.js} +1 -1
- package/dist/client/assets/{utils-MC99lYCV.js → utils-atkxBfcg.js} +1 -1
- package/dist/client/assets/{variant-calendar-CExFhrl-.js → variant-calendar-Z7KqWiV6.js} +1 -1
- package/dist/client/assets/{variant-matcher-override-k8GGNGM4.js → variant-matcher-override-C-y6nyvs.js} +1 -1
- package/dist/client/assets/{view-mode-toggle-hzBqY-70.js → view-mode-toggle-15pnYcYc.js} +1 -1
- package/dist/client/assets/{virtual-mcp-DCxvdSa5.js → virtual-mcp-MbtSLjYn.js} +1 -1
- package/dist/client/index.html +1 -1
- package/dist/server/cli.js +2 -2
- package/dist/server/server.js +2 -2
- package/package.json +1 -1
- package/dist/client/assets/agent-app-DqL-XCZj.js +0 -1
- package/dist/client/assets/agent-deck-BGMF-QnV.js +0 -1
- package/dist/client/assets/agent-file-BTXxiJn2.js +0 -1
- package/dist/client/assets/agent-library-file-CfejwvoE.js +0 -1
- package/dist/client/assets/agent-settings-CY8tCQmO.js +0 -1
- package/dist/client/assets/agent-site-editor-code-Ci9vlrhp.js +0 -2
- package/dist/client/assets/agent-view-KN8Gv6OX.js +0 -1
- package/dist/client/assets/api-keys-DtuP6akM.js +0 -1
- package/dist/client/assets/app-editor-B7tL_i_q.js +0 -1
- package/dist/client/assets/category-editor-CExcfq1d.js +0 -1
- package/dist/client/assets/project-reports-DCsiG9mu.js +0 -1
- package/dist/client/assets/project-tasks-18OmnMcn.js +0 -1
- package/dist/client/assets/record-editor-BAalChdW.js +0 -1
- package/dist/client/assets/registry-BvzQPKBW.js +0 -2
- package/dist/client/assets/reports-B1XANEsY.js +0 -1
- package/dist/client/assets/store-registry-DjRAfeET.js +0 -2
- package/dist/client/assets/tasks-BJjg86UK.js +0 -1
- package/dist/client/assets/useInfiniteQuery-B8pg6tEa.js +0 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-BslO8w1X.js +0 -1
package/dist/server/cli.js
CHANGED
|
@@ -140,7 +140,7 @@ Reference: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.ht
|
|
|
140
140
|
Then retry.`);console.error(`[ensurePostgres] pg.initialise() failed. dataDir=${X}`,F);let N=sH($,"postgres");if(N&&AG(N.pid,"postgres"))return Z.state="running",Z.pid=N.pid,Z.port=N.port,Z.owner="managed",Z;throw F}await K.start();try{await K.createDatabase(o0$)}catch(F){if(!(F instanceof Error?F.message:String(F)).includes("already exists"))throw F}await s0$(J);let H=null;if(sJ(Y)){let F=CY0(Y,"utf8").split(`
|
|
141
141
|
`)[0]?.trim();if(F)H=Number.parseInt(F,10)}if(H)on0($,"postgres",{pid:H,port:J,startedAt:new Date().toISOString()}),Z.pid=H;return Z.state="running",Z.owner="managed",Z}async function V04($){let Z=sH($,"postgres");if(Z===null){console.log("PostgreSQL: not running");return}let{pid:Q,port:X}=Z;if(!eJ(Q)){console.log("PostgreSQL: process already dead, cleaning up state"),await hX($,"postgres");return}if(!AG(Q,"postgres")){console.log(`PostgreSQL: PID ${Q} no longer belongs to postgres (possible PID reuse), cleaning up state`),await hX($,"postgres");return}console.log(`PostgreSQL: stopping (PID ${Q}, port ${X})...`);let Y=u5(_Y($),"postgres","data");try{await new(await import("embedded-postgres")).default({databaseDir:Y,port:X,user:mn0,password:cn0,persistent:!0}).stop()}catch{console.log("PostgreSQL: embedded-postgres stop failed, sending SIGTERM...");try{if(!AG(Q,"postgres"))console.log(`PostgreSQL: PID ${Q} is no longer postgres, skipping signal`);else{process.kill(Q,"SIGTERM");let J=Date.now();while(Date.now()-J<5000&&eJ(Q))await B$(200);if(eJ(Q)&&AG(Q,"postgres"))process.kill(Q,"SIGKILL")}}catch{}}await hX($,"postgres"),console.log("PostgreSQL stopped")}function k04(){let $=_Y0(),Z=ln0(),Q={darwin:"darwin",linux:"linux",win32:"windows"},X={arm64:"arm64",x64:"amd64"},Y=Q[$],J=X[Z];if(!Y||!J)throw Error(`Unsupported platform: ${$}/${Z}`);return`nats-server-${r0$}-${Y}-${J}.${Y==="windows"?"zip":"tar.gz"}`}function S04($){return u5(_Y($),"nats","bin",`nats-server${pn0}`)}async function C04($){let Z=S04($);if(sJ(Z))return Z;let Q=u5(_Y($),"nats","bin");dz(Q);let X=k04(),Y=`https://github.com/nats-io/nats-server/releases/download/${r0$}/${X}`,J=await fetch(Y);if(!J.ok)throw Error(`Failed to download NATS: ${J.status} ${J.statusText}`);let G=u5(Q,X),K=await J.arrayBuffer();un0(G,Buffer.from(K));let W=u5(Q,X.replace(/\.(zip|tar\.gz)$/,""));if(gN)await Bun.spawn(["powershell","-Command",`Expand-Archive -Path '${G}' -DestinationPath '${Q}' -Force`]).exited;else await Bun.spawn(["tar","-xzf",G,"-C",Q]).exited;if(!sJ(Z)){let H=u5(W,`nats-server${pn0}`);if(sJ(H))i0$(H,Z)}if(p0$(W,{recursive:!0,force:!0}),await t0$(G).catch(()=>{}),!gN)await n0$(Z,493);if(!sJ(Z))throw Error(`NATS binary not found at ${Z} after extraction`);return Z}function e0$($,Z,Q){return[$,"-js","-a","127.0.0.1","-p",String(Z),"-sd",Q]}async function _04($){let Z={name:"NATS",state:"stopped",pid:null,port:0,owner:"none"};p0$(u5(_Y($),"nats","jwt"),{recursive:!0,force:!0});let Q=sH($,"nats");if(Q!==null)if(AG(Q.pid,"nats-server"))return Z.state="running",Z.pid=Q.pid,Z.port=Q.port,Z.owner="managed",Z;else await hX($,"nats");let X=await nn0();Z.port=X;let Y=await C04($),J=u5(_Y($),"nats","data"),G=u5(_Y($),"nats");dz(J);let K=Bun.file(u5(G,"nats.log")),W=Bun.spawn(e0$(Y,X,J),{stdout:K,stderr:K});return on0($,"nats",{pid:W.pid,port:X,startedAt:new Date().toISOString()}),await s0$(X),Z.state="running",Z.pid=W.pid,Z.owner="managed",Z}async function v04($){let Z=sH($,"nats");if(Z===null){console.log("NATS: not running");return}let{pid:Q}=Z;if(!eJ(Q)){console.log("NATS: process already dead, cleaning up state"),await hX($,"nats");return}if(!AG(Q,"nats-server")){console.log(`NATS: PID ${Q} no longer belongs to nats-server (possible PID reuse), cleaning up state`),await hX($,"nats");return}if(console.log(`NATS: stopping (PID ${Q})...`),gN)Bun.spawn(["taskkill","/PID",String(Q)]);else process.kill(Q,"SIGTERM");let X=Date.now();while(Date.now()-X<5000&&eJ(Q))await B$(200);if(eJ(Q)&&AG(Q,"nats-server"))if(console.log("NATS: force killing..."),gN)Bun.spawn(["taskkill","/PID",String(Q),"/F"]);else process.kill(Q,"SIGKILL");await hX($,"nats"),console.log("NATS stopped")}function $1$($,Z){return $==="win32"?"minio.exe":"minio"}function Z1$($,Z){let Q={darwin:"darwin",linux:"linux",win32:"windows"},X={arm64:"arm64",x64:"amd64"},Y=Q[$],J=X[Z];if(!Y||!J)throw Error(`Unsupported platform for MinIO: ${$}/${Z}`);let G=$1$($,Z);return`https://dl.min.io/server/minio/release/${Y}-${J}/${G}`}function x04($){return u5(_Y($),"minio","bin",`minio${pn0}`)}async function f04($){let Z=x04($);if(sJ(Z))return Z;let Q=Bun.which("minio");if(Q)return Q;let X=u5(_Y($),"minio","bin");dz(X);let Y=Z1$(_Y0(),ln0()),J=await fetch(Y);if(!J.ok)throw Error(`Failed to download MinIO (${J.status} ${J.statusText}). MinIO no longer publishes public binaries. Install it (macOS: \`brew install minio\`; else see min.io/download), or set SKIP_MINIO=true to run dev with the in-memory object-storage fallback, or point S3_ENDPOINT at an external S3-compatible store.`);let G=await J.arrayBuffer(),K=`${Z}.download-${process.pid}`;if(un0(K,Buffer.from(G)),!gN)await n0$(K,493);if(i0$(K,Z),!sJ(Z))throw Error(`MinIO binary not found at ${Z} after download`);return Z}async function b04($,Z=30000){let Q=`http://127.0.0.1:${$}/minio/health/ready`,X=Date.now();while(Date.now()-X<Z){try{if((await fetch(Q)).status===200)return}catch{}await B$(200).catch(()=>{})}throw Error(`Timed out waiting for MinIO readiness at ${Q}`)}async function d0$($){let{S3Client:Z,CreateBucketCommand:Q}=await Promise.resolve().then(() => (ot(),c0$)),X=new Z({endpoint:$,region:"auto",credentials:{accessKeyId:dn0,secretAccessKey:in0},forcePathStyle:!0});try{await w8(()=>X.send(new Q({Bucket:a0$})),{maxAttempts:5,minTimeout:200,maxTimeout:3000,isRetriable:(Y)=>Y instanceof Error&&/ECONNREFUSED|ECONNRESET|EPIPE|socket|fetch failed|timed out|network/i.test(`${Y.name??""} ${Y.message}`)})}catch(Y){let J=Y&&typeof Y==="object"&&"name"in Y?String(Y.name):"";if(J!=="BucketAlreadyOwnedByUs"&&J!=="BucketAlreadyExists"&&!(Y instanceof Error&&Y.message.includes("already")))throw X.destroy(),Y}X.destroy()}async function y04($){let Z={name:"MinIO",state:"stopped",pid:null,port:0,owner:"none"},Q=sH($,"minio");if(Q!==null){if(AG(Q.pid,"minio"))return Z.state="running",Z.pid=Q.pid,Z.port=Q.port,Z.owner="managed",await d0$(`http://127.0.0.1:${Q.port}`),Z;await hX($,"minio")}let X=await nn0();Z.port=X;let Y=await f04($),J=u5(_Y($),"minio","data"),G=u5(_Y($),"minio");dz(J);let K=Bun.file(u5(G,"minio.log")),W=Bun.spawn([Y,"server",J,"--address",`:${X}`],{env:{...process.env,MINIO_ROOT_USER:dn0,MINIO_ROOT_PASSWORD:in0},stdout:K,stderr:K});return on0($,"minio",{pid:W.pid,port:X,startedAt:new Date().toISOString()}),await b04(X),await d0$(`http://127.0.0.1:${X}`),Z.state="running",Z.pid=W.pid,Z.owner="managed",Z}async function g04($){let Z=sH($,"minio");if(Z===null){console.log("MinIO: not running");return}let{pid:Q}=Z;if(!eJ(Q)){console.log("MinIO: process already dead, cleaning up state"),await hX($,"minio");return}if(!AG(Q,"minio")){console.log(`MinIO: PID ${Q} no longer belongs to minio (possible PID reuse), cleaning up state`),await hX($,"minio");return}if(console.log(`MinIO: stopping (PID ${Q})...`),gN)Bun.spawn(["taskkill","/PID",String(Q)]);else process.kill(Q,"SIGTERM");let X=Date.now();while(Date.now()-X<5000&&eJ(Q))await B$(200);if(eJ(Q)&&AG(Q,"minio"))if(console.log("MinIO: force killing..."),gN)Bun.spawn(["taskkill","/PID",String(Q),"/F"]);else process.kill(Q,"SIGKILL");await hX($,"minio"),console.log("MinIO stopped")}function hn0($,Z){try{let Q=new URL($);return Q.port?Number.parseInt(Q.port,10):Z}catch{return Z}}async function h04($){dz(_Y($.home));let Z=$.externalDatabaseUrl!==null,Q=$.externalNatsUrl!==null,X=Boolean(process.env.S3_ENDPOINT&&process.env.S3_BUCKET&&process.env.S3_ACCESS_KEY_ID&&process.env.S3_SECRET_ACCESS_KEY),Y=$.skipMinio===!0||X||process.env.SKIP_MINIO==="true",J=Z?{name:"PostgreSQL",state:"external",pid:null,port:hn0($.externalDatabaseUrl,5432),owner:"external"}:await I04($.home),G;if(Q)G={name:"NATS",state:"external",pid:null,port:hn0($.externalNatsUrl,4222),owner:"external"};else G=await _04($.home);let K=[J,G],W=null;if(X)K.push({name:"MinIO",state:"external",pid:null,port:hn0(process.env.S3_ENDPOINT,T04),owner:"external"}),W={endpoint:process.env.S3_ENDPOINT,bucket:process.env.S3_BUCKET,accessKeyId:process.env.S3_ACCESS_KEY_ID,secretAccessKey:process.env.S3_SECRET_ACCESS_KEY,forcePathStyle:Yy0(process.env.S3_FORCE_PATH_STYLE)};else if(!Y){let U=await y04($.home);K.push(U),W={endpoint:`http://127.0.0.1:${U.port}`,bucket:a0$,accessKeyId:dn0,secretAccessKey:in0,forcePathStyle:!0}}if(W){if(process.env.S3_ENDPOINT=W.endpoint,process.env.S3_BUCKET=W.bucket,process.env.S3_ACCESS_KEY_ID=W.accessKeyId,process.env.S3_SECRET_ACCESS_KEY=W.secretAccessKey,W.forcePathStyle)process.env.S3_FORCE_PATH_STYLE="true"}let H=Z?$.externalDatabaseUrl:M04(J.port),F=Q?$.externalNatsUrl:`nats://127.0.0.1:${G.port}`;return{services:K,outputs:{databaseUrl:H,natsUrls:[F],s3:W}}}async function u04($){await V04($),await v04($),await g04($),console.log(`
|
|
142
142
|
All managed services stopped.`)}async function l04($){let Z=[],Q=sH($,"postgres");if(Q!==null&&eJ(Q.pid))Z.push({name:"PostgreSQL",state:"running",pid:Q.pid,port:Q.port,owner:"managed"});else{if(Q!==null)await hX($,"postgres");Z.push({name:"PostgreSQL",state:"stopped",pid:null,port:0,owner:"none"})}let X=sH($,"nats");if(X!==null&&eJ(X.pid))Z.push({name:"NATS",state:"running",pid:X.pid,port:X.port,owner:"managed"});else{if(X!==null)await hX($,"nats");Z.push({name:"NATS",state:"stopped",pid:null,port:0,owner:"none"})}let Y=sH($,"minio");if(Y!==null&&eJ(Y.pid))Z.push({name:"MinIO",state:"running",pid:Y.pid,port:Y.port,owner:"managed"});else{if(Y!==null)await hX($,"minio");Z.push({name:"MinIO",state:"stopped",pid:null,port:0,owner:"none"})}return Z}function m04($){console.log("Service State PID Port Owner"),console.log("---------- ---------- ----- ----- ----------");for(let X of $){let Y=X.name.padEnd(10),J=X.state.padEnd(10),G=(X.pid?.toString()??"-").padEnd(5),K=(X.port?String(X.port):"-").padEnd(5),W=X.owner;console.log(`${Y} ${J} ${G} ${K} ${W}`)}}var mn0="postgres",cn0="postgres",o0$="postgres",r0$="v2.14.2",dn0="minioadmin",in0="minioadmin",a0$="studio-dev",T04=9000,gN,pn0;var xY0=L(()=>{i$();bg();gN=_Y0()==="win32",pn0=gN?".exe":""});var Q1$={};e(Q1$,{servicesCommand:()=>c04});async function c04($){let{subcommand:Z,home:Q}=$,{ensureServices:X,stopServices:Y,getStatus:J,printTable:G}=await Promise.resolve().then(() => (xY0(),vY0));switch(Z){case"up":{await X({home:Q,externalDatabaseUrl:Tn(process.env.DATABASE_URL),externalNatsUrl:Tn(process.env.NATS_URL)});break}case"down":{await Y(Q);break}case"status":{let K=await J(Q);G(K);break}default:console.error(`Unknown services subcommand: ${Z}
|
|
143
|
-
Usage: deco services <up|down|status>`),process.exit(1)}}var X1$=L(()=>{bg()});function Y1$($){rt=Object.freeze($)}function E0(){if(!rt)d04();return rt}function gL(){
|
|
143
|
+
Usage: deco services <up|down|status>`),process.exit(1)}}var X1$=L(()=>{bg()});function Y1$($){rt=Object.freeze($)}function E0(){if(!rt)d04();return rt}function gL(){return E0().agentSandboxEnabled}function d04(){if(rt)return;let $={...process.env},Z=A90({port:$.PORT||"3000",home:$.DATA_DIR||$.DECOCMS_HOME||"",localMode:$.DECOCMS_LOCAL_MODE==="true",skipMigrations:!0,noTui:$.DECO_NO_TUI==="true",vitePort:$.VITE_PORT,baseUrl:$.BASE_URL},$);rt=Object.freeze({...Z.settings,databaseUrl:$.DATABASE_URL||"postgresql://postgres:postgres@localhost:5432/postgres",natsUrls:($.NATS_URL||"nats://localhost:4222").split(",").map((Q)=>Q.trim()).filter(Boolean)})}var rt=null;var t1=L(()=>{bg()});import{context as i04,propagation as p04,SpanKind as n04,SpanStatusCode as rn0}from"@opentelemetry/api";function o04($,Z){let Q=$ instanceof Error?$.name:void 0;if(Q==="TimeoutError")return"timeout";if(Q==="AbortError")return"cancelled";if(Z?.aborted)return"cancelled";return null}function r04($,Z){if(Z.startsWith("/_sandbox/")){if($===404)return"daemon_gone";if($===409)return"daemon_not_ready"}if($===404&&Z.includes("/sandboxclaims/"))return"claim_gone";return null}function a04($,Z){if($===404&&(Z==="/.decofile"||Z==="/live/_meta"||Z==="/sprites.svg"))return"not_a_deco_site";return null}function s04($){if(!($ instanceof Error))return!1;if($.message.includes("socket connection was closed"))return!0;let Z=$.code;return Z==="ECONNRESET"||Z==="EPIPE"}async function e04($,Z){let Q,X;if($ instanceof Request)Q=new URL($.url),X=Z?.method??$.method;else if($ instanceof URL)Q=$,X=Z?.method??"GET";else Q=new URL($),X=Z?.method??"GET";let Y=`${X} ${Q.host}`;return hL.startActiveSpan(Y,{kind:n04.CLIENT,attributes:{"http.request.method":X,"url.full":Q.href,"url.scheme":Q.protocol.replace(":",""),"url.path":Q.pathname,"url.query":Q.search||void 0,"server.address":Q.hostname,"server.port":Q.port?Number(Q.port):void 0}},async(J)=>{try{let G=new Headers(Z?.headers??($ instanceof Request?$.headers:{}));p04.inject(i04.active(),G,{set:(N,B,D)=>N.set(B,D)});let K={...Z,headers:G},W=await t04($,K);J.setAttribute("http.response.status_code",W.status);let H=W.status===405&&X==="GET"&&(G.get("accept")??"").includes("text/event-stream"),F=W.status>=400?r04(W.status,Q.pathname):null,U=W.status>=400?a04(W.status,Q.pathname):null;if(W.status>=400&&!H&&!F&&!U)J.setStatus({code:rn0.ERROR,message:`HTTP ${W.status}`});else{if(F)J.setAttribute("sandbox.lifecycle",F);if(U)J.setAttribute("preview.probe",U);J.setStatus({code:rn0.OK})}return W}catch(G){let K=Z?.signal??($ instanceof Request?$.signal:void 0),W=o04(G,K??void 0);if(W)J.setAttribute("abort.reason",W);else if(s04(G)&&Q.pathname.startsWith("/_sandbox/"))J.setAttribute("sandbox.lifecycle","connection_closed");else J.recordException(G),J.setStatus({code:rn0.ERROR,message:G instanceof Error?G.message:"Fetch failed"});throw G}finally{J.end()}})}function J1$(){globalThis.fetch=e04}var t04;var G1$=L(()=>{L6();t04=globalThis.fetch});import{join as an0}from"path";function eK(){return an0(E0().dataDir,"logs")}function ph(){return an0(E0().dataDir,"traces")}function hN(){return an0(E0().dataDir,"metrics")}function uL($,Z){let Q=$[Z];return Q!=null?String(Q):""}function at($,Z){let Q=$[Z];return Q!=null&&Q!==""?String(Q):null}function W1$($){let{attributes:Z}=$,Q=Z[S4.IS_ERROR],X=Z[S4.DURATION_MS];return{v:1,id:$.id,type:uL(Z,S4.TYPE)||st,organization_id:uL(Z,S4.ORGANIZATION_ID),connection_id:uL(Z,S4.CONNECTION_ID),connection_title:uL(Z,S4.CONNECTION_TITLE),tool_name:uL(Z,S4.TOOL_NAME),input:uL(Z,S4.INPUT),output:uL(Z,S4.OUTPUT),is_error:Q===!0||Q===1||Q==="true"?1:0,error_message:at(Z,S4.ERROR_MESSAGE),duration_ms:typeof X==="number"?X:Number(X)||0,timestamp:new Date(Number($.timestampNano/1000000n)).toISOString(),user_id:at(Z,S4.USER_ID),request_id:uL(Z,S4.REQUEST_ID),user_agent:at(Z,S4.USER_AGENT),virtual_mcp_id:at(Z,S4.VIRTUAL_MCP_ID),properties:at(Z,S4.PROPERTIES)}}function bY0($){return $[0]*1000+$[1]/1e6}function th($){return new Date(bY0($)).toISOString()}var K1$="mcp.proxy.callTool",S4,st="tool_call",nh="llm_call",fY0="decopilot";var TG=L(()=>{t1();S4={TYPE:"studio.monitoring.type",ORGANIZATION_ID:"studio.monitoring.organization_id",CONNECTION_ID:"studio.monitoring.connection_id",CONNECTION_TITLE:"studio.monitoring.connection_title",TOOL_NAME:"studio.monitoring.tool_name",INPUT:"studio.monitoring.input",OUTPUT:"studio.monitoring.output",IS_ERROR:"studio.monitoring.is_error",ERROR_MESSAGE:"studio.monitoring.error_message",DURATION_MS:"studio.monitoring.duration_ms",USER_ID:"studio.monitoring.user_id",REQUEST_ID:"studio.monitoring.request_id",USER_AGENT:"studio.monitoring.user_agent",VIRTUAL_MCP_ID:"studio.monitoring.virtual_mcp_id",PROPERTIES:"studio.monitoring.properties"}});import{ExportResultCode as yY0}from"@opentelemetry/core";import{mkdir as $14,rename as Z14,writeFile as Q14}from"fs/promises";import{join as gY0}from"path";class iz{bufferItems=[];bufferBytes=0;flushTimer=null;flushQueue=Promise.resolve();basePath;flushThreshold;maxBufferBytes;isShutdown=!1;knownDirs=new Set;partitionKey;constructor($){this.basePath=$.basePath,this.flushThreshold=$.flushThreshold??1000,this.maxBufferBytes=$.maxBufferBytes??10485760,this.partitionKey=$.partitionKey;let Z=$.flushIntervalMs??60000;if(Z>0&&Z<3600000){if(this.flushTimer=setInterval(()=>{this.flush().catch((Q)=>{console.error("[NDJSONExporter] Timer flush failed:",Q)})},Z),this.flushTimer&&typeof this.flushTimer==="object"&&"unref"in this.flushTimer)this.flushTimer.unref()}}exportRows($){if(this.isShutdown)return Promise.resolve({code:yY0.FAILED});for(let Z of $){let Q=JSON.stringify(Z),X=this.partitionKey?this.partitionKey(Z):"";this.bufferItems.push({partition:X,json:Q}),this.bufferBytes+=Buffer.byteLength(Q,"utf8")+1}if(this.bufferItems.length>=this.flushThreshold||this.bufferBytes>=this.maxBufferBytes)return this.flush().then(()=>({code:yY0.SUCCESS})).catch((Z)=>{return console.error("[NDJSONExporter] Flush failed:",Z),{code:yY0.FAILED}});return Promise.resolve({code:yY0.SUCCESS})}async shutdown(){if(this.isShutdown=!0,this.flushTimer)clearInterval(this.flushTimer),this.flushTimer=null;try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}async forceFlush(){try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}flush(){let Z=this.flushQueue.catch(()=>{}).then(()=>this.doFlush());return this.flushQueue=Z,Z}async doFlush(){if(this.bufferItems.length===0)return;let $=this.bufferItems;this.bufferItems=[],this.bufferBytes=0;let Z=new Map;for(let Y of $){let J=Z.get(Y.partition);if(!J)J=[],Z.set(Y.partition,J);J.push(Y.json)}let Q=await Promise.allSettled(Array.from(Z.entries()).map(([Y,J])=>this.writeNDJSON(J,Y).then(()=>Y))),X=Q.find((Y)=>Y.status==="rejected");if(X){let Y=new Set;for(let G of Q)if(G.status==="fulfilled")Y.add(G.value);let J=$.filter((G)=>!Y.has(G.partition));this.bufferItems=J.concat(this.bufferItems),this.bufferBytes=0;for(let G of this.bufferItems)this.bufferBytes+=Buffer.byteLength(G.json,"utf8")+1;throw X.reason}}async writeNDJSON($,Z){let Q=new Date,X=[String(Q.getUTCFullYear()),String(Q.getUTCMonth()+1).padStart(2,"0"),String(Q.getUTCDate()).padStart(2,"0"),String(Q.getUTCHours()).padStart(2,"0")],Y=Z?gY0(this.basePath,Z,...X):gY0(this.basePath,...X);if(!this.knownDirs.has(Y))await $14(Y,{recursive:!0,mode:448}),this.knownDirs.add(Y);let J=`${crypto.randomUUID()}.ndjson`,G=gY0(Y,`.${J}.tmp`),K=gY0(Y,J),W=$.join(`
|
|
144
144
|
`)+`
|
|
145
145
|
`;await Q14(G,W,{mode:384}),await Z14(G,K)}}var hY0=()=>{};import{ExportResultCode as X14}from"@opentelemetry/core";class sn0{inner;constructor($){this.inner=new iz({...$,partitionKey:(Z)=>Z.organization_id})}export($,Z){let Q=[];for(let X of $){if(!Y14.has(X.attributes[S4.TYPE]))continue;let Y={};for(let[W,H]of Object.entries(X.attributes))if(typeof H==="string"||typeof H==="number"||typeof H==="boolean")Y[W]=H;let J=X.spanContext?.spanId??crypto.randomUUID(),G=X.hrTime,K=BigInt(G[0])*1000000000n+BigInt(G[1]);Q.push(W1$({id:J,timestampNano:K,attributes:Y}))}this.inner.exportRows(Q).then((X)=>Z(X)).catch(()=>Z({code:X14.FAILED}))}async shutdown(){await this.inner.shutdown()}async forceFlush(){await this.inner.forceFlush()}}var Y14;var H1$=L(()=>{TG();hY0();Y14=new Set([st,nh])});import{ExportResultCode as J14}from"@opentelemetry/core";import{AggregationTemporality as G14,DataPointType as F1$}from"@opentelemetry/sdk-metrics";class en0{inner;constructor($){this.inner=new iz({...$,partitionKey:(Z)=>Z.organization_id})}selectAggregationTemporality($){return G14.DELTA}export($,Z){let Q=[];for(let X of $.scopeMetrics)for(let Y of X.metrics){let{descriptor:J,dataPointType:G}=Y;if(G===F1$.SUM)for(let K of Y.dataPoints){let W=K.attributes;Q.push({v:1,name:J.name,type:"sum",unit:J.unit,timestamp:th(K.endTime),organization_id:String(W["organization.id"]??""),connection_id:String(W["connection.id"]??""),tool_name:String(W["tool.name"]??""),status:String(W.status??""),error_type:String(W["error.type"]??""),value:K.value,hist_count:0,hist_sum:0,hist_min:0,hist_max:0,hist_boundaries:"[]",hist_bucket_counts:"[]"})}else if(G===F1$.HISTOGRAM)for(let K of Y.dataPoints){let{attributes:W,value:H}=K;Q.push({v:1,name:J.name,type:"histogram",unit:J.unit,timestamp:th(K.endTime),organization_id:String(W["organization.id"]??""),connection_id:String(W["connection.id"]??""),tool_name:String(W["tool.name"]??""),status:String(W.status??""),error_type:String(W["error.type"]??""),value:H.count,hist_count:H.count,hist_sum:H.sum??0,hist_min:H.min??0,hist_max:H.max??0,hist_boundaries:JSON.stringify(H.buckets.boundaries),hist_bucket_counts:JSON.stringify(H.buckets.counts)})}}this.inner.exportRows(Q).then((X)=>Z(X)).catch(()=>Z({code:J14.FAILED}))}async shutdown(){await this.inner.shutdown()}async forceFlush(){await this.inner.forceFlush()}}var U1$=L(()=>{TG();hY0()});import{ExportResultCode as K14}from"@opentelemetry/core";function W14($){let Z=$.resource,Q=Z.attributes["service.name"]??"unknown";return{v:1,trace_id:$.spanContext().traceId,span_id:$.spanContext().spanId,parent_span_id:$.parentSpanContext?.spanId||null,name:$.name,kind:$.kind,status:$.status.code,status_message:$.status.message||null,start_time:th($.startTime),end_time:th($.endTime),duration_ms:bY0($.endTime)-bY0($.startTime),service_name:Q,attributes:JSON.stringify($.attributes),events:JSON.stringify($.events),links:JSON.stringify($.links),resource:JSON.stringify(Z.attributes)}}class $t0{inner;constructor($){this.inner=new iz($)}export($,Z){let Q=$.map(W14);this.inner.exportRows(Q).then((X)=>Z(X)).catch(()=>Z({code:K14.FAILED}))}async shutdown(){await this.inner.shutdown()}async forceFlush(){await this.inner.forceFlush()}}var N1$=L(()=>{TG();hY0()});function oh($,Z=65536){if($.length<=Z&&Buffer.byteLength($,"utf8")<=Z)return $;let Q=Z-H14;if(Q<=0)return"... [TRUNCATED]".slice(0,Z);let X=0,Y=0;for(let J of $){let G=J.charCodeAt(0)<=127?1:Buffer.byteLength(J,"utf8");if(X+G>Q)break;X+=G,Y+=J.length}return $.slice(0,Y)+"... [TRUNCATED]"}var H14;var Zt0=L(()=>{H14=Buffer.byteLength("... [TRUNCATED]","utf8")});import{NOOP_LOGGER as F14}from"@opentelemetry/api-logs";function D1$($){B1$=$.getLogger(U14,N14)}function L1$(){return B1$}var U14="studio.monitoring",N14="1.0.0",B1$;var Qt0=L(()=>{B1$=F14});var j1$={};e(j1$,{shouldSkipStudioContext:()=>Xt0,isServerPath:()=>D14,isHealthPath:()=>et,SYSTEM_PATHS:()=>uX});function et($){return $===uX.HEALTH||$===uX.HEALTH_LIVE||$===uX.HEALTH_READY}function O1$($){return $===uX.HEALTH||$===uX.HEALTH_LIVE||$===uX.HEALTH_READY||$===uX.METRICS||$.startsWith(pz.WELL_KNOWN)||$.startsWith(uX.DBOS_QUEUE_DEPTH_PREFIX)}function w1$($){return $.startsWith(pz.API)}function D14($){return w1$($)||$==="/mcp"||$.startsWith(pz.MCP)||$.startsWith(pz.OAUTH_PROXY)||$.startsWith(pz.ORG)||$.startsWith(pz.REPORT)||O1$($)}function Xt0($){return $==="/"||$.startsWith(pz.API_AUTH)||$==="/api/trigger-callback"||O1$($)||!w1$($)&&B14.test($)}var uX,pz,B14;var uY0=L(()=>{uX={HEALTH:"/health",HEALTH_LIVE:"/health/live",HEALTH_READY:"/health/ready",METRICS:"/metrics",DBOS_QUEUE_DEPTH_PREFIX:"/dbos-queue-depth/"},pz={API:"/api/",API_AUTH:"/api/auth/",MCP:"/mcp/",OAUTH_PROXY:"/oauth-proxy/",WELL_KNOWN:"/.well-known",ORG:"/org/",REPORT:"/report/"},B14=/\.(html|css|js|ico|svg|png|jpg|jpeg|gif|webp|woff|woff2)$/});import{SpanStatusCode as Yt0}from"@opentelemetry/api";var L14,O14=()=>L14??=J$.createHistogram("http.server.request.duration",{description:"Duration of inbound HTTP requests handled by the API.",unit:"s",advice:{explicitBucketBoundaries:[0.005,0.01,0.025,0.05,0.075,0.1,0.25,0.5,0.75,1,2.5,5,7.5,10]}}),Jt0=async($,Z)=>{if(et($.req.path))return Z();let Q=$.req.raw,X=new URL(Q.url),Y=performance.now(),J=P1$(Q),G=Gt0(Q),K={"http.request.url":Q.url,"http.request.method":Q.method,"http.request.body.size":Q.headers.get("content-length")??void 0,"url.scheme":X.protocol.replace(":",""),"server.address":X.host,"url.query":X.search||void 0,"url.path":X.pathname,"user_agent.original":Q.headers.get("user-agent")??void 0,"request.internal":Q.headers.has("traceparent"),...G?{"trace.debug.id":G}:{}};await hL.startActiveSpan(`${Q.method} ${X.pathname}`,{attributes:K},J,async(W)=>{$.set("rootSpan",W);try{await Z()}catch(H){W.recordException(H),W.setStatus({code:Yt0.ERROR});let F=typeof H==="object"&&H&&"message"in H?String(H.message):JSON.stringify(H);throw console.error("error: ",F,K),H}finally{let H=$.res?.status??500,F=H>=500;W.setStatus({code:F?Yt0.ERROR:Yt0.OK}),W.setAttribute("http.response.status_code",H);let U=$.get("studioContext");if(U){if(U.auth.user?.id)W.setAttribute("studio.user.id",U.auth.user.id);if(U.auth.apiKey?.id)W.setAttribute("studio.api_key.id",U.auth.apiKey.id);if(U.organization?.id)W.setAttribute("studio.organization.id",U.organization.id)}if(G)z1$($.res.headers,G);O14().record((performance.now()-Y)/1000,{"http.request.method":Q.method,"http.route":$.req.routePath,"http.response.status_code":H}),W.end()}})};var E1$=L(()=>{L6();uY0()});import{createContextKey as w14,metrics as V1$,propagation as j14,ROOT_CONTEXT as E14,SpanStatusCode as A1$,trace as Wt0}from"@opentelemetry/api";import{logs as k1$,SeverityNumber as Jo}from"@opentelemetry/api-logs";import{OTLPLogExporter as T1$}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as z14}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as P14}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as A14}from"@opentelemetry/instrumentation-runtime-node";import{BatchLogRecordProcessor as Kt0,LoggerProvider as R1$}from"@opentelemetry/sdk-logs";import{detectResources as T14,envDetector as R14,hostDetector as q14,osDetector as M14,processDetector as I14,resourceFromAttributes as q1$}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as V14}from"@opentelemetry/sdk-metrics";import{NodeSDK as k14}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as M1$,SamplingDecision as rh}from"@opentelemetry/sdk-trace-base";class C1${inner;ratio;constructor($,Z){this.inner=$;this.ratio=Z}onEmit($,Z){if($.severityNumber!==void 0&&$.severityNumber>=Jo.ERROR||Math.random()<this.ratio)this.inner.onEmit($,Z)}forceFlush(){return this.inner.forceFlush()}shutdown(){return this.inner.shutdown()}}class _1${inner;maxBytes;constructor($,Z){this.inner=$;this.maxBytes=Z}onEmit($,Z){let Q=S4.OUTPUT,X=$.attributes?.[Q];if(typeof X==="string"&&X.length>this.maxBytes){let Y=oh(X,this.maxBytes);this.inner.onEmit({...$,attributes:{...$.attributes,[Q]:Y}},Z)}else this.inner.onEmit($,Z)}forceFlush(){return this.inner.forceFlush()}shutdown(){return this.inner.shutdown()}}class v1${inner;constructor($){this.inner=$}shouldSample($,Z,Q,X,Y,J){let G=$.getValue(S1$);if(!G){if(this.inner)return this.inner.shouldSample($,Z,Q,X,Y,J);return{decision:rh.RECORD_AND_SAMPLED}}let K=Gt0(G);if(K)return{decision:rh.RECORD_AND_SAMPLED,attributes:{"trace.debug.id":K}};if(this.inner){let W=this.inner.shouldSample($,Z,Q,X,Y,J);if(W.decision===rh.RECORD_AND_SAMPLED){let H=crypto.randomUUID();W.attributes={...W.attributes??{},"trace.debug.id":H}}return W}return{decision:rh.NOT_RECORD}}toString(){return"DebugSampler"}}class x1${ratio;constructor($){this.ratio=$}shouldSample(){if(Math.random()<this.ratio)return{decision:rh.RECORD_AND_SAMPLED};return{decision:rh.NOT_RECORD}}toString(){return`RatioSampler(${this.ratio})`}}function f1$(){if(I1$)return;let $=E0(),Z=!!process.env.OTEL_EXPORTER_OTLP_ENDPOINT,Q=Z?new P14:void 0;$o=$.nodeEnv==="test"?null:new sn0({basePath:eK()}),Zo=$.nodeEnv==="test"?null:new $t0({basePath:ph()}),Qo=$.nodeEnv==="test"?null:new en0({basePath:hN()}),Xo=Qo?new V14({exporter:Qo,exportIntervalMillis:60000}):null;let X=process.env.STUDIO_ENV??"production"??"unknown",Y={};if(!process.env.OTEL_RESOURCE_ATTRIBUTES?.includes("deployment.environment"))Y["deployment.environment"]=X;new k14({serviceName:$.otelServiceName,resource:q1$(Y),metricReaders:[Ht0,...Xo?[Xo]:[]],sampler:_14,spanProcessors:[...Q?[new M1$(Q,{scheduledDelayMillis:60000,maxExportBatchSize:1000})]:[],...Zo?[new M1$(Zo,{scheduledDelayMillis:60000,maxExportBatchSize:250})]:[]],instrumentations:[new A14]}).start(),J$=V1$.getMeter("studio","1.0.0"),hL=Wt0.getTracer("studio","1.0.0");let G=T14({detectors:[R14,q14,M14,I14]}).merge(q1$({"service.name":$.otelServiceName,...Y})),K=[];if(Z){let U=X==="prod"||X==="production"?1:0.1,N=process.env.INFRA_LOG_SAMPLE_RATIO,B=U;if(N!==void 0){let D=Number(N);if(Number.isFinite(D)&&D>=0&&D<=1)B=D;else console.warn(`[observability] Ignoring invalid INFRA_LOG_SAMPLE_RATIO="${N}" (expected 0..1); using ${U}`)}K.push(new C1$(new Kt0(new T1$),B))}Yo=new R1$({resource:G,processors:K}),k1$.setGlobalLoggerProvider(Yo),b1$=Yo.getLogger("studio","1.0.0");let W=$.monitoringOtlpEndpoint??process.env.OTEL_EXPORTER_OTLP_ENDPOINT,H=[];if(W){let F=W.replace(/\/$/,""),U=F.endsWith("/v1/logs")?F:`${F}/v1/logs`;H.push(new _1$(new Kt0(new T1$({url:U})),8000))}if($o)H.push(new Kt0($o,{scheduledDelayMillis:60000,maxExportBatchSize:250}));lY0=new R1$({resource:G,processors:H}),D1$(lY0),J1$(),I1$=!0}async function vY(){let Z=(await Promise.allSettled([Yo?Yo.forceFlush():Promise.resolve(),(async()=>{if(lY0)await lY0.forceFlush();if($o)await $o.forceFlush()})(),(async()=>{let Q=Wt0.getTracerProvider();if("forceFlush"in Q)await Q.forceFlush();if(Zo)await Zo.forceFlush()})(),(async()=>{if(Xo)await Xo.forceFlush();if(Qo)await Qo.forceFlush()})()])).find((Q)=>Q.status==="rejected");if(Z)throw Z.reason}function y1$($,Z,Q){return hL.startActiveSpan($,{attributes:Q},async(X)=>{try{let Y=await Z(X);return X.setStatus({code:A1$.OK}),Y}catch(Y){let J=Y instanceof Error?Y:Error(String(Y??"unknown"));throw X.setStatus({code:A1$.ERROR,message:J.message}),X.recordException(J),Y}finally{X.end()}})}var S14="__d",S1$,C14=1,Gt0=($)=>{let Q=new URL($.url).searchParams.get(S14);if(Q==="")return crypto.randomUUID();if(!Q)Q=$.headers.get("x-trace-debug-id");return Q},z1$=($,Z)=>{try{$.set("x-trace-debug-id",Z)}catch{}},Ht0,_14,$o=null,Zo=null,Qo=null,Xo=null,Yo=null,lY0=null,I1$=!1,hL,J$,b1$,Ft0=($,Z,Q)=>{let X={},Y=Q,J=Q[Q.length-1];if(J!==null&&typeof J==="object"&&!Array.isArray(J)&&!(J instanceof Error)&&Object.getPrototypeOf(J)===Object.prototype)X=J,Y=Q.slice(0,-1);let G=Y.map((K)=>{if(K instanceof Error)return`${K.name}: ${K.message}`;if(typeof K==="object")try{return JSON.stringify(K)}catch{return"[Object]"}return String(K)}).join(" ");b1$.emit({severityNumber:$,severityText:Z,body:G,attributes:{"log.source":"console",...X}})},Ut0,P1$=($)=>{return j14.extract(E14,$.headers,{get:(Q,X)=>Q.get(X)??void 0,keys:(Q)=>[...Q.keys()]}).setValue(S1$,$)};var L6=L(()=>{G1$();H1$();U1$();N1$();TG();Zt0();t1();Qt0();E1$();S1$=w14("Current request");Ht0=new z14({preventServerStart:!0}),_14=new v1$(new x1$(C14));hL=Wt0.getTracer("studio","1.0.0"),J$=V1$.getMeter("studio","1.0.0"),b1$=k1$.getLogger("studio","1.0.0"),Ut0={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(...$)=>{Ft0(Jo.ERROR,"ERROR",$),Ut0.error(...$)};console.warn=(...$)=>{Ft0(Jo.WARN,"WARN",$),Ut0.warn(...$)};console.debug=(...$)=>{Ft0(Jo.DEBUG,"DEBUG",$),Ut0.debug(...$)}});function nz(){try{return process.memoryUsage()}catch{return null}}import{Session as v14}from"inspector";function tz($,Z){return new Promise((Q,X)=>ah.post($,Z,(Y,J)=>Y?X(Y):Q(J??{})))}async function g1$($){try{return ah=new v14,ah.connect(),await tz("Profiler.enable"),await tz("Profiler.setSamplingInterval",{interval:$}),await tz("Profiler.start"),eh=!0,!0}catch{return eh=!1,ah=null,!1}}function x14($,Z){let{nodes:Q,samples:X,timeDeltas:Y}=$;if(!X?.length)return null;let J=new Map,G=new Map;for(let O of Q){J.set(O.id,O);for(let w of O.children??[])G.set(w,O.id)}let K=Math.max(1,Z)*1000,W=0,H=new Map;for(let O=X.length-1;O>=0;O--){W+=Y[O]??0;let w=X[O];if(w!==void 0)H.set(w,(H.get(w)??0)+1);if(W>=K)break}let F=-1,U=0;for(let[O,w]of H)if(w>U)U=w,F=O;if(F<0)return null;let N=[],B=new Set,D=F;while(D!=null&&!B.has(D)){B.add(D);let O=J.get(D);if(!O)break;let w=O.callFrame,j=w.url?` ${w.url}:${w.lineNumber+1}`:"";N.push(`${w.functionName||"(anonymous)"}${j}`),D=G.get(D)}return N}async function h1$($){if(!eh||!ah||sh)return null;sh=!0;try{let{profile:Z}=await tz("Profiler.stop"),Q=Z?x14(Z,$):null;return await tz("Profiler.start"),Q}catch{return eh=!1,null}finally{sh=!1}}async function u1$(){if(!eh||!ah||sh)return;sh=!0;try{await tz("Profiler.stop"),await tz("Profiler.start")}catch{eh=!1}finally{sh=!1}}var ah=null,eh=!1,sh=!1;var l1$=()=>{};function c1$(){if(Nt0)return;let $=performance.now()+Bt0;Nt0=setInterval(()=>{let Z=performance.now();m1$=Math.max(0,Z-$),$=Z+Bt0},Bt0),Nt0.unref?.()}function d1$(){return c1$(),m1$}function i1$(){if(c1$(),process.env.EVENT_LOOP_MONITOR!=="1")return()=>{};let $=Number(process.env.EVENT_LOOP_INTERVAL_MS??250),Z=Number(process.env.EVENT_LOOP_SPIKE_MS??100),Q=process.env.EVENT_LOOP_PROFILE==="1",X=Number(process.env.EVENT_LOOP_PROFILE_MS??1000),Y=Number(process.env.EVENT_LOOP_PROFILE_INTERVAL_US??1e4),J=30000,G=performance.now();if(Q)g1$(Y).then((H)=>{console.warn(JSON.stringify({msg:"event-loop-profiler",status:H?"started":"unavailable",intervalUs:Y}))});let K=J$.createHistogram("eventloop.delay",{description:"Event-loop lag measured as timer scheduling drift",unit:"ms"}),W=performance.now()+$;return mY0=setInterval(()=>{let H=performance.now(),F=Math.max(0,H-W);if(W=H+$,K.record(F),F>Z){let U=nz();console.warn(JSON.stringify({msg:"event-loop-stall",ts:new Date().toISOString(),lagMs:Math.round(F),rss:U?.rss,heapUsed:U?.heapUsed,heapTotal:U?.heapTotal,external:U?.external}))}if(Q){if(F>X)h1$(Math.round(F)).then((U)=>{if(U?.length)console.warn(JSON.stringify({msg:"event-loop-stall-profile",ts:new Date().toISOString(),lagMs:Math.round(F),stack:U}))}),G=H;else if(H-G>J)u1$(),G=H}},$),mY0.unref?.(),()=>{if(mY0)clearInterval(mY0)}}var mY0,Nt0,m1$=0,Bt0=500;var Dt0=L(()=>{L6();l1$()});var e1$={};e(e1$,{withSslmode:()=>dY0,getDbDialect:()=>Ko,getDb:()=>l$,getDatabaseUrl:()=>lL,createDatabase:()=>s1$,closeDatabase:()=>mL});import{Kysely as f14,PostgresDialect as t1$}from"kysely";import{Pool as o1$}from"pg";function h14($){let Z=$.connect.bind($);return $.connect=(Q)=>{if(typeof Q==="function")return Z(Q);let X=performance.now(),Y=cY0(),J=$.idleCount===0&&$.totalCount>=Y,G=$.idleCount;return Z().then((K)=>{let W=performance.now()-X;if(p1$().record(W,{"db.pool.outcome":J?"contended":"available"}),W>y14)if(J)console.error("Slow db pool acquire \u2014 pool saturated:",{waitMs:W,total:$.totalCount,idle:$.idleCount,waiting:$.waitingCount,max:Y});else console.warn("Slow db pool acquire \u2014 event-loop lag (not pool):",{waitMs:W,idleAtStart:G,total:$.totalCount,max:Y});return K},(K)=>{throw p1$().record(performance.now()-X,{"db.pool.outcome":"error"}),K})},$}function a1$(){try{return E0().databasePgSsl}catch{return!1}}function cY0(){try{return E0().databasePoolMax}catch{return 10}}function u14($){let Z=h14(new o1$({connectionString:$,max:cY0(),ssl:a1$(),...r1$})),Q=new t1$({pool:Z});return{type:"postgres",db:new f14({dialect:Q,log:g14(Z)}),pool:Z}}function lL(){return E0().databaseUrl}function dY0($,Z){if(!Z)return $;let Q=new URL($);if(!Q.searchParams.has("sslmode"))Q.searchParams.set("sslmode","verify-full");return Q.toString()}function Ko($){let Z=$||lL();return new t1$({pool:new o1$({connectionString:Z,max:cY0(),ssl:a1$(),...r1$})})}function s1$($){let Z=$||lL();return u14(Z)}async function mL($){if(await $.db.destroy(),!$.pool.ended)await $.pool.end();if($===Go)Go=null}function l$(){if(!Go)Go=s1$(lL());return Go}var b14=()=>J$.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),p1$=()=>J$.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),n1$=400,y14=100,g14=($)=>(Z)=>{let Q={"db.statement":Z.query.sql,"db.status":Z.level==="error"?"error":"success"};if(Z.queryDurationMillis>n1$){let X=d1$(),Y=X>n1$/2;console.error(Y?"Slow query measurement \u2014 likely event-loop lag, not slow SQL:":"Slow query detected:",{durationMs:Z.queryDurationMillis,eventLoopLagMs:Math.round(X),sql:Z.query.sql,pool:{total:$.totalCount,idle:$.idleCount,waiting:$.waitingCount,max:cY0()}})}if(b14().record(Z.queryDurationMillis,Q),Z.level==="error")console.error("Query failed:",{durationMs:Z.queryDurationMillis,error:Z.error,sql:Z.query.sql})},r1$,Go=null;var iQ=L(()=>{t1();L6();Dt0();r1$={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0}});function Z$$($){let{port:Z,query:Q}=$,{protocol:X,path:Y,hostname:J}=$;if(X&&X.slice(-1)!==":")X+=":";if(Z)J+=`:${Z}`;if(Y&&Y.charAt(0)!=="/")Y=`/${Y}`;let G=Q?$$$.buildQueryString(Q):"";if(G&&G[0]!=="?")G=`?${G}`;let K="";if($.username!=null||$.password!=null){let H=$.username??"",F=$.password??"";K=`${H}:${F}@`}let W="";if($.fragment)W=`#${$.fragment}`;return`${X}//${K}${J}${Y}${G}${W}`}var $$$;var Q$$=L(()=>{$$$=k(v90(),1)});var X$$="UNSIGNED-PAYLOAD",Y$$="X-Amz-Content-Sha256";class iY0{signer;constructor($){let Z={service:$.signingName||$.service||"s3",uriEscapePath:$.uriEscapePath||!1,applyChecksum:$.applyChecksum||!1,...$};this.signer=new J$$.SignatureV4MultiRegion(Z)}presign($,{unsignableHeaders:Z=new Set,hoistableHeaders:Q=new Set,unhoistableHeaders:X=new Set,...Y}={}){return this.prepareRequest($,{unsignableHeaders:Z,unhoistableHeaders:X,hoistableHeaders:Q}),this.signer.presign($,{expiresIn:900,unsignableHeaders:Z,unhoistableHeaders:X,...Y})}presignWithCredentials($,Z,{unsignableHeaders:Q=new Set,hoistableHeaders:X=new Set,unhoistableHeaders:Y=new Set,...J}={}){return this.prepareRequest($,{unsignableHeaders:Q,unhoistableHeaders:Y,hoistableHeaders:X}),this.signer.presignWithCredentials($,Z,{expiresIn:900,unsignableHeaders:Q,unhoistableHeaders:Y,...J})}prepareRequest($,{unsignableHeaders:Z=new Set,unhoistableHeaders:Q=new Set,hoistableHeaders:X=new Set}={}){Z.add("content-type"),Object.keys($.headers).map((K)=>K.toLowerCase()).filter((K)=>K.startsWith("x-amz-server-side-encryption")).forEach((K)=>{if(!X.has(K))Q.add(K)}),$.headers[Y$$]=X$$;let Y=$.headers.host,J=$.port,G=`${$.hostname}${$.port!=null?":"+J:""}`;if(!Y||Y===$.hostname&&$.port!=null)$.headers.host=G}}var J$$;var Lt0=L(()=>{J$$=k(Dh(),1)});var G$$,K$$,pY0=async($,Z,Q={})=>{let X,Y;if(typeof $.config.endpointProvider==="function"){let N=(await G$$.getEndpointFromInstructions(Z.input,Z.constructor,$.config)).properties?.authSchemes?.[0];if(N?.name==="sigv4a")Y=N?.signingRegionSet?.join(",");else Y=N?.signingRegion;X=new iY0({...$.config,signingName:N?.signingName,region:async()=>Y})}else X=new iY0($.config);let J=(U,N)=>async(B)=>{let{request:D}=B;if(!K$$.HttpRequest.isInstance(D))throw Error("Request to be presigned is not an valid HTTP request.");delete D.headers["amz-sdk-invocation-id"],delete D.headers["amz-sdk-request"],delete D.headers["x-amz-user-agent"];let O,w={...Q,signingRegion:Q.signingRegion??N.signing_region??Y,signingService:Q.signingService??N.signing_service};if(N.s3ExpressIdentity)O=await X.presignWithCredentials(D,N.s3ExpressIdentity,w);else O=await X.presign(D,w);return{response:{},output:{$metadata:{httpStatusCode:200},presigned:O}}},G="presignInterceptMiddleware",K=$.middlewareStack.clone();K.addRelativeTo(J,{name:G,relation:"before",toMiddleware:"awsAuthMiddleware",override:!0});let W=Z.resolveMiddleware(K,$.config,{}),{output:H}=await W({input:Z.input}),{presigned:F}=H;return Z$$(F)};var W$$=L(()=>{Q$$();Lt0();G$$=k(Q1(),1),K$$=k(F5(),1)});var H$$=L(()=>{W$$();Lt0()});import{extname as l14}from"path";function RG($){let Z;try{Z=decodeURIComponent($)}catch{Z=$}let X=Z.replace(/\0/g,"").replace(/[\x00-\x1f\x7f]/g,"").replace(/\\/g,"/").split("/"),Y=[];for(let J of X)if(J==="..")Y.pop();else if(J!=="."&&J!=="")Y.push(J);return Y.join("/")}function cL($,Z){let Q=RG(Z);if(!Q)throw Error("Key is empty after sanitization");return`${$}/${Q}`}function F$$($,Z){if(!Z)return`${$}/`;let Q=RG(Z);return`${$}/${Q}${Q.endsWith("/")?"":"/"}`}function $u($,Z,Q){let X=Q.split("/").map(encodeURIComponent).join("/");return`${$}/api/${encodeURIComponent(Z)}/files/${X}`}function Ot0($,Z){let Q=`${$}/`;if(Z.startsWith(Q))return Z.slice(Q.length);return Z}function z7($){let Z=l14($).toLowerCase();return m14[Z]??"application/octet-stream"}function nY0($){let Z=$.split(";")[0].trim();if(c14.has(Z))return!0;if(Z.startsWith("text/"))return!0;return!1}var m14,c14;var $W=L(()=>{m14={".json":"application/json",".html":"text/html",".htm":"text/html",".css":"text/css",".js":"application/javascript",".mjs":"application/javascript",".ts":"text/typescript",".txt":"text/plain",".md":"text/markdown",".csv":"text/csv",".xml":"application/xml",".svg":"image/svg+xml",".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".gif":"image/gif",".webp":"image/webp",".pdf":"application/pdf",".zip":"application/zip",".gz":"application/gzip",".tar":"application/x-tar",".wasm":"application/wasm",".yaml":"application/yaml",".yml":"application/yaml",".toml":"application/toml"};c14=new Set(["application/json","text/html","text/css","application/javascript","text/typescript","text/plain","text/markdown","text/csv","application/xml","image/svg+xml","application/yaml","application/toml"])});class wt0{client;bucket;constructor($){this.bucket=$.bucket,this.client=new dQ({endpoint:$.endpoint,region:$.region,credentials:{accessKeyId:$.accessKeyId,secretAccessKey:$.secretAccessKey},forcePathStyle:$.forcePathStyle})}async getBytesOrPresign($,Z,Q){let X=cL($,Z),Y=await this.client.send(new aK({Bucket:this.bucket,Key:X})),J=Y.ContentLength??0,G=Y.ContentType??z7(Z);if(J>Q.presignWhenLargerThan){let F=await pY0(this.client,new yN({Bucket:this.bucket,Key:X}),{expiresIn:Q.presignExpiresIn??3600});return{error:"FILE_TOO_LARGE",size:J,maxInlineSize:Q.presignWhenLargerThan,presignedUrl:F,contentType:G}}let W=await(await this.client.send(new yN({Bucket:this.bucket,Key:X}))).Body.transformToByteArray(),H=nY0(G);return{content:H?new TextDecoder().decode(W):Buffer.from(W).toString("base64"),contentType:G,encoding:H?"utf-8":"base64",size:J,lastModified:Y.LastModified,etag:Y.ETag}}async getBytes($,Z){let Q=cL($,Z);return(await this.client.send(new yN({Bucket:this.bucket,Key:Q}))).Body.transformToByteArray()}async put($,Z,Q,X){let Y=cL($,Z),J=X?.contentType??z7(Z);return{etag:(await this.client.send(new aH({Bucket:this.bucket,Key:Y,Body:typeof Q==="string"?Buffer.from(Q,"utf-8"):Q,ContentType:J}))).ETag,key:Z}}async list($,Z){let Q=F$$($,Z?.prefix),X=await this.client.send(new sK({Bucket:this.bucket,Prefix:Q,MaxKeys:Z?.maxKeys??1000,ContinuationToken:Z?.continuationToken,Delimiter:Z?.delimiter})),Y=X.CommonPrefixes?.map((J)=>Ot0($,J.Prefix??"")).filter(Boolean);return{objects:(X.Contents??[]).map((J)=>({key:Ot0($,J.Key??""),size:J.Size??0,lastModified:J.LastModified,etag:J.ETag})),isTruncated:X.IsTruncated??!1,nextContinuationToken:X.NextContinuationToken,commonPrefixes:Y&&Y.length>0?Y:void 0}}async delete($,Z){let Q=cL($,Z);await this.client.send(new fL({Bucket:this.bucket,Key:Q}))}async head($,Z){let Q=cL($,Z),X=await this.client.send(new aK({Bucket:this.bucket,Key:Q}));return{contentType:X.ContentType??z7(Z),size:X.ContentLength??0,lastModified:X.LastModified,etag:X.ETag}}async presignedGetUrl($,Z,Q=3600,X){let Y=cL($,Z);return pY0(this.client,new yN({Bucket:this.bucket,Key:Y}),{expiresIn:Q})}async presignedPutUrl($,Z,Q=3600,X){let Y=cL($,Z);return pY0(this.client,new aH({Bucket:this.bucket,Key:Y,ContentType:X}),{expiresIn:Q})}}var U$$=L(()=>{ot();H$$();$W()});function d14(){let $=E0();return!!($.s3Endpoint&&$.s3Bucket&&$.s3AccessKeyId&&$.s3SecretAccessKey)}function ZQ(){if(Wo!==void 0)return Wo;if(!d14())return Wo=null,null;let $=E0();return Wo=new wt0({endpoint:$.s3Endpoint,bucket:$.s3Bucket,region:$.s3Region,accessKeyId:$.s3AccessKeyId,secretAccessKey:$.s3SecretAccessKey,forcePathStyle:$.s3ForcePathStyle}),Wo}var Wo;var uN=L(()=>{t1();U$$()});function lX($,Z){return{getBytesOrPresign:(Q,X)=>$.getBytesOrPresign(Z,Q,X),getBytes:(Q)=>$.getBytes(Z,Q),put:(Q,X,Y)=>$.put(Z,Q,X,Y),list:(Q)=>$.list(Z,Q),delete:(Q)=>$.delete(Z,Q),head:(Q)=>$.head(Z,Q),presignedGetUrl:(Q,X,Y)=>$.presignedGetUrl(Z,Q,X,Y),presignedPutUrl:(Q,X,Y)=>$.presignedPutUrl(Z,Q,X,Y)}}import{createHash as i14}from"crypto";function N$$($){let Z=$;while(Z?.[tY0])Z=Z[tY0];return Z}function Fo($){let{objectStorage:Z,baseUrl:Q,orgSlug:X,prefix:Y="connection-icons",maxBytes:J=n14,dryRun:G=!1}=$;return async(K)=>{if(typeof K!=="string")return K;let W=K.match(p14);if(!W)return K;if(!Z||!X)return K;let[,H,F]=W,U=H.toLowerCase(),N=o14[U];if(!N)return K;if(Math.floor(F.length*3/4)>J)return console.warn(`[asset-hoister] asset exceeds ${J} bytes, keeping inline`),K;let B=Buffer.from(F,"base64"),D=i14("sha256").update(B).digest("hex"),O=`${Y}/${D}.${N}`;if(G)return $u(Q,X,O);try{return await Z.put(O,B,{contentType:U}),$u(Q,X,O)}catch(w){return console.error("[asset-hoister] upload failed, keeping inline asset:",w),K}}}async function oY0($,Z,Q=0){if(Q>t14)return $;if(typeof $==="string")return await Z($)??$;if(Array.isArray($)){let X=await Promise.all($.map((Y)=>oY0(Y,Z,Q+1)));return X.some((Y,J)=>Y!==$[J])?X:$}if($!==null&&typeof $==="object"){let X=Object.entries($),Y=await Promise.all(X.map(([,K])=>oY0(K,Z,Q+1))),J=!1,G={};return X.forEach(([K,W],H)=>{if(G[K]=Y[H],Y[H]!==W)J=!0}),J?G:$}return $}function rY0($,Z){return oY0($,Z)}async function Ho($,Z){let Q={...$};if(typeof Q.icon==="string")Q.icon=await Z(Q.icon);if(Q.metadata!==null&&typeof Q.metadata==="object")Q.metadata=await oY0(Q.metadata,Z);return Q}function r14($,Z){return new Proxy($,{get(Q,X,Y){if(X===tY0)return Q;if(X==="create")return async(G)=>Q.create(await Ho(G,Z));if(X==="createNew")return async(G)=>Q.createNew(await Ho(G,Z));if(X==="update")return async(G,K)=>Q.update(G,await Ho(K,Z));let J=Reflect.get(Q,X,Y);return typeof J==="function"?J.bind(Q):J}})}function a14($,Z){return new Proxy($,{get(Q,X,Y){if(X===tY0)return Q;if(X==="create")return async(G,K,W,H)=>Q.create(G,K,await Ho(W,Z),H);if(X==="update")return async(G,K,W)=>Q.update(G,K,await Ho(W,Z));let J=Reflect.get(Q,X,Y);return typeof J==="function"?J.bind(Q):J}})}function jt0($,Z){let Q=Fo(Z);if(B$$($.connections))$.connections=r14(N$$($.connections),Q);if(B$$($.virtualMcps))$.virtualMcps=a14(N$$($.virtualMcps),Q)}function B$$($){return $!==null&&typeof $==="object"}var p14,n14=5242880,t14=64,tY0,o14;var aY0=L(()=>{$W();p14=/^data:((?:image|audio|video)\/[^;,]+)(?:;[^,]+)?;base64,(.+)$/is,tY0=Symbol("assetHoistingTarget"),o14={"image/png":"png","image/jpeg":"jpg","image/gif":"gif","image/webp":"webp","image/x-icon":"ico","image/vnd.microsoft.icon":"ico","audio/mpeg":"mp3","audio/mp4":"m4a","audio/wav":"wav","audio/x-wav":"wav","audio/ogg":"ogg","audio/webm":"weba","audio/aac":"aac","video/mp4":"mp4","video/webm":"webm","video/ogg":"ogv","video/quicktime":"mov"}});function M5(){let $=E0();if($.baseUrl)return $.baseUrl;return`http://localhost:${$.port??3000}`}function D$$(){return`http://localhost:${E0().port??3000}`}function N5(){return E0().publicUrl??M5()}var I5=L(()=>{t1()});var L$$={};e(L$$,{backfillThreadAssetsCommand:()=>s14});import{sql as Et0}from"kysely";async function s14($){let{dryRun:Z,batch:Q}=$,X=$.baseUrl??M5(),Y=ZQ();if(!Y)return console.error("[backfill-assets] Object storage (S3) is not configured \u2014 cannot hoist "+"inline media. Set S3_ENDPOINT/S3_BUCKET/S3_ACCESS_KEY_ID/S3_SECRET_ACCESS_KEY and retry."),1;if(/^https?:\/\/localhost(:|\/|$)/.test(X))console.warn(`[backfill-assets] base URL resolves to "${X}" \u2014 set BASE_URL `+"(or pass --base-url) to the public origin, or stored media URLs will be wrong.");let J=l$(),{db:G}=J,K;if($.org){let O=await G.selectFrom("organization").select(["id","slug"]).where((w)=>w.or([w("id","=",$.org),w("slug","=",$.org)])).executeTakeFirst();if(!O)return console.error(`[backfill-assets] org "${$.org}" not found (slug or id).`),await mL(J).catch(()=>{}),1;K=O.id,console.log(`[backfill-assets] scoped to org ${O.slug??O.id} (${O.id})`)}console.log(`[backfill-assets] starting${Z?" (dry-run)":""} \u2014 target=${$.target} baseUrl=${X} batch=${Q}${$.limit?` limit=${$.limit}`:""}`);let W=new Map,H=(O,w,j)=>{let E=`${j}\x00${O}`,z=W.get(E);if(z)return z;let P=Fo({objectStorage:lX(Y,O),baseUrl:X,orgSlug:w??void 0,prefix:j,dryRun:Z});return W.set(E,P),P},F=async(O,w,j,E)=>{let z="";for(;;){let P=$.limit?$.limit-j.scanned:1/0;if(P<=0)break;let A=await O(z,Math.min(Q,P));if(A.length===0)break;for(let q of A)z=q.id,j.scanned++,await w(q);console.log(`[backfill-assets] ${E}: scanned=${j.scanned} ${Z?"would-change":"changed"}=${j.changed} errors=${j.errors} cursor=${z}`)}},U={scanned:0,changed:0,errors:0},N={scanned:0,changed:0,errors:0},B={scanned:0,changed:0,errors:0};try{if($.target==="all"||$.target==="threads")await F((O,w)=>G.selectFrom("thread_messages as tm").innerJoin("threads as t","t.id","tm.thread_id").innerJoin("organization as o","o.id","t.organization_id").select(["tm.id as id",Et0`tm.parts`.as("parts"),Et0`tm.metadata`.as("metadata"),"t.organization_id as orgId","o.slug as orgSlug"]).where("tm.id",">",O).$if(!!K,(j)=>j.where("t.organization_id","=",K)).orderBy("tm.id","asc").limit(w).execute(),async(O)=>{try{if(!Uo(O.parts)&&!Uo(O.metadata))return;let w=H(O.orgId,O.orgSlug,"thread-assets"),j=JSON.parse(O.parts),E=await rY0(j,w),z=E!==j,P=O.metadata!==null?JSON.parse(O.metadata):null,A=await rY0(P,w),q=A!==P;if(!z&&!q)return;if(U.changed++,Z)return;await G.updateTable("thread_messages").set({parts:z?JSON.stringify(E):O.parts,metadata:q?JSON.stringify(A):O.metadata}).where("id","=",O.id).execute()}catch(w){U.errors++,console.error(`[backfill-assets] thread_message ${O.id} failed, skipping:`,w)}},U,"threads");if($.target==="all"||$.target==="connections")await F((O,w)=>G.selectFrom("connections as c").innerJoin("organization as o","o.id","c.organization_id").select(["c.id as id","c.icon as icon",Et0`c.metadata`.as("metadata"),"c.organization_id as orgId","o.slug as orgSlug"]).where("c.id",">",O).$if(!!K,(j)=>j.where("c.organization_id","=",K)).orderBy("c.id","asc").limit(w).execute(),async(O)=>{try{if(!Uo(O.icon)&&!Uo(O.metadata))return;let w=H(O.orgId,O.orgSlug,"connection-icons"),j=O.icon!==null?await w(O.icon):O.icon,E=j!==O.icon,z=O.metadata!==null?JSON.parse(O.metadata):null,P=await rY0(z,w),A=P!==z;if(!E&&!A)return;if(N.changed++,Z)return;await G.updateTable("connections").set({icon:E?j??null:O.icon,metadata:A?JSON.stringify(P):O.metadata}).where("id","=",O.id).execute()}catch(w){N.errors++,console.error(`[backfill-assets] connection ${O.id} failed, skipping:`,w)}},N,"connections");if($.target==="all"||$.target==="organizations")await F((O,w)=>G.selectFrom("organization as o").select(["o.id as id","o.logo as logo","o.slug as orgSlug"]).where("o.id",">",O).$if(!!K,(j)=>j.where("o.id","=",K)).orderBy("o.id","asc").limit(w).execute(),async(O)=>{try{if(!Uo(O.logo))return;let j=await H(O.id,O.orgSlug,"org-logos")(O.logo);if(j===O.logo)return;if(B.changed++,Z)return;await G.updateTable("organization").set({logo:j??null}).where("id","=",O.id).execute()}catch(w){B.errors++,console.error(`[backfill-assets] organization ${O.id} failed, skipping:`,w)}},B,"organizations")}finally{await mL(J).catch(()=>{})}let D=Z?"would-change":"changed";return console.log("[backfill-assets] done \u2014 "+`threads(scanned=${U.scanned} ${D}=${U.changed} errors=${U.errors}) connections(scanned=${N.scanned} ${D}=${N.changed} errors=${N.errors}) organizations(scanned=${B.scanned} ${D}=${B.changed} errors=${B.errors})`),U.errors+N.errors+B.errors>0?1:0}var Uo=($)=>$!==null&&($.includes("data:image/")||$.includes("data:audio/")||$.includes("data:video/"));var O$$=L(()=>{iQ();uN();aY0();I5()});async function w$$($){let Z,Q,X=new Promise((G,K)=>{Z=G,Q=K});X.catch(()=>{});let Y=!1,J=Bun.serve({port:$.port??0,hostname:"127.0.0.1",fetch(G){if(Y)return new Response("",{status:204});let K=new URL(G.url),W=K.searchParams.get("code");if(K.searchParams.get("state")!==$.expectedState)return Y=!0,Q(Error("OAuth state mismatch")),new Response("State mismatch \u2014 close this tab.",{status:400});if(!W)return Y=!0,Q(Error("OAuth callback missing code")),new Response("Missing code \u2014 close this tab.",{status:400});return Y=!0,Z({code:W}),new Response(null,{status:302,headers:{location:$.successRedirectUrl}})}});return{url:`http://127.0.0.1:${J.port}`,waitForCallback:()=>X,close:()=>J.stop(!0)}}import{createHash as e14,randomBytes as $$4}from"crypto";function E$$(){let $=j$$($$4(32)),Z=j$$(e14("sha256").update($).digest());return{verifier:$,challenge:Z}}function j$$($){return $.toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}var z$$=()=>{};async function P$$($,Z=fetch,Q=Date.now){if(!$.refreshToken)throw new qG("invalid_grant","Session has no refresh token");let X=new URLSearchParams({grant_type:"refresh_token",refresh_token:$.refreshToken,client_id:$.clientId}),Y;try{Y=await Z(`${$.target}/api/auth/mcp/token`,{method:"POST",headers:{"content-type":"application/x-www-form-urlencoded"},body:X.toString(),signal:AbortSignal.timeout(Z$4)})}catch(H){throw new qG("transient",H instanceof Error?H.message:String(H))}if(!Y.ok){let H=await Y.text().catch(()=>"");if(Y.status>=400&&Y.status<500&&Y.status!==429)throw new qG("invalid_grant",`HTTP ${Y.status} ${H}`);throw new qG("transient",`HTTP ${Y.status} ${H}`)}let J;try{J=await Y.json()}catch(H){throw new qG("transient",`Token endpoint returned a non-JSON body: ${H instanceof Error?H.message:String(H)}`)}if(typeof J!=="object"||J===null)throw new qG("transient","Token endpoint returned a non-object JSON body");if(typeof J.access_token!=="string"||!J.access_token)throw new qG("transient","Token endpoint returned no access_token");let G=Number(J.expires_in),K=Number.isFinite(G)&&G>0&&G<=zt0?Math.floor(Q()/1000)+G:$.expiresAt,W=typeof J.refresh_token==="string"&&J.refresh_token?J.refresh_token:$.refreshToken;return{...$,accessToken:J.access_token,refreshToken:W,expiresAt:K}}var qG,Z$4=1e4,zt0=3153600000;var sY0=L(()=>{qG=class qG extends Error{kind;constructor($,Z){super(Z);this.name="RefreshFailedError",this.kind=$}}});import{chmod as Q$4,mkdir as X$4,readdir as Y$4,readFile as J$4,rename as G$4,rm as A$$,writeFile as K$4}from"fs/promises";import{dirname as W$4,join as R$$}from"path";function Pt0($,Z){return R$$($,`session.${H$4(Z)}.json`)}function H$4($){let Z=$;try{Z=new URL($).host}catch{}return Z.replace(/[^a-zA-Z0-9.-]/g,"_")||"default"}async function T$$($){try{let Z=await J$4($,"utf8"),Q=JSON.parse(Z);if(!F$4(Q))return null;return Q}catch{return null}}async function q$$($){try{return(await Y$4($)).filter((Q)=>/^session\..+\.json$/.test(Q)).map((Q)=>R$$($,Q))}catch{return[]}}async function eY0($,Z){if(Z)return T$$(Pt0($,Z));for(let Q of await q$$($)){let X=await T$$(Q);if(X)return X}return null}async function $J0($,Z){let Q=Pt0($,Z.target);await X$4(W$4(Q),{recursive:!0});let X=`${Q}.tmp`;await K$4(X,JSON.stringify(Z,null,2),{mode:384}),await Q$4(X,384),await G$4(X,Q)}async function ZJ0($,Z){if(Z){await A$$(Pt0($,Z),{force:!0});return}for(let Q of await q$$($))await A$$(Q,{force:!0})}function F$4($){if(!$||typeof $!=="object")return!1;let Z=$;if(typeof Z.target!=="string"||typeof Z.clientId!=="string"||typeof Z.accessToken!=="string"||typeof Z.createdAt!=="string")return!1;if(!Z.user||typeof Z.user!=="object")return!1;if(typeof Z.user.sub!=="string")return!1;if(Z.refreshToken!==void 0&&typeof Z.refreshToken!=="string")return!1;if(Z.expiresAt!==void 0&&typeof Z.expiresAt!=="number")return!1;return!0}var QJ0=()=>{};var M$$={};e(M$$,{loginCommand:()=>O$4});import{spawn as U$4}from"child_process";import{randomUUID as N$4}from"crypto";async function L$4($={}){let Z=($.target??B$4).replace(/\/$/,""),Q=$.fetch??fetch,X=$.openBrowser??z$4,Y=N$4(),J=E$$(),G=await w$$({expectedState:Y,successRedirectUrl:`${Z}/cli/auth-success`});try{let K=`${G.url}/`,W=await w$4(Q,Z,K),H=new URLSearchParams({client_id:W,redirect_uri:K,response_type:"code",state:Y,scope:D$4,code_challenge:J.challenge,code_challenge_method:"S256"}),F=`${Z}/login?${H.toString()}`;console.log(`Opening ${F} in your browser...`),await X(F);let{code:U}=await G.waitForCallback(),N=await j$4(Q,Z,W,U,K,J.verifier);if(!N.id_token)throw Error("Token endpoint returned no id_token");let B=E$4(N.id_token);return{target:Z,clientId:W,user:{sub:B.sub,email:B.email,name:B.name},accessToken:N.access_token,refreshToken:N.refresh_token,expiresAt:Number.isFinite(N.expires_in)&&N.expires_in>0&&N.expires_in<=zt0?Math.floor(Date.now()/1000)+N.expires_in:void 0,createdAt:new Date().toISOString()}}finally{G.close()}}async function O$4($){try{let Z=await L$4({target:$.target,openBrowser:$.openBrowser,fetch:$.fetch});return await $J0($.dataDir,Z),console.log(`Logged in as ${Z.user.email??Z.user.sub}.`),0}catch(Z){return console.error(`Login failed: ${Z instanceof Error?Z.message:String(Z)}`),1}}async function w$4($,Z,Q){let X=await $(`${Z}/api/auth/mcp/register`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({client_name:"decocms-cli",redirect_uris:[Q],grant_types:["authorization_code","refresh_token"],response_types:["code"],token_endpoint_auth_method:"none",application_type:"native"})});if(!X.ok)throw Error(`Client registration failed: HTTP ${X.status} ${await X.text().catch(()=>"")}`);let Y=await X.json();if(typeof Y?.client_id!=="string")throw Error("Client registration returned no client_id");return Y.client_id}async function j$4($,Z,Q,X,Y,J){let G=new URLSearchParams({grant_type:"authorization_code",code:X,redirect_uri:Y,client_id:Q,code_verifier:J}),K=await $(`${Z}/api/auth/mcp/token`,{method:"POST",headers:{"content-type":"application/x-www-form-urlencoded"},body:G.toString()});if(!K.ok)throw Error(`Token exchange failed: HTTP ${K.status} ${await K.text().catch(()=>"")}`);let W=await K.json();if(typeof W?.access_token!=="string")throw Error("Token endpoint returned no access_token");return W}function E$4($){let Z=$.split(".");if(Z.length!==3||!Z[1])throw Error("id_token is not a valid JWT");let Q=JSON.parse(Buffer.from(Z[1],"base64url").toString("utf8"));if(typeof Q.sub!=="string")throw Error("id_token has no sub claim");return{sub:Q.sub,email:typeof Q.email==="string"?Q.email:void 0,name:typeof Q.name==="string"?Q.name:void 0}}async function z$4($){let Z,Q;switch(process.platform){case"darwin":Z="open",Q=[$];break;case"win32":Z="cmd",Q=["/c","start","",$];break;default:Z="xdg-open",Q=[$];break}await new Promise((X)=>{let Y=U$4(Z,Q,{stdio:"ignore",detached:!0});Y.on("error",()=>{console.log(`Could not open browser automatically. Please open this URL manually:
|
|
146
146
|
${$}`),X()}),Y.on("spawn",()=>{Y.unref(),X()})})}var B$4="https://studio.decocms.com",D$4="openid profile email offline_access";var I$$=L(()=>{z$$();sY0();QJ0()});async function V$$($){let Z=await eY0($.dataDir,$.target);if(!Z)return null;let Q=$.now??Date.now;if(!A$4(Z,Q()))return Z;try{let X=await P$$(Z,$.fetch,Q);return await $J0($.dataDir,X),X}catch(X){if(X instanceof qG&&X.kind==="invalid_grant")return await ZJ0($.dataDir,Z.target),null;throw X}}function A$4($,Z){if($.expiresAt===void 0)return!1;let Q=Math.floor(Z/1000);return $.expiresAt-P$4<Q}var P$4=60;var k$$=L(()=>{sY0();QJ0()});var S$$={};e(S$$,{whoamiCommand:()=>T$4});async function T$4($){let Z;try{Z=await V$$({dataDir:$.dataDir,fetch:$.fetch,now:$.now})}catch(Q){if(Q instanceof qG&&Q.kind==="transient")return console.error(`Could not refresh session: ${Q.message}. Run \`decocms auth login\` to authenticate.`),1;throw Q}if(!Z)return console.error("Not logged in. Run `decocms auth login` to authenticate."),1;return console.log(`Target: ${Z.target}`),console.log(`User: ${Z.user.email??Z.user.sub}`),0}var C$$=L(()=>{k$$();sY0()});var _$$={};e(_$$,{logoutCommand:()=>R$4});async function R$4($){if(!await eY0($.dataDir))return console.log("Already logged out."),0;return await ZJ0($.dataDir),console.log("Logged out."),0}var v$$=L(()=>{QJ0()});var JJ0={};e(JJ0,{printBanner:()=>M$4,bannerLines:()=>x$$,BANNER_LINES:()=>XJ0,BANNER_GRADIENT:()=>YJ0});function q$4($){let Z=Number.parseInt($.slice(1),16);return[Z>>16&255,Z>>8&255,Z&255]}function x$$($){let Z=XJ0.map((Q,X)=>{let[Y,J,G]=q$4(YJ0[X]);return`\x1B[38;2;${Y};${J};${G}m${Q}\x1B[39m`});if($!==void 0)Z.push(`\x1B[2m v${$}\x1B[22m`);return Z}function M$4($){console.log("");for(let Z of x$$($))console.log(Z);console.log("")}var XJ0,YJ0;var No=L(()=>{XJ0=[" \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 "],YJ0=["#00ff64","#00ee5e","#00dc56","#00c84e","#00b444","#00a03c","#008832","#006e28"]});import{randomBytes as I$4}from"crypto";import{mkdirSync as V$4,readFileSync as k$4,writeFileSync as S$4}from"fs";import{join as C$4}from"path";function f$$($){let Z=C$4($,_$4);try{let X=k$4(Z,"utf8").trim();if(X)return X}catch{}let Q=I$4(32).toString("base64");return V$4($,{recursive:!0}),S$4(Z,Q,{mode:384}),Q}var _$4="local-auth-secret";var b$$=()=>{};var y$$={};e(y$$,{migrateBetterAuth:()=>At0});import{getMigrations as v$4}from"better-auth/db";import{sso as x$4}from"@better-auth/sso";import{organization as f$4}from"@decocms/better-auth/plugins";import{admin as b$4,apiKey as y$4,jwt as g$4,magicLink as h$4,mcp as u$4,openAPI as l$4}from"better-auth/plugins";import{emailOTP as m$4}from"better-auth/plugins/email-otp";async function At0($){let Q={database:Ko($||lL()),plugins:[f$4({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),b$4(),y$4(),g$4(),l$4(),u$4({loginPage:"/login"}),x$4(),h$4({sendMagicLink:async()=>{}}),m$4({sendVerificationOTP:async()=>{}})]},{toBeAdded:X,toBeCreated:Y,runMigrations:J}=await v$4(Q);if(!X.length&&!Y.length)return"up to date";return await J(),`${Y.length+X.length} table(s) migrated`}var Tt0=L(()=>{iQ()});var Rt0={};e(Rt0,{up:()=>c$4,down:()=>d$4});import{sql as g$$}from"kysely";async function c$4($){await g$$`CREATE INDEX idx_connections_sanitized_id ON connections (replace(id, '-', '_'))`.execute($)}async function d$4($){await g$$`DROP INDEX IF EXISTS idx_connections_sanitized_id`.execute($)}var h$$=()=>{};var qt0={};e(qt0,{up:()=>i$4,down:()=>p$4});import{sql as ZW}from"kysely";async function i$4($){await ZW`
|
|
@@ -2076,7 +2076,7 @@ Usage: deco services <up|down|status>`),process.exit(1)}}var X1$=L(()=>{bg()});f
|
|
|
2076
2076
|
`.execute($);if(Number(W.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${G}/${K}, keeping in old table`);continue}}await Wu`
|
|
2077
2077
|
DELETE FROM kysely_migration WHERE name = ${Q}
|
|
2078
2078
|
`.execute($)}}async function I5$($){await HY4($),await FY4($);let Z=new q5$({db:$,provider:{getMigrations:()=>Promise.resolve(Ye0)}}),{error:Q,results:X}=await Z.migrateToLatest(),Y=0;if(X?.forEach((J)=>{if(J.status==="Success")Y++;else if(J.status==="Error")console.error(`Failed to execute migration "${J.migrationName}"`)}),Q)throw console.error("Failed to migrate"),console.error(Q),Q;return Y}async function UY4($){let{keepOpen:Z=!1,database:Q,skipBetterAuth:X=!1}=$??{},Y="skipped";if(!X&&!Q)Y=await At0();let J=Q??l$(),G=async()=>{if(!Z&&!Q)await mL(J).catch((K)=>{console.warn("Warning: Error closing database:",K)})};try{let K=await I5$(J.db);return await G(),{betterAuth:Y,kysely:K}}catch(K){throw await G(),K}}async function NY4(){let $=l$(),Z=new q5$({db:$.db,provider:{getMigrations:()=>Promise.resolve(Ye0)}}),{error:Q,results:X}=await Z.migrateDown();if(X?.forEach((Y)=>{if(Y.status==="Success")console.log(`\u2705 Migration "${Y.migrationName}" rolled back successfully`);else if(Y.status==="Error")console.error(`\u274C Failed to rollback migration "${Y.migrationName}"`)}),Q)throw console.error("Failed to rollback migration"),console.error(Q),Q}var k5$=L(()=>{R5$();Tt0();iQ()});async function vJ0($){let Z={...process.env},Q=A90($,Z);console.log(Jq1(Q.settings.encryptionKey));let X=Q.settings.betterAuthSecret||(Q.settings.localMode?f$$(Q.settings.dataDir):""),{ensureServices:Y}=await Promise.resolve().then(() => (xY0(),vY0)),{outputs:J,services:G}=await Y({home:Q.settings.dataDir,externalDatabaseUrl:Q.externalDatabaseUrl,externalNatsUrl:Q.externalNatsUrl});if(!Q.skipMigrations){let{migrateBetterAuth:W}=await Promise.resolve().then(() => (Tt0(),y$$));await W(J.databaseUrl);let{createDatabase:H}=await Promise.resolve().then(() => (iQ(),e1$)),{migrateToLatest:F}=await Promise.resolve().then(() => (k5$(),V5$)),U=H(J.databaseUrl);await F({keepOpen:!0,database:U,skipBetterAuth:!0})}let K={...Q.settings,betterAuthSecret:X,databaseUrl:J.databaseUrl,natsUrls:J.natsUrls,...J.s3?{s3Endpoint:J.s3.endpoint,s3Bucket:J.s3.bucket,s3AccessKeyId:J.s3.accessKeyId,s3SecretAccessKey:J.s3.secretAccessKey,s3ForcePathStyle:J.s3.forcePathStyle}:{}};return Y1$(K),{settings:K,services:G.map((W)=>({name:W.name==="PostgreSQL"?"Postgres":W.name,port:W.port})),managedServiceNames:G.filter((W)=>W.owner==="managed").map((W)=>W.name)}}var Je0=L(()=>{bg();b$$();t1()});var v5$={};e(v5$,{updateService:()=>az,subscribeCliState:()=>We0,setTuiConsoleIntercepted:()=>xJ0,setServerUrl:()=>Vo,setMigrationsDone:()=>Io,setDevMode:()=>DY4,resetCliStateForTests:()=>BY4,isTuiConsoleIntercepted:()=>fJ0,getCliState:()=>Ke0,addLogEntry:()=>tL});function S5$(){return[{name:"Postgres",status:"pending",port:0},{name:"NATS",status:"pending",port:0}]}function C5$(){return{services:S5$(),migrationsStatus:"pending",serverUrl:null,logs:[]}}function BY4(){xY=C5$()}function Mo(){for(let $ of Ge0)$()}function Ke0(){return xY}function We0($){return Ge0.add($),()=>Ge0.delete($)}function az($){xY={...xY,services:xY.services.map((Z)=>Z.name===$.name?$:Z)},Mo()}function Io(){xY={...xY,migrationsStatus:"done"},Mo()}function Vo($){xY={...xY,serverUrl:$},Mo()}function tL($){let Z=[...xY.logs,$];xY={...xY,logs:Z.length>500?Z.slice(-500):Z},Mo()}function DY4(){xY={...xY,services:[...S5$(),{name:"API",status:"pending",port:0},{name:"Vite",status:"pending",port:0}]},Mo()}function xJ0($){_5$=$}function fJ0(){return _5$}var xY,Ge0,_5$=!1;var sz=L(()=>{xY=C5$();Ge0=new Set});import{createServer as x5$}from"net";function LY4($){return new Promise((Z)=>{let Q=x5$();Q.once("error",()=>Z(!1)),Q.listen($,"0.0.0.0",()=>{Q.close(()=>Z(!0))})})}async function ko($){if(await LY4($))return $;let Z=await new Promise((Q,X)=>{let Y=x5$();Y.once("error",X),Y.listen(0,"0.0.0.0",()=>{let J=Y.address(),G=typeof J==="object"&&J?J.port:0;Y.close(()=>Q(G))})});return console.warn(`Port ${$} is in use, using port ${Z} instead.`),Z}var He0=()=>{};var Ue0={};e(Ue0,{startDevServer:()=>wY4,pipeToLogStore:()=>Fe0});import{join as OY4}from"path";function Fe0($){let Z=$.getReader(),Q=new TextDecoder,X="";function Y(){let J=X.split(`
|
|
2079
|
-
`);X=J.pop()??"";for(let G of J){let K=Bun.stripANSI(G).replace(/^\[\d+\]\s*/,"").trim();if(!K)continue;tL({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:K})}}(async()=>{try{for(;;){let{done:J,value:G}=await Z.read();if(J)break;X+=Q.decode(G,{stream:!0}),Y()}}catch{}if(X.trim()){let J=Bun.stripANSI(X).replace(/^\[\d+\]\s*/,"").trim();if(J)tL({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:J})}})()}async function wY4($){let{baseUrl:Z,noTui:Q}=$,X=process.env.HOST==="0.0.0.0"&&Boolean(process.env.PORT),Y=X?process.env.PORT:$.vitePort,J=Z||`http://localhost:${Y}`,G=X?await ko(Number(Y)+1):await ko(Number($.port)),{settings:K,services:W,managedServiceNames:H}=await vJ0({port:String(G),home:$.home,baseUrl:$.baseUrl,localMode:$.localMode,skipMigrations:$.skipMigrations,noTui:$.noTui,vitePort:$.vitePort});for(let O of W)az({name:O.name,status:"ready",port:O.port});Io();let F=OY4(import.meta.dir,"..","..","..","..",".."),U=Q===!0,N=Bun.spawn(["bun","run","dev:servers"],{cwd:F,env:{...process.env,PORT:String(K.port),VITE_PORT:String(Y),DATABASE_URL:K.databaseUrl,NATS_URL:K.natsUrls.join(","),NODE_ENV:K.nodeEnv,BASE_URL:J,DECOCMS_LOCAL_MODE:String(K.localMode),DECOCMS_HOME:K.dataDir,DATA_DIR:K.dataDir,DECO_CLI:"1",...K.betterAuthSecret?{BETTER_AUTH_SECRET:K.betterAuthSecret}:{},...K.s3Endpoint?{S3_ENDPOINT:K.s3Endpoint,S3_BUCKET:K.s3Bucket??"",S3_ACCESS_KEY_ID:K.s3AccessKeyId??"",S3_SECRET_ACCESS_KEY:K.s3SecretAccessKey??"",S3_FORCE_PATH_STYLE:String(K.s3ForcePathStyle)}:{},...K.natsCredsPath?{NATS_CREDS:K.natsCredsPath}:{}},stdio:["inherit",U?"inherit":"pipe",U?"inherit":"pipe"]});if(!U)Fe0(N.stdout),Fe0(N.stderr);Vo(J),az({name:"Vite",status:"ready",port:Number(Y)}),az({name:"API",status:"ready",port:Number(K.port)});let D=async(O)=>{if(N.kill(O),await N.exited,H.length>0){let{stopServices:w}=await Promise.resolve().then(() => (xY0(),vY0));await w(K.dataDir)}};return process.on("SIGINT",()=>D("SIGINT")),process.on("SIGTERM",()=>D("SIGTERM")),{port:Number(Y),process:N}}var Ne0=L(()=>{Je0();sz();He0()});var bJ0;var Be0=L(()=>{bJ0={name:"decocms",version:"4.378.5",description:"Deco CMS \u2014 Self-hostable MCP Gateway for managing AI connections and tools",author:"Deco team",repository:{type:"git",url:"git+https://github.com/decocms/studio.git",directory:"apps/api"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:"bun run migrate && bun run dev:server","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts",build:"bun run build:server","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","generate:tool-contracts":"bun run scripts/generate-tool-contracts.ts","db:migrate":"bun run ./dist/server/migrate.js","db:migrate:dbos":"bun run ./dist/server/migrate-dbos.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts","migrate:dbos":"bun run src/database/migrate-dbos.ts",test:"bun test src","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts",prepublishOnly:"bun run --cwd=../.. build:studio"},optionalDependencies:{"@duckdb/node-api":"^1.5.0-r.1"},dependencies:{"@ai-sdk/anthropic":"^3.0.85","@ai-sdk/google":"^3.0.83","@ai-sdk/openai":"^3.0.73","@anthropic-ai/sdk":"^0.105.0","@aws-sdk/client-s3":"^3.1013.0","@aws-sdk/client-sts":"^3.1013.0","@aws-sdk/lib-storage":"^3.1013.0","@aws-sdk/s3-request-presigner":"^3.1013.0","@clickhouse/client":"^1.8.1","@dbos-inc/dbos-sdk":"^4.21.6","@inkjs/ui":"^2.0.0","@nats-io/jetstream":"3.4.0","@nats-io/kv":"3.4.0","@nats-io/nats-core":"3.4.0","@nats-io/transport-node":"3.4.0","@openrouter/ai-sdk-provider":"^2.9.1","@opentelemetry/core":"^2.6.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12","posthog-node":"^5.0.0",react:"^19.2.6","react-dom":"^19.2.6"},devDependencies:{"@ai-sdk/provider":"^3.0.10","@better-auth/sso":"1.4.1","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/runtime":"workspace:*","@decocms/sandbox":"workspace:*","@decocms/shared":"workspace:*","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.29.0","@opentelemetry/api":"^1.9.0","@opentelemetry/api-logs":"^0.211.0","@opentelemetry/exporter-logs-otlp-proto":"^0.211.0","@opentelemetry/exporter-prometheus":"^0.208.0","@opentelemetry/exporter-trace-otlp-proto":"^0.207.0","@opentelemetry/instrumentation-runtime-node":"^0.24.0","@opentelemetry/resources":"^2.6.0","@opentelemetry/sdk-logs":"^0.211.0","@opentelemetry/sdk-metrics":"^2.2.0","@opentelemetry/sdk-node":"^0.207.0","@opentelemetry/sdk-trace-base":"^2.5.0","@types/bun":"^1.3.1","@types/google.maps":"^3.65.2","@types/pg":"^8.15.6","@types/react-syntax-highlighter":"^15.5.13","@vercel/nft":"^1.1.1",ai:"^6.0.208","better-auth":"1.4.22",croner:"^9.1.0",degit:"^2.8.4",hono:"^4.10.7",jose:"^6.0.11",nanoid:"^5.1.6",pg:"^8.16.3",typescript:"^7.0.2",typescript5:"npm:typescript@^5.9.3",zod:"4.3.6"},homepage:"https://github.com/decocms/studio",keywords:["mcp","model-context-protocol","ai","gateway","self-hosted","tools"],license:"MIT",publishConfig:{access:"public"}}});import{Box as EY4,Text as f5$}from"ink";import{jsx as zY4,jsxs as b5$}from"react/jsx-runtime";function y5$({version:$}){return b5$(EY4,{flexDirection:"column",marginTop:1,children:[XJ0.map((Z,Q)=>zY4(f5$,{color:YJ0[Q],children:Z},Q)),b5$(f5$,{dimColor:!0,children:[" v",$]})]})}var g5$=L(()=>{No()});import{Box as ez,Text as oL}from"ink";import{Spinner as PY4}from"@inkjs/ui";import{jsx as $3,jsxs as Hu}from"react/jsx-runtime";function h5$({status:$}){if($==="pending")return $3(PY4,{label:""});return $3(oL,{color:"green",children:"\u2713"})}function AY4($){return`${$.name}: ${$.port||"...."}`}function u5$({services:$,migrationsStatus:Z,home:Q,serverUrl:X}){return Hu(ez,{flexDirection:"column",paddingBottom:1,children:[$3(y5$,{version:bJ0.version}),$3(ez,{marginBottom:1,children:$3(oL,{dimColor:!0,children:"\u2500".repeat(80)})}),$3(ez,{children:Hu(oL,{dimColor:!0,children:["Home: ",Q]})}),Hu(ez,{gap:2,children:[$.map((Y)=>Hu(ez,{gap:1,children:[$3(oL,{children:AY4(Y)}),$3(h5$,{status:Y.status})]},Y.name)),Hu(ez,{gap:1,children:[$3(oL,{children:"Migrations"}),$3(h5$,{status:Z})]})]}),$3(ez,{children:X?Hu(oL,{children:["Open in browser: ",$3(oL,{color:"cyan",children:X})]}):$3(oL,{dimColor:!0,children:"Starting..."})})]})}var l5$=L(()=>{Be0();g5$()});import{Box as TY4,Text as So}from"ink";import{jsx as De0,jsxs as Le0}from"react/jsx-runtime";function RY4($){if($>=500)return"red";if($>=400)return"yellow";if($>=300)return"cyan";return"green"}function m5$({logs:$}){return De0(TY4,{flexDirection:"column",children:$.map((Z,Q)=>{if(Z.rawLine)return De0(So,{dimColor:!0,children:Z.rawLine},Q);let X=Z.duration<1000?`${Z.duration}ms`:`${(Z.duration/1000).toFixed(1)}s`;return Le0(So,{children:[Le0(So,{dimColor:!0,children:[Z.method.padEnd(6)," ",Z.path.padEnd(30)," "]}),De0(So,{color:RY4(Z.status),children:Z.status}),Le0(So,{dimColor:!0,children:[" ",X.padStart(8)]})]},Q)})})}var c5$=()=>{};var Oe0={};e(Oe0,{App:()=>IY4});import{Box as qY4}from"ink";import{useSyncExternalStore as MY4}from"react";import{jsx as d5$,jsxs as VY4}from"react/jsx-runtime";function IY4({home:$}){let Z=MY4(We0,Ke0);return VY4(qY4,{flexDirection:"column",children:[d5$(u5$,{services:Z.services,migrationsStatus:Z.migrationsStatus,home:$,serverUrl:Z.serverUrl}),d5$(m5$,{logs:Z.logs})]})}var we0=L(()=>{l5$();c5$();sz()});var VG="thread-gate",cN="decopilot-hosted-harness",dN="decopilot-hosted-harness-sandboxed",kG="automations",rL="background-tools",$P="task-board-github-reads";var i5$="12";function p5$($){return{name:"decocms",systemDatabaseUrl:$.systemDatabaseUrl,systemDatabaseSchemaName:"dbos",systemDatabasePoolSize:$.poolSize,runAdminServer:!1,executorID:$.executorID,applicationVersion:i5$,...$.listenQueues!==void 0?{listenQueues:$.listenQueues}:{}}}var n5$=()=>{};import kY4 from"pg";async function o5$($,Z){let{databaseUrl:Q,lockTimeoutMs:X=SY4}=$,Y=$.log??((W)=>console.log(W)),J=new kY4.Client({connectionString:Q});await J.connect();let G=Date.now(),K=!1;try{while(!K){if(K=(await J.query("SELECT pg_try_advisory_lock($1) AS locked",[t5$.toString()])).rows[0]?.locked===!0,K)break;if(Date.now()-G>=X)throw Error(`Timed out after ${X}ms waiting for the DBOS migration lock. Another process is still migrating the dbos schema; this pod will restart and retry.`);await B$(CY4)}let W=Date.now()-G;if(W>1000)Y(`[dbos] waited ${W}ms for the migration lock; another process migrated first`);return await Z()}finally{if(K)try{await J.query("SELECT pg_advisory_unlock($1)",[t5$.toString()])}catch{}await J.end().catch(()=>{})}}var t5$=8314027461559302n,SY4=600000,CY4=500;var r5$=L(()=>{i$()});function _Y4(){let $=(process.env.BUN_OPTIONS??"").split(/\s+/).filter(Boolean);return[...process.argv.slice(1),...$]}function je0($,Z){for(let Q=0;Q<$.length;Q++){let X=$[Q];if(X===void 0)continue;if(X===Z)return $[Q+1];if(X.startsWith(`${Z}=`))return X.slice(Z.length+1)}return}function a5$(){let $=_Y4();if($.includes("--cpu-prof")){console.log(JSON.stringify({msg:"cpu-profiling-active",dir:je0($,"--cpu-prof-dir")??process.cwd(),name:je0($,"--cpu-prof-name"),markdown:$.includes("--cpu-prof-md"),intervalUs:Number(je0($,"--cpu-prof-interval")??1000),note:"profile is written on process exit"}));return}if(process.env.CPU_PROFILE)console.warn(JSON.stringify({msg:"cpu-profiling-requested-but-inactive",hint:'CPU profiling is a Bun launch flag. Set BUN_OPTIONS="--cpu-prof --cpu-prof-md --cpu-prof-dir=/tmp" before starting the process.'}))}function s5$(){if(process.env.HEAP_WATCH!=="1")return()=>{};let $=Number(process.env.HEAP_WATCH_INTERVAL_MS??60000),Z=async()=>{let Q=nz();if(!Q)return;let X={};try{let{heapStats:Y}=await import("bun:jsc"),J=Y(),G=Object.entries(J.objectTypeCounts).sort((K,W)=>W[1]-K[1]).slice(0,20);X={objectCount:J.objectCount,heapSize:J.heapSize,top:Object.fromEntries(G)}}catch{}console.log(JSON.stringify({msg:"heap-watch",ts:new Date().toISOString(),uptimeS:Math.round(process.uptime()),rss:Q.rss,heapUsed:Q.heapUsed,heapTotal:Q.heapTotal,external:Q.external,arrayBuffers:Q.arrayBuffers,...X}))};return Z().catch(()=>{}),yJ0=setInterval(()=>void Z().catch(()=>{}),$),yJ0.unref?.(),process.on("SIGUSR2",()=>{try{let Q=Bun.generateHeapSnapshot("v8"),X=typeof Q==="string"?Q:JSON.stringify(Q),Y=`/tmp/heap-${process.pid}-${Date.now()}.heapsnapshot`;Bun.write(Y,X),console.log(JSON.stringify({msg:"heap-snapshot-written",path:Y}))}catch(Q){console.error("[heap-watch] snapshot failed:",Q)}}),()=>{if(yJ0)clearInterval(yJ0)}}var yJ0;var e5$=()=>{};import*as vY4 from"bun:jsc";function $9$(){if(process.env.STALL_WATCHDOG!=="1")return()=>{};let $=Number(process.env.STALL_WATCHDOG_MS??100),Z=Number(process.env.STALL_WATCHDOG_TICK_MS??50);try{xY4()}catch(J){return console.error("[stall-watchdog] failed to start sampling profiler:",J),()=>{}}let Q,X=performance.now()+Z,Y=()=>{let J=performance.now(),G=J-X;X=J+Z;let K=[];try{K=fY4()?.traces??[]}catch{}if(G>$&&K.length>0){let W=new Map;for(let F of K){let U=F.frames.find((D)=>D.sourceURL&&!/Unknown Executable/.test(D.category??""))??F.frames[0];if(!U)continue;let N=(U.sourceURL??"?").replace(/^.*\/node_modules\//,"node_modules/"),B=`${U.name??"?"} @ ${N}:${U.line??"?"}`;W.set(B,(W.get(B)??0)+1)}let H=[...W.entries()].sort((F,U)=>U[1]-F[1]).slice(0,8).map(([F,U])=>({frame:F,count:U}));console.warn(JSON.stringify({msg:"stall-stack",ts:new Date().toISOString(),lagMs:Math.round(G),samplesInWindow:K.length,top:H}))}Q=setTimeout(Y,Z),Q.unref?.()};return Q=setTimeout(Y,Z),Q.unref?.(),()=>{if(Q)clearTimeout(Q)}}var xY4,fY4;var Z9$=L(()=>{({startSamplingProfiler:xY4,samplingProfilerStackTraces:fY4}=vY4)});function Q9$(){a5$();let $=[s5$(),i1$(),$9$()];return()=>{for(let Z of $)Z()}}var X9$=L(()=>{Dt0();e5$();Z9$()});var ZP=v((Y9$)=>{Object.defineProperty(Y9$,"__esModule",{value:!0});Y9$.RepublishHeaders=Y9$.DirectMsgHeaders=Y9$.JsHeaders=Y9$.AdvisoryKind=void 0;Y9$.isOrderedPushConsumerOptions=bY4;Y9$.isPullConsumer=yY4;Y9$.isPushConsumer=gY4;Y9$.isBoundPushConsumerOptions=hY4;function bY4($){if($&&typeof $==="object")return"name_prefix"in $||"deliver_subject_prefix"in $||"filter_subjects"in $||"filter_subject"in $||"deliver_policy"in $||"opt_start_seq"in $||"opt_start_time"in $||"replay_policy"in $||"inactive_threshold"in $||"headers_only"in $||"deliver_prefix"in $;return!1}function yY4($){return $.isPullConsumer()}function gY4($){return $.isPushConsumer()}function hY4($){if($&&typeof $==="object")return"deliver_subject"in $||"deliver_group"in $||"idle_heartbeat"in $;return!1}Y9$.AdvisoryKind={API:"api_audit",StreamAction:"stream_action",ConsumerAction:"consumer_action",SnapshotCreate:"snapshot_create",SnapshotComplete:"snapshot_complete",RestoreCreate:"restore_create",RestoreComplete:"restore_complete",MaxDeliver:"max_deliver",Terminated:"terminated",Ack:"consumer_ack",StreamLeaderElected:"stream_leader_elected",StreamQuorumLost:"stream_quorum_lost",ConsumerLeaderElected:"consumer_leader_elected",ConsumerQuorumLost:"consumer_quorum_lost"};Y9$.JsHeaders={StreamSourceHdr:"Nats-Stream-Source",LastConsumerSeqHdr:"Nats-Last-Consumer",LastStreamSeqHdr:"Nats-Last-Stream",ConsumerStalledHdr:"Nats-Consumer-Stalled",MessageSizeHdr:"Nats-Msg-Size",RollupHdr:"Nats-Rollup",RollupValueSubject:"sub",RollupValueAll:"all",PendingMessagesHdr:"Nats-Pending-Messages",PendingBytesHdr:"Nats-Pending-Bytes",RequiredApiLevel:"Nats-Required-Api-Level"};Y9$.DirectMsgHeaders={Stream:"Nats-Stream",Sequence:"Nats-Sequence",TimeStamp:"Nats-Time-Stamp",Subject:"Nats-Subject",LastSequence:"Nats-Last-Sequence",NumPending:"Nats-Num-Pending"};Y9$.RepublishHeaders={Stream:"Nats-Stream",Subject:"Nats-Subject",Sequence:"Nats-Sequence",LastSequence:"Nats-Last-Sequence",Size:"Nats-Msg-Size"}});var Z3=v((G9$)=>{Object.defineProperty(G9$,"__esModule",{value:!0});G9$.TD=G9$.TE=G9$.Empty=void 0;G9$.encode=tY4;G9$.decode=oY4;G9$.Empty=new Uint8Array(0);G9$.TE=new TextEncoder;G9$.TD=new TextDecoder;function nY4(...$){let Z=0;for(let Y=0;Y<$.length;Y++)Z+=$[Y].length;let Q=new Uint8Array(Z),X=0;for(let Y=0;Y<$.length;Y++)Q.set($[Y],X),X+=$[Y].length;return Q}function tY4(...$){let Z=[];for(let Q=0;Q<$.length;Q++)Z.push(G9$.TE.encode($[Q]));if(Z.length===0)return G9$.Empty;if(Z.length===1)return Z[0];return nY4(...Z)}function oY4($){if(!$||$.length===0)return"";return G9$.TD.decode($)}});var Q3=v((H9$)=>{Object.defineProperty(H9$,"__esModule",{value:!0});H9$.errors=H9$.PermissionViolationError=H9$.NoRespondersError=H9$.TimeoutError=H9$.RequestError=H9$.ProtocolError=H9$.ConnectionError=H9$.DrainingConnectionError=H9$.ClosedConnectionError=H9$.AuthorizationError=H9$.UserAuthenticationExpiredError=H9$.InvalidOperationError=H9$.InvalidArgumentError=H9$.InvalidSubjectError=void 0;class ze0 extends Error{constructor($,Z){super(`illegal subject: '${$}'`,Z);this.name="InvalidSubjectError"}}H9$.InvalidSubjectError=ze0;class gJ0 extends Error{constructor($,Z){super($,Z);this.name="InvalidArgumentError"}static format($,Z,Q){if(Array.isArray(Z)&&Z.length>1)Z=Z[0];if(Array.isArray($))$=$.map((X)=>`'${X}'`),$=$.join(",");else $=`'${$}'`;return new gJ0(`${$} ${Z}`,Q)}}H9$.InvalidArgumentError=gJ0;class Pe0 extends Error{constructor($,Z){super($,Z);this.name="InvalidOperationError"}}H9$.InvalidOperationError=Pe0;class hJ0 extends Error{constructor($,Z){super($,Z);this.name="UserAuthenticationExpiredError"}static parse($){if($.toLowerCase().indexOf("user authentication expired")!==-1)return new hJ0($);return null}}H9$.UserAuthenticationExpiredError=hJ0;class uJ0 extends Error{constructor($,Z){super($,Z);this.name="AuthorizationError"}static parse($){let Z=["authorization violation","account authentication expired","authentication timeout"],Q=$.toLowerCase();for(let X=0;X<Z.length;X++)if(Q.indexOf(Z[X])!==-1)return new uJ0($);return null}}H9$.AuthorizationError=uJ0;class Ae0 extends Error{constructor(){super("closed connection");this.name="ClosedConnectionError"}}H9$.ClosedConnectionError=Ae0;class Te0 extends Error{constructor(){super("connection draining");this.name="DrainingConnectionError"}}H9$.DrainingConnectionError=Te0;class Re0 extends Error{constructor($,Z){super($,Z);this.name="ConnectionError"}}H9$.ConnectionError=Re0;class qe0 extends Error{constructor($,Z){super($,Z);this.name="ProtocolError"}}H9$.ProtocolError=qe0;class Me0 extends Error{constructor($="",Z){super($,Z);this.name="RequestError"}isNoResponders(){return this.cause instanceof lJ0}}H9$.RequestError=Me0;class Ie0 extends Error{constructor($){super("timeout",$);this.name="TimeoutError"}}H9$.TimeoutError=Ie0;class lJ0 extends Error{subject;constructor($,Z){super(`no responders: '${$}'`,Z);this.subject=$,this.name="NoResponders"}}H9$.NoRespondersError=lJ0;class mJ0 extends Error{operation;subject;queue;constructor($,Z,Q,X,Y){super($,Y);this.name="PermissionViolationError",this.operation=Z,this.subject=Q,this.queue=X}static parse($){if(($?$.toLowerCase():"").indexOf("permissions violation")===-1)return null;let Q="publish",X="",Y=void 0,J=$.match(/(Publish|Subscription) to "(\S+)"/);if(J){if(Q=J[1].toLowerCase(),X=J[2],Q==="subscription"){let G=$.match(/using queue "(\S+)"/);if(G)Y=G[1]}}return new mJ0($,Q,X,Y)}}H9$.PermissionViolationError=mJ0;H9$.errors={AuthorizationError:uJ0,ClosedConnectionError:Ae0,ConnectionError:Re0,DrainingConnectionError:Te0,InvalidArgumentError:gJ0,InvalidOperationError:Pe0,InvalidSubjectError:ze0,NoRespondersError:lJ0,PermissionViolationError:mJ0,ProtocolError:qe0,RequestError:Me0,TimeoutError:Ie0,UserAuthenticationExpiredError:hJ0}});var GW=v((D9$)=>{Object.defineProperty(D9$,"__esModule",{value:!0});D9$.SimpleMutex=D9$.Perf=void 0;D9$.extend=NJ4;D9$.render=BJ4;D9$.timeout=DJ4;D9$.delay=LJ4;D9$.deadline=OJ4;D9$.deferred=ke0;D9$.debugDeferred=wJ4;D9$.shuffle=jJ4;D9$.collect=EJ4;D9$.jitter=B9$;D9$.backoff=zJ4;D9$.nanos=PJ4;D9$.millis=AJ4;D9$.randomToken=qJ4;var UJ4=Z3(),Ve0=Q3();function NJ4($,...Z){for(let Q=0;Q<Z.length;Q++){let X=Z[Q];Object.keys(X).forEach(function(Y){$[Y]=X[Y]})}return $}function BJ4($){return UJ4.TD.decode($).replace(/\n/g,"\u240A").replace(/\r/g,"\u240D")}function DJ4($,Z=!0){let Q=Z?new Ve0.TimeoutError:null,X,Y,J=new Promise((G,K)=>{X={cancel:()=>{if(Y)clearTimeout(Y)}},Y=setTimeout(()=>{if(Q===null)K(new Ve0.TimeoutError);else K(Q)},$)});return Object.assign(J,X)}function LJ4($=0){let Z,Q=new Promise((X)=>{let Y=setTimeout(()=>{X()},$);Z={cancel:()=>{if(Y)clearTimeout(Y),X()}}});return Object.assign(Q,Z)}async function OJ4($,Z=1000){let Q=ke0(),X=setTimeout(()=>{Q.reject(new Ve0.TimeoutError)},Z);try{return await Promise.race([$,Q])}finally{clearTimeout(X)}}function ke0(){let $={},Z=new Promise((Q,X)=>{$={resolve:Q,reject:X}});return Object.assign(Z,$)}function wJ4(){let $={},Z=new Promise((Q,X)=>{$={resolve:(Y)=>{console.trace("resolve",Y),Q(Y)},reject:(Y)=>{console.trace("reject"),X(Y)}}});return Object.assign(Z,$)}function jJ4($){for(let Z=$.length-1;Z>0;Z--){let Q=Math.floor(Math.random()*(Z+1));[$[Z],$[Q]]=[$[Q],$[Z]]}return $}async function EJ4($){let Z=[];for await(let Q of $)Z.push(Q);return Z}class U9${timers;measures;constructor(){this.timers=new Map,this.measures=new Map}mark($){this.timers.set($,performance.now())}measure($,Z,Q){let X=this.timers.get(Z);if(X===void 0)throw Error(`${Z} is not defined`);let Y=this.timers.get(Q);if(Y===void 0)throw Error(`${Q} is not defined`);this.measures.set($,Y-X)}getEntries(){let $=[];return this.measures.forEach((Z,Q)=>{$.push({name:Q,duration:Z})}),$}}D9$.Perf=U9$;class N9${max;current;waiting;constructor($=1){this.max=$,this.current=0,this.waiting=[]}lock(){if(this.current++,this.current<=this.max)return Promise.resolve();let $=ke0();return this.waiting.push($),$}unlock(){this.current--,this.waiting.pop()?.resolve()}}D9$.SimpleMutex=N9$;function B9$($){if($===0)return 0;return Math.floor($/2+Math.random()*$)}function zJ4($=[0,250,250,500,500,3000,5000]){if(!Array.isArray($))$=[0,250,250,500,500,3000,5000];let Z=$.length-1;return{backoff(Q){return B9$(Q>Z?$[Z]:$[Q])}}}function PJ4($){return $*1e6}function AJ4($){return Math.floor($/1e6)}var TJ4="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",iN=new Uint8Array(62);for(let $=0;$<62;$++)iN[$]=TJ4.charCodeAt($);var RJ4=218340105584896;function qJ4(){let $=Math.floor(Math.random()*RJ4),Z=$%62,Q=iN[Z];$=($-Z)/62,Z=$%62;let X=iN[Z];$=($-Z)/62,Z=$%62;let Y=iN[Z];$=($-Z)/62,Z=$%62;let J=iN[Z];$=($-Z)/62,Z=$%62;let G=iN[Z];$=($-Z)/62,Z=$%62;let K=iN[Z];$=($-Z)/62,Z=$%62;let W=iN[Z];$=($-Z)/62;let H=iN[$];return String.fromCharCode(Q,X,Y,J,G,K,W,H)}});var A9$=v((z9$)=>{Object.defineProperty(z9$,"__esModule",{value:!0});z9$.nuid=z9$.NuidImpl=void 0;var lJ4="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",aL=62,dJ0=12,j9$=10,O9$=33,mJ4=333,w9$=dJ0+j9$,Ce0=new Uint8Array(aL);for(let $=0;$<aL;$++)Ce0[$]=lJ4.charCodeAt($);var cJ0=4294967296,E9$=BigInt(aL)**BigInt(j9$),Co=Number(E9$/(1n<<32n)),Se0=Number(E9$%(1n<<32n));function cJ4($){for(let Z=0;Z<$.length;Z++)$[Z]=Math.floor(Math.random()*256)}function dJ4($){if(globalThis?.crypto?.getRandomValues)globalThis.crypto.getRandomValues($);else cJ4($)}class _e0{buf;cbuf;seqHi;seqLo;inc;inited;constructor(){this.buf=new Uint8Array(w9$),this.cbuf=new Uint8Array(dJ0),this.inited=!1}init(){this.inited=!0,this.setPre(),this.initSeqAndInc(),this.fillSeq()}initSeqAndInc(){let $=0;do this.seqHi=Math.floor(Math.random()*(Co+1)),this.seqLo=Math.floor(Math.random()*cJ0);while($++<8&&this.seqHi===Co&&this.seqLo>=Se0);if(this.seqHi===Co&&this.seqLo>=Se0)this.seqLo=0;this.inc=Math.random()*(mJ4-O9$)+O9$|0}setPre(){dJ4(this.cbuf);for(let $=0;$<dJ0;$++)this.buf[$]=Ce0[this.cbuf[$]%aL]}fillSeq(){let $=this.seqHi,Z=this.seqLo;for(let Q=w9$-1;Q>=dJ0;Q--){let X=Math.floor($/aL),J=($-X*aL)*cJ0+Z,G=Math.floor(J/aL),K=J-G*aL;this.buf[Q]=Ce0[K],$=X,Z=G}}next(){if(!this.inited)this.init();if(this.seqLo+=this.inc,this.seqLo>=cJ0)this.seqLo-=cJ0,this.seqHi+=1;if(this.seqHi>Co||this.seqHi===Co&&this.seqLo>=Se0)this.setPre(),this.initSeqAndInc();this.fillSeq();let $=this.buf;return String.fromCharCode($[0],$[1],$[2],$[3],$[4],$[5],$[6],$[7],$[8],$[9],$[10],$[11],$[12],$[13],$[14],$[15],$[16],$[17],$[18],$[19],$[20],$[21])}reset(){this.init()}}z9$.NuidImpl=_e0;z9$.nuid=new _e0});var M9$=v((R9$)=>{Object.defineProperty(R9$,"__esModule",{value:!0});R9$.nuid=R9$.Nuid=void 0;var T9$=A9$();R9$.Nuid=T9$.NuidImpl;R9$.nuid=T9$.nuid});var pJ0=v((iJ0)=>{Object.defineProperty(iJ0,"__esModule",{value:!0});iJ0.nuid=iJ0.Nuid=void 0;var I9$=M9$();Object.defineProperty(iJ0,"Nuid",{enumerable:!0,get:function(){return I9$.Nuid}});Object.defineProperty(iJ0,"nuid",{enumerable:!0,get:function(){return I9$.nuid}})});var sL=v((V9$)=>{Object.defineProperty(V9$,"__esModule",{value:!0});V9$.DEFAULT_HOST=V9$.DEFAULT_PORT=V9$.Match=void 0;V9$.syncIterator=rJ4;V9$.createInbox=aJ4;var tJ4=pJ0(),oJ4=Q3();V9$.Match={Exact:"exact",CanonicalMIME:"canonical",IgnoreCase:"insensitive"};function rJ4($){let Z=$[Symbol.asyncIterator]();return{async next(){let Q=await Z.next();if(Q.done)return Promise.resolve(null);return Promise.resolve(Q.value)}}}function aJ4($=""){if($=$||"_INBOX",typeof $!=="string")throw TypeError("prefix must be a string");return $.split(".").forEach((Z)=>{if(Z==="*"||Z===">")throw oJ4.InvalidArgumentError.format("prefix",`cannot have wildcards ('${$}')`)}),`${$}.${tJ4.nuid.next()}`}V9$.DEFAULT_PORT=4222;V9$.DEFAULT_HOST="127.0.0.1"});var _o=v((_9$)=>{Object.defineProperty(_9$,"__esModule",{value:!0});_9$.DataBuffer=void 0;var S9$=Z3();class C9${buffers;byteLength;constructor(){this.buffers=[],this.byteLength=0}static concat(...$){let Z=0;for(let Y=0;Y<$.length;Y++)Z+=$[Y].length;let Q=new Uint8Array(Z),X=0;for(let Y=0;Y<$.length;Y++)Q.set($[Y],X),X+=$[Y].length;return Q}static fromAscii($){if(!$)$="";return S9$.TE.encode($)}static toAscii($){return S9$.TD.decode($)}reset(){this.buffers.length=0,this.byteLength=0}pack(){if(this.buffers.length>1){let $=new Uint8Array(this.byteLength),Z=0;for(let Q=0;Q<this.buffers.length;Q++)$.set(this.buffers[Q],Z),Z+=this.buffers[Q].length;this.buffers.length=0,this.buffers.push($)}}shift(){if(this.buffers.length){let $=this.buffers.shift();if($)return this.byteLength-=$.length,$}return new Uint8Array(0)}drain($){if(this.buffers.length){this.pack();let Z=this.buffers.pop();if(Z){let Q=this.byteLength;if($===void 0||$>Q)$=Q;let X=Z.subarray(0,$);if(Q>$)this.buffers.push(Z.subarray($));return this.byteLength=Q-$,X}}return new Uint8Array(0)}fill($,...Z){if($)this.buffers.push($),this.byteLength+=$.length;for(let Q=0;Q<Z.length;Q++)if(Z[Q]&&Z[Q].length)this.buffers.push(Z[Q]),this.byteLength+=Z[Q].length}peek(){if(this.buffers.length)return this.pack(),this.buffers[0];return new Uint8Array(0)}size(){return this.byteLength}length(){return this.buffers.length}}_9$.DataBuffer=C9$});var QP=v((f9$)=>{Object.defineProperty(f9$,"__esModule",{value:!0});f9$.LF=f9$.CR=f9$.CRLF=f9$.CR_LF_LEN=f9$.CR_LF=void 0;f9$.setTransportFactory=J34;f9$.defaultPort=G34;f9$.getUrlParseFn=K34;f9$.newTransport=W34;f9$.getResolveFn=H34;f9$.protoLen=x9$;f9$.extractProtocolMessage=F34;var Q34=Z3(),X34=sL(),Y34=_o(),X3;function J34($){X3=$}function G34(){return X3!==void 0&&X3.defaultPort!==void 0?X3.defaultPort:X34.DEFAULT_PORT}function K34(){return X3!==void 0&&X3.urlParseFn?X3.urlParseFn:void 0}function W34(){if(!X3||typeof X3.factory!=="function")throw Error("transport fn is not set");return X3.factory()}function H34(){return X3!==void 0&&X3.dnsResolveFn?X3.dnsResolveFn:void 0}f9$.CR_LF=`\r
|
|
2079
|
+
`);X=J.pop()??"";for(let G of J){let K=Bun.stripANSI(G).replace(/^\[\d+\]\s*/,"").trim();if(!K)continue;tL({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:K})}}(async()=>{try{for(;;){let{done:J,value:G}=await Z.read();if(J)break;X+=Q.decode(G,{stream:!0}),Y()}}catch{}if(X.trim()){let J=Bun.stripANSI(X).replace(/^\[\d+\]\s*/,"").trim();if(J)tL({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:J})}})()}async function wY4($){let{baseUrl:Z,noTui:Q}=$,X=process.env.HOST==="0.0.0.0"&&Boolean(process.env.PORT),Y=X?process.env.PORT:$.vitePort,J=Z||`http://localhost:${Y}`,G=X?await ko(Number(Y)+1):await ko(Number($.port)),{settings:K,services:W,managedServiceNames:H}=await vJ0({port:String(G),home:$.home,baseUrl:$.baseUrl,localMode:$.localMode,skipMigrations:$.skipMigrations,noTui:$.noTui,vitePort:$.vitePort});for(let O of W)az({name:O.name,status:"ready",port:O.port});Io();let F=OY4(import.meta.dir,"..","..","..","..",".."),U=Q===!0,N=Bun.spawn(["bun","run","dev:servers"],{cwd:F,env:{...process.env,PORT:String(K.port),VITE_PORT:String(Y),DATABASE_URL:K.databaseUrl,NATS_URL:K.natsUrls.join(","),NODE_ENV:K.nodeEnv,BASE_URL:J,DECOCMS_LOCAL_MODE:String(K.localMode),DECOCMS_HOME:K.dataDir,DATA_DIR:K.dataDir,DECO_CLI:"1",...K.betterAuthSecret?{BETTER_AUTH_SECRET:K.betterAuthSecret}:{},...K.s3Endpoint?{S3_ENDPOINT:K.s3Endpoint,S3_BUCKET:K.s3Bucket??"",S3_ACCESS_KEY_ID:K.s3AccessKeyId??"",S3_SECRET_ACCESS_KEY:K.s3SecretAccessKey??"",S3_FORCE_PATH_STYLE:String(K.s3ForcePathStyle)}:{},...K.natsCredsPath?{NATS_CREDS:K.natsCredsPath}:{}},stdio:["inherit",U?"inherit":"pipe",U?"inherit":"pipe"]});if(!U)Fe0(N.stdout),Fe0(N.stderr);Vo(J),az({name:"Vite",status:"ready",port:Number(Y)}),az({name:"API",status:"ready",port:Number(K.port)});let D=async(O)=>{if(N.kill(O),await N.exited,H.length>0){let{stopServices:w}=await Promise.resolve().then(() => (xY0(),vY0));await w(K.dataDir)}};return process.on("SIGINT",()=>D("SIGINT")),process.on("SIGTERM",()=>D("SIGTERM")),{port:Number(Y),process:N}}var Ne0=L(()=>{Je0();sz();He0()});var bJ0;var Be0=L(()=>{bJ0={name:"decocms",version:"4.378.6",description:"Deco CMS \u2014 Self-hostable MCP Gateway for managing AI connections and tools",author:"Deco team",repository:{type:"git",url:"git+https://github.com/decocms/studio.git",directory:"apps/api"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:"bun run migrate && bun run dev:server","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts",build:"bun run build:server","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","generate:tool-contracts":"bun run scripts/generate-tool-contracts.ts","db:migrate":"bun run ./dist/server/migrate.js","db:migrate:dbos":"bun run ./dist/server/migrate-dbos.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts","migrate:dbos":"bun run src/database/migrate-dbos.ts",test:"bun test src","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts",prepublishOnly:"bun run --cwd=../.. build:studio"},optionalDependencies:{"@duckdb/node-api":"^1.5.0-r.1"},dependencies:{"@ai-sdk/anthropic":"^3.0.85","@ai-sdk/google":"^3.0.83","@ai-sdk/openai":"^3.0.73","@anthropic-ai/sdk":"^0.105.0","@aws-sdk/client-s3":"^3.1013.0","@aws-sdk/client-sts":"^3.1013.0","@aws-sdk/lib-storage":"^3.1013.0","@aws-sdk/s3-request-presigner":"^3.1013.0","@clickhouse/client":"^1.8.1","@dbos-inc/dbos-sdk":"^4.21.6","@inkjs/ui":"^2.0.0","@nats-io/jetstream":"3.4.0","@nats-io/kv":"3.4.0","@nats-io/nats-core":"3.4.0","@nats-io/transport-node":"3.4.0","@openrouter/ai-sdk-provider":"^2.9.1","@opentelemetry/core":"^2.6.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12","posthog-node":"^5.0.0",react:"^19.2.6","react-dom":"^19.2.6"},devDependencies:{"@ai-sdk/provider":"^3.0.10","@better-auth/sso":"1.4.1","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/runtime":"workspace:*","@decocms/sandbox":"workspace:*","@decocms/shared":"workspace:*","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.29.0","@opentelemetry/api":"^1.9.0","@opentelemetry/api-logs":"^0.211.0","@opentelemetry/exporter-logs-otlp-proto":"^0.211.0","@opentelemetry/exporter-prometheus":"^0.208.0","@opentelemetry/exporter-trace-otlp-proto":"^0.207.0","@opentelemetry/instrumentation-runtime-node":"^0.24.0","@opentelemetry/resources":"^2.6.0","@opentelemetry/sdk-logs":"^0.211.0","@opentelemetry/sdk-metrics":"^2.2.0","@opentelemetry/sdk-node":"^0.207.0","@opentelemetry/sdk-trace-base":"^2.5.0","@types/bun":"^1.3.1","@types/google.maps":"^3.65.2","@types/pg":"^8.15.6","@types/react-syntax-highlighter":"^15.5.13","@vercel/nft":"^1.1.1",ai:"^6.0.208","better-auth":"1.4.22",croner:"^9.1.0",degit:"^2.8.4",hono:"^4.10.7",jose:"^6.0.11",nanoid:"^5.1.6",pg:"^8.16.3",typescript:"^7.0.2",typescript5:"npm:typescript@^5.9.3",zod:"4.3.6"},homepage:"https://github.com/decocms/studio",keywords:["mcp","model-context-protocol","ai","gateway","self-hosted","tools"],license:"MIT",publishConfig:{access:"public"}}});import{Box as EY4,Text as f5$}from"ink";import{jsx as zY4,jsxs as b5$}from"react/jsx-runtime";function y5$({version:$}){return b5$(EY4,{flexDirection:"column",marginTop:1,children:[XJ0.map((Z,Q)=>zY4(f5$,{color:YJ0[Q],children:Z},Q)),b5$(f5$,{dimColor:!0,children:[" v",$]})]})}var g5$=L(()=>{No()});import{Box as ez,Text as oL}from"ink";import{Spinner as PY4}from"@inkjs/ui";import{jsx as $3,jsxs as Hu}from"react/jsx-runtime";function h5$({status:$}){if($==="pending")return $3(PY4,{label:""});return $3(oL,{color:"green",children:"\u2713"})}function AY4($){return`${$.name}: ${$.port||"...."}`}function u5$({services:$,migrationsStatus:Z,home:Q,serverUrl:X}){return Hu(ez,{flexDirection:"column",paddingBottom:1,children:[$3(y5$,{version:bJ0.version}),$3(ez,{marginBottom:1,children:$3(oL,{dimColor:!0,children:"\u2500".repeat(80)})}),$3(ez,{children:Hu(oL,{dimColor:!0,children:["Home: ",Q]})}),Hu(ez,{gap:2,children:[$.map((Y)=>Hu(ez,{gap:1,children:[$3(oL,{children:AY4(Y)}),$3(h5$,{status:Y.status})]},Y.name)),Hu(ez,{gap:1,children:[$3(oL,{children:"Migrations"}),$3(h5$,{status:Z})]})]}),$3(ez,{children:X?Hu(oL,{children:["Open in browser: ",$3(oL,{color:"cyan",children:X})]}):$3(oL,{dimColor:!0,children:"Starting..."})})]})}var l5$=L(()=>{Be0();g5$()});import{Box as TY4,Text as So}from"ink";import{jsx as De0,jsxs as Le0}from"react/jsx-runtime";function RY4($){if($>=500)return"red";if($>=400)return"yellow";if($>=300)return"cyan";return"green"}function m5$({logs:$}){return De0(TY4,{flexDirection:"column",children:$.map((Z,Q)=>{if(Z.rawLine)return De0(So,{dimColor:!0,children:Z.rawLine},Q);let X=Z.duration<1000?`${Z.duration}ms`:`${(Z.duration/1000).toFixed(1)}s`;return Le0(So,{children:[Le0(So,{dimColor:!0,children:[Z.method.padEnd(6)," ",Z.path.padEnd(30)," "]}),De0(So,{color:RY4(Z.status),children:Z.status}),Le0(So,{dimColor:!0,children:[" ",X.padStart(8)]})]},Q)})})}var c5$=()=>{};var Oe0={};e(Oe0,{App:()=>IY4});import{Box as qY4}from"ink";import{useSyncExternalStore as MY4}from"react";import{jsx as d5$,jsxs as VY4}from"react/jsx-runtime";function IY4({home:$}){let Z=MY4(We0,Ke0);return VY4(qY4,{flexDirection:"column",children:[d5$(u5$,{services:Z.services,migrationsStatus:Z.migrationsStatus,home:$,serverUrl:Z.serverUrl}),d5$(m5$,{logs:Z.logs})]})}var we0=L(()=>{l5$();c5$();sz()});var VG="thread-gate",cN="decopilot-hosted-harness",dN="decopilot-hosted-harness-sandboxed",kG="automations",rL="background-tools",$P="task-board-github-reads";var i5$="12";function p5$($){return{name:"decocms",systemDatabaseUrl:$.systemDatabaseUrl,systemDatabaseSchemaName:"dbos",systemDatabasePoolSize:$.poolSize,runAdminServer:!1,executorID:$.executorID,applicationVersion:i5$,...$.listenQueues!==void 0?{listenQueues:$.listenQueues}:{}}}var n5$=()=>{};import kY4 from"pg";async function o5$($,Z){let{databaseUrl:Q,lockTimeoutMs:X=SY4}=$,Y=$.log??((W)=>console.log(W)),J=new kY4.Client({connectionString:Q});await J.connect();let G=Date.now(),K=!1;try{while(!K){if(K=(await J.query("SELECT pg_try_advisory_lock($1) AS locked",[t5$.toString()])).rows[0]?.locked===!0,K)break;if(Date.now()-G>=X)throw Error(`Timed out after ${X}ms waiting for the DBOS migration lock. Another process is still migrating the dbos schema; this pod will restart and retry.`);await B$(CY4)}let W=Date.now()-G;if(W>1000)Y(`[dbos] waited ${W}ms for the migration lock; another process migrated first`);return await Z()}finally{if(K)try{await J.query("SELECT pg_advisory_unlock($1)",[t5$.toString()])}catch{}await J.end().catch(()=>{})}}var t5$=8314027461559302n,SY4=600000,CY4=500;var r5$=L(()=>{i$()});function _Y4(){let $=(process.env.BUN_OPTIONS??"").split(/\s+/).filter(Boolean);return[...process.argv.slice(1),...$]}function je0($,Z){for(let Q=0;Q<$.length;Q++){let X=$[Q];if(X===void 0)continue;if(X===Z)return $[Q+1];if(X.startsWith(`${Z}=`))return X.slice(Z.length+1)}return}function a5$(){let $=_Y4();if($.includes("--cpu-prof")){console.log(JSON.stringify({msg:"cpu-profiling-active",dir:je0($,"--cpu-prof-dir")??process.cwd(),name:je0($,"--cpu-prof-name"),markdown:$.includes("--cpu-prof-md"),intervalUs:Number(je0($,"--cpu-prof-interval")??1000),note:"profile is written on process exit"}));return}if(process.env.CPU_PROFILE)console.warn(JSON.stringify({msg:"cpu-profiling-requested-but-inactive",hint:'CPU profiling is a Bun launch flag. Set BUN_OPTIONS="--cpu-prof --cpu-prof-md --cpu-prof-dir=/tmp" before starting the process.'}))}function s5$(){if(process.env.HEAP_WATCH!=="1")return()=>{};let $=Number(process.env.HEAP_WATCH_INTERVAL_MS??60000),Z=async()=>{let Q=nz();if(!Q)return;let X={};try{let{heapStats:Y}=await import("bun:jsc"),J=Y(),G=Object.entries(J.objectTypeCounts).sort((K,W)=>W[1]-K[1]).slice(0,20);X={objectCount:J.objectCount,heapSize:J.heapSize,top:Object.fromEntries(G)}}catch{}console.log(JSON.stringify({msg:"heap-watch",ts:new Date().toISOString(),uptimeS:Math.round(process.uptime()),rss:Q.rss,heapUsed:Q.heapUsed,heapTotal:Q.heapTotal,external:Q.external,arrayBuffers:Q.arrayBuffers,...X}))};return Z().catch(()=>{}),yJ0=setInterval(()=>void Z().catch(()=>{}),$),yJ0.unref?.(),process.on("SIGUSR2",()=>{try{let Q=Bun.generateHeapSnapshot("v8"),X=typeof Q==="string"?Q:JSON.stringify(Q),Y=`/tmp/heap-${process.pid}-${Date.now()}.heapsnapshot`;Bun.write(Y,X),console.log(JSON.stringify({msg:"heap-snapshot-written",path:Y}))}catch(Q){console.error("[heap-watch] snapshot failed:",Q)}}),()=>{if(yJ0)clearInterval(yJ0)}}var yJ0;var e5$=()=>{};import*as vY4 from"bun:jsc";function $9$(){if(process.env.STALL_WATCHDOG!=="1")return()=>{};let $=Number(process.env.STALL_WATCHDOG_MS??100),Z=Number(process.env.STALL_WATCHDOG_TICK_MS??50);try{xY4()}catch(J){return console.error("[stall-watchdog] failed to start sampling profiler:",J),()=>{}}let Q,X=performance.now()+Z,Y=()=>{let J=performance.now(),G=J-X;X=J+Z;let K=[];try{K=fY4()?.traces??[]}catch{}if(G>$&&K.length>0){let W=new Map;for(let F of K){let U=F.frames.find((D)=>D.sourceURL&&!/Unknown Executable/.test(D.category??""))??F.frames[0];if(!U)continue;let N=(U.sourceURL??"?").replace(/^.*\/node_modules\//,"node_modules/"),B=`${U.name??"?"} @ ${N}:${U.line??"?"}`;W.set(B,(W.get(B)??0)+1)}let H=[...W.entries()].sort((F,U)=>U[1]-F[1]).slice(0,8).map(([F,U])=>({frame:F,count:U}));console.warn(JSON.stringify({msg:"stall-stack",ts:new Date().toISOString(),lagMs:Math.round(G),samplesInWindow:K.length,top:H}))}Q=setTimeout(Y,Z),Q.unref?.()};return Q=setTimeout(Y,Z),Q.unref?.(),()=>{if(Q)clearTimeout(Q)}}var xY4,fY4;var Z9$=L(()=>{({startSamplingProfiler:xY4,samplingProfilerStackTraces:fY4}=vY4)});function Q9$(){a5$();let $=[s5$(),i1$(),$9$()];return()=>{for(let Z of $)Z()}}var X9$=L(()=>{Dt0();e5$();Z9$()});var ZP=v((Y9$)=>{Object.defineProperty(Y9$,"__esModule",{value:!0});Y9$.RepublishHeaders=Y9$.DirectMsgHeaders=Y9$.JsHeaders=Y9$.AdvisoryKind=void 0;Y9$.isOrderedPushConsumerOptions=bY4;Y9$.isPullConsumer=yY4;Y9$.isPushConsumer=gY4;Y9$.isBoundPushConsumerOptions=hY4;function bY4($){if($&&typeof $==="object")return"name_prefix"in $||"deliver_subject_prefix"in $||"filter_subjects"in $||"filter_subject"in $||"deliver_policy"in $||"opt_start_seq"in $||"opt_start_time"in $||"replay_policy"in $||"inactive_threshold"in $||"headers_only"in $||"deliver_prefix"in $;return!1}function yY4($){return $.isPullConsumer()}function gY4($){return $.isPushConsumer()}function hY4($){if($&&typeof $==="object")return"deliver_subject"in $||"deliver_group"in $||"idle_heartbeat"in $;return!1}Y9$.AdvisoryKind={API:"api_audit",StreamAction:"stream_action",ConsumerAction:"consumer_action",SnapshotCreate:"snapshot_create",SnapshotComplete:"snapshot_complete",RestoreCreate:"restore_create",RestoreComplete:"restore_complete",MaxDeliver:"max_deliver",Terminated:"terminated",Ack:"consumer_ack",StreamLeaderElected:"stream_leader_elected",StreamQuorumLost:"stream_quorum_lost",ConsumerLeaderElected:"consumer_leader_elected",ConsumerQuorumLost:"consumer_quorum_lost"};Y9$.JsHeaders={StreamSourceHdr:"Nats-Stream-Source",LastConsumerSeqHdr:"Nats-Last-Consumer",LastStreamSeqHdr:"Nats-Last-Stream",ConsumerStalledHdr:"Nats-Consumer-Stalled",MessageSizeHdr:"Nats-Msg-Size",RollupHdr:"Nats-Rollup",RollupValueSubject:"sub",RollupValueAll:"all",PendingMessagesHdr:"Nats-Pending-Messages",PendingBytesHdr:"Nats-Pending-Bytes",RequiredApiLevel:"Nats-Required-Api-Level"};Y9$.DirectMsgHeaders={Stream:"Nats-Stream",Sequence:"Nats-Sequence",TimeStamp:"Nats-Time-Stamp",Subject:"Nats-Subject",LastSequence:"Nats-Last-Sequence",NumPending:"Nats-Num-Pending"};Y9$.RepublishHeaders={Stream:"Nats-Stream",Subject:"Nats-Subject",Sequence:"Nats-Sequence",LastSequence:"Nats-Last-Sequence",Size:"Nats-Msg-Size"}});var Z3=v((G9$)=>{Object.defineProperty(G9$,"__esModule",{value:!0});G9$.TD=G9$.TE=G9$.Empty=void 0;G9$.encode=tY4;G9$.decode=oY4;G9$.Empty=new Uint8Array(0);G9$.TE=new TextEncoder;G9$.TD=new TextDecoder;function nY4(...$){let Z=0;for(let Y=0;Y<$.length;Y++)Z+=$[Y].length;let Q=new Uint8Array(Z),X=0;for(let Y=0;Y<$.length;Y++)Q.set($[Y],X),X+=$[Y].length;return Q}function tY4(...$){let Z=[];for(let Q=0;Q<$.length;Q++)Z.push(G9$.TE.encode($[Q]));if(Z.length===0)return G9$.Empty;if(Z.length===1)return Z[0];return nY4(...Z)}function oY4($){if(!$||$.length===0)return"";return G9$.TD.decode($)}});var Q3=v((H9$)=>{Object.defineProperty(H9$,"__esModule",{value:!0});H9$.errors=H9$.PermissionViolationError=H9$.NoRespondersError=H9$.TimeoutError=H9$.RequestError=H9$.ProtocolError=H9$.ConnectionError=H9$.DrainingConnectionError=H9$.ClosedConnectionError=H9$.AuthorizationError=H9$.UserAuthenticationExpiredError=H9$.InvalidOperationError=H9$.InvalidArgumentError=H9$.InvalidSubjectError=void 0;class ze0 extends Error{constructor($,Z){super(`illegal subject: '${$}'`,Z);this.name="InvalidSubjectError"}}H9$.InvalidSubjectError=ze0;class gJ0 extends Error{constructor($,Z){super($,Z);this.name="InvalidArgumentError"}static format($,Z,Q){if(Array.isArray(Z)&&Z.length>1)Z=Z[0];if(Array.isArray($))$=$.map((X)=>`'${X}'`),$=$.join(",");else $=`'${$}'`;return new gJ0(`${$} ${Z}`,Q)}}H9$.InvalidArgumentError=gJ0;class Pe0 extends Error{constructor($,Z){super($,Z);this.name="InvalidOperationError"}}H9$.InvalidOperationError=Pe0;class hJ0 extends Error{constructor($,Z){super($,Z);this.name="UserAuthenticationExpiredError"}static parse($){if($.toLowerCase().indexOf("user authentication expired")!==-1)return new hJ0($);return null}}H9$.UserAuthenticationExpiredError=hJ0;class uJ0 extends Error{constructor($,Z){super($,Z);this.name="AuthorizationError"}static parse($){let Z=["authorization violation","account authentication expired","authentication timeout"],Q=$.toLowerCase();for(let X=0;X<Z.length;X++)if(Q.indexOf(Z[X])!==-1)return new uJ0($);return null}}H9$.AuthorizationError=uJ0;class Ae0 extends Error{constructor(){super("closed connection");this.name="ClosedConnectionError"}}H9$.ClosedConnectionError=Ae0;class Te0 extends Error{constructor(){super("connection draining");this.name="DrainingConnectionError"}}H9$.DrainingConnectionError=Te0;class Re0 extends Error{constructor($,Z){super($,Z);this.name="ConnectionError"}}H9$.ConnectionError=Re0;class qe0 extends Error{constructor($,Z){super($,Z);this.name="ProtocolError"}}H9$.ProtocolError=qe0;class Me0 extends Error{constructor($="",Z){super($,Z);this.name="RequestError"}isNoResponders(){return this.cause instanceof lJ0}}H9$.RequestError=Me0;class Ie0 extends Error{constructor($){super("timeout",$);this.name="TimeoutError"}}H9$.TimeoutError=Ie0;class lJ0 extends Error{subject;constructor($,Z){super(`no responders: '${$}'`,Z);this.subject=$,this.name="NoResponders"}}H9$.NoRespondersError=lJ0;class mJ0 extends Error{operation;subject;queue;constructor($,Z,Q,X,Y){super($,Y);this.name="PermissionViolationError",this.operation=Z,this.subject=Q,this.queue=X}static parse($){if(($?$.toLowerCase():"").indexOf("permissions violation")===-1)return null;let Q="publish",X="",Y=void 0,J=$.match(/(Publish|Subscription) to "(\S+)"/);if(J){if(Q=J[1].toLowerCase(),X=J[2],Q==="subscription"){let G=$.match(/using queue "(\S+)"/);if(G)Y=G[1]}}return new mJ0($,Q,X,Y)}}H9$.PermissionViolationError=mJ0;H9$.errors={AuthorizationError:uJ0,ClosedConnectionError:Ae0,ConnectionError:Re0,DrainingConnectionError:Te0,InvalidArgumentError:gJ0,InvalidOperationError:Pe0,InvalidSubjectError:ze0,NoRespondersError:lJ0,PermissionViolationError:mJ0,ProtocolError:qe0,RequestError:Me0,TimeoutError:Ie0,UserAuthenticationExpiredError:hJ0}});var GW=v((D9$)=>{Object.defineProperty(D9$,"__esModule",{value:!0});D9$.SimpleMutex=D9$.Perf=void 0;D9$.extend=NJ4;D9$.render=BJ4;D9$.timeout=DJ4;D9$.delay=LJ4;D9$.deadline=OJ4;D9$.deferred=ke0;D9$.debugDeferred=wJ4;D9$.shuffle=jJ4;D9$.collect=EJ4;D9$.jitter=B9$;D9$.backoff=zJ4;D9$.nanos=PJ4;D9$.millis=AJ4;D9$.randomToken=qJ4;var UJ4=Z3(),Ve0=Q3();function NJ4($,...Z){for(let Q=0;Q<Z.length;Q++){let X=Z[Q];Object.keys(X).forEach(function(Y){$[Y]=X[Y]})}return $}function BJ4($){return UJ4.TD.decode($).replace(/\n/g,"\u240A").replace(/\r/g,"\u240D")}function DJ4($,Z=!0){let Q=Z?new Ve0.TimeoutError:null,X,Y,J=new Promise((G,K)=>{X={cancel:()=>{if(Y)clearTimeout(Y)}},Y=setTimeout(()=>{if(Q===null)K(new Ve0.TimeoutError);else K(Q)},$)});return Object.assign(J,X)}function LJ4($=0){let Z,Q=new Promise((X)=>{let Y=setTimeout(()=>{X()},$);Z={cancel:()=>{if(Y)clearTimeout(Y),X()}}});return Object.assign(Q,Z)}async function OJ4($,Z=1000){let Q=ke0(),X=setTimeout(()=>{Q.reject(new Ve0.TimeoutError)},Z);try{return await Promise.race([$,Q])}finally{clearTimeout(X)}}function ke0(){let $={},Z=new Promise((Q,X)=>{$={resolve:Q,reject:X}});return Object.assign(Z,$)}function wJ4(){let $={},Z=new Promise((Q,X)=>{$={resolve:(Y)=>{console.trace("resolve",Y),Q(Y)},reject:(Y)=>{console.trace("reject"),X(Y)}}});return Object.assign(Z,$)}function jJ4($){for(let Z=$.length-1;Z>0;Z--){let Q=Math.floor(Math.random()*(Z+1));[$[Z],$[Q]]=[$[Q],$[Z]]}return $}async function EJ4($){let Z=[];for await(let Q of $)Z.push(Q);return Z}class U9${timers;measures;constructor(){this.timers=new Map,this.measures=new Map}mark($){this.timers.set($,performance.now())}measure($,Z,Q){let X=this.timers.get(Z);if(X===void 0)throw Error(`${Z} is not defined`);let Y=this.timers.get(Q);if(Y===void 0)throw Error(`${Q} is not defined`);this.measures.set($,Y-X)}getEntries(){let $=[];return this.measures.forEach((Z,Q)=>{$.push({name:Q,duration:Z})}),$}}D9$.Perf=U9$;class N9${max;current;waiting;constructor($=1){this.max=$,this.current=0,this.waiting=[]}lock(){if(this.current++,this.current<=this.max)return Promise.resolve();let $=ke0();return this.waiting.push($),$}unlock(){this.current--,this.waiting.pop()?.resolve()}}D9$.SimpleMutex=N9$;function B9$($){if($===0)return 0;return Math.floor($/2+Math.random()*$)}function zJ4($=[0,250,250,500,500,3000,5000]){if(!Array.isArray($))$=[0,250,250,500,500,3000,5000];let Z=$.length-1;return{backoff(Q){return B9$(Q>Z?$[Z]:$[Q])}}}function PJ4($){return $*1e6}function AJ4($){return Math.floor($/1e6)}var TJ4="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",iN=new Uint8Array(62);for(let $=0;$<62;$++)iN[$]=TJ4.charCodeAt($);var RJ4=218340105584896;function qJ4(){let $=Math.floor(Math.random()*RJ4),Z=$%62,Q=iN[Z];$=($-Z)/62,Z=$%62;let X=iN[Z];$=($-Z)/62,Z=$%62;let Y=iN[Z];$=($-Z)/62,Z=$%62;let J=iN[Z];$=($-Z)/62,Z=$%62;let G=iN[Z];$=($-Z)/62,Z=$%62;let K=iN[Z];$=($-Z)/62,Z=$%62;let W=iN[Z];$=($-Z)/62;let H=iN[$];return String.fromCharCode(Q,X,Y,J,G,K,W,H)}});var A9$=v((z9$)=>{Object.defineProperty(z9$,"__esModule",{value:!0});z9$.nuid=z9$.NuidImpl=void 0;var lJ4="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",aL=62,dJ0=12,j9$=10,O9$=33,mJ4=333,w9$=dJ0+j9$,Ce0=new Uint8Array(aL);for(let $=0;$<aL;$++)Ce0[$]=lJ4.charCodeAt($);var cJ0=4294967296,E9$=BigInt(aL)**BigInt(j9$),Co=Number(E9$/(1n<<32n)),Se0=Number(E9$%(1n<<32n));function cJ4($){for(let Z=0;Z<$.length;Z++)$[Z]=Math.floor(Math.random()*256)}function dJ4($){if(globalThis?.crypto?.getRandomValues)globalThis.crypto.getRandomValues($);else cJ4($)}class _e0{buf;cbuf;seqHi;seqLo;inc;inited;constructor(){this.buf=new Uint8Array(w9$),this.cbuf=new Uint8Array(dJ0),this.inited=!1}init(){this.inited=!0,this.setPre(),this.initSeqAndInc(),this.fillSeq()}initSeqAndInc(){let $=0;do this.seqHi=Math.floor(Math.random()*(Co+1)),this.seqLo=Math.floor(Math.random()*cJ0);while($++<8&&this.seqHi===Co&&this.seqLo>=Se0);if(this.seqHi===Co&&this.seqLo>=Se0)this.seqLo=0;this.inc=Math.random()*(mJ4-O9$)+O9$|0}setPre(){dJ4(this.cbuf);for(let $=0;$<dJ0;$++)this.buf[$]=Ce0[this.cbuf[$]%aL]}fillSeq(){let $=this.seqHi,Z=this.seqLo;for(let Q=w9$-1;Q>=dJ0;Q--){let X=Math.floor($/aL),J=($-X*aL)*cJ0+Z,G=Math.floor(J/aL),K=J-G*aL;this.buf[Q]=Ce0[K],$=X,Z=G}}next(){if(!this.inited)this.init();if(this.seqLo+=this.inc,this.seqLo>=cJ0)this.seqLo-=cJ0,this.seqHi+=1;if(this.seqHi>Co||this.seqHi===Co&&this.seqLo>=Se0)this.setPre(),this.initSeqAndInc();this.fillSeq();let $=this.buf;return String.fromCharCode($[0],$[1],$[2],$[3],$[4],$[5],$[6],$[7],$[8],$[9],$[10],$[11],$[12],$[13],$[14],$[15],$[16],$[17],$[18],$[19],$[20],$[21])}reset(){this.init()}}z9$.NuidImpl=_e0;z9$.nuid=new _e0});var M9$=v((R9$)=>{Object.defineProperty(R9$,"__esModule",{value:!0});R9$.nuid=R9$.Nuid=void 0;var T9$=A9$();R9$.Nuid=T9$.NuidImpl;R9$.nuid=T9$.nuid});var pJ0=v((iJ0)=>{Object.defineProperty(iJ0,"__esModule",{value:!0});iJ0.nuid=iJ0.Nuid=void 0;var I9$=M9$();Object.defineProperty(iJ0,"Nuid",{enumerable:!0,get:function(){return I9$.Nuid}});Object.defineProperty(iJ0,"nuid",{enumerable:!0,get:function(){return I9$.nuid}})});var sL=v((V9$)=>{Object.defineProperty(V9$,"__esModule",{value:!0});V9$.DEFAULT_HOST=V9$.DEFAULT_PORT=V9$.Match=void 0;V9$.syncIterator=rJ4;V9$.createInbox=aJ4;var tJ4=pJ0(),oJ4=Q3();V9$.Match={Exact:"exact",CanonicalMIME:"canonical",IgnoreCase:"insensitive"};function rJ4($){let Z=$[Symbol.asyncIterator]();return{async next(){let Q=await Z.next();if(Q.done)return Promise.resolve(null);return Promise.resolve(Q.value)}}}function aJ4($=""){if($=$||"_INBOX",typeof $!=="string")throw TypeError("prefix must be a string");return $.split(".").forEach((Z)=>{if(Z==="*"||Z===">")throw oJ4.InvalidArgumentError.format("prefix",`cannot have wildcards ('${$}')`)}),`${$}.${tJ4.nuid.next()}`}V9$.DEFAULT_PORT=4222;V9$.DEFAULT_HOST="127.0.0.1"});var _o=v((_9$)=>{Object.defineProperty(_9$,"__esModule",{value:!0});_9$.DataBuffer=void 0;var S9$=Z3();class C9${buffers;byteLength;constructor(){this.buffers=[],this.byteLength=0}static concat(...$){let Z=0;for(let Y=0;Y<$.length;Y++)Z+=$[Y].length;let Q=new Uint8Array(Z),X=0;for(let Y=0;Y<$.length;Y++)Q.set($[Y],X),X+=$[Y].length;return Q}static fromAscii($){if(!$)$="";return S9$.TE.encode($)}static toAscii($){return S9$.TD.decode($)}reset(){this.buffers.length=0,this.byteLength=0}pack(){if(this.buffers.length>1){let $=new Uint8Array(this.byteLength),Z=0;for(let Q=0;Q<this.buffers.length;Q++)$.set(this.buffers[Q],Z),Z+=this.buffers[Q].length;this.buffers.length=0,this.buffers.push($)}}shift(){if(this.buffers.length){let $=this.buffers.shift();if($)return this.byteLength-=$.length,$}return new Uint8Array(0)}drain($){if(this.buffers.length){this.pack();let Z=this.buffers.pop();if(Z){let Q=this.byteLength;if($===void 0||$>Q)$=Q;let X=Z.subarray(0,$);if(Q>$)this.buffers.push(Z.subarray($));return this.byteLength=Q-$,X}}return new Uint8Array(0)}fill($,...Z){if($)this.buffers.push($),this.byteLength+=$.length;for(let Q=0;Q<Z.length;Q++)if(Z[Q]&&Z[Q].length)this.buffers.push(Z[Q]),this.byteLength+=Z[Q].length}peek(){if(this.buffers.length)return this.pack(),this.buffers[0];return new Uint8Array(0)}size(){return this.byteLength}length(){return this.buffers.length}}_9$.DataBuffer=C9$});var QP=v((f9$)=>{Object.defineProperty(f9$,"__esModule",{value:!0});f9$.LF=f9$.CR=f9$.CRLF=f9$.CR_LF_LEN=f9$.CR_LF=void 0;f9$.setTransportFactory=J34;f9$.defaultPort=G34;f9$.getUrlParseFn=K34;f9$.newTransport=W34;f9$.getResolveFn=H34;f9$.protoLen=x9$;f9$.extractProtocolMessage=F34;var Q34=Z3(),X34=sL(),Y34=_o(),X3;function J34($){X3=$}function G34(){return X3!==void 0&&X3.defaultPort!==void 0?X3.defaultPort:X34.DEFAULT_PORT}function K34(){return X3!==void 0&&X3.urlParseFn?X3.urlParseFn:void 0}function W34(){if(!X3||typeof X3.factory!=="function")throw Error("transport fn is not set");return X3.factory()}function H34(){return X3!==void 0&&X3.dnsResolveFn?X3.dnsResolveFn:void 0}f9$.CR_LF=`\r
|
|
2080
2080
|
`;f9$.CR_LF_LEN=f9$.CR_LF.length;f9$.CRLF=Y34.DataBuffer.fromAscii(f9$.CR_LF);f9$.CR=new Uint8Array(f9$.CRLF)[0];f9$.LF=new Uint8Array(f9$.CRLF)[1];function x9$($){for(let Z=0;Z<$.length;Z++){let Q=Z+1;if($.byteLength>Q&&$[Z]===f9$.CR&&$[Q]===f9$.LF)return Q+1}return 0}function F34($){let Z=x9$($);if(Z>0){let X=new Uint8Array($).slice(0,Z);return Q34.TD.decode(X)}return""}});var ye0=v((c9$)=>{Object.defineProperty(c9$,"__esModule",{value:!0});c9$.ipV4=u9$;c9$.isIP=P34;c9$.parseIP=l9$;var vo=4,XP=16,nJ0=48,h9$=57,y9$=65,E34=70,g9$=97,z34=102,be0=16777215;function u9$($,Z,Q,X){let Y=new Uint8Array(XP);return[0,0,0,0,0,0,0,0,0,0,255,255].forEach((G,K)=>{Y[K]=G}),Y[12]=$,Y[13]=Z,Y[14]=Q,Y[15]=X,Y}function P34($){return l9$($)!==void 0}function l9$($){for(let Z=0;Z<$.length;Z++)switch($[Z]){case".":return m9$($);case":":return A34($)}return}function m9$($){let Z=new Uint8Array(vo);for(let Q=0;Q<vo;Q++){if($.length===0)return;if(Q>0){if($[0]!==".")return;$=$.substring(1)}let{n:X,c:Y,ok:J}=T34($);if(!J||X>255)return;$=$.substring(Y),Z[Q]=X}return u9$(Z[0],Z[1],Z[2],Z[3])}function A34($){let Z=new Uint8Array(XP),Q=-1;if($.length>=2&&$[0]===":"&&$[1]===":"){if(Q=0,$=$.substring(2),$.length===0)return Z}let X=0;while(X<XP){let{n:Y,c:J,ok:G}=R34($);if(!G||Y>65535)return;if(J<$.length&&$[J]==="."){if(Q<0&&X!=XP-vo)return;if(X+vo>XP)return;let K=m9$($);if(K===void 0)return;Z[X]=K[12],Z[X+1]=K[13],Z[X+2]=K[14],Z[X+3]=K[15],$="",X+=vo;break}if(Z[X]=Y>>8,Z[X+1]=Y,X+=2,$=$.substring(J),$.length===0)break;if($[0]!==":"||$.length==1)return;if($=$.substring(1),$[0]===":"){if(Q>=0)return;if(Q=X,$=$.substring(1),$.length===0)break}}if($.length!==0)return;if(X<XP){if(Q<0)return;let Y=XP-X;for(let J=X-1;J>=Q;J--)Z[J+Y]=Z[J];for(let J=Q+Y-1;J>=Q;J--)Z[J]=0}else if(Q>=0)return;return Z}function T34($){let Z=0,Q=0;for(Z=0;Z<$.length&&nJ0<=$.charCodeAt(Z)&&$.charCodeAt(Z)<=h9$;Z++)if(Q=Q*10+($.charCodeAt(Z)-nJ0),Q>=be0)return{n:be0,c:Z,ok:!1};if(Z===0)return{n:0,c:0,ok:!1};return{n:Q,c:Z,ok:!0}}function R34($){let Z=0,Q=0;for(Q=0;Q<$.length;Q++){if(nJ0<=$.charCodeAt(Q)&&$.charCodeAt(Q)<=h9$)Z*=16,Z+=$.charCodeAt(Q)-nJ0;else if(g9$<=$.charCodeAt(Q)&&$.charCodeAt(Q)<=z34)Z*=16,Z+=$.charCodeAt(Q)-g9$+10;else if(y9$<=$.charCodeAt(Q)&&$.charCodeAt(Q)<=E34)Z*=16,Z+=$.charCodeAt(Q)-y9$+10;else break;if(Z>=be0)return{n:0,c:Q,ok:!1}}if(Q===0)return{n:0,c:Q,ok:!1};return{n:Z,c:Q,ok:!0}}});var ce0=v((i9$)=>{Object.defineProperty(i9$,"__esModule",{value:!0});i9$.Servers=i9$.ServerImpl=void 0;i9$.isIPV4OrHostname=d9$;i9$.hostPort=me0;var ge0=QP(),he0=GW(),ue0=ye0(),V34=sL(),k34=Q3();function d9$($){if($.indexOf("[")!==-1||$.indexOf("::")!==-1)return!1;if($.indexOf(".")!==-1)return!0;if($.split(":").length<=2)return!0;return!1}function le0($){return!d9$($)}function S34($){let Q=$.toUpperCase().indexOf("::FFFF:");if(Q!==-1&&$.indexOf(".")!==-1){let X=$.substring(Q+7);return X=X.replace("[",""),X.replace("]","")}return $}function me0($){if($=$.trim(),$.match(/^(.*:\/\/)(.*)/m))$=$.replace(/^(.*:\/\/)(.*)/gm,"$2");if($=S34($),le0($)&&$.indexOf("[")===-1)$=`[${$}]`;let Z=le0($)?$.match(/(]:)(\d+)/):$.match(/(:)(\d+)/),Q=Z&&Z.length===3&&Z[1]&&Z[2]?parseInt(Z[2]):V34.DEFAULT_PORT,Y=new URL(`${Q===80?"https":"http"}://${$}`);Y.port=`${Q}`;let J=Y.hostname;if(J.charAt(0)==="[")J=J.substring(1,J.length-1);return{listen:Y.host,hostname:J,port:Q}}class Fu{src;listen;hostname;port;didConnect;reconnects;lastConnect;gossiped;tlsName;resolves;constructor($,Z=!1){this.src=$,this.tlsName="";let Q=me0($);this.listen=Q.listen,this.hostname=Q.hostname,this.port=Q.port,this.didConnect=!1,this.reconnects=0,this.lastConnect=0,this.gossiped=Z}toString(){return this.listen}async resolve($){if(!$.fn||$.resolve===!1)return[this];let Z=[];if((0,ue0.isIP)(this.hostname))return[this];else{let Q=await $.fn(this.hostname);if($.debug)console.log(`resolve ${this.hostname} = ${Q.join(",")}`);for(let X of Q){let Y=this.port===80?"https":"http",J=new URL(`${Y}://${le0(X)?"["+X+"]":X}`);J.port=`${this.port}`;let G=new Fu(J.host,!1);G.tlsName=this.hostname,Z.push(G)}}if($.randomize)(0,he0.shuffle)(Z);return this.resolves=Z,Z}}i9$.ServerImpl=Fu;class tJ0{firstSelect;servers;currentServer;tlsName;randomize;constructor($={}){this.firstSelect=!0,this.servers=[],this.tlsName="",this.randomize=$.randomize||!1}setServers($){if(!Array.isArray($)||$.length===0)throw k34.InvalidArgumentError.format("servers","cannot be empty");let Z=(0,ge0.getUrlParseFn)(),Q=new Map;for(let Y of this.servers)Q.set(Y.listen,Y);let X=[];for(let Y of $){Y=Z?Z(Y):Y;let{listen:J}=me0(Y),G=Q.get(J);if(G)G.gossiped=!1,X.push(G);else X.push(new Fu(Y))}if(this.randomize)(0,he0.shuffle)(X);if(this.servers=X,this.currentServer===void 0||!X.includes(this.currentServer))this.currentServer=X[0],this.firstSelect=!0}clear(){this.servers.length=0}updateTLSName(){let $=this.getCurrentServer();if(!(0,ue0.isIP)($.hostname))this.tlsName=$.hostname,this.servers.forEach((Z)=>{if(Z.gossiped)Z.tlsName=this.tlsName})}getCurrentServer(){return this.currentServer}addServer($,Z=!1){let Q=(0,ge0.getUrlParseFn)();$=Q?Q($):$;let X=new Fu($,Z);if((0,ue0.isIP)(X.hostname))X.tlsName=this.tlsName;this.servers.push(X)}selectServer(){if(this.firstSelect)return this.firstSelect=!1,this.currentServer;let $=this.servers.shift();if($)this.servers.push($),this.currentServer=$;return $}removeCurrentServer(){this.removeServer(this.currentServer)}removeServer($){if($){let Z=this.servers.indexOf($);this.servers.splice(Z,1)}}snapshot(){return tJ0.freezeAll(this.servers)}snapshotForHandler(){let $=this.currentServer;if(!$)return this.snapshot();let Z=this.servers.indexOf($);if(Z<=0)return this.snapshot();return tJ0.freezeAll([$,...this.servers.slice(0,Z),...this.servers.slice(Z+1)])}static freezeAll($){return $.map((Z)=>Object.freeze({hostname:Z.hostname,port:Z.port,listen:Z.listen,src:Z.src,tlsName:Z.tlsName,reconnects:Z.reconnects,lastConnect:Z.lastConnect,gossiped:Z.gossiped,didConnect:Z.didConnect}))}find($){return this.servers.find((Z)=>Z.listen===$.listen)}setCurrent($){this.currentServer=$}length(){return this.servers.length}next(){return this.servers.length?this.servers[0]:void 0}getServers(){return this.servers}update($,Z){let Q=[],X=[],Y=(0,ge0.getUrlParseFn)(),J=new Map;if($.connect_urls&&$.connect_urls.length>0)$.connect_urls.forEach((K)=>{K=Y?Y(K,Z):K;let W=new Fu(K,!0);J.set(K,W)});let G=[];if(this.servers.forEach((K,W)=>{let H=K.listen;if(K.gossiped&&this.currentServer.listen!==H&&J.get(H)===void 0)G.push(W);J.delete(H)}),G.reverse(),G.forEach((K)=>{let W=this.servers.splice(K,1);X=X.concat(W[0].listen)}),J.forEach((K,W)=>{this.servers.push(K),Q.push(W)}),this.randomize&&Q.length>0){let K=this.currentServer,W=this.servers.filter((H)=>H!==K);(0,he0.shuffle)(W),this.servers=K?[K,...W]:W}return{added:Q,deleted:X}}}i9$.Servers=tJ0});var oJ0=v((o9$)=>{Object.defineProperty(o9$,"__esModule",{value:!0});o9$.QueuedIteratorImpl=void 0;var de0=GW(),n9$=Q3();class t9${inflight;processed;received;noIterator;iterClosed;done;signal;yields;filtered;pendingFiltered;ctx;_data;err;time;profile;yielding;didBreak;constructor(){this.inflight=0,this.filtered=0,this.pendingFiltered=0,this.processed=0,this.received=0,this.noIterator=!1,this.done=!1,this.signal=(0,de0.deferred)(),this.yields=[],this.iterClosed=(0,de0.deferred)(),this.time=0,this.yielding=!1,this.didBreak=!1,this.profile=!1}[Symbol.asyncIterator](){return this.iterate()}push($){if(this.done)return;if(this.didBreak){if(typeof $==="function"){let Z=$;try{Z()}catch(Q){}}return}if(typeof $==="function")this.pendingFiltered++;this.yields.push($),this.signal.resolve()}async*iterate(){if(this.noIterator)throw new n9$.InvalidOperationError("iterator cannot be used when a callback is registered");if(this.yielding)throw new n9$.InvalidOperationError("iterator is already yielding");this.yielding=!0;try{while(!0){if(this.yields.length===0)await this.signal;if(this.err)throw this.err;let $=this.yields;this.inflight=$.length,this.yields=[];for(let Z=0;Z<$.length;Z++){if(typeof $[Z]==="function"){this.pendingFiltered--;let X=$[Z];try{X()}catch(Y){throw Y}if(this.err)throw this.err;continue}this.processed++,this.inflight--;let Q=this.profile?Date.now():0;yield $[Z],this.time=this.profile?Date.now()-Q:0}if(this.done)break;else if(this.yields.length===0)$.length=0,this.yields=$,this.signal=(0,de0.deferred)()}}finally{this.didBreak=!0,this.stop()}}stop($){if(this.done)return;this.err=$,this.done=!0,this.signal.resolve(),this.iterClosed.resolve($)}getProcessed(){return this.noIterator?this.received:this.processed}getPending(){return this.yields.length+this.inflight-this.pendingFiltered}getReceived(){return this.received-this.filtered}}o9$.QueuedIteratorImpl=t9$});var ie0=v((e9$)=>{Object.defineProperty(e9$,"__esModule",{value:!0});e9$.MuxSubscription=void 0;var x34=sL(),a9$=Q3();class s9${baseInbox;reqs;constructor(){this.reqs=new Map}size(){return this.reqs.size}init($){return this.baseInbox=`${(0,x34.createInbox)($)}.`,this.baseInbox}add($){if(!isNaN($.received))$.received=0;this.reqs.set($.token,$)}get($){return this.reqs.get($)}cancel($){this.reqs.delete($.token)}getToken($){let Z=$.subject||"";if(Z.indexOf(this.baseInbox)===0)return Z.substring(this.baseInbox.length);return null}all(){return Array.from(this.reqs.values())}handleError($,Z){if($)return this.all().forEach((Q)=>{Q.resolver(Z,{})}),!0;if(Z.operation==="publish"){let Q=this.all().find((X)=>{return X.requestSubject===Z.subject});if(Q)return Q.resolver(Z,{}),!0}return!1}dispatcher(){return($,Z)=>{let Q=this.getToken(Z);if(Q){let X=this.get(Q);if(X){if($===null)$=Z?.data?.length===0&&Z.headers?.code===503?new a9$.NoRespondersError(X.requestSubject):null;X.resolver($,Z)}}}}close(){let $=new a9$.RequestError("connection closed");this.reqs.forEach((Z)=>{Z.resolver($,{})})}}e9$.MuxSubscription=s9$});var pe0=v((QZ$)=>{Object.defineProperty(QZ$,"__esModule",{value:!0});QZ$.Heartbeat=void 0;var f34=GW();class ZZ${ph;interval;maxOut;timer;pendings;constructor($,Z,Q){this.ph=$,this.interval=Z,this.maxOut=Q,this.pendings=[]}start(){this.cancel(),this._schedule()}cancel($){if(this.timer)clearTimeout(this.timer),this.timer=void 0;if(this._reset(),$)this.ph.disconnect()}_schedule(){this.timer=setTimeout(()=>{if(this.ph.dispatchStatus({type:"ping",pendingPings:this.pendings.length+1}),this.pendings.length===this.maxOut){this.cancel(!0);return}let $=(0,f34.deferred)();this.ph.flush($).then(()=>{this._reset()}).catch(()=>{this.cancel()}),this.pendings.push($),this._schedule()},this.interval)}_reset(){this.pendings=this.pendings.filter(($)=>{return $.resolve(),!1})}}QZ$.Heartbeat=ZZ$});var oe0=v((KZ$)=>{Object.defineProperty(KZ$,"__esModule",{value:!0});KZ$.DenoBuffer=KZ$.MAX_SIZE=KZ$.AssertionError=void 0;KZ$.assert=JZ$;KZ$.concat=GZ$;KZ$.append=y34;KZ$.readAll=g34;KZ$.writeAll=h34;var b34=Z3();class ne0 extends Error{constructor($){super($);this.name="AssertionError"}}KZ$.AssertionError=ne0;function JZ$($,Z="Assertion failed."){if(!$)throw new ne0(Z)}var YZ$=32768;KZ$.MAX_SIZE=4294967294;function rJ0($,Z,Q=0){let X=Z.byteLength-Q;if($.byteLength>X)$=$.subarray(0,X);return Z.set($,Q),$.byteLength}function GZ$($,Z){if($===void 0&&Z===void 0)return new Uint8Array(0);if($===void 0)return Z;if(Z===void 0)return $;let Q=new Uint8Array($.length+Z.length);return Q.set($,0),Q.set(Z,$.length),Q}function y34($,Z){return GZ$($,Uint8Array.of(Z))}class te0{_buf;_off;constructor($){if(this._off=0,$==null){this._buf=new Uint8Array(0);return}this._buf=new Uint8Array($)}bytes($={copy:!0}){if($.copy===!1)return this._buf.subarray(this._off);return this._buf.slice(this._off)}empty(){return this._buf.byteLength<=this._off}get length(){return this._buf.byteLength-this._off}get capacity(){return this._buf.buffer.byteLength}truncate($){if($===0){this.reset();return}if($<0||$>this.length)throw Error("bytes.Buffer: truncation out of range");this._reslice(this._off+$)}reset(){this._reslice(0),this._off=0}_tryGrowByReslice($){let Z=this._buf.byteLength;if($<=this.capacity-Z)return this._reslice(Z+$),Z;return-1}_reslice($){JZ$($<=this._buf.buffer.byteLength),this._buf=new Uint8Array(this._buf.buffer,0,$)}readByte(){let $=new Uint8Array(1);if(this.read($))return $[0];return null}read($){if(this.empty()){if(this.reset(),$.byteLength===0)return 0;return null}let Z=rJ0(this._buf.subarray(this._off),$);return this._off+=Z,Z}writeByte($){return this.write(Uint8Array.of($))}writeString($){return this.write(b34.TE.encode($))}write($){let Z=this._grow($.byteLength);return rJ0($,this._buf,Z)}_grow($){let Z=this.length;if(Z===0&&this._off!==0)this.reset();let Q=this._tryGrowByReslice($);if(Q>=0)return Q;let X=this.capacity;if($<=Math.floor(X/2)-Z)rJ0(this._buf.subarray(this._off),this._buf);else if(X+$>KZ$.MAX_SIZE)throw Error("The buffer cannot be grown beyond the maximum size.");else{let Y=new Uint8Array(Math.min(2*X+$,KZ$.MAX_SIZE));rJ0(this._buf.subarray(this._off),Y),this._buf=Y}return this._off=0,this._reslice(Math.min(Z+$,KZ$.MAX_SIZE)),Z}grow($){if($<0)throw Error("Buffer._grow: negative count");let Z=this._grow($);this._reslice(Z)}readFrom($){let Z=0,Q=new Uint8Array(YZ$);while(!0){let X=this.capacity-this.length<YZ$,Y=X?Q:new Uint8Array(this._buf.buffer,this.length),J=$.read(Y);if(J===null)return Z;if(X)this.write(Y.subarray(0,J));else this._reslice(this.length+J);Z+=J}}}KZ$.DenoBuffer=te0;function g34($){let Z=new te0;return Z.readFrom($),Z.bytes()}function h34($,Z){let Q=0;while(Q<Z.length)Q+=$.write(Z.subarray(Q))}});var se0=v((NZ$)=>{Object.defineProperty(NZ$,"__esModule",{value:!0});NZ$.cc=NZ$.State=NZ$.Parser=NZ$.Kind=void 0;NZ$.describe=p34;var re0=oe0(),ae0=Z3();NZ$.Kind={OK:0,ERR:1,MSG:2,INFO:3,PING:4,PONG:5};function p34($){let Z,Q="";switch($.kind){case NZ$.Kind.MSG:Z="MSG";break;case NZ$.Kind.OK:Z="OK";break;case NZ$.Kind.ERR:Z="ERR",Q=ae0.TD.decode($.data);break;case NZ$.Kind.PING:Z="PING";break;case NZ$.Kind.PONG:Z="PONG";break;case NZ$.Kind.INFO:Z="INFO",Q=ae0.TD.decode($.data)}return`${Z}: ${Q}`}function HZ$(){let $={};return $.sid=-1,$.hdr=-1,$.size=-1,$}var FZ$=48,n34=57,Uu=67108864;class UZ${dispatcher;state;as;drop;hdr;ma;argBuf;msgBuf;constructor($){this.dispatcher=$,this.state=NZ$.State.OP_START,this.as=0,this.drop=0,this.hdr=0}parse($){let Z;for(Z=0;Z<$.length;Z++){let Q=$[Z];switch(this.state){case NZ$.State.OP_START:switch(Q){case NZ$.cc.M:case NZ$.cc.m:this.state=NZ$.State.OP_M,this.hdr=-1,this.ma=HZ$();break;case NZ$.cc.H:case NZ$.cc.h:this.state=NZ$.State.OP_H,this.hdr=0,this.ma=HZ$();break;case NZ$.cc.P:case NZ$.cc.p:this.state=NZ$.State.OP_P;break;case NZ$.cc.PLUS:this.state=NZ$.State.OP_PLUS;break;case NZ$.cc.MINUS:this.state=NZ$.State.OP_MINUS;break;case NZ$.cc.I:case NZ$.cc.i:this.state=NZ$.State.OP_I;break;default:throw this.fail($.subarray(Z))}break;case NZ$.State.OP_H:switch(Q){case NZ$.cc.M:case NZ$.cc.m:this.state=NZ$.State.OP_M;break;default:throw this.fail($.subarray(Z))}break;case NZ$.State.OP_M:switch(Q){case NZ$.cc.S:case NZ$.cc.s:this.state=NZ$.State.OP_MS;break;default:throw this.fail($.subarray(Z))}break;case NZ$.State.OP_MS:switch(Q){case NZ$.cc.G:case NZ$.cc.g:this.state=NZ$.State.OP_MSG;break;default:throw this.fail($.subarray(Z))}break;case NZ$.State.OP_MSG:switch(Q){case NZ$.cc.SPACE:case NZ$.cc.TAB:this.state=NZ$.State.OP_MSG_SPC;break;default:throw this.fail($.subarray(Z))}break;case NZ$.State.OP_MSG_SPC:switch(Q){case NZ$.cc.SPACE:case NZ$.cc.TAB:continue;default:this.state=NZ$.State.MSG_ARG,this.as=Z}break;case NZ$.State.MSG_ARG:switch(Q){case NZ$.cc.CR:this.drop=1;break;case NZ$.cc.NL:{let X=this.argBuf?this.argBuf.bytes():$.subarray(this.as,Z-this.drop);this.processMsgArgs(X),this.drop=0,this.as=Z+1,this.state=NZ$.State.MSG_PAYLOAD,Z=this.as+this.ma.size-1;break}default:if(this.argBuf)this.argBuf.writeByte(Q)}break;case NZ$.State.MSG_PAYLOAD:if(this.msgBuf)if(this.msgBuf.length>=this.ma.size){let X=this.msgBuf.bytes({copy:!1});this.dispatcher.push({kind:NZ$.Kind.MSG,msg:this.ma,data:X}),this.argBuf=void 0,this.msgBuf=void 0,this.state=NZ$.State.MSG_END}else{let X=this.ma.size-this.msgBuf.length,Y=$.length-Z;if(Y<X)X=Y;if(X>0)this.msgBuf.write($.subarray(Z,Z+X)),Z=Z+X-1;else this.msgBuf.writeByte(Q)}else if(Z-this.as>=this.ma.size)this.dispatcher.push({kind:NZ$.Kind.MSG,msg:this.ma,data:$.subarray(this.as,Z)}),this.argBuf=void 0,this.msgBuf=void 0,this.state=NZ$.State.MSG_END;break;case NZ$.State.MSG_END:switch(Q){case NZ$.cc.NL:this.drop=0,this.as=Z+1,this.state=NZ$.State.OP_START;break;default:continue}break;case NZ$.State.OP_PLUS:switch(Q){case NZ$.cc.O:case NZ$.cc.o:this.state=NZ$.State.OP_PLUS_O;break;default:throw this.fail($.subarray(Z))}break;case NZ$.State.OP_PLUS_O:switch(Q){case NZ$.cc.K:case NZ$.cc.k:this.state=NZ$.State.OP_PLUS_OK;break;default:throw this.fail($.subarray(Z))}break;case NZ$.State.OP_PLUS_OK:switch(Q){case NZ$.cc.NL:this.dispatcher.push({kind:NZ$.Kind.OK}),this.drop=0,this.state=NZ$.State.OP_START;break}break;case NZ$.State.OP_MINUS:switch(Q){case NZ$.cc.E:case NZ$.cc.e:this.state=NZ$.State.OP_MINUS_E;break;default:throw this.fail($.subarray(Z))}break;case NZ$.State.OP_MINUS_E:switch(Q){case NZ$.cc.R:case NZ$.cc.r:this.state=NZ$.State.OP_MINUS_ER;break;default:throw this.fail($.subarray(Z))}break;case NZ$.State.OP_MINUS_ER:switch(Q){case NZ$.cc.R:case NZ$.cc.r:this.state=NZ$.State.OP_MINUS_ERR;break;default:throw this.fail($.subarray(Z))}break;case NZ$.State.OP_MINUS_ERR:switch(Q){case NZ$.cc.SPACE:case NZ$.cc.TAB:this.state=NZ$.State.OP_MINUS_ERR_SPC;break;default:throw this.fail($.subarray(Z))}break;case NZ$.State.OP_MINUS_ERR_SPC:switch(Q){case NZ$.cc.SPACE:case NZ$.cc.TAB:continue;default:this.state=NZ$.State.MINUS_ERR_ARG,this.as=Z}break;case NZ$.State.MINUS_ERR_ARG:switch(Q){case NZ$.cc.CR:this.drop=1;break;case NZ$.cc.NL:{let X;if(this.argBuf)X=this.argBuf.bytes(),this.argBuf=void 0;else X=$.subarray(this.as,Z-this.drop);this.dispatcher.push({kind:NZ$.Kind.ERR,data:X}),this.drop=0,this.as=Z+1,this.state=NZ$.State.OP_START;break}default:if(this.argBuf)this.argBuf.write(Uint8Array.of(Q))}break;case NZ$.State.OP_P:switch(Q){case NZ$.cc.I:case NZ$.cc.i:this.state=NZ$.State.OP_PI;break;case NZ$.cc.O:case NZ$.cc.o:this.state=NZ$.State.OP_PO;break;default:throw this.fail($.subarray(Z))}break;case NZ$.State.OP_PO:switch(Q){case NZ$.cc.N:case NZ$.cc.n:this.state=NZ$.State.OP_PON;break;default:throw this.fail($.subarray(Z))}break;case NZ$.State.OP_PON:switch(Q){case NZ$.cc.G:case NZ$.cc.g:this.state=NZ$.State.OP_PONG;break;default:throw this.fail($.subarray(Z))}break;case NZ$.State.OP_PONG:switch(Q){case NZ$.cc.NL:this.dispatcher.push({kind:NZ$.Kind.PONG}),this.drop=0,this.state=NZ$.State.OP_START;break}break;case NZ$.State.OP_PI:switch(Q){case NZ$.cc.N:case NZ$.cc.n:this.state=NZ$.State.OP_PIN;break;default:throw this.fail($.subarray(Z))}break;case NZ$.State.OP_PIN:switch(Q){case NZ$.cc.G:case NZ$.cc.g:this.state=NZ$.State.OP_PING;break;default:throw this.fail($.subarray(Z))}break;case NZ$.State.OP_PING:switch(Q){case NZ$.cc.NL:this.dispatcher.push({kind:NZ$.Kind.PING}),this.drop=0,this.state=NZ$.State.OP_START;break}break;case NZ$.State.OP_I:switch(Q){case NZ$.cc.N:case NZ$.cc.n:this.state=NZ$.State.OP_IN;break;default:throw this.fail($.subarray(Z))}break;case NZ$.State.OP_IN:switch(Q){case NZ$.cc.F:case NZ$.cc.f:this.state=NZ$.State.OP_INF;break;default:throw this.fail($.subarray(Z))}break;case NZ$.State.OP_INF:switch(Q){case NZ$.cc.O:case NZ$.cc.o:this.state=NZ$.State.OP_INFO;break;default:throw this.fail($.subarray(Z))}break;case NZ$.State.OP_INFO:switch(Q){case NZ$.cc.SPACE:case NZ$.cc.TAB:this.state=NZ$.State.OP_INFO_SPC;break;default:throw this.fail($.subarray(Z))}break;case NZ$.State.OP_INFO_SPC:switch(Q){case NZ$.cc.SPACE:case NZ$.cc.TAB:continue;default:this.state=NZ$.State.INFO_ARG,this.as=Z}break;case NZ$.State.INFO_ARG:switch(Q){case NZ$.cc.CR:this.drop=1;break;case NZ$.cc.NL:{let X;if(this.argBuf)X=this.argBuf.bytes(),this.argBuf=void 0;else X=$.subarray(this.as,Z-this.drop);this.dispatcher.push({kind:NZ$.Kind.INFO,data:X}),this.drop=0,this.as=Z+1,this.state=NZ$.State.OP_START;break}default:if(this.argBuf)this.argBuf.writeByte(Q)}break;default:throw this.fail($.subarray(Z))}}if((this.state===NZ$.State.MSG_ARG||this.state===NZ$.State.MINUS_ERR_ARG||this.state===NZ$.State.INFO_ARG)&&!this.argBuf)this.argBuf=new re0.DenoBuffer($.subarray(this.as,Z-this.drop));if(this.state===NZ$.State.MSG_PAYLOAD&&!this.msgBuf){if(!this.argBuf)this.cloneMsgArg();this.msgBuf=new re0.DenoBuffer($.subarray(this.as))}}cloneMsgArg(){let $=this.ma.subject.length,Z=this.ma.reply?this.ma.reply.length:0,Q=new Uint8Array($+Z);if(Q.set(this.ma.subject),this.ma.reply)Q.set(this.ma.reply,$);if(this.argBuf=new re0.DenoBuffer(Q),this.ma.subject=Q.subarray(0,$),this.ma.reply)this.ma.reply=Q.subarray($)}processMsgArgs($){if(this.hdr>=0)return this.processHeaderMsgArgs($);let Z=[],Q=-1;for(let X=0;X<$.length;X++)switch($[X]){case NZ$.cc.SPACE:case NZ$.cc.TAB:case NZ$.cc.CR:case NZ$.cc.NL:if(Q>=0)Z.push($.subarray(Q,X)),Q=-1;break;default:if(Q<0)Q=X}if(Q>=0)Z.push($.subarray(Q));switch(Z.length){case 3:this.ma.subject=Z[0],this.ma.sid=this.protoParseInt(Z[1]),this.ma.reply=void 0,this.ma.size=this.protoParseInt(Z[2],Uu);break;case 4:this.ma.subject=Z[0],this.ma.sid=this.protoParseInt(Z[1]),this.ma.reply=Z[2],this.ma.size=this.protoParseInt(Z[3],Uu);break;default:throw this.fail($,"processMsgArgs Parse Error")}if(this.ma.sid<0)throw this.fail($,"processMsgArgs Bad or Missing Sid Error");if(this.ma.size<0)throw this.fail($,"processMsgArgs Bad or Missing Size Error")}fail($,Z=""){if(!Z)Z=`parse error [${this.state}]`;else Z=`${Z} [${this.state}]`;return Error(`${Z}: ${ae0.TD.decode($)}`)}processHeaderMsgArgs($){let Z=[],Q=-1;for(let X=0;X<$.length;X++)switch($[X]){case NZ$.cc.SPACE:case NZ$.cc.TAB:case NZ$.cc.CR:case NZ$.cc.NL:if(Q>=0)Z.push($.subarray(Q,X)),Q=-1;break;default:if(Q<0)Q=X}if(Q>=0)Z.push($.subarray(Q));switch(Z.length){case 4:this.ma.subject=Z[0],this.ma.sid=this.protoParseInt(Z[1]),this.ma.reply=void 0,this.ma.hdr=this.protoParseInt(Z[2],Uu),this.ma.size=this.protoParseInt(Z[3],Uu);break;case 5:this.ma.subject=Z[0],this.ma.sid=this.protoParseInt(Z[1]),this.ma.reply=Z[2],this.ma.hdr=this.protoParseInt(Z[3],Uu),this.ma.size=this.protoParseInt(Z[4],Uu);break;default:throw this.fail($,"processHeaderMsgArgs Parse Error")}if(this.ma.sid<0)throw this.fail($,"processHeaderMsgArgs Bad or Missing Sid Error");if(this.ma.hdr<0||this.ma.hdr>this.ma.size)throw this.fail($,"processHeaderMsgArgs Bad or Missing Header Size Error");if(this.ma.size<0)throw this.fail($,"processHeaderMsgArgs Bad or Missing Size Error")}protoParseInt($,Z){if($.length===0||$.length>15)return-1;let Q=0;for(let X=0;X<$.length;X++){if($[X]<FZ$||$[X]>n34)return-1;Q=Q*10+($[X]-FZ$)}return Z!==void 0&&Q>Z?-1:Q}}NZ$.Parser=UZ$;NZ$.State={OP_START:0,OP_PLUS:1,OP_PLUS_O:2,OP_PLUS_OK:3,OP_MINUS:4,OP_MINUS_E:5,OP_MINUS_ER:6,OP_MINUS_ERR:7,OP_MINUS_ERR_SPC:8,MINUS_ERR_ARG:9,OP_M:10,OP_MS:11,OP_MSG:12,OP_MSG_SPC:13,MSG_ARG:14,MSG_PAYLOAD:15,MSG_END:16,OP_H:17,OP_P:18,OP_PI:19,OP_PIN:20,OP_PING:21,OP_PO:22,OP_PON:23,OP_PONG:24,OP_I:25,OP_IN:26,OP_INF:27,OP_INFO:28,OP_INFO_SPC:29,INFO_ARG:30};NZ$.cc={CR:13,E:69,e:101,F:70,f:102,G:71,g:103,H:72,h:104,I:73,i:105,K:75,k:107,M:77,m:109,MINUS:45,N:78,n:110,NL:10,O:79,o:111,P:80,p:112,PLUS:43,R:82,r:114,S:83,s:115,SPACE:32,TAB:9}});var eJ0=v((DZ$)=>{Object.defineProperty(DZ$,"__esModule",{value:!0});DZ$.MsgHdrsImpl=void 0;DZ$.canonicalMIMEHeaderKey=$01;DZ$.headers=r34;var BZ$=Z3(),KW=sL(),sJ0=Q3();function $01($){let F=!0,U=Array($.length);for(let N=0;N<$.length;N++){let B=$.charCodeAt(N);if(B===58||B<33||B>126)throw sJ0.InvalidArgumentError.format("header",`'${$[N]}' is not a valid character in a header name`);if(F&&97<=B&&B<=122)B-=32;else if(!F&&65<=B&&B<=90)B+=32;U[N]=B,F=B==45}return String.fromCharCode(...U)}function r34($=0,Z=""){if($===0&&Z!=="")throw sJ0.InvalidArgumentError.format("code","is required");else if($>0&&Z==="")throw sJ0.InvalidArgumentError.format("description","is required");return new Nu($,Z)}var ee0="NATS/1.0";class Nu{_code;headers;_description;constructor($=0,Z=""){this._code=$,this._description=Z,this.headers=new Map}[Symbol.iterator](){return this.headers.entries()}size(){return this.headers.size}equals($){if($&&this.headers.size===$.headers.size&&this._code===$._code){for(let[Z,Q]of this.headers){let X=$.values(Z);if(Q.length!==X.length)return!1;let Y=[...Q].sort(),J=[...X].sort();for(let G=0;G<Y.length;G++)if(Y[G]!==J[G])return!1}return!0}return!1}static decode($){let Z=new Nu,X=BZ$.TD.decode($).split(`\r
|
|
2081
2081
|
`),Y=X[0];if(Y!==ee0){let J=Y.replace(ee0,"").trim();if(J.length>0){if(Z._code=parseInt(J,10),isNaN(Z._code))Z._code=0;let G=Z._code.toString();J=J.replace(G,""),Z._description=J.trim()}}if(X.length>=1)X.slice(1).map((J)=>{if(J){let G=J.indexOf(":");if(G>-1){let K=J.slice(0,G),W=J.slice(G+1).trim();Z.append(K,W)}}});return Z}toString(){if(this.headers.size===0&&this._code===0)return"";let $=ee0;if(this._code>0&&this._description!=="")$+=` ${this._code} ${this._description}`;for(let[Z,Q]of this.headers)for(let X=0;X<Q.length;X++)$=`${$}\r
|
|
2082
2082
|
${Z}: ${Q[X]}`;return`${$}\r
|