decocms 2.366.7 → 2.367.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/assets/{AlertCircle-DFcOa31f.js → AlertCircle-DXzL-e2e.js} +1 -1
- package/dist/client/assets/{ArrowNarrowLeft-CbOlEr1w.js → ArrowNarrowLeft-CfhHEfPi.js} +1 -1
- package/dist/client/assets/{ArrowUpRight-C6axmKPR.js → ArrowUpRight-B88Qk3-k.js} +1 -1
- package/dist/client/assets/{Check-JQri_6PS.js → Check-CVVQU9f4.js} +1 -1
- package/dist/client/assets/{CheckCircle-B6HzfzYv.js → CheckCircle-Cj6h9CZZ.js} +1 -1
- package/dist/client/assets/{ChevronDown-CNNU2L0m.js → ChevronDown-DPIOR45j.js} +1 -1
- package/dist/client/assets/{ChevronRight-BuVcgGSu.js → ChevronRight-s9nAs9dC.js} +1 -1
- package/dist/client/assets/{ChevronUp-DyIOyS2u.js → ChevronUp-CrZe5oLM.js} +1 -1
- package/dist/client/assets/{Container-Cy3AGglh.js → Container-6XDQdQD7.js} +1 -1
- package/dist/client/assets/{DotsVertical-DIehc2A5.js → DotsVertical-CcodegNX.js} +1 -1
- package/dist/client/assets/{FilterLines-DHlq5ZtE.js → FilterLines-D8KDEvth.js} +1 -1
- package/dist/client/assets/{HardDrive-CAAHpLeS.js → HardDrive-DoqeSHVa.js} +1 -1
- package/dist/client/assets/{Key01-C29UL5qH.js → Key01-CerwD4kH.js} +1 -1
- package/dist/client/assets/{LayoutLeft-5sSkIfFI.js → LayoutLeft-D1UJkE8Z.js} +1 -1
- package/dist/client/assets/{LinkExternal01-QpHHOJbZ.js → LinkExternal01-Bh1MqI14.js} +1 -1
- package/dist/client/assets/{Lock01-Ju5ifHNn.js → Lock01-1l3Qk0Ch.js} +1 -1
- package/dist/client/assets/{Monitor01-DHHvwXbl.js → Monitor01-C_nV3Aph.js} +1 -1
- package/dist/client/assets/{Palette-CJqBw6AH.js → Palette-Conuu6po.js} +1 -1
- package/dist/client/assets/{Play-DPs1Pbq2.js → Play-Bl98xYAX.js} +1 -1
- package/dist/client/assets/{Plus-DgrNRFK5.js → Plus-COLFeRdD.js} +1 -1
- package/dist/client/assets/{RefreshCcw01-Bf15qfNS.js → RefreshCcw01-DV6YQbn5.js} +1 -1
- package/dist/client/assets/{SearchMd-CuY4_41I.js → SearchMd-kxm_aOtG.js} +1 -1
- package/dist/client/assets/{Settings02-Cjzbasby.js → Settings02-B5DDF3I3.js} +1 -1
- package/dist/client/assets/{Shield01-rI42zX_N.js → Shield01-DGoVrslL.js} +1 -1
- package/dist/client/assets/{Star01-CiaU9xFe.js → Star01-uBjPmJoD.js} +1 -1
- package/dist/client/assets/{Stars02-BHNtUcIC.js → Stars02-DWX8YYmb.js} +1 -1
- package/dist/client/assets/{Sun-DA9iSyj3.js → Sun-DO_l8Nxm.js} +1 -1
- package/dist/client/assets/{SwitchHorizontal01-B0nDhziZ.js → SwitchHorizontal01-CZPsbi6E.js} +1 -1
- package/dist/client/assets/{Tool01-BpLh90bx.js → Tool01-VSFjPWag.js} +1 -1
- package/dist/client/assets/{Trash01-BU1vvG1i.js → Trash01-DXA4MDgW.js} +1 -1
- package/dist/client/assets/{Upload01-D2aoviL7.js → Upload01-D9wbCeYM.js} +1 -1
- package/dist/client/assets/{User01-BUxAdPGO.js → User01-Cg4UMwQQ.js} +1 -1
- package/dist/client/assets/{Users01-X9W80ATA.js → Users01-oOzEMBqo.js} +1 -1
- package/dist/client/assets/{Users03-DERc_3KT.js → Users03-x4icXpDF.js} +1 -1
- package/dist/client/assets/{X-CpxCwBcO.js → X-b1s3Az9Q.js} +1 -1
- package/dist/client/assets/{XCircle-BlhQtOFW.js → XCircle-qLeWuwHg.js} +1 -1
- package/dist/client/assets/{XClose-6T_HfnSF.js → XClose-BxtrNKVu.js} +1 -1
- package/dist/client/assets/{Zap-C_gPmGTu.js → Zap-DiNaNqdG.js} +1 -1
- package/dist/client/assets/{ZapSquare-D-9nYZGQ.js → ZapSquare-pUKWIFHO.js} +1 -1
- package/dist/client/assets/{accordion-CBF1VPy1.js → accordion-Ci_gE5Cp.js} +1 -1
- package/dist/client/assets/{add-connection-dialog-WM_qTQCr.js → add-connection-dialog-M1B1RJQ_.js} +1 -1
- package/dist/client/assets/{agent-icon-BZLvaskO.js → agent-icon-Zn8uPUNh.js} +1 -1
- package/dist/client/assets/{agent-icons-ZEbpuDyp.js → agent-icons-CMWxNall.js} +1 -1
- package/dist/client/assets/{agents-list-BD4seTwq.js → agents-list-B-ROPkpj.js} +1 -1
- package/dist/client/assets/{ai-providers-Dps_1J2i.js → ai-providers-DEGL_eBY.js} +1 -1
- package/dist/client/assets/{alert-CmozMRgO.js → alert-DjpNgI2W.js} +1 -1
- package/dist/client/assets/{alert-dialog-Bzj7Dj8A.js → alert-dialog-B1S-XKia.js} +1 -1
- package/dist/client/assets/{auth-catchall-Ck-h53ka.js → auth-catchall-FzOyOOoh.js} +1 -1
- package/dist/client/assets/{auth-split-layout-COCXQjkb.js → auth-split-layout-CnpnJof8.js} +1 -1
- package/dist/client/assets/{automation-list-row-BK4XzBrA.js → automation-list-row-DJ2ZwwgT.js} +1 -1
- package/dist/client/assets/{automations-BIQRZeWE.js → automations-oHuN5wL_.js} +1 -1
- package/dist/client/assets/{avatar-DCmff7mq.js → avatar-r8LZmR6e.js} +1 -1
- package/dist/client/assets/{badge-ONnaTLOr.js → badge-CC_f_cJU.js} +1 -1
- package/dist/client/assets/{brand-context-DWdSQDXw.js → brand-context-BLEppAAs.js} +1 -1
- package/dist/client/assets/{card-BsL17xby.js → card-Canx3qu9.js} +1 -1
- package/dist/client/assets/{chat-context-4LDn0s0C.js → chat-context-MBB7p8d0.js} +1 -1
- package/dist/client/assets/{checkbox-CupWiQrC.js → checkbox-C04z7qrL.js} +1 -1
- package/dist/client/assets/{cli-auth-success-C_FSoZy8.js → cli-auth-success-DAkmN50l.js} +1 -1
- package/dist/client/assets/{collection-detail-rvEMorEg.js → collection-detail-BGP3eYpv.js} +1 -1
- package/dist/client/assets/{collection-display-button-BMPAqbiG.js → collection-display-button-STdK4lVO.js} +1 -1
- package/dist/client/assets/{collection-search-DBZ50buZ.js → collection-search-DJv63gft.js} +1 -1
- package/dist/client/assets/{collection-search-Um_OB9Yj.js → collection-search-ttkhmg3L.js} +1 -1
- package/dist/client/assets/{collection-table-wrapper-Dtog_f2p.js → collection-table-wrapper-CsYbLGlT.js} +1 -1
- package/dist/client/assets/{collection-tabs-DBGScRHK.js → collection-tabs-B-7_DLYw.js} +1 -1
- package/dist/client/assets/{collections-B7Zm82Yd.js → collections-DXUBhH3v.js} +1 -1
- package/dist/client/assets/{command-BbOyBJF2.js → command-P20c5nhn.js} +1 -1
- package/dist/client/assets/{connect-desktop-dialog-BB6OqliN.js → connect-desktop-dialog-D7wjmDNg.js} +1 -1
- package/dist/client/assets/{connection-card-CfeWMSHF.js → connection-card-DDguFWx8.js} +1 -1
- package/dist/client/assets/{connection-detail-pLHIqTQT.js → connection-detail-Cn7lM3pd.js} +1 -1
- package/dist/client/assets/{connection-form-helpers-CU39ex55.js → connection-form-helpers-ZOzZBM7G.js} +1 -1
- package/dist/client/assets/{connections-Dcfpl5Vt.js → connections-DdN0-znW.js} +1 -1
- package/dist/client/assets/{constants-z8N0NNar.js → constants-CeG9JZBg.js} +1 -1
- package/dist/client/assets/{decopilot-sse-pool-BmH40IlP.js → decopilot-sse-pool-BX2AZ6Ip.js} +1 -1
- package/dist/client/assets/{dialog-1TuinsgZ.js → dialog-COtVk7nM.js} +1 -1
- package/dist/client/assets/{domain-settings-CK5mrQIi.js → domain-settings-Cyq61Uyw.js} +1 -1
- package/dist/client/assets/{drawer-DQoKQZB2.js → drawer-DQKlrYFy.js} +1 -1
- package/dist/client/assets/{dropdown-menu-Dzjyztci.js → dropdown-menu-DAgiFQA-.js} +1 -1
- package/dist/client/assets/{dynamic-plugin-layout-VBJnbblQ.js → dynamic-plugin-layout-KH5xflFf.js} +1 -1
- package/dist/client/assets/{empty-state-DoRCByZ3.js → empty-state-BHa2VePZ.js} +1 -1
- package/dist/client/assets/{empty-state-oNm48kH8.js → empty-state-DyCsD4Xv.js} +1 -1
- package/dist/client/assets/{extract-connection-data-DhUh4JIU.js → extract-connection-data-ici9JYI-.js} +1 -1
- package/dist/client/assets/{features-BLue5eI4.js → features-qVmdZHC_.js} +1 -1
- package/dist/client/assets/{file-explorer-CEsWFSVG.js → file-explorer-COR8IgjY.js} +2 -2
- package/dist/client/assets/{files-DnOIW6UR.js → files-C4_Zemsj.js} +1 -1
- package/dist/client/assets/{form-BACtGvj-.js → form-BQ10aOSg.js} +1 -1
- package/dist/client/assets/{general-D8M9QTub.js → general-BGmslHbS.js} +1 -1
- package/dist/client/assets/{generate-id-D8MMm0i_.js → generate-id-rt1VhfzJ.js} +1 -1
- package/dist/client/assets/{github-repo-picker-rt9Vt0dE.js → github-repo-picker-DoUFteXG.js} +1 -1
- package/dist/client/assets/{hooks-BsbVht9n.js → hooks-DahjgK73.js} +1 -1
- package/dist/client/assets/{hover-card-CxINYsQV.js → hover-card-qkq7uvDX.js} +1 -1
- package/dist/client/assets/{import-from-deco-dialog-C0AXmTvu.js → import-from-deco-dialog-p-VjOXur.js} +1 -1
- package/dist/client/assets/{index-zqEjYnv0.js → index-BIm-U5bn.js} +1 -1
- package/dist/client/assets/{index-5btRi0pB.js → index-BQ6Tq1Ey.js} +1 -1
- package/dist/client/assets/index-BVQQKDp1.js +3 -0
- package/dist/client/assets/{index-D2D8zFsJ.js → index-Bm0JQELA.js} +1 -1
- package/dist/client/assets/{index-raVE4iMU.js → index-Bu2U14t2.js} +2 -2
- package/dist/client/assets/{index-DktH-nwk.js → index-C48xwqne.js} +1 -1
- package/dist/client/assets/{index-Btb-lxzO.js → index-C7HF4XSS.js} +1 -1
- package/dist/client/assets/index-CgAhro81.js +1 -0
- package/dist/client/assets/{index-oYU8P956.js → index-CmfaaOUl.js} +1 -1
- package/dist/client/assets/{index-Bid6pGzX.js → index-Co2aD0Mz.js} +1 -1
- package/dist/client/assets/{index-DRu0KGyt.js → index-Dm2ppVy2.js} +1 -1
- package/dist/client/assets/{index-CSjyCM-u.js → index-DtpDe7Xe.js} +1 -1
- package/dist/client/assets/{index-BuEd39Tz.js → index-MYbV77Pi.js} +1 -1
- package/dist/client/assets/{index-B7X0Dr5K.js → index-c1bVVOyj.js} +1 -1
- package/dist/client/assets/index-c31YLqeq.css +1 -0
- package/dist/client/assets/{index-DOyZEChd.js → index-pxxg1Ua1.js} +1 -1
- package/dist/client/assets/index-u1AD7q1g.js +311 -0
- package/dist/client/assets/{infiniteQueryObserver-ZgItTY4U.js → infiniteQueryObserver-IPudB3R4.js} +1 -1
- package/dist/client/assets/{input-CcEL_8zI.js → input-Gm-CLnNx.js} +1 -1
- package/dist/client/assets/{integration-icon-C6CHfqhT.js → integration-icon-DhufG1OP.js} +1 -1
- package/dist/client/assets/{label-P_F_-Q8z.js → label-Dg1F2Ji_.js} +1 -1
- package/dist/client/assets/{layout-Cy8BIgv4.js → layout-DxN-JP5j.js} +1 -1
- package/dist/client/assets/{login-C0__NyWq.js → login-CeDFoPeu.js} +1 -1
- package/dist/client/assets/{members-CvLryIsr.js → members-C7ZY1zS3.js} +1 -1
- package/dist/client/assets/{monaco-editor-BeYwPRx7.js → monaco-editor-B1LoCjUy.js} +1 -1
- package/dist/client/assets/{monitoring-stats-row-oa232c6w.js → monitoring-stats-row-CGIeGLqk.js} +1 -1
- package/dist/client/assets/{oauth-callback-nhW5Hk7K.js → oauth-callback-D2hLiO5z.js} +1 -1
- package/dist/client/assets/{oauth-callback-ai-provider-CBGn5V2N.js → oauth-callback-ai-provider-CUhBhrBY.js} +1 -1
- package/dist/client/assets/{onboarding-CJebl9bX.js → onboarding-DsIzXfJd.js} +1 -1
- package/dist/client/assets/{org-layout-C77vl6Iy.js → org-layout-BpPJBlah.js} +1 -1
- package/dist/client/assets/{org-plugin-layout-iBgNZvjR.js → org-plugin-layout-DsOGeU3B.js} +1 -1
- package/dist/client/assets/{pair-D5k2ePIl.js → pair-DI86SuRu.js} +1 -1
- package/dist/client/assets/{plugin-empty-state-C6vbSsTR.js → plugin-empty-state-BzW8VHTi.js} +1 -1
- package/dist/client/assets/{plugin-header-CERNSvWs.js → plugin-header-CaLm6qER.js} +1 -1
- package/dist/client/assets/{plugin-layout-Dqtz19-C.js → plugin-layout-DxgOHtQZ.js} +1 -1
- package/dist/client/assets/{popover-Biu5bUpE.js → popover-D3VRJyXQ.js} +1 -1
- package/dist/client/assets/{profile-CiZbXHxj.js → profile-DMlysRe7.js} +1 -1
- package/dist/client/assets/{project-app-view-C5c0g4mg.js → project-app-view-CaNf3z-H.js} +1 -1
- package/dist/client/assets/registry-BF2TVA9v.js +2 -0
- package/dist/client/assets/{registry-layout-BV5ALzTv.js → registry-layout-N0nNOTo5.js} +1 -1
- package/dist/client/assets/{required-auth-layout-6caiGmq6.js → required-auth-layout-BQpJq4ih.js} +1 -1
- package/dist/client/assets/{reset-password-D0Ak5nrj.js → reset-password-CoM0M_wG.js} +1 -1
- package/dist/client/assets/{roles-DaLbowGy.js → roles-CkNpIK8A.js} +1 -1
- package/dist/client/assets/{search-input-DN3bxChj.js → search-input-3a7FLbEN.js} +1 -1
- package/dist/client/assets/{secrets-B6jYZgCT.js → secrets-Cikerbsv.js} +1 -1
- package/dist/client/assets/{sections-editor-2l7dT3ea.js → sections-editor-KfNKSbH4.js} +1 -1
- package/dist/client/assets/{select-BI295XE-.js → select-Do-YIC95.js} +1 -1
- package/dist/client/assets/{settings-layout-0UTQAxIu.js → settings-layout-ByWOvV-3.js} +1 -1
- package/dist/client/assets/{settings-section-DCgrgvZN.js → settings-section-BsB0mtVZ.js} +1 -1
- package/dist/client/assets/{shell-controls-B5In6zvk.js → shell-controls-Cbhst9tD.js} +1 -1
- package/dist/client/assets/{shell-layout-B4sASmIz.js → shell-layout-BkOq1my0.js} +1 -1
- package/dist/client/assets/{sidebar-BQJxM_Xs.js → sidebar-lOsh0hdm.js} +1 -1
- package/dist/client/assets/{skeleton-Cz-aBL4t.js → skeleton-BF3OjMtt.js} +1 -1
- package/dist/client/assets/{sortable.esm-CVet_wfm.js → sortable.esm-Dmg5Uhtt.js} +1 -1
- package/dist/client/assets/{spinner-CW1wo-Y2.js → spinner-Bd8DWP5b.js} +1 -1
- package/dist/client/assets/{sso-DLX1tDyb.js → sso-DbdGKnQo.js} +1 -1
- package/dist/client/assets/{store-yTIcf52L.js → store-BRAZvvVu.js} +1 -1
- package/dist/client/assets/store-registry-hCqsym7u.js +2 -0
- package/dist/client/assets/{switch-Cgc8prv4.js → switch-B5i61WGx.js} +1 -1
- package/dist/client/assets/{table-Guyc6r0i.js → table-DEqMcuIQ.js} +1 -1
- package/dist/client/assets/{tabs-CbnJ7Xfx.js → tabs-BBxXSCNR.js} +1 -1
- package/dist/client/assets/{task-status-D5nCekWh.js → task-status-2lp2gBDY.js} +1 -1
- package/dist/client/assets/{textarea-CUr0kaZB.js → textarea-CWF6PLaO.js} +1 -1
- package/dist/client/assets/{toggle-group-D-Azql3v.js → toggle-group-C2V5u1t8.js} +1 -1
- package/dist/client/assets/{toolbar-DWP3DcTB.js → toolbar-BQmzXxj2.js} +1 -1
- package/dist/client/assets/{tools-list-Yx20h0-O.js → tools-list-3jqfZheT.js} +1 -1
- package/dist/client/assets/{tooltip-BrUaJepM.js → tooltip-Cd0WV_-O.js} +1 -1
- package/dist/client/assets/{types-C22VRq2r.js → types-CYOeConU.js} +1 -1
- package/dist/client/assets/{use-ai-providers-DWeBiBfE.js → use-ai-providers-CLXPn15X.js} +1 -1
- package/dist/client/assets/{use-collections-DBbGR_3H.js → use-collections-BBCeZZem.js} +1 -1
- package/dist/client/assets/{use-connection-3197jn_F.js → use-connection-BjJcNqBo.js} +1 -1
- package/dist/client/assets/{use-copy-DeOqBGNE.js → use-copy-D4i2uQwO.js} +1 -1
- package/dist/client/assets/{use-create-virtual-mcp-CDYPVS3p.js → use-create-virtual-mcp-Ddw3wBkw.js} +1 -1
- package/dist/client/assets/{use-debounced-autosave-Blm-Cns4.js → use-debounced-autosave-BwTEb7mk.js} +1 -1
- package/dist/client/assets/{use-delete-connection-CgDNCbAv.js → use-delete-connection-DPDFcsJG.js} +1 -1
- package/dist/client/assets/{use-file-configs-CkITamMd.js → use-file-configs-wxZvTo-4.js} +1 -1
- package/dist/client/assets/{use-infinite-scroll-C3Cp1KLu.js → use-infinite-scroll-DpjbqNjO.js} +1 -1
- package/dist/client/assets/{use-list-state-D2ojxj9D.js → use-list-state-BDczNd3d.js} +1 -1
- package/dist/client/assets/{use-mcp-prompts-DgIPs9M6.js → use-mcp-prompts-Di7bRUJd.js} +1 -1
- package/dist/client/assets/{use-mcp-tools-DycYaXyV.js → use-mcp-tools-CXhNiy9B.js} +1 -1
- package/dist/client/assets/{use-members-XY8cJPkc.js → use-members-v6DMcs7q.js} +1 -1
- package/dist/client/assets/{use-navigate-to-agent-VrXIL0dL.js → use-navigate-to-agent-kpoCIrmM.js} +1 -1
- package/dist/client/assets/{use-org-auth-client--KUUMHp0.js → use-org-auth-client-Dgv5Pywe.js} +1 -1
- package/dist/client/assets/{use-org-sso-mHvkRXYR.js → use-org-sso-CPMQDL7s.js} +1 -1
- package/dist/client/assets/{use-organization-roles-DvMKsAzI.js → use-organization-roles-C-Rqq_UY.js} +1 -1
- package/dist/client/assets/{use-organization-settings-yjaKZxoH.js → use-organization-settings-BxwCxkqF.js} +1 -1
- package/dist/client/assets/{use-registry-connections-CPtKKagv.js → use-registry-connections-C2RZzDsv.js} +1 -1
- package/dist/client/assets/{use-secrets-DaKsY9Qa.js → use-secrets-BL_dZet0.js} +1 -1
- package/dist/client/assets/{use-status-sounds-piyGyRnD.js → use-status-sounds-DLUmrT4z.js} +1 -1
- package/dist/client/assets/{use-view-mode-FiZLQ7H4.js → use-view-mode-CoI0L4QU.js} +1 -1
- package/dist/client/assets/{use-virtual-mcp-wzufKfmA.js → use-virtual-mcp-UctVb3-u.js} +1 -1
- package/dist/client/assets/useInfiniteQuery-MQVrgaFy.js +1 -0
- package/dist/client/assets/{useRouterState-C5I8d05V.js → useRouterState-UCBrkWDt.js} +1 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-ylt-kbBo.js +1 -0
- package/dist/client/assets/{user-CGJGTWyL.js → user-5jBi409R.js} +1 -1
- package/dist/client/assets/{view-mode-toggle-BV9N1_6z.js → view-mode-toggle-BY41fwj1.js} +1 -1
- package/dist/client/assets/workflow-detail-CIJ57Bal.js +1 -0
- package/dist/client/assets/{workflow-BhGQkDG3.js → workflow-jx_Dwi4p.js} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/server/cli.js +76 -9
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/OTLPExporterBase.d.ts +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/OTLPExporterBase.js +2 -2
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/OTLPExporterBase.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/configuration/convert-legacy-browser-http-options.js +2 -2
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/configuration/convert-legacy-browser-http-options.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/configuration/convert-legacy-node-http-options.js +2 -2
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/configuration/convert-legacy-node-http-options.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/configuration/create-legacy-browser-delegate.js +7 -2
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/configuration/create-legacy-browser-delegate.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/configuration/legacy-base-configuration.d.ts +1 -26
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/configuration/legacy-base-configuration.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/configuration/otlp-http-configuration.d.ts +1 -2
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/configuration/otlp-http-configuration.js +9 -9
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/configuration/otlp-http-configuration.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/configuration/shared-configuration.d.ts +1 -2
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/configuration/shared-configuration.js +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/configuration/shared-configuration.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/export-response.d.ts +0 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/export-response.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/index-browser-http.d.ts +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/index-browser-http.js +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/index-browser-http.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/is-export-retryable.d.ts +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/is-export-retryable.js +3 -5
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/is-export-retryable.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/otlp-browser-http-export-delegate.d.ts +4 -0
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/otlp-browser-http-export-delegate.js +10 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/otlp-browser-http-export-delegate.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/otlp-export-delegate.js +8 -9
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/otlp-export-delegate.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/retrying-transport.js +5 -17
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/retrying-transport.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/transport/fetch-transport.d.ts +1 -2
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/transport/fetch-transport.js +8 -13
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/transport/fetch-transport.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/transport/http-exporter-transport.js +4 -5
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/transport/http-exporter-transport.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/transport/http-transport-types.d.ts +1 -2
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/transport/http-transport-types.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/transport/http-transport-utils.d.ts +2 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/transport/http-transport-utils.js +14 -37
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/transport/http-transport-utils.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/transport/send-beacon-transport.d.ts +2 -4
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/transport/send-beacon-transport.js +4 -5
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/transport/send-beacon-transport.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/transport/xhr-transport.d.ts +17 -0
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/transport/xhr-transport.js +86 -0
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/transport/xhr-transport.js.map +1 -0
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/util.d.ts +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/util.js +12 -10
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/util.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/version.d.ts +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/version.js +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/version.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/OTLPExporterBase.d.ts +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/OTLPExporterBase.js +2 -2
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/OTLPExporterBase.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/configuration/convert-legacy-browser-http-options.js +2 -2
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/configuration/convert-legacy-browser-http-options.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/configuration/convert-legacy-node-http-options.js +2 -2
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/configuration/convert-legacy-node-http-options.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/configuration/create-legacy-browser-delegate.js +7 -2
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/configuration/create-legacy-browser-delegate.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/configuration/legacy-base-configuration.d.ts +1 -26
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/configuration/legacy-base-configuration.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/configuration/otlp-http-configuration.d.ts +1 -2
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/configuration/otlp-http-configuration.js +9 -9
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/configuration/otlp-http-configuration.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/configuration/shared-configuration.d.ts +1 -2
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/configuration/shared-configuration.js +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/configuration/shared-configuration.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/export-response.d.ts +0 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/export-response.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/index-browser-http.d.ts +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/index-browser-http.js +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/index-browser-http.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/is-export-retryable.d.ts +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/is-export-retryable.js +3 -5
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/is-export-retryable.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/otlp-browser-http-export-delegate.d.ts +4 -0
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/otlp-browser-http-export-delegate.js +10 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/otlp-browser-http-export-delegate.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/otlp-export-delegate.js +8 -9
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/otlp-export-delegate.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/retrying-transport.js +5 -17
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/retrying-transport.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/transport/fetch-transport.d.ts +1 -2
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/transport/fetch-transport.js +8 -13
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/transport/fetch-transport.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/transport/http-exporter-transport.js +4 -5
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/transport/http-exporter-transport.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/transport/http-transport-types.d.ts +1 -2
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/transport/http-transport-types.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/transport/http-transport-utils.d.ts +2 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/transport/http-transport-utils.js +14 -37
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/transport/http-transport-utils.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/transport/send-beacon-transport.d.ts +2 -4
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/transport/send-beacon-transport.js +4 -5
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/transport/send-beacon-transport.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/transport/xhr-transport.d.ts +17 -0
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/transport/xhr-transport.js +86 -0
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/transport/xhr-transport.js.map +1 -0
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/util.d.ts +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/util.js +12 -10
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/util.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/version.d.ts +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/version.js +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/version.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/OTLPExporterBase.d.ts +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/OTLPExporterBase.js +2 -2
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/OTLPExporterBase.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/configuration/convert-legacy-browser-http-options.js +2 -2
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/configuration/convert-legacy-browser-http-options.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/configuration/convert-legacy-node-http-options.js +2 -2
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/configuration/convert-legacy-node-http-options.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/configuration/create-legacy-browser-delegate.js +6 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/configuration/create-legacy-browser-delegate.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/configuration/legacy-base-configuration.d.ts +1 -26
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/configuration/legacy-base-configuration.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/configuration/otlp-http-configuration.d.ts +1 -2
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/configuration/otlp-http-configuration.js +9 -9
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/configuration/otlp-http-configuration.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/configuration/shared-configuration.d.ts +1 -2
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/configuration/shared-configuration.js +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/configuration/shared-configuration.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/export-response.d.ts +0 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/export-response.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/index-browser-http.d.ts +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/index-browser-http.js +2 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/index-browser-http.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/is-export-retryable.d.ts +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/is-export-retryable.js +5 -7
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/is-export-retryable.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/otlp-browser-http-export-delegate.d.ts +4 -0
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/otlp-browser-http-export-delegate.js +12 -2
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/otlp-browser-http-export-delegate.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/otlp-export-delegate.js +8 -9
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/otlp-export-delegate.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/retrying-transport.js +5 -17
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/retrying-transport.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/transport/fetch-transport.d.ts +1 -2
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/transport/fetch-transport.js +7 -12
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/transport/fetch-transport.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/transport/http-exporter-transport.js +4 -5
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/transport/http-exporter-transport.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/transport/http-transport-types.d.ts +1 -2
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/transport/http-transport-types.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/transport/http-transport-utils.d.ts +2 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/transport/http-transport-utils.js +13 -36
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/transport/http-transport-utils.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/transport/send-beacon-transport.d.ts +2 -4
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/transport/send-beacon-transport.js +4 -5
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/transport/send-beacon-transport.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/transport/xhr-transport.d.ts +17 -0
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/transport/xhr-transport.js +90 -0
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/transport/xhr-transport.js.map +1 -0
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/util.d.ts +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/util.js +12 -10
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/util.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/version.d.ts +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/version.js +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/version.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/package.json +6 -6
- package/dist/server/node_modules/@opentelemetry/otlp-transformer/build/esm/generated/root.js +6 -36
- package/dist/server/node_modules/@opentelemetry/otlp-transformer/build/esm/generated/root.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-transformer/build/esm/trace/internal.js +0 -15
- package/dist/server/node_modules/@opentelemetry/otlp-transformer/build/esm/trace/internal.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-transformer/build/esnext/generated/root.js +6 -36
- package/dist/server/node_modules/@opentelemetry/otlp-transformer/build/esnext/generated/root.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-transformer/build/esnext/trace/internal.js +0 -15
- package/dist/server/node_modules/@opentelemetry/otlp-transformer/build/esnext/trace/internal.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-transformer/build/src/generated/root.js +6 -36
- package/dist/server/node_modules/@opentelemetry/otlp-transformer/build/src/generated/root.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-transformer/build/src/trace/internal.js +0 -15
- package/dist/server/node_modules/@opentelemetry/otlp-transformer/build/src/trace/internal.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/otlp-transformer/package.json +14 -12
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/InstrumentDescriptor.js +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/InstrumentDescriptor.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/Instruments.d.ts +3 -3
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/Instruments.js +6 -6
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/Instruments.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/Meter.d.ts +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/Meter.js +2 -2
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/Meter.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/ObservableResult.d.ts +3 -3
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/ObservableResult.js +5 -5
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/ObservableResult.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/aggregator/ExponentialHistogram.d.ts +3 -3
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/aggregator/ExponentialHistogram.js +17 -17
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/aggregator/ExponentialHistogram.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/aggregator/Histogram.d.ts +3 -3
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/aggregator/Histogram.js +8 -8
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/aggregator/Histogram.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/aggregator/LastValue.d.ts +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/aggregator/LastValue.js +2 -2
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/aggregator/LastValue.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/aggregator/Sum.d.ts +2 -2
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/aggregator/Sum.js +3 -3
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/aggregator/Sum.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/aggregator/exponential-histogram/Buckets.d.ts +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/aggregator/exponential-histogram/Buckets.js +2 -2
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/aggregator/exponential-histogram/Buckets.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/export/ConsoleMetricExporter.js +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/export/ConsoleMetricExporter.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/export/MetricReader.js +3 -3
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/export/MetricReader.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/export/PeriodicExportingMetricReader.js +14 -21
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/export/PeriodicExportingMetricReader.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/AsyncMetricStorage.d.ts +2 -2
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/AsyncMetricStorage.js +4 -4
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/AsyncMetricStorage.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/DeltaMetricProcessor.d.ts +2 -2
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/DeltaMetricProcessor.js +3 -3
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/DeltaMetricProcessor.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/HashMap.d.ts +2 -2
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/HashMap.js +3 -3
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/HashMap.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/MeterProviderSharedState.d.ts +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/MeterProviderSharedState.js +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/MeterProviderSharedState.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/MeterSharedState.d.ts +3 -3
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/MeterSharedState.js +11 -12
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/MeterSharedState.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/MetricCollector.d.ts +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/MetricCollector.js +3 -3
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/MetricCollector.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/MetricStorage.d.ts +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/MetricStorage.js +2 -2
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/MetricStorage.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/MultiWritableMetricStorage.d.ts +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/MultiWritableMetricStorage.js +2 -2
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/MultiWritableMetricStorage.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/ObservableRegistry.js +4 -4
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/ObservableRegistry.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/SyncMetricStorage.d.ts +2 -2
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/SyncMetricStorage.js +4 -4
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/SyncMetricStorage.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/TemporalMetricProcessor.d.ts +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/TemporalMetricProcessor.js +2 -2
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/TemporalMetricProcessor.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/utils.d.ts +19 -0
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/utils.js +36 -0
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/utils.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/version.d.ts +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/version.js +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/version.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/view/Aggregation.d.ts +3 -3
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/view/Aggregation.js +6 -6
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/view/Aggregation.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/view/AttributesProcessor.js +12 -16
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/view/AttributesProcessor.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/InstrumentDescriptor.js +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/InstrumentDescriptor.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/Instruments.d.ts +3 -3
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/Instruments.js +6 -6
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/Instruments.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/Meter.d.ts +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/Meter.js +2 -2
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/Meter.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/ObservableResult.d.ts +3 -3
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/ObservableResult.js +5 -5
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/ObservableResult.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/aggregator/ExponentialHistogram.d.ts +3 -3
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/aggregator/ExponentialHistogram.js +17 -17
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/aggregator/ExponentialHistogram.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/aggregator/Histogram.d.ts +3 -3
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/aggregator/Histogram.js +8 -8
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/aggregator/Histogram.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/aggregator/LastValue.d.ts +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/aggregator/LastValue.js +2 -2
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/aggregator/LastValue.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/aggregator/Sum.d.ts +2 -2
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/aggregator/Sum.js +3 -3
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/aggregator/Sum.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/aggregator/exponential-histogram/Buckets.d.ts +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/aggregator/exponential-histogram/Buckets.js +2 -2
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/aggregator/exponential-histogram/Buckets.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/export/ConsoleMetricExporter.js +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/export/ConsoleMetricExporter.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/export/MetricReader.js +3 -3
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/export/MetricReader.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/export/PeriodicExportingMetricReader.js +14 -21
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/export/PeriodicExportingMetricReader.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/AsyncMetricStorage.d.ts +2 -2
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/AsyncMetricStorage.js +4 -4
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/AsyncMetricStorage.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/DeltaMetricProcessor.d.ts +2 -2
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/DeltaMetricProcessor.js +3 -3
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/DeltaMetricProcessor.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/HashMap.d.ts +2 -2
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/HashMap.js +3 -3
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/HashMap.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/MeterProviderSharedState.d.ts +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/MeterProviderSharedState.js +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/MeterProviderSharedState.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/MeterSharedState.d.ts +3 -3
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/MeterSharedState.js +11 -12
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/MeterSharedState.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/MetricCollector.d.ts +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/MetricCollector.js +3 -3
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/MetricCollector.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/MetricStorage.d.ts +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/MetricStorage.js +2 -2
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/MetricStorage.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/MultiWritableMetricStorage.d.ts +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/MultiWritableMetricStorage.js +2 -2
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/MultiWritableMetricStorage.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/ObservableRegistry.js +4 -4
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/ObservableRegistry.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/SyncMetricStorage.d.ts +2 -2
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/SyncMetricStorage.js +4 -4
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/SyncMetricStorage.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/TemporalMetricProcessor.d.ts +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/TemporalMetricProcessor.js +2 -2
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/TemporalMetricProcessor.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/utils.d.ts +19 -0
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/utils.js +36 -0
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/utils.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/version.d.ts +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/version.js +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/version.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/view/Aggregation.d.ts +3 -3
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/view/Aggregation.js +6 -6
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/view/Aggregation.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/view/AttributesProcessor.js +12 -16
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/view/AttributesProcessor.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/InstrumentDescriptor.js +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/InstrumentDescriptor.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/Instruments.d.ts +3 -3
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/Instruments.js +6 -6
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/Instruments.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/Meter.d.ts +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/Meter.js +2 -2
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/Meter.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/ObservableResult.d.ts +3 -3
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/ObservableResult.js +5 -5
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/ObservableResult.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/ExponentialHistogram.d.ts +3 -3
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/ExponentialHistogram.js +17 -17
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/ExponentialHistogram.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/Histogram.d.ts +3 -3
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/Histogram.js +8 -8
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/Histogram.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/LastValue.d.ts +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/LastValue.js +2 -2
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/LastValue.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/Sum.d.ts +2 -2
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/Sum.js +3 -3
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/Sum.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/exponential-histogram/Buckets.d.ts +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/exponential-histogram/Buckets.js +2 -2
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/exponential-histogram/Buckets.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/export/ConsoleMetricExporter.js +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/export/ConsoleMetricExporter.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/export/MetricReader.js +2 -2
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/export/MetricReader.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/export/PeriodicExportingMetricReader.js +14 -21
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/export/PeriodicExportingMetricReader.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/AsyncMetricStorage.d.ts +2 -2
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/AsyncMetricStorage.js +4 -4
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/AsyncMetricStorage.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/DeltaMetricProcessor.d.ts +2 -2
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/DeltaMetricProcessor.js +3 -3
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/DeltaMetricProcessor.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/HashMap.d.ts +2 -2
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/HashMap.js +3 -3
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/HashMap.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/MeterProviderSharedState.d.ts +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/MeterProviderSharedState.js +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/MeterProviderSharedState.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/MeterSharedState.d.ts +3 -3
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/MeterSharedState.js +11 -12
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/MeterSharedState.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/MetricCollector.d.ts +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/MetricCollector.js +3 -3
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/MetricCollector.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/MetricStorage.d.ts +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/MetricStorage.js +2 -2
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/MetricStorage.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/MultiWritableMetricStorage.d.ts +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/MultiWritableMetricStorage.js +2 -2
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/MultiWritableMetricStorage.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/ObservableRegistry.js +3 -3
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/ObservableRegistry.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/SyncMetricStorage.d.ts +2 -2
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/SyncMetricStorage.js +4 -4
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/SyncMetricStorage.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/TemporalMetricProcessor.d.ts +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/TemporalMetricProcessor.js +2 -2
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/TemporalMetricProcessor.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/utils.d.ts +19 -0
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/utils.js +41 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/utils.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/version.d.ts +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/version.js +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/version.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/view/Aggregation.d.ts +3 -3
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/view/Aggregation.js +6 -6
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/view/Aggregation.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/view/AttributesProcessor.js +12 -16
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/view/AttributesProcessor.js.map +1 -1
- package/dist/server/node_modules/@opentelemetry/sdk-metrics/package.json +6 -6
- package/dist/server/node_modules/ansi-styles/index.d.ts +236 -0
- package/dist/server/node_modules/ansi-styles/index.js +223 -0
- package/dist/server/node_modules/ansi-styles/license +9 -0
- package/dist/server/node_modules/ansi-styles/package.json +54 -0
- package/dist/server/node_modules/ansi-styles/readme.md +173 -0
- package/dist/server/node_modules/pg-connection-string/LICENSE +21 -0
- package/dist/server/node_modules/pg-connection-string/README.md +105 -0
- package/dist/server/node_modules/pg-connection-string/esm/index.mjs +8 -0
- package/dist/server/node_modules/pg-connection-string/index.d.ts +36 -0
- package/dist/server/node_modules/pg-connection-string/index.js +231 -0
- package/dist/server/node_modules/pg-connection-string/package.json +52 -0
- package/dist/server/server.js +1 -1
- package/package.json +1 -1
- package/dist/client/assets/index-CZPd3hrs.js +0 -311
- package/dist/client/assets/index-CdAXbXCD.js +0 -1
- package/dist/client/assets/index-DsfxL555.js +0 -3
- package/dist/client/assets/index-DzRaXx8g.css +0 -1
- package/dist/client/assets/registry-a_Y0eqBG.js +0 -2
- package/dist/client/assets/store-registry-ClO-HCd4.js +0 -2
- package/dist/client/assets/useInfiniteQuery-Dn69KZzX.js +0 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-CFbzjyFd.js +0 -1
- package/dist/client/assets/workflow-detail-CgGFXY1-.js +0 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/configuration/convert-legacy-http-options.d.ts +0 -4
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/configuration/convert-legacy-http-options.js +0 -23
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/configuration/convert-legacy-http-options.js.map +0 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/configuration/convert-legacy-http-options.d.ts +0 -4
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/configuration/convert-legacy-http-options.js +0 -23
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/configuration/convert-legacy-http-options.js.map +0 -1
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/configuration/convert-legacy-http-options.d.ts +0 -4
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/configuration/convert-legacy-http-options.js +0 -27
- package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/configuration/convert-legacy-http-options.js.map +0 -1
package/dist/server/cli.js
CHANGED
|
@@ -12682,8 +12682,8 @@ function readWorkingFile(repoDir, filePath) {
|
|
|
12682
12682
|
return null;
|
|
12683
12683
|
}
|
|
12684
12684
|
}
|
|
12685
|
-
function
|
|
12686
|
-
return tryGit2(repoDir, ["show",
|
|
12685
|
+
function readRefFile(repoDir, ref, filePath) {
|
|
12686
|
+
return tryGit2(repoDir, ["show", \`\${ref}:\${filePath}\`]);
|
|
12687
12687
|
}
|
|
12688
12688
|
function computeDiff(repoDir) {
|
|
12689
12689
|
const status = computeStatus(repoDir);
|
|
@@ -12696,14 +12696,64 @@ function computeDiff(repoDir) {
|
|
|
12696
12696
|
const index = file?.index ?? " ";
|
|
12697
12697
|
const working = file?.working_dir ?? " ";
|
|
12698
12698
|
const isDeleted = index === "D" || working === "D";
|
|
12699
|
-
const isNew = index === "?" && working === "?" || index === "A" || working === "A" || !
|
|
12699
|
+
const isNew = index === "?" && working === "?" || index === "A" || working === "A" || !readRefFile(repoDir, "HEAD", filePath) && !isDeleted;
|
|
12700
12700
|
diffs[filePath] = {
|
|
12701
|
-
from: isNew ? null :
|
|
12701
|
+
from: isNew ? null : readRefFile(repoDir, "HEAD", filePath),
|
|
12702
12702
|
to: isDeleted ? null : readWorkingFile(repoDir, filePath)
|
|
12703
12703
|
};
|
|
12704
12704
|
}
|
|
12705
12705
|
return { diffs };
|
|
12706
12706
|
}
|
|
12707
|
+
function computeDiffAgainstBase(repoDir, base, headSha) {
|
|
12708
|
+
assertValidRemoteBranchName(base);
|
|
12709
|
+
const branch = tryGit2(repoDir, ["rev-parse", "--abbrev-ref", "HEAD"]);
|
|
12710
|
+
if (!branch || branch === "HEAD") {
|
|
12711
|
+
throw new Error("Cannot compute PR diff from detached HEAD");
|
|
12712
|
+
}
|
|
12713
|
+
assertValidRemoteBranchName(branch);
|
|
12714
|
+
try {
|
|
12715
|
+
runGit2(repoDir, ["fetch", "--depth", "100", "origin", base, branch]);
|
|
12716
|
+
} catch {}
|
|
12717
|
+
if (headSha && /^[0-9a-f]{40}$/i.test(headSha)) {
|
|
12718
|
+
tryGit2(repoDir, ["fetch", "--depth", "100", "origin", headSha]);
|
|
12719
|
+
}
|
|
12720
|
+
const upstream = \`origin/\${base}\`;
|
|
12721
|
+
if (!tryGit2(repoDir, ["rev-parse", "--verify", upstream])) {
|
|
12722
|
+
throw new Error(\`Base branch '\${base}' not found on origin\`);
|
|
12723
|
+
}
|
|
12724
|
+
const remoteHead = \`origin/\${branch}\`;
|
|
12725
|
+
let headRef = "HEAD";
|
|
12726
|
+
if (headSha && tryGit2(repoDir, ["rev-parse", "--verify", \`\${headSha}^{commit}\`]) !== null) {
|
|
12727
|
+
headRef = headSha;
|
|
12728
|
+
} else if (tryGit2(repoDir, ["rev-parse", "--verify", remoteHead])) {
|
|
12729
|
+
headRef = remoteHead;
|
|
12730
|
+
}
|
|
12731
|
+
let paths = listThreeDotDiffPaths(repoDir, upstream, headRef);
|
|
12732
|
+
if (paths.length === 0) {
|
|
12733
|
+
try {
|
|
12734
|
+
runGit2(repoDir, ["fetch", "--deepen", "500", "origin", base, branch]);
|
|
12735
|
+
} catch {}
|
|
12736
|
+
paths = listThreeDotDiffPaths(repoDir, upstream, headRef);
|
|
12737
|
+
}
|
|
12738
|
+
const mergeBase = tryGit2(repoDir, ["merge-base", upstream, headRef]) ?? upstream;
|
|
12739
|
+
const diffs = {};
|
|
12740
|
+
for (const filePath of paths) {
|
|
12741
|
+
diffs[filePath] = {
|
|
12742
|
+
from: readRefFile(repoDir, mergeBase, filePath),
|
|
12743
|
+
to: readRefFile(repoDir, headRef, filePath)
|
|
12744
|
+
};
|
|
12745
|
+
}
|
|
12746
|
+
return { diffs, mergeBaseSha: mergeBase.trim() };
|
|
12747
|
+
}
|
|
12748
|
+
function listThreeDotDiffPaths(repoDir, leftRef, rightRef) {
|
|
12749
|
+
const namesOutput = tryGit2(repoDir, [
|
|
12750
|
+
"diff",
|
|
12751
|
+
"--name-only",
|
|
12752
|
+
"-z",
|
|
12753
|
+
\`\${leftRef}...\${rightRef}\`
|
|
12754
|
+
]);
|
|
12755
|
+
return namesOutput ? namesOutput.split("\\x00").filter(Boolean) : [];
|
|
12756
|
+
}
|
|
12707
12757
|
function stripAnsi2(text) {
|
|
12708
12758
|
const esc = String.fromCharCode(27);
|
|
12709
12759
|
return text.replace(new RegExp(\`\${esc}\\\\[[0-9;]*m\`, "g"), "");
|
|
@@ -12772,7 +12822,7 @@ function discard(deps, filepaths) {
|
|
|
12772
12822
|
const toRestore = [];
|
|
12773
12823
|
const toDelete = [];
|
|
12774
12824
|
for (const fp of validated) {
|
|
12775
|
-
const isNew = status.not_added.includes(fp) || status.created.includes(fp) ||
|
|
12825
|
+
const isNew = status.not_added.includes(fp) || status.created.includes(fp) || readRefFile(repoDir, "HEAD", fp) === null;
|
|
12776
12826
|
if (isNew)
|
|
12777
12827
|
toDelete.push(fp);
|
|
12778
12828
|
else
|
|
@@ -12798,10 +12848,27 @@ function makeGitStatusHandler(deps) {
|
|
|
12798
12848
|
};
|
|
12799
12849
|
}
|
|
12800
12850
|
function makeGitDiffHandler(deps) {
|
|
12801
|
-
return async (
|
|
12851
|
+
return async (req) => {
|
|
12802
12852
|
try {
|
|
12803
|
-
|
|
12853
|
+
let base;
|
|
12854
|
+
let headSha;
|
|
12855
|
+
if (req.method === "POST") {
|
|
12856
|
+
try {
|
|
12857
|
+
const body = await parseJsonBody(req);
|
|
12858
|
+
const rawBase = typeof body.base === "string" ? body.base.trim() : "";
|
|
12859
|
+
const rawHead = typeof body.headSha === "string" ? body.headSha.trim() : "";
|
|
12860
|
+
if (rawBase)
|
|
12861
|
+
base = rawBase;
|
|
12862
|
+
if (rawHead)
|
|
12863
|
+
headSha = rawHead;
|
|
12864
|
+
} catch {}
|
|
12865
|
+
}
|
|
12866
|
+
const result = base ? computeDiffAgainstBase(deps.repoDir, base, headSha) : computeDiff(deps.repoDir);
|
|
12867
|
+
return jsonResponse(result);
|
|
12804
12868
|
} catch (err) {
|
|
12869
|
+
if (err instanceof InvalidRemoteBranchNameError) {
|
|
12870
|
+
return jsonResponse({ error: err.message }, 400);
|
|
12871
|
+
}
|
|
12805
12872
|
return jsonResponse({ error: err instanceof Error ? err.message : String(err) }, 500);
|
|
12806
12873
|
}
|
|
12807
12874
|
};
|
|
@@ -76082,7 +76149,7 @@ AS SELECT
|
|
|
76082
76149
|
FROM monitoring_metrics
|
|
76083
76150
|
GROUP BY organization_id, name, bucket, connection_id, tool_name, status
|
|
76084
76151
|
`}),console.log("[clickhouse-schema] monitoring_metrics_rollup_1m_mv view ready")}finally{await f.close()}}catch(u){console.error("[clickhouse-schema] Failed to create rollup DDL (queries will fall back to raw table):",u)}}async function xz0($){let u={...process.env},f=G20($,u),X=f.settings.encryptionKey;console.log(`[settings] ENCRYPTION_KEY = ${JSON.stringify(X)} (${X.length} chars)`);let{ensureServices:w}=await Promise.resolve().then(() => (zl(),Ol)),{outputs:J,services:E}=await w({home:f.settings.dataDir,externalDatabaseUrl:f.externalDatabaseUrl,externalNatsUrl:f.externalNatsUrl});if(!f.skipMigrations){let{migrateBetterAuth:Y}=await Promise.resolve().then(() => (CX1(),uF4));await Y(J.databaseUrl);let{createDatabase:Z}=await Promise.resolve().then(() => (CQ(),$F4)),{migrateToLatest:W}=await Promise.resolve().then(() => (bT4(),VT4)),G=Z(J.databaseUrl);await W({keepOpen:!0,database:G,skipBetterAuth:!0})}if(f.settings.clickhouseUrl){let{ensureClickHouseRollup:Y}=await Promise.resolve().then(() => iI4);await Y(f.settings.clickhouseUrl)}let Q={...f.settings,databaseUrl:J.databaseUrl,natsUrls:J.natsUrls};return lc1(Q),{settings:Q,services:E.map((Y)=>({name:Y.name==="PostgreSQL"?"Postgres":Y.name,port:Y.port})),managedServiceNames:E.filter((Y)=>Y.owner==="managed").map((Y)=>Y.name)}}var k21=U(()=>{eo0();_f()});var dz0={};Q1(dz0,{updateService:()=>AL,toggleViewMode:()=>C21,toggleVibeState:()=>M21,toggleLogFlow:()=>q21,subscribeCliState:()=>wf0,setVibe:()=>bou,setTuiConsoleIntercepted:()=>lz0,setServerUrl:()=>Ef0,setMigrationsDone:()=>Jf0,setEnv:()=>Qf0,setDevMode:()=>gou,setDataDir:()=>Vou,isTuiConsoleIntercepted:()=>cz0,getCliState:()=>Xf0,addLogEntry:()=>Av});function YZ(){for(let $ of R21)$()}function Xf0(){return Qf}function wf0($){return R21.add($),()=>R21.delete($)}function AL($){Qf={...Qf,services:Qf.services.map((u)=>u.name===$.name?$:u)},YZ()}function Jf0(){Qf={...Qf,migrationsStatus:"done"},YZ()}function Ef0($){Qf={...Qf,serverUrl:$},YZ()}function Qf0($){Qf={...Qf,env:$},YZ()}function Av($){let u=[...Qf.logs,$];Qf={...Qf,logs:u.length>500?u.slice(-500):u},YZ()}function gou($={}){Qf={...Qf,services:[...Qf.services,{name:"Vite",status:"pending",port:0},...$.localSandboxProvider?[{name:"Sandbox",status:"pending",port:0}]:[]]},YZ()}function C21(){Qf={...Qf,viewMode:Qf.viewMode==="requests"?"config":"requests"},YZ()}function q21(){Qf={...Qf,logFlow:!Qf.logFlow},YZ()}function Vou($){Qf={...Qf,dataDir:$},YZ()}function bou($){Qf={...Qf,vibe:$},YZ()}function M21(){Qf={...Qf,vibe:!Qf.vibe},YZ()}function lz0($){xI4=$}function cz0(){return xI4}var Qf,R21,xI4=!1;var kG=U(()=>{Qf={services:[{name:"Postgres",status:"pending",port:0},{name:"NATS",status:"pending",port:0}],migrationsStatus:"pending",serverUrl:null,env:null,logs:[],viewMode:"requests",logFlow:!1,vibe:!1,dataDir:null},R21=new Set});import{createServer as lI4}from"net";function iou($){return new Promise((u)=>{let f=lI4();f.once("error",()=>u(!1)),f.listen($,"0.0.0.0",()=>{f.close(()=>u(!0))})})}async function mz0($){if(await iou($))return $;let u=await new Promise((f,X)=>{let w=lI4();w.once("error",X),w.listen(0,"0.0.0.0",()=>{let J=w.address(),E=typeof J==="object"&&J?J.port:0;w.close(()=>f(E))})});return console.warn(`Port ${$} is in use, using port ${u} instead.`),u}var h21=()=>{};import{createServer as xou}from"net";async function cou($){for(let u of lou)if(await dou(u,$))return u;return null}async function y21($,{intervalMs:u=1000}={}){for(;;){let f=await cou($);if(f)return f;await new Promise((X)=>setTimeout(X,u))}}function dou($,u){return new Promise((f)=>{let X=xou();X.once("error",(w)=>{f(w.code==="EADDRINUSE")}),X.listen(u,$,()=>{X.close(()=>f(!1))})})}var lou;var cI4=U(()=>{lou=["localhost","127.0.0.1","0.0.0.0"]});var g21={};Q1(g21,{startDevServer:()=>tou});import{existsSync as mou}from"fs";import{tmpdir as nou}from"os";import{join as nz0}from"path";function dI4($){return $.replace(/\x1b\[[0-9;]*m/g,"")}function tz0($){let u=$.getReader(),f=new TextDecoder,X="";function w(){let J=X.split(`
|
|
76085
|
-
`);X=J.pop()??"";for(let E of J){let Q=dI4(E).replace(/^\[\d+\]\s*/,"").trim();if(!Q)continue;Av({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:Q})}}(async()=>{for(;;){let{done:J,value:E}=await u.read();if(J)break;X+=f.decode(E,{stream:!0}),w()}if(X.trim()){let J=dI4(X).replace(/^\[\d+\]\s*/,"").trim();if(J)Av({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:J})}})()}async function tou($){let{vitePort:u,baseUrl:f,noTui:X}=$,w=await mz0(Number($.port)),{settings:J,services:E,managedServiceNames:Q}=await xz0({port:String(w),home:$.home,baseUrl:$.baseUrl,localMode:$.localMode,skipMigrations:$.skipMigrations,noTui:$.noTui,vitePort:$.vitePort});for(let O of E)AL({name:O.name,status:"ready",port:O.port});Qf0(J),Jf0();let Y=nz0(import.meta.dir,"..","..","..","..",".."),Z=process.env.WORKTREE_SLUG??process.env.CONDUCTOR_WORKSPACE_NAME??"default",W=nz0(nou(),`decocms-dev-link-${Z}`),G=X===!0,F=Bun.spawn(["bun","run","--cwd=apps/mesh","dev:servers"],{cwd:Y,env:{...process.env,PORT:String(J.port),VITE_PORT:String(u),DATABASE_URL:J.databaseUrl,NATS_URL:J.natsUrls.join(","),NODE_ENV:J.nodeEnv,DECOCMS_LOCAL_MODE:String(J.localMode),DECOCMS_HOME:J.dataDir,DATA_DIR:J.dataDir,DECO_CLI:"1",MESH_ALLOW_LOCALHOST_LINKS:"1",DEV_LINK_SESSION_PATH:nz0(W,"session.json"),...J.baseUrl?{BASE_URL:J.baseUrl}:{}},stdio:["inherit",G?"inherit":"pipe",G?"inherit":"pipe"]});if(!G)tz0(F.stdout),tz0(F.stderr);let B=f||`http://localhost:${J.port}`;Ef0(B),AL({name:"Vite",status:"ready",port:Number(u)});let v=!$.localSandboxProvider?Promise.resolve(null):(async()=>{let{ensureLink:O}=await Promise.resolve().then(() => (zl(),Ol));try{let{info:z,proc:H}=await O({home:J.dataDir,clusterUrl:B,linkDataDir:W,repoRoot:Y,stdio:["inherit",G?"inherit":"pipe",G?"inherit":"pipe"],onSpawn:(j)=>{if(G)return;tz0(j.stdout),tz0(j.stderr)},beforeSpawn:async()=>{await y21(Number(J.port),{intervalMs:500});let j=nz0(W,"session.json"),A=Date.now()+60000;while(!mou(j)){if(Date.now()>A)throw Error(`dev-link session not written to ${j} within 60s`);await new Promise((L)=>setTimeout(L,500))}}});return y21(z.port,{intervalMs:500}).then(()=>{AL({name:"Sandbox",status:"ready",port:z.port})}).catch(()=>{}),H}catch(z){return Av({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:`[link] failed to start: ${z instanceof Error?z.message:String(z)}`}),null}})(),N=async(O)=>{if(await v.catch(()=>null),$.localSandboxProvider){let{stopLink:z}=await Promise.resolve().then(() => (zl(),Ol));try{await z(J.dataDir)}catch{}}if(F.kill(O),await F.exited,Q.length>0){let{stopServices:z}=await Promise.resolve().then(() => (zl(),Ol));await z(J.dataDir)}};return process.on("SIGINT",()=>N("SIGINT")),process.on("SIGTERM",()=>N("SIGTERM")),{port:Number(J.port),process:F}}var V21=U(()=>{k21();kG();h21();cI4()});import{Box as b21,Text as i21}from"ink";import{jsx as nI4,jsxs as rz0}from"react/jsx-runtime";function mI4($){if(!$)return"not set";try{let u=new URL($);if(u.password)u.password="***";if(u.username&&u.username.length>3)u.username=u.username.slice(0,3)+"***";return u.pathname="/",u.search="",u.hash="",u.toString()}catch{if($.length<=10)return $;return $.slice(0,6)+"***"+$.slice(-4)}}function pou($,u){if(rou.has($))return u?{text:"\u25CF\u25CF\u25CF\u25CF\u25CF\u25CF",dimColor:!0}:{text:"not set",dimColor:!0};if(aou.has($)){if(Array.isArray(u)){if(u.length===0)return{text:"not set",dimColor:!0};return{text:u.map((J)=>mI4(J)).join(", "),color:"cyan"}}let X=mI4(u);return X==="not set"?{text:X,dimColor:!0}:{text:X,color:"cyan"}}if(u===void 0||u===null||u==="")return{text:"not set",dimColor:!0};let f=String(u);if(f==="true")return{text:f,color:"green"};if(f==="false")return{text:f,color:"yellow"};try{return new URL(f),{text:f,color:"cyan"}}catch{return{text:f}}}function oou($){return[{title:"Core",entries:[{key:"NODE_ENV",value:$.nodeEnv},{key:"PORT",value:$.port},{key:"BASE_URL",value:$.baseUrl??`http://localhost:${$.port}`},{key:"DATA_DIR",value:$.dataDir}]},{title:"Database",entries:[{key:"DATABASE_URL",value:$.databaseUrl},{key:"DATABASE_PG_SSL",value:$.databasePgSsl}]},{title:"Auth & Secrets",entries:[{key:"BETTER_AUTH_SECRET",value:$.betterAuthSecret},{key:"ENCRYPTION_KEY",value:$.encryptionKey},{key:"MESH_JWT_SECRET",value:$.meshJwtSecret},{key:"STUDIO_PROVISION_SECRET_KEY",value:$.studioProvisionSecretKey},{key:"DISABLE_RATE_LIMIT",value:$.disableRateLimit}]},{title:"Auth Providers",entries:[{key:"AUTH_EMAIL_PASSWORD_ENABLED",value:process.env.AUTH_EMAIL_PASSWORD_ENABLED??"true"},{key:"AUTH_GOOGLE_CLIENT_ID",value:!!process.env.AUTH_GOOGLE_CLIENT_ID},{key:"AUTH_GITHUB_CLIENT_ID",value:!!process.env.AUTH_GITHUB_CLIENT_ID},{key:"AUTH_RESEND_API_KEY",value:!!process.env.AUTH_RESEND_API_KEY},{key:"AUTH_SENDGRID_API_KEY",value:!!process.env.AUTH_SENDGRID_API_KEY},{key:"AUTH_SSO_MS_CLIENT_ID",value:!!process.env.AUTH_SSO_MS_CLIENT_ID},{key:"AUTH_SSO_GOOGLE_CLIENT_ID",value:!!process.env.AUTH_SSO_GOOGLE_CLIENT_ID},{key:"AUTH_MAGIC_LINK_ENABLED",value:process.env.AUTH_MAGIC_LINK_ENABLED==="true"},{key:"AUTH_EMAIL_OTP_ENABLED",value:process.env.AUTH_EMAIL_OTP_ENABLED==="true"}]},{title:"Observability",entries:[{key:"CLICKHOUSE_URL",value:$.clickhouseUrl},{key:"OTEL_SERVICE_NAME",value:$.otelServiceName}]},{title:"Event Bus & Networking",entries:[{key:"NATS_URL",value:$.natsUrls}]},{title:"Config Files",entries:[{key:"CONFIG_PATH",value:$.configPath}]},{title:"AI Gateway",entries:[{key:"DECO_AI_GATEWAY_ENABLED",value:$.aiGatewayEnabled},{key:"DECO_AI_GATEWAY_URL",value:$.aiGatewayUrl}]}]}function tI4({env:$}){let u=oou($);return nI4(b21,{flexDirection:"column",children:u.map((f)=>rz0(b21,{flexDirection:"column",marginTop:1,children:[rz0(i21,{dimColor:!0,children:[" ","\u2500\u2500 ",f.title," ","\u2500".repeat(Math.max(0,38-f.title.length))]}),f.entries.map(({key:X,value:w})=>{let J=pou(X,w);return rz0(b21,{children:[rz0(i21,{dimColor:!0,children:[" ",X.padEnd(36)]}),nI4(i21,{color:J.color,dimColor:J.dimColor,children:J.text})]},X)})]},f.title))})}var rou,aou;var rI4=U(()=>{rou=new Set(["BETTER_AUTH_SECRET","ENCRYPTION_KEY","MESH_JWT_SECRET","STUDIO_PROVISION_SECRET_KEY"]),aou=new Set(["DATABASE_URL","CLICKHOUSE_URL","NATS_URL"])});var x21;var aI4=U(()=>{x21={name:"decocms",version:"2.366.7",description:"Deco CMS \u2014 Self-hostable MCP Gateway for managing AI connections and tools",author:"Deco team",repository:{type:"git",url:"git+https://github.com/decocms/studio.git",directory:"apps/mesh"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:'bun run migrate && concurrently "bun run dev:client" "bun run dev:server"',"dev:servers":'concurrently "bun run dev:client" "bun run dev:server"',"dev:client":"bun --bun vite dev","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts","build:client":"bun --bun vite build","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","db:migrate":"bun run ./dist/server/migrate.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts",test:"bun test","test:e2e":"playwright test","test:e2e:ui":"playwright test --ui","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts","smoke:link":"bun run scripts/smoke-link.ts",prepublishOnly:"bun run build:client && bun run build:server"},optionalDependencies:{"@anthropic-ai/claude-agent-sdk":"^0.2.141","@duckdb/node-api":"^1.5.0-r.1"},dependencies:{"@ai-sdk/anthropic":"^3.0.80","@ai-sdk/google":"^3.0.80","@ai-sdk/openai":"^3.0.65","@anthropic-ai/sdk":"^0.96.0","@aws-sdk/client-s3":"^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.17.6","@deco-cx/warp-node":"^0.3.23","@dnd-kit/core":"^6.3.1","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@inkjs/ui":"^2.0.0","@modelcontextprotocol/ext-apps":"^1.7.1","@openrouter/ai-sdk-provider":"^2.9.0","@opentelemetry/core":"^2.6.0","@tanstack/react-virtual":"3.13.24","@xterm/addon-fit":"^0.11.0","@xterm/xterm":"^6.0.0","ai-sdk-provider-claude-code":"^3.4.4","ai-sdk-provider-codex-cli":"^1.1.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12",nats:"^2.29.3","node-pty":"^1.0.0","posthog-js":"^1.371.1","posthog-node":"^5.0.0",react:"^19.2.6","react-dom":"^19.2.6"},devDependencies:{"@ai-sdk/provider":"^3.0.10","@ai-sdk/react":"^3.0.193","@better-auth/sso":"1.4.1","@daveyplate/better-auth-ui":"^3.2.7","@deco/ui":"workspace:*","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/mesh-sdk":"workspace:*","@decocms/runtime":"workspace:*","@decocms/vite-plugin":"workspace:*","@electric-sql/pglite":"^0.3.15","@floating-ui/react":"^0.27.16","@happy-dom/global-registrator":"^20.9.0","@hookform/resolvers":"^5.2.2","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.29.0","@monaco-editor/react":"^4.7.0","@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/sdk-logs":"^0.211.0","@opentelemetry/sdk-metrics":"^2.2.0","@opentelemetry/sdk-node":"^0.207.0","@opentelemetry/sdk-trace-base":"^2.5.0","@playwright/test":"^1.58.2","@radix-ui/react-avatar":"^1.1.10","@radix-ui/react-checkbox":"^1.3.3","@radix-ui/react-dialog":"^1.1.15","@radix-ui/react-dropdown-menu":"^2.1.16","@radix-ui/react-label":"^2.1.7","@radix-ui/react-select":"^2.2.6","@radix-ui/react-separator":"^1.1.7","@radix-ui/react-slot":"^1.2.3","@radix-ui/react-tabs":"^1.1.13","@rjsf/core":"^6.1.2","@rjsf/shadcn":"^6.1.2","@rjsf/utils":"^6.1.2","@rjsf/validator-ajv8":"^6.1.2","@tailwindcss/vite":"^4.1.17","@tanstack/react-query":"5.100.10","@tanstack/react-router":"1.169.2","@testing-library/jest-dom":"^6.9.1","@testing-library/react":"^16.3.2","@tiptap/core":"3.20.2","@tiptap/extension-mention":"3.20.2","@tiptap/extension-placeholder":"3.20.2","@tiptap/pm":"3.20.2","@tiptap/react":"3.20.2","@tiptap/starter-kit":"3.20.2","@tiptap/suggestion":"3.20.2","@types/bun":"^1.3.1","@types/pg":"^8.15.6","@types/react-syntax-highlighter":"^15.5.13","@untitledui/icons":"^0.0.19","@vercel/nft":"^1.1.1","@vitejs/plugin-react":"^5.1.0",ai:"^6.0.191","babel-plugin-react-compiler":"^1.0.0","better-auth":"1.4.22","class-variance-authority":"^0.7.1",clsx:"^2.1.1",concurrently:"^9.2.1",croner:"^9.1.0","date-fns":"^4.1.0",degit:"^2.8.4",hono:"^4.10.7","input-otp":"^1.4.2",jose:"^6.0.11","kysely-pglite":"^0.6.1","lucide-react":"^0.468.0",marked:"^15.0.6","@decocms/sandbox":"workspace:*","mesh-plugin-workflows":"workspace:*",nanoid:"^5.1.6",pg:"^8.16.3",prettier:"^3.4.2","react-hook-form":"^7.66.0","react-markdown":"^10.1.0","react-resizable-panels":"^2.1.7","react-syntax-highlighter":"^15.6.1",recharts:"^3.6.0","rehype-raw":"^7.0.0","remark-gfm":"^4.0.0","sass-embedded":"^1.97.2",sonner:"^2.0.7","tailwind-merge":"^3.3.1",tailwindcss:"^4.1.17",typescript:"^5.9.3",vite:"^7.2.1","vite-tsconfig-paths":"^5.1.4",zod:"^4.0.0",zustand:"^5.0.9"},homepage:"https://github.com/decocms/studio",keywords:["mcp","model-context-protocol","ai","gateway","self-hosted","mesh","tools"],license:"MIT",publishConfig:{access:"public"}}});import{Box as DZ,Text as M5}from"ink";import{Spinner as eou}from"@inkjs/ui";import{useSyncExternalStore as pI4}from"react";import{jsx as T8,jsxs as mX}from"react/jsx-runtime";function wsu($,u){if(!$||!Xsu.has($))return $;let f=l21[u]??l21[l21.length-1];return $==="#875f00"?f[0]:f[1]}function oI4({status:$}){if($==="pending")return T8(eou,{label:""});return T8(M5,{color:"green",children:"\u2713"})}function sI4({services:$,migrationsStatus:u,home:f,serverUrl:X,vibe:w}){let J=pI4(Ic1,Ac1),E=pI4(Mc1,qc1);return mX(DZ,{flexDirection:"column",paddingBottom:1,children:[w?mX(DZ,{flexDirection:"column",children:[J.map((Q,Y)=>{let Z=E[Y],W=Q.reduce((F,B)=>F+B.text.length,0),G=Math.max(0,fsu-W);return mX(DZ,{flexDirection:"row",children:[Q.map((F,B)=>{let v=wsu(F.color,Y);return v?T8(M5,{color:v,children:F.text},B):T8(M5,{children:F.text},B)}),T8(M5,{children:" ".repeat(G+2)}),Z?.map((F,B)=>F.color?T8(M5,{color:F.color,children:F.char},B):T8(M5,{children:F.char},B))]},Y)}),mX(M5,{dimColor:!0,children:[" v",x21.version]})]}):mX(DZ,{flexDirection:"column",marginTop:1,children:[$su.map((Q,Y)=>T8(M5,{color:usu[Y],children:Q},Y)),mX(M5,{dimColor:!0,children:[" v",x21.version]})]}),T8(DZ,{marginBottom:1,children:T8(M5,{dimColor:!0,children:"\u2500".repeat(80)})}),T8(DZ,{children:mX(M5,{dimColor:!0,children:["Home: ",f]})}),mX(DZ,{gap:2,children:[$.map((Q)=>mX(DZ,{gap:1,children:[mX(M5,{children:[Q.name," :",Q.port||"...."]}),T8(oI4,{status:Q.status})]},Q.name)),mX(DZ,{gap:1,children:[T8(M5,{children:"Migrations"}),T8(oI4,{status:u})]})]}),T8(DZ,{children:X?mX(M5,{children:["Open in browser: ",T8(M5,{color:"cyan",children:X})]}):T8(M5,{dimColor:!0,children:"Starting..."})}),mX(DZ,{gap:2,children:[mX(M5,{dimColor:!0,children:[T8(M5,{bold:!0,dimColor:!0,children:"K"})," ","toggle config"]}),mX(M5,{dimColor:!0,children:[T8(M5,{bold:!0,dimColor:!0,children:"L"})," ","toggle log flow"]}),mX(M5,{dimColor:!0,children:[T8(M5,{bold:!0,dimColor:!0,children:"V"})," ","toggle vibe ",w?"\u266A Nihilore \xB7 CC BY 4.0":""]}),w&&mX(M5,{dimColor:!0,children:[T8(M5,{bold:!0,dimColor:!0,children:"N"})," ","skip song"]})]})]})}var $su,usu,l21,fsu=30,Xsu;var eI4=U(()=>{aI4();lo0();ro0();$su=[" \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 "],usu=["#00ff64","#00ee5e","#00dc56","#00c84e","#00b444","#00a03c","#008832","#006e28"],l21=[["#00ff64","#00cc50"],["#00f060","#00c04c"],["#00e05c","#00b448"],["#00d058","#00a844"],["#00c054","#009c40"],["#00b050","#00903c"],["#00a04c","#008438"],["#009048","#007834"],["#008044","#006c30"],["#007040","#00602c"],["#00603c","#005428"]],Xsu=new Set(["#875f00","#5f3800"])});import{useSyncExternalStore as Jsu}from"react";function Esu(){let $=process.stdout.rows||24,u=process.stdout.columns||80;if($!==az0.rows||u!==az0.columns)az0={rows:$,columns:u};return az0}function Qsu($){return process.stdout.on("resize",$),()=>{process.stdout.off("resize",$)}}function $S4(){return Jsu(Qsu,Esu)}var az0;var uS4=U(()=>{az0={rows:process.stdout.rows||24,columns:process.stdout.columns||80}});import{Box as Ysu,Text as Yf0}from"ink";import{useSyncExternalStore as Dsu}from"react";import{jsx as c21,jsxs as d21}from"react/jsx-runtime";function Zsu($){if($>=500)return"red";if($>=400)return"yellow";if($>=300)return"cyan";return"green"}function fS4({logs:$,headerHeight:u}){let{rows:f}=$S4(),{logFlow:X}=Dsu(wf0,Xf0),w=Math.max(1,f-u-1),J=X?$:$.slice(-w);return c21(Ysu,{flexDirection:"column",children:J.map((E,Q)=>{if(E.rawLine)return c21(Yf0,{dimColor:!0,children:E.rawLine},Q);let Y=E.duration<1000?`${E.duration}ms`:`${(E.duration/1000).toFixed(1)}s`;return d21(Yf0,{children:[d21(Yf0,{dimColor:!0,children:[E.method.padEnd(6)," ",E.path.padEnd(30)," "]}),c21(Yf0,{color:Zsu(E.status),children:E.status}),d21(Yf0,{dimColor:!0,children:[" ",Y.padStart(8)]})]},Q)})})}var XS4=U(()=>{kG();uS4()});var m21={};Q1(m21,{App:()=>Nsu});import{Box as Wsu,Text as Gsu,useInput as Fsu}from"ink";import{useSyncExternalStore as Bsu}from"react";import{jsx as pz0,jsxs as Osu}from"react/jsx-runtime";function Nsu({home:$}){let u=Bsu(wf0,Xf0);return Fsu((f)=>{if(f==="k"||f==="K")C21();if(f==="l"||f==="L")q21();if((f==="v"||f==="V")&&u.dataDir)so0(u.dataDir),M21();if((f==="n"||f==="N")&&u.vibe)oo0()}),Osu(Wsu,{flexDirection:"column",children:[pz0(sI4,{services:u.services,migrationsStatus:u.migrationsStatus,home:$,serverUrl:u.serverUrl,vibe:u.vibe}),u.viewMode==="config"?u.env?pz0(tI4,{env:u.env}):pz0(Gsu,{dimColor:!0,children:"Loading configuration..."}):pz0(fS4,{logs:u.logs,headerHeight:u.vibe?Usu:vsu})]})}var vsu=15,Usu=19;var n21=U(()=>{rI4();eI4();XS4();kG();$c()});var IL=V((jsu)=>{jsu.HttpAuthLocation=void 0;(function($){$.HEADER="header",$.QUERY="query"})(jsu.HttpAuthLocation||(jsu.HttpAuthLocation={}));jsu.HttpApiKeyAuthLocation=void 0;(function($){$.HEADER="header",$.QUERY="query"})(jsu.HttpApiKeyAuthLocation||(jsu.HttpApiKeyAuthLocation={}));jsu.EndpointURLScheme=void 0;(function($){$.HTTP="http",$.HTTPS="https"})(jsu.EndpointURLScheme||(jsu.EndpointURLScheme={}));jsu.AlgorithmId=void 0;(function($){$.MD5="md5",$.CRC32="crc32",$.CRC32C="crc32c",$.SHA1="sha1",$.SHA256="sha256"})(jsu.AlgorithmId||(jsu.AlgorithmId={}));var zsu=($)=>{let u=[];if($.sha256!==void 0)u.push({algorithmId:()=>jsu.AlgorithmId.SHA256,checksumConstructor:()=>$.sha256});if($.md5!=null)u.push({algorithmId:()=>jsu.AlgorithmId.MD5,checksumConstructor:()=>$.md5});return{addChecksumAlgorithm(f){u.push(f)},checksumAlgorithms(){return u}}},Ksu=($)=>{let u={};return $.checksumAlgorithms().forEach((f)=>{u[f.algorithmId()]=f.checksumConstructor()}),u},Hsu=($)=>{return zsu($)},_su=($)=>{return Ksu($)};jsu.FieldPosition=void 0;(function($){$[$.HEADER=0]="HEADER",$[$.TRAILER=1]="TRAILER"})(jsu.FieldPosition||(jsu.FieldPosition={}));var Psu="__smithy_context";jsu.IniSectionType=void 0;(function($){$.PROFILE="profile",$.SSO_SESSION="sso-session",$.SERVICES="services"})(jsu.IniSectionType||(jsu.IniSectionType={}));jsu.RequestHandlerProtocol=void 0;(function($){$.HTTP_0_9="http/0.9",$.HTTP_1_0="http/1.0",$.TDS_8_0="tds/8.0"})(jsu.RequestHandlerProtocol||(jsu.RequestHandlerProtocol={}));jsu.SMITHY_CONTEXT_KEY=Psu;jsu.getDefaultClientConfiguration=Hsu;jsu.resolveDefaultRuntimeConfig=_su});var rf=V((qsu)=>{var Isu=IL(),Ssu=($)=>{return{setHttpHandler(u){$.httpHandler=u},httpHandler(){return $.httpHandler},updateHttpClientConfig(u,f){$.httpHandler?.updateHttpClientConfig(u,f)},httpHandlerConfigs(){return $.httpHandler.httpHandlerConfigs()}}},ksu=($)=>{return{httpHandler:$.httpHandler()}};class wS4{name;kind;values;constructor({name:$,kind:u=Isu.FieldPosition.HEADER,values:f=[]}){this.name=$,this.kind=u,this.values=f}add($){this.values.push($)}set($){this.values=$}remove($){this.values=this.values.filter((u)=>u!==$)}toString(){return this.values.map(($)=>$.includes(",")||$.includes(" ")?`"${$}"`:$).join(", ")}get(){return this.values}}class JS4{entries={};encoding;constructor({fields:$=[],encoding:u="utf-8"}){$.forEach(this.setField.bind(this)),this.encoding=u}setField($){this.entries[$.name.toLowerCase()]=$}getField($){return this.entries[$.toLowerCase()]}removeField($){delete this.entries[$.toLowerCase()]}getByType($){return Object.values(this.entries).filter((u)=>u.kind===$)}}class oz0{method;protocol;hostname;port;path;query;headers;username;password;fragment;body;constructor($){this.method=$.method||"GET",this.hostname=$.hostname||"localhost",this.port=$.port,this.query=$.query||{},this.headers=$.headers||{},this.body=$.body,this.protocol=$.protocol?$.protocol.slice(-1)!==":"?`${$.protocol}:`:$.protocol:"https:",this.path=$.path?$.path.charAt(0)!=="/"?`/${$.path}`:$.path:"/",this.username=$.username,this.password=$.password,this.fragment=$.fragment}static clone($){let u=new oz0({...$,headers:{...$.headers}});if(u.query)u.query=Rsu(u.query);return u}static isInstance($){if(!$)return!1;let u=$;return"method"in u&&"protocol"in u&&"hostname"in u&&"path"in u&&typeof u.query==="object"&&typeof u.headers==="object"}clone(){return oz0.clone(this)}}function Rsu($){return Object.keys($).reduce((u,f)=>{let X=$[f];return{...u,[f]:Array.isArray(X)?[...X]:X}},{})}class ES4{statusCode;reason;headers;body;constructor($){this.statusCode=$.statusCode,this.reason=$.reason,this.headers=$.headers||{},this.body=$.body}static isInstance($){if(!$)return!1;let u=$;return typeof u.statusCode==="number"&&typeof u.headers==="object"}}function Csu($){return/^[a-z0-9][a-z0-9\.\-]*[a-z0-9]$/.test($)}qsu.Field=wS4;qsu.Fields=JS4;qsu.HttpRequest=oz0;qsu.HttpResponse=ES4;qsu.getHttpHandlerExtensionConfiguration=Ssu;qsu.isValidHostname=Csu;qsu.resolveHttpHandlerRuntimeConfig=ksu});function xsu($){return(u)=>async(f)=>{let{request:X}=f;if($.expectContinueHeader!==!1&&QS4.HttpRequest.isInstance(X)&&X.body&&$.runtime==="node"&&$.requestHandler?.constructor?.name!=="FetchHttpHandler"){let w=!0;if(typeof $.expectContinueHeader==="number")try{w=(Number(X.headers?.["content-length"])??$.bodyLengthChecker?.(X.body)??1/0)>=$.expectContinueHeader}catch(J){}else w=!!$.expectContinueHeader;if(w)X.headers.Expect="100-continue"}return u({...f,request:X})}}var QS4,lsu,YS4=($)=>({applyToStack:(u)=>{u.add(xsu($),lsu)}});var DS4=U(()=>{QS4=J0(rf(),1);lsu={step:"build",tags:["SET_EXPECT_HEADER","EXPECT_HEADER"],name:"addExpectContinueMiddleware",override:!0}});var DD,sz0,SL,ez0,L3,ZS4,Zf0;var ZD=U(()=>{DD={WHEN_SUPPORTED:"WHEN_SUPPORTED",WHEN_REQUIRED:"WHEN_REQUIRED"},sz0=DD.WHEN_SUPPORTED,SL={WHEN_SUPPORTED:"WHEN_SUPPORTED",WHEN_REQUIRED:"WHEN_REQUIRED"},ez0=DD.WHEN_SUPPORTED;(function($){$.MD5="MD5",$.CRC32="CRC32",$.CRC32C="CRC32C",$.CRC64NVME="CRC64NVME",$.SHA1="SHA1",$.SHA256="SHA256"})(L3||(L3={}));(function($){$.HEADER="header",$.TRAILER="trailer"})(ZS4||(ZS4={}));Zf0=L3.CRC32});var xz,xt=($,u,f,X)=>{if(!(u in $))return;let w=$[u].toUpperCase();if(!Object.values(f).includes(w))throw TypeError(`Cannot load ${X} '${u}'. Expected one of ${Object.values(f)}, got '${$[u]}'.`);return w};var e21=U(()=>{(function($){$.ENV="env",$.CONFIG="shared config entry"})(xz||(xz={}))});var csu="AWS_REQUEST_CHECKSUM_CALCULATION",dsu="request_checksum_calculation",WS4;var GS4=U(()=>{ZD();e21();WS4={environmentVariableSelector:($)=>xt($,csu,DD,xz.ENV),configFileSelector:($)=>xt($,dsu,DD,xz.CONFIG),default:sz0}});var msu="AWS_RESPONSE_CHECKSUM_VALIDATION",nsu="response_checksum_validation",FS4;var BS4=U(()=>{ZD();e21();FS4={environmentVariableSelector:($)=>xt($,msu,SL,xz.ENV),configFileSelector:($)=>xt($,nsu,SL,xz.CONFIG),default:ez0}});var uZ1=V((feu)=>{var tsu=["AuthFailure","InvalidSignatureException","RequestExpired","RequestInTheFuture","RequestTimeTooSkewed","SignatureDoesNotMatch"],rsu=["BandwidthLimitExceeded","EC2ThrottledException","LimitExceededException","PriorRequestNotComplete","ProvisionedThroughputExceededException","RequestLimitExceeded","RequestThrottled","RequestThrottledException","SlowDown","ThrottledException","Throttling","ThrottlingException","TooManyRequestsException","TransactionInProgressException"],asu=["TimeoutError","RequestTimeout","RequestTimeoutException"],psu=[500,502,503,504],osu=["ECONNRESET","ECONNREFUSED","EPIPE","ETIMEDOUT"],ssu=["EHOSTUNREACH","ENETUNREACH","ENOTFOUND"],vS4=($)=>$?.$retryable!==void 0,esu=($)=>tsu.includes($.name),US4=($)=>$.$metadata?.clockSkewCorrected,NS4=($)=>{let u=new Set(["Failed to fetch","NetworkError when attempting to fetch resource","The Internet connection appears to be offline","Load failed","Network request failed"]);if(!($&&$ instanceof TypeError))return!1;return u.has($.message)},$eu=($)=>$.$metadata?.httpStatusCode===429||rsu.includes($.name)||$.$retryable?.throttling==!0,$Z1=($,u=0)=>vS4($)||US4($)||$.name==="InvalidSignatureException"&&$.message?.includes("Signature expired")||asu.includes($.name)||osu.includes($?.code||"")||ssu.includes($?.code||"")||psu.includes($.$metadata?.httpStatusCode||0)||NS4($)||OS4($)||$.cause!==void 0&&u<=10&&$Z1($.cause,u+1),ueu=($)=>{if($.$metadata?.httpStatusCode!==void 0){let u=$.$metadata.httpStatusCode;if(500<=u&&u<=599&&!$Z1($))return!0;return!1}return!1};function OS4($){return $.code==="ERR_HTTP2_STREAM_ERROR"&&$.message.includes("NGHTTP2_REFUSED_STREAM")}feu.isBrowserNetworkError=NS4;feu.isClockSkewCorrectedError=US4;feu.isClockSkewError=esu;feu.isNodeJsHttp2TransientError=OS4;feu.isRetryableByTrait=vS4;feu.isServerError=ueu;feu.isThrottlingError=$eu;feu.isTransientError=$Z1});var Iv=V((zeu)=>{var Weu=uZ1();zeu.RETRY_MODES=void 0;(function($){$.STANDARD="standard",$.ADAPTIVE="adaptive"})(zeu.RETRY_MODES||(zeu.RETRY_MODES={}));var uK0=3,Geu=zeu.RETRY_MODES.STANDARD;class fK0{static setTimeoutFn=setTimeout;beta;minCapacity;minFillRate;scaleConstant;smooth;enabled=!1;availableTokens=0;lastMaxRate=0;measuredTxRate=0;requestCount=0;fillRate;lastThrottleTime;lastTimestamp=0;lastTxRateBucket;maxCapacity;timeWindow=0;constructor($){this.beta=$?.beta??0.7,this.minCapacity=$?.minCapacity??1,this.minFillRate=$?.minFillRate??0.5,this.scaleConstant=$?.scaleConstant??0.4,this.smooth=$?.smooth??0.8,this.lastThrottleTime=this.getCurrentTimeInSeconds(),this.lastTxRateBucket=Math.floor(this.getCurrentTimeInSeconds()),this.fillRate=this.minFillRate,this.maxCapacity=this.minCapacity}async getSendToken(){return this.acquireTokenBucket(1)}updateClientSendingRate($){let u;this.updateMeasuredRate();let f=$;if(f?.errorType==="THROTTLING"||Weu.isThrottlingError(f?.error??$)){let J=!this.enabled?this.measuredTxRate:Math.min(this.measuredTxRate,this.fillRate);this.lastMaxRate=J,this.calculateTimeWindow(),this.lastThrottleTime=this.getCurrentTimeInSeconds(),u=this.cubicThrottle(J),this.enableTokenBucket()}else this.calculateTimeWindow(),u=this.cubicSuccess(this.getCurrentTimeInSeconds());let w=Math.min(u,2*this.measuredTxRate);this.updateTokenBucketRate(w)}getCurrentTimeInSeconds(){return Date.now()/1000}async acquireTokenBucket($){if(!this.enabled)return;if(this.refillTokenBucket(),$>this.availableTokens){let u=($-this.availableTokens)/this.fillRate*1000;await new Promise((f)=>fK0.setTimeoutFn(f,u))}this.availableTokens=this.availableTokens-$}refillTokenBucket(){let $=this.getCurrentTimeInSeconds();if(!this.lastTimestamp){this.lastTimestamp=$;return}let u=($-this.lastTimestamp)*this.fillRate;this.availableTokens=Math.min(this.maxCapacity,this.availableTokens+u),this.lastTimestamp=$}calculateTimeWindow(){this.timeWindow=this.getPrecise(Math.pow(this.lastMaxRate*(1-this.beta)/this.scaleConstant,0.3333333333333333))}cubicThrottle($){return this.getPrecise($*this.beta)}cubicSuccess($){return this.getPrecise(this.scaleConstant*Math.pow($-this.lastThrottleTime-this.timeWindow,3)+this.lastMaxRate)}enableTokenBucket(){this.enabled=!0}updateTokenBucketRate($){this.refillTokenBucket(),this.fillRate=Math.max($,this.minFillRate),this.maxCapacity=Math.max($,this.minCapacity),this.availableTokens=Math.min(this.availableTokens,this.maxCapacity)}updateMeasuredRate(){let $=this.getCurrentTimeInSeconds(),u=Math.floor($*2)/2;if(this.requestCount++,u>this.lastTxRateBucket){let f=this.requestCount/(u-this.lastTxRateBucket);this.measuredTxRate=this.getPrecise(f*this.smooth+this.measuredTxRate*(1-this.smooth)),this.requestCount=0,this.lastTxRateBucket=u}}getPrecise($){return parseFloat($.toFixed(8))}}var Feu=100,wZ1=20000,Beu=500,fZ1=500,veu=5,Ueu=10,zS4=1,Neu="amz-sdk-invocation-id",Oeu="amz-sdk-request";class nX{static v2026=typeof process<"u"&&process.env?.SMITHY_NEW_RETRIES_2026==="true";static delay(){return nX.v2026?50:100}static throttlingDelay(){return nX.v2026?1000:500}static cost(){return nX.v2026?14:5}static throttlingCost(){return nX.v2026?5:10}static modifiedCostType(){return nX.v2026?"THROTTLING":"TRANSIENT"}}class KS4{x=nX.delay();computeNextBackoffDelay($){let u=Math.random(),f=2,X=u*Math.min(this.x*2**$,wZ1);return Math.floor(X)}setDelayBase($){this.x=$}}class XZ1{delay;count;cost;longPoll;constructor($,u,f,X){this.delay=$,this.count=u,this.cost=f,this.longPoll=X}getRetryCount(){return this.count}getRetryDelay(){return Math.min(wZ1,this.delay)}getRetryCost(){return this.cost}isLongPoll(){return this.longPoll}}var $K0={incompatible:1,attempts:2,capacity:3};class Wf0{mode=zeu.RETRY_MODES.STANDARD;capacity=fZ1;retryBackoffStrategy;maxAttemptsProvider;baseDelay;constructor($){if(typeof $==="number")this.maxAttemptsProvider=async()=>$;else if(typeof $==="function")this.maxAttemptsProvider=$;else if($&&typeof $==="object")this.maxAttemptsProvider=async()=>$.maxAttempts,this.baseDelay=$.baseDelay,this.retryBackoffStrategy=$.backoff;this.maxAttemptsProvider??=async()=>uK0,this.baseDelay??=nX.delay(),this.retryBackoffStrategy??=new KS4}async acquireInitialRetryToken($){return new XZ1(nX.delay(),0,void 0,nX.v2026&&$.includes(":longpoll"))}async refreshRetryTokenForRetry($,u){let f=await this.getMaxAttempts(),X=this.retryCode($,u,f),w=X===0,J=$.isLongPoll?.();if(w||J){let E=u.errorType;this.retryBackoffStrategy.setDelayBase(E==="THROTTLING"?nX.throttlingDelay():this.baseDelay);let Q=this.retryBackoffStrategy.computeNextBackoffDelay($.getRetryCount()),Y=Q;if(u.retryAfterHint instanceof Date)Y=Math.max(Q,Math.min(u.retryAfterHint.getTime()-Date.now(),Q+5000));if(!w)throw Object.assign(Error("No retry token available"),{$backoff:nX.v2026&&X===$K0.capacity&&J?Y:0});else{let Z=this.getCapacityCost(E);return this.capacity-=Z,new XZ1(Y,$.getRetryCount()+1,Z,$.isLongPoll?.()??!1)}}throw Error("No retry token available")}recordSuccess($){this.capacity=Math.min(fZ1,this.capacity+($.getRetryCost()??zS4))}getCapacity(){return this.capacity}async maxAttempts(){return this.maxAttemptsProvider()}async getMaxAttempts(){try{return await this.maxAttemptsProvider()}catch($){return console.warn(`Max attempts provider could not resolve. Using default of ${uK0}`),uK0}}retryCode($,u,f){let X=$.getRetryCount()+1,w=this.isRetryableError(u.errorType)?0:$K0.incompatible,J=X<f?0:$K0.attempts,E=this.capacity>=this.getCapacityCost(u.errorType)?0:$K0.capacity;return w||J||E}getCapacityCost($){return $===nX.modifiedCostType()?nX.throttlingCost():nX.cost()}isRetryableError($){return $==="THROTTLING"||$==="TRANSIENT"}}class HS4{mode=zeu.RETRY_MODES.ADAPTIVE;rateLimiter;standardRetryStrategy;constructor($,u){let{rateLimiter:f}=u??{};this.rateLimiter=f??new fK0,this.standardRetryStrategy=u?new Wf0({maxAttempts:typeof $==="number"?$:3,...u}):new Wf0($)}async acquireInitialRetryToken($){return await this.rateLimiter.getSendToken(),this.standardRetryStrategy.acquireInitialRetryToken($)}async refreshRetryTokenForRetry($,u){return this.rateLimiter.updateClientSendingRate(u),this.standardRetryStrategy.refreshRetryTokenForRetry($,u)}recordSuccess($){this.rateLimiter.updateClientSendingRate({}),this.standardRetryStrategy.recordSuccess($)}async maxAttemptsProvider(){return this.standardRetryStrategy.maxAttempts()}}class _S4 extends Wf0{computeNextBackoffDelay;constructor($,u=nX.delay()){super(typeof $==="function"?$:async()=>$);if(typeof u==="number")this.computeNextBackoffDelay=()=>u;else this.computeNextBackoffDelay=u}async refreshRetryTokenForRetry($,u){let f=await super.refreshRetryTokenForRetry($,u);return f.getRetryDelay=()=>this.computeNextBackoffDelay(f.getRetryCount()),f}}zeu.AdaptiveRetryStrategy=HS4;zeu.ConfiguredRetryStrategy=_S4;zeu.DEFAULT_MAX_ATTEMPTS=uK0;zeu.DEFAULT_RETRY_DELAY_BASE=Feu;zeu.DEFAULT_RETRY_MODE=Geu;zeu.DefaultRateLimiter=fK0;zeu.INITIAL_RETRY_TOKENS=fZ1;zeu.INVOCATION_ID_HEADER=Neu;zeu.MAXIMUM_RETRY_DELAY=wZ1;zeu.NO_RETRY_INCREMENT=zS4;zeu.REQUEST_HEADER=Oeu;zeu.RETRY_COST=veu;zeu.Retry=nX;zeu.StandardRetryStrategy=Wf0;zeu.THROTTLING_RETRY_DELAY_BASE=Beu;zeu.TIMEOUT_RETRY_COST=Ueu});var B5=V((deu)=>{var yeu=Iv(),JZ1={warningEmitted:!1},geu=($)=>{if($&&!JZ1.warningEmitted&&parseInt($.substring(1,$.indexOf(".")))<20)JZ1.warningEmitted=!0,process.emitWarning(`NodeDeprecationWarning: The AWS SDK for JavaScript (v3) will
|
|
76152
|
+
`);X=J.pop()??"";for(let E of J){let Q=dI4(E).replace(/^\[\d+\]\s*/,"").trim();if(!Q)continue;Av({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:Q})}}(async()=>{for(;;){let{done:J,value:E}=await u.read();if(J)break;X+=f.decode(E,{stream:!0}),w()}if(X.trim()){let J=dI4(X).replace(/^\[\d+\]\s*/,"").trim();if(J)Av({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:J})}})()}async function tou($){let{vitePort:u,baseUrl:f,noTui:X}=$,w=await mz0(Number($.port)),{settings:J,services:E,managedServiceNames:Q}=await xz0({port:String(w),home:$.home,baseUrl:$.baseUrl,localMode:$.localMode,skipMigrations:$.skipMigrations,noTui:$.noTui,vitePort:$.vitePort});for(let O of E)AL({name:O.name,status:"ready",port:O.port});Qf0(J),Jf0();let Y=nz0(import.meta.dir,"..","..","..","..",".."),Z=process.env.WORKTREE_SLUG??process.env.CONDUCTOR_WORKSPACE_NAME??"default",W=nz0(nou(),`decocms-dev-link-${Z}`),G=X===!0,F=Bun.spawn(["bun","run","--cwd=apps/mesh","dev:servers"],{cwd:Y,env:{...process.env,PORT:String(J.port),VITE_PORT:String(u),DATABASE_URL:J.databaseUrl,NATS_URL:J.natsUrls.join(","),NODE_ENV:J.nodeEnv,DECOCMS_LOCAL_MODE:String(J.localMode),DECOCMS_HOME:J.dataDir,DATA_DIR:J.dataDir,DECO_CLI:"1",MESH_ALLOW_LOCALHOST_LINKS:"1",DEV_LINK_SESSION_PATH:nz0(W,"session.json"),...J.baseUrl?{BASE_URL:J.baseUrl}:{}},stdio:["inherit",G?"inherit":"pipe",G?"inherit":"pipe"]});if(!G)tz0(F.stdout),tz0(F.stderr);let B=f||`http://localhost:${J.port}`;Ef0(B),AL({name:"Vite",status:"ready",port:Number(u)});let v=!$.localSandboxProvider?Promise.resolve(null):(async()=>{let{ensureLink:O}=await Promise.resolve().then(() => (zl(),Ol));try{let{info:z,proc:H}=await O({home:J.dataDir,clusterUrl:B,linkDataDir:W,repoRoot:Y,stdio:["inherit",G?"inherit":"pipe",G?"inherit":"pipe"],onSpawn:(j)=>{if(G)return;tz0(j.stdout),tz0(j.stderr)},beforeSpawn:async()=>{await y21(Number(J.port),{intervalMs:500});let j=nz0(W,"session.json"),A=Date.now()+60000;while(!mou(j)){if(Date.now()>A)throw Error(`dev-link session not written to ${j} within 60s`);await new Promise((L)=>setTimeout(L,500))}}});return y21(z.port,{intervalMs:500}).then(()=>{AL({name:"Sandbox",status:"ready",port:z.port})}).catch(()=>{}),H}catch(z){return Av({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:`[link] failed to start: ${z instanceof Error?z.message:String(z)}`}),null}})(),N=async(O)=>{if(await v.catch(()=>null),$.localSandboxProvider){let{stopLink:z}=await Promise.resolve().then(() => (zl(),Ol));try{await z(J.dataDir)}catch{}}if(F.kill(O),await F.exited,Q.length>0){let{stopServices:z}=await Promise.resolve().then(() => (zl(),Ol));await z(J.dataDir)}};return process.on("SIGINT",()=>N("SIGINT")),process.on("SIGTERM",()=>N("SIGTERM")),{port:Number(J.port),process:F}}var V21=U(()=>{k21();kG();h21();cI4()});import{Box as b21,Text as i21}from"ink";import{jsx as nI4,jsxs as rz0}from"react/jsx-runtime";function mI4($){if(!$)return"not set";try{let u=new URL($);if(u.password)u.password="***";if(u.username&&u.username.length>3)u.username=u.username.slice(0,3)+"***";return u.pathname="/",u.search="",u.hash="",u.toString()}catch{if($.length<=10)return $;return $.slice(0,6)+"***"+$.slice(-4)}}function pou($,u){if(rou.has($))return u?{text:"\u25CF\u25CF\u25CF\u25CF\u25CF\u25CF",dimColor:!0}:{text:"not set",dimColor:!0};if(aou.has($)){if(Array.isArray(u)){if(u.length===0)return{text:"not set",dimColor:!0};return{text:u.map((J)=>mI4(J)).join(", "),color:"cyan"}}let X=mI4(u);return X==="not set"?{text:X,dimColor:!0}:{text:X,color:"cyan"}}if(u===void 0||u===null||u==="")return{text:"not set",dimColor:!0};let f=String(u);if(f==="true")return{text:f,color:"green"};if(f==="false")return{text:f,color:"yellow"};try{return new URL(f),{text:f,color:"cyan"}}catch{return{text:f}}}function oou($){return[{title:"Core",entries:[{key:"NODE_ENV",value:$.nodeEnv},{key:"PORT",value:$.port},{key:"BASE_URL",value:$.baseUrl??`http://localhost:${$.port}`},{key:"DATA_DIR",value:$.dataDir}]},{title:"Database",entries:[{key:"DATABASE_URL",value:$.databaseUrl},{key:"DATABASE_PG_SSL",value:$.databasePgSsl}]},{title:"Auth & Secrets",entries:[{key:"BETTER_AUTH_SECRET",value:$.betterAuthSecret},{key:"ENCRYPTION_KEY",value:$.encryptionKey},{key:"MESH_JWT_SECRET",value:$.meshJwtSecret},{key:"STUDIO_PROVISION_SECRET_KEY",value:$.studioProvisionSecretKey},{key:"DISABLE_RATE_LIMIT",value:$.disableRateLimit}]},{title:"Auth Providers",entries:[{key:"AUTH_EMAIL_PASSWORD_ENABLED",value:process.env.AUTH_EMAIL_PASSWORD_ENABLED??"true"},{key:"AUTH_GOOGLE_CLIENT_ID",value:!!process.env.AUTH_GOOGLE_CLIENT_ID},{key:"AUTH_GITHUB_CLIENT_ID",value:!!process.env.AUTH_GITHUB_CLIENT_ID},{key:"AUTH_RESEND_API_KEY",value:!!process.env.AUTH_RESEND_API_KEY},{key:"AUTH_SENDGRID_API_KEY",value:!!process.env.AUTH_SENDGRID_API_KEY},{key:"AUTH_SSO_MS_CLIENT_ID",value:!!process.env.AUTH_SSO_MS_CLIENT_ID},{key:"AUTH_SSO_GOOGLE_CLIENT_ID",value:!!process.env.AUTH_SSO_GOOGLE_CLIENT_ID},{key:"AUTH_MAGIC_LINK_ENABLED",value:process.env.AUTH_MAGIC_LINK_ENABLED==="true"},{key:"AUTH_EMAIL_OTP_ENABLED",value:process.env.AUTH_EMAIL_OTP_ENABLED==="true"}]},{title:"Observability",entries:[{key:"CLICKHOUSE_URL",value:$.clickhouseUrl},{key:"OTEL_SERVICE_NAME",value:$.otelServiceName}]},{title:"Event Bus & Networking",entries:[{key:"NATS_URL",value:$.natsUrls}]},{title:"Config Files",entries:[{key:"CONFIG_PATH",value:$.configPath}]},{title:"AI Gateway",entries:[{key:"DECO_AI_GATEWAY_ENABLED",value:$.aiGatewayEnabled},{key:"DECO_AI_GATEWAY_URL",value:$.aiGatewayUrl}]}]}function tI4({env:$}){let u=oou($);return nI4(b21,{flexDirection:"column",children:u.map((f)=>rz0(b21,{flexDirection:"column",marginTop:1,children:[rz0(i21,{dimColor:!0,children:[" ","\u2500\u2500 ",f.title," ","\u2500".repeat(Math.max(0,38-f.title.length))]}),f.entries.map(({key:X,value:w})=>{let J=pou(X,w);return rz0(b21,{children:[rz0(i21,{dimColor:!0,children:[" ",X.padEnd(36)]}),nI4(i21,{color:J.color,dimColor:J.dimColor,children:J.text})]},X)})]},f.title))})}var rou,aou;var rI4=U(()=>{rou=new Set(["BETTER_AUTH_SECRET","ENCRYPTION_KEY","MESH_JWT_SECRET","STUDIO_PROVISION_SECRET_KEY"]),aou=new Set(["DATABASE_URL","CLICKHOUSE_URL","NATS_URL"])});var x21;var aI4=U(()=>{x21={name:"decocms",version:"2.367.0",description:"Deco CMS \u2014 Self-hostable MCP Gateway for managing AI connections and tools",author:"Deco team",repository:{type:"git",url:"git+https://github.com/decocms/studio.git",directory:"apps/mesh"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:'bun run migrate && concurrently "bun run dev:client" "bun run dev:server"',"dev:servers":'concurrently "bun run dev:client" "bun run dev:server"',"dev:client":"bun --bun vite dev","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts","build:client":"bun --bun vite build","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","db:migrate":"bun run ./dist/server/migrate.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts",test:"bun test","test:e2e":"playwright test","test:e2e:ui":"playwright test --ui","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts","smoke:link":"bun run scripts/smoke-link.ts",prepublishOnly:"bun run build:client && bun run build:server"},optionalDependencies:{"@anthropic-ai/claude-agent-sdk":"^0.2.141","@duckdb/node-api":"^1.5.0-r.1"},dependencies:{"@ai-sdk/anthropic":"^3.0.80","@ai-sdk/google":"^3.0.80","@ai-sdk/openai":"^3.0.65","@anthropic-ai/sdk":"^0.96.0","@aws-sdk/client-s3":"^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.17.6","@deco-cx/warp-node":"^0.3.23","@dnd-kit/core":"^6.3.1","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@inkjs/ui":"^2.0.0","@modelcontextprotocol/ext-apps":"^1.7.1","@openrouter/ai-sdk-provider":"^2.9.0","@opentelemetry/core":"^2.6.0","@tanstack/react-virtual":"3.13.24","@xterm/addon-fit":"^0.11.0","@xterm/xterm":"^6.0.0","ai-sdk-provider-claude-code":"^3.4.4","ai-sdk-provider-codex-cli":"^1.1.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12",nats:"^2.29.3","node-pty":"^1.0.0","posthog-js":"^1.371.1","posthog-node":"^5.0.0",react:"^19.2.6","react-dom":"^19.2.6"},devDependencies:{"@ai-sdk/provider":"^3.0.10","@ai-sdk/react":"^3.0.193","@better-auth/sso":"1.4.1","@daveyplate/better-auth-ui":"^3.2.7","@deco/ui":"workspace:*","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/mesh-sdk":"workspace:*","@decocms/runtime":"workspace:*","@decocms/vite-plugin":"workspace:*","@electric-sql/pglite":"^0.3.15","@floating-ui/react":"^0.27.16","@happy-dom/global-registrator":"^20.9.0","@hookform/resolvers":"^5.2.2","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.29.0","@monaco-editor/react":"^4.7.0","@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/sdk-logs":"^0.211.0","@opentelemetry/sdk-metrics":"^2.2.0","@opentelemetry/sdk-node":"^0.207.0","@opentelemetry/sdk-trace-base":"^2.5.0","@playwright/test":"^1.58.2","@radix-ui/react-avatar":"^1.1.10","@radix-ui/react-checkbox":"^1.3.3","@radix-ui/react-dialog":"^1.1.15","@radix-ui/react-dropdown-menu":"^2.1.16","@radix-ui/react-label":"^2.1.7","@radix-ui/react-select":"^2.2.6","@radix-ui/react-separator":"^1.1.7","@radix-ui/react-slot":"^1.2.3","@radix-ui/react-tabs":"^1.1.13","@rjsf/core":"^6.1.2","@rjsf/shadcn":"^6.1.2","@rjsf/utils":"^6.1.2","@rjsf/validator-ajv8":"^6.1.2","@tailwindcss/vite":"^4.1.17","@tanstack/react-query":"5.100.10","@tanstack/react-router":"1.169.2","@testing-library/jest-dom":"^6.9.1","@testing-library/react":"^16.3.2","@tiptap/core":"3.20.2","@tiptap/extension-mention":"3.20.2","@tiptap/extension-placeholder":"3.20.2","@tiptap/pm":"3.20.2","@tiptap/react":"3.20.2","@tiptap/starter-kit":"3.20.2","@tiptap/suggestion":"3.20.2","@types/bun":"^1.3.1","@types/pg":"^8.15.6","@types/react-syntax-highlighter":"^15.5.13","@untitledui/icons":"^0.0.19","@vercel/nft":"^1.1.1","@vitejs/plugin-react":"^5.1.0",ai:"^6.0.191","babel-plugin-react-compiler":"^1.0.0","better-auth":"1.4.22","class-variance-authority":"^0.7.1",clsx:"^2.1.1",concurrently:"^9.2.1",croner:"^9.1.0","date-fns":"^4.1.0",degit:"^2.8.4",hono:"^4.10.7","input-otp":"^1.4.2",jose:"^6.0.11","kysely-pglite":"^0.6.1","lucide-react":"^0.468.0",marked:"^15.0.6","@decocms/sandbox":"workspace:*","mesh-plugin-workflows":"workspace:*",nanoid:"^5.1.6",pg:"^8.16.3",prettier:"^3.4.2","react-hook-form":"^7.66.0","react-markdown":"^10.1.0","react-resizable-panels":"^2.1.7","react-syntax-highlighter":"^15.6.1",recharts:"^3.6.0","rehype-raw":"^7.0.0","remark-gfm":"^4.0.0","sass-embedded":"^1.97.2",sonner:"^2.0.7","tailwind-merge":"^3.3.1",tailwindcss:"^4.1.17",typescript:"^5.9.3",vite:"^7.2.1","vite-tsconfig-paths":"^5.1.4",zod:"^4.0.0",zustand:"^5.0.9"},homepage:"https://github.com/decocms/studio",keywords:["mcp","model-context-protocol","ai","gateway","self-hosted","mesh","tools"],license:"MIT",publishConfig:{access:"public"}}});import{Box as DZ,Text as M5}from"ink";import{Spinner as eou}from"@inkjs/ui";import{useSyncExternalStore as pI4}from"react";import{jsx as T8,jsxs as mX}from"react/jsx-runtime";function wsu($,u){if(!$||!Xsu.has($))return $;let f=l21[u]??l21[l21.length-1];return $==="#875f00"?f[0]:f[1]}function oI4({status:$}){if($==="pending")return T8(eou,{label:""});return T8(M5,{color:"green",children:"\u2713"})}function sI4({services:$,migrationsStatus:u,home:f,serverUrl:X,vibe:w}){let J=pI4(Ic1,Ac1),E=pI4(Mc1,qc1);return mX(DZ,{flexDirection:"column",paddingBottom:1,children:[w?mX(DZ,{flexDirection:"column",children:[J.map((Q,Y)=>{let Z=E[Y],W=Q.reduce((F,B)=>F+B.text.length,0),G=Math.max(0,fsu-W);return mX(DZ,{flexDirection:"row",children:[Q.map((F,B)=>{let v=wsu(F.color,Y);return v?T8(M5,{color:v,children:F.text},B):T8(M5,{children:F.text},B)}),T8(M5,{children:" ".repeat(G+2)}),Z?.map((F,B)=>F.color?T8(M5,{color:F.color,children:F.char},B):T8(M5,{children:F.char},B))]},Y)}),mX(M5,{dimColor:!0,children:[" v",x21.version]})]}):mX(DZ,{flexDirection:"column",marginTop:1,children:[$su.map((Q,Y)=>T8(M5,{color:usu[Y],children:Q},Y)),mX(M5,{dimColor:!0,children:[" v",x21.version]})]}),T8(DZ,{marginBottom:1,children:T8(M5,{dimColor:!0,children:"\u2500".repeat(80)})}),T8(DZ,{children:mX(M5,{dimColor:!0,children:["Home: ",f]})}),mX(DZ,{gap:2,children:[$.map((Q)=>mX(DZ,{gap:1,children:[mX(M5,{children:[Q.name," :",Q.port||"...."]}),T8(oI4,{status:Q.status})]},Q.name)),mX(DZ,{gap:1,children:[T8(M5,{children:"Migrations"}),T8(oI4,{status:u})]})]}),T8(DZ,{children:X?mX(M5,{children:["Open in browser: ",T8(M5,{color:"cyan",children:X})]}):T8(M5,{dimColor:!0,children:"Starting..."})}),mX(DZ,{gap:2,children:[mX(M5,{dimColor:!0,children:[T8(M5,{bold:!0,dimColor:!0,children:"K"})," ","toggle config"]}),mX(M5,{dimColor:!0,children:[T8(M5,{bold:!0,dimColor:!0,children:"L"})," ","toggle log flow"]}),mX(M5,{dimColor:!0,children:[T8(M5,{bold:!0,dimColor:!0,children:"V"})," ","toggle vibe ",w?"\u266A Nihilore \xB7 CC BY 4.0":""]}),w&&mX(M5,{dimColor:!0,children:[T8(M5,{bold:!0,dimColor:!0,children:"N"})," ","skip song"]})]})]})}var $su,usu,l21,fsu=30,Xsu;var eI4=U(()=>{aI4();lo0();ro0();$su=[" \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 "],usu=["#00ff64","#00ee5e","#00dc56","#00c84e","#00b444","#00a03c","#008832","#006e28"],l21=[["#00ff64","#00cc50"],["#00f060","#00c04c"],["#00e05c","#00b448"],["#00d058","#00a844"],["#00c054","#009c40"],["#00b050","#00903c"],["#00a04c","#008438"],["#009048","#007834"],["#008044","#006c30"],["#007040","#00602c"],["#00603c","#005428"]],Xsu=new Set(["#875f00","#5f3800"])});import{useSyncExternalStore as Jsu}from"react";function Esu(){let $=process.stdout.rows||24,u=process.stdout.columns||80;if($!==az0.rows||u!==az0.columns)az0={rows:$,columns:u};return az0}function Qsu($){return process.stdout.on("resize",$),()=>{process.stdout.off("resize",$)}}function $S4(){return Jsu(Qsu,Esu)}var az0;var uS4=U(()=>{az0={rows:process.stdout.rows||24,columns:process.stdout.columns||80}});import{Box as Ysu,Text as Yf0}from"ink";import{useSyncExternalStore as Dsu}from"react";import{jsx as c21,jsxs as d21}from"react/jsx-runtime";function Zsu($){if($>=500)return"red";if($>=400)return"yellow";if($>=300)return"cyan";return"green"}function fS4({logs:$,headerHeight:u}){let{rows:f}=$S4(),{logFlow:X}=Dsu(wf0,Xf0),w=Math.max(1,f-u-1),J=X?$:$.slice(-w);return c21(Ysu,{flexDirection:"column",children:J.map((E,Q)=>{if(E.rawLine)return c21(Yf0,{dimColor:!0,children:E.rawLine},Q);let Y=E.duration<1000?`${E.duration}ms`:`${(E.duration/1000).toFixed(1)}s`;return d21(Yf0,{children:[d21(Yf0,{dimColor:!0,children:[E.method.padEnd(6)," ",E.path.padEnd(30)," "]}),c21(Yf0,{color:Zsu(E.status),children:E.status}),d21(Yf0,{dimColor:!0,children:[" ",Y.padStart(8)]})]},Q)})})}var XS4=U(()=>{kG();uS4()});var m21={};Q1(m21,{App:()=>Nsu});import{Box as Wsu,Text as Gsu,useInput as Fsu}from"ink";import{useSyncExternalStore as Bsu}from"react";import{jsx as pz0,jsxs as Osu}from"react/jsx-runtime";function Nsu({home:$}){let u=Bsu(wf0,Xf0);return Fsu((f)=>{if(f==="k"||f==="K")C21();if(f==="l"||f==="L")q21();if((f==="v"||f==="V")&&u.dataDir)so0(u.dataDir),M21();if((f==="n"||f==="N")&&u.vibe)oo0()}),Osu(Wsu,{flexDirection:"column",children:[pz0(sI4,{services:u.services,migrationsStatus:u.migrationsStatus,home:$,serverUrl:u.serverUrl,vibe:u.vibe}),u.viewMode==="config"?u.env?pz0(tI4,{env:u.env}):pz0(Gsu,{dimColor:!0,children:"Loading configuration..."}):pz0(fS4,{logs:u.logs,headerHeight:u.vibe?Usu:vsu})]})}var vsu=15,Usu=19;var n21=U(()=>{rI4();eI4();XS4();kG();$c()});var IL=V((jsu)=>{jsu.HttpAuthLocation=void 0;(function($){$.HEADER="header",$.QUERY="query"})(jsu.HttpAuthLocation||(jsu.HttpAuthLocation={}));jsu.HttpApiKeyAuthLocation=void 0;(function($){$.HEADER="header",$.QUERY="query"})(jsu.HttpApiKeyAuthLocation||(jsu.HttpApiKeyAuthLocation={}));jsu.EndpointURLScheme=void 0;(function($){$.HTTP="http",$.HTTPS="https"})(jsu.EndpointURLScheme||(jsu.EndpointURLScheme={}));jsu.AlgorithmId=void 0;(function($){$.MD5="md5",$.CRC32="crc32",$.CRC32C="crc32c",$.SHA1="sha1",$.SHA256="sha256"})(jsu.AlgorithmId||(jsu.AlgorithmId={}));var zsu=($)=>{let u=[];if($.sha256!==void 0)u.push({algorithmId:()=>jsu.AlgorithmId.SHA256,checksumConstructor:()=>$.sha256});if($.md5!=null)u.push({algorithmId:()=>jsu.AlgorithmId.MD5,checksumConstructor:()=>$.md5});return{addChecksumAlgorithm(f){u.push(f)},checksumAlgorithms(){return u}}},Ksu=($)=>{let u={};return $.checksumAlgorithms().forEach((f)=>{u[f.algorithmId()]=f.checksumConstructor()}),u},Hsu=($)=>{return zsu($)},_su=($)=>{return Ksu($)};jsu.FieldPosition=void 0;(function($){$[$.HEADER=0]="HEADER",$[$.TRAILER=1]="TRAILER"})(jsu.FieldPosition||(jsu.FieldPosition={}));var Psu="__smithy_context";jsu.IniSectionType=void 0;(function($){$.PROFILE="profile",$.SSO_SESSION="sso-session",$.SERVICES="services"})(jsu.IniSectionType||(jsu.IniSectionType={}));jsu.RequestHandlerProtocol=void 0;(function($){$.HTTP_0_9="http/0.9",$.HTTP_1_0="http/1.0",$.TDS_8_0="tds/8.0"})(jsu.RequestHandlerProtocol||(jsu.RequestHandlerProtocol={}));jsu.SMITHY_CONTEXT_KEY=Psu;jsu.getDefaultClientConfiguration=Hsu;jsu.resolveDefaultRuntimeConfig=_su});var rf=V((qsu)=>{var Isu=IL(),Ssu=($)=>{return{setHttpHandler(u){$.httpHandler=u},httpHandler(){return $.httpHandler},updateHttpClientConfig(u,f){$.httpHandler?.updateHttpClientConfig(u,f)},httpHandlerConfigs(){return $.httpHandler.httpHandlerConfigs()}}},ksu=($)=>{return{httpHandler:$.httpHandler()}};class wS4{name;kind;values;constructor({name:$,kind:u=Isu.FieldPosition.HEADER,values:f=[]}){this.name=$,this.kind=u,this.values=f}add($){this.values.push($)}set($){this.values=$}remove($){this.values=this.values.filter((u)=>u!==$)}toString(){return this.values.map(($)=>$.includes(",")||$.includes(" ")?`"${$}"`:$).join(", ")}get(){return this.values}}class JS4{entries={};encoding;constructor({fields:$=[],encoding:u="utf-8"}){$.forEach(this.setField.bind(this)),this.encoding=u}setField($){this.entries[$.name.toLowerCase()]=$}getField($){return this.entries[$.toLowerCase()]}removeField($){delete this.entries[$.toLowerCase()]}getByType($){return Object.values(this.entries).filter((u)=>u.kind===$)}}class oz0{method;protocol;hostname;port;path;query;headers;username;password;fragment;body;constructor($){this.method=$.method||"GET",this.hostname=$.hostname||"localhost",this.port=$.port,this.query=$.query||{},this.headers=$.headers||{},this.body=$.body,this.protocol=$.protocol?$.protocol.slice(-1)!==":"?`${$.protocol}:`:$.protocol:"https:",this.path=$.path?$.path.charAt(0)!=="/"?`/${$.path}`:$.path:"/",this.username=$.username,this.password=$.password,this.fragment=$.fragment}static clone($){let u=new oz0({...$,headers:{...$.headers}});if(u.query)u.query=Rsu(u.query);return u}static isInstance($){if(!$)return!1;let u=$;return"method"in u&&"protocol"in u&&"hostname"in u&&"path"in u&&typeof u.query==="object"&&typeof u.headers==="object"}clone(){return oz0.clone(this)}}function Rsu($){return Object.keys($).reduce((u,f)=>{let X=$[f];return{...u,[f]:Array.isArray(X)?[...X]:X}},{})}class ES4{statusCode;reason;headers;body;constructor($){this.statusCode=$.statusCode,this.reason=$.reason,this.headers=$.headers||{},this.body=$.body}static isInstance($){if(!$)return!1;let u=$;return typeof u.statusCode==="number"&&typeof u.headers==="object"}}function Csu($){return/^[a-z0-9][a-z0-9\.\-]*[a-z0-9]$/.test($)}qsu.Field=wS4;qsu.Fields=JS4;qsu.HttpRequest=oz0;qsu.HttpResponse=ES4;qsu.getHttpHandlerExtensionConfiguration=Ssu;qsu.isValidHostname=Csu;qsu.resolveHttpHandlerRuntimeConfig=ksu});function xsu($){return(u)=>async(f)=>{let{request:X}=f;if($.expectContinueHeader!==!1&&QS4.HttpRequest.isInstance(X)&&X.body&&$.runtime==="node"&&$.requestHandler?.constructor?.name!=="FetchHttpHandler"){let w=!0;if(typeof $.expectContinueHeader==="number")try{w=(Number(X.headers?.["content-length"])??$.bodyLengthChecker?.(X.body)??1/0)>=$.expectContinueHeader}catch(J){}else w=!!$.expectContinueHeader;if(w)X.headers.Expect="100-continue"}return u({...f,request:X})}}var QS4,lsu,YS4=($)=>({applyToStack:(u)=>{u.add(xsu($),lsu)}});var DS4=U(()=>{QS4=J0(rf(),1);lsu={step:"build",tags:["SET_EXPECT_HEADER","EXPECT_HEADER"],name:"addExpectContinueMiddleware",override:!0}});var DD,sz0,SL,ez0,L3,ZS4,Zf0;var ZD=U(()=>{DD={WHEN_SUPPORTED:"WHEN_SUPPORTED",WHEN_REQUIRED:"WHEN_REQUIRED"},sz0=DD.WHEN_SUPPORTED,SL={WHEN_SUPPORTED:"WHEN_SUPPORTED",WHEN_REQUIRED:"WHEN_REQUIRED"},ez0=DD.WHEN_SUPPORTED;(function($){$.MD5="MD5",$.CRC32="CRC32",$.CRC32C="CRC32C",$.CRC64NVME="CRC64NVME",$.SHA1="SHA1",$.SHA256="SHA256"})(L3||(L3={}));(function($){$.HEADER="header",$.TRAILER="trailer"})(ZS4||(ZS4={}));Zf0=L3.CRC32});var xz,xt=($,u,f,X)=>{if(!(u in $))return;let w=$[u].toUpperCase();if(!Object.values(f).includes(w))throw TypeError(`Cannot load ${X} '${u}'. Expected one of ${Object.values(f)}, got '${$[u]}'.`);return w};var e21=U(()=>{(function($){$.ENV="env",$.CONFIG="shared config entry"})(xz||(xz={}))});var csu="AWS_REQUEST_CHECKSUM_CALCULATION",dsu="request_checksum_calculation",WS4;var GS4=U(()=>{ZD();e21();WS4={environmentVariableSelector:($)=>xt($,csu,DD,xz.ENV),configFileSelector:($)=>xt($,dsu,DD,xz.CONFIG),default:sz0}});var msu="AWS_RESPONSE_CHECKSUM_VALIDATION",nsu="response_checksum_validation",FS4;var BS4=U(()=>{ZD();e21();FS4={environmentVariableSelector:($)=>xt($,msu,SL,xz.ENV),configFileSelector:($)=>xt($,nsu,SL,xz.CONFIG),default:ez0}});var uZ1=V((feu)=>{var tsu=["AuthFailure","InvalidSignatureException","RequestExpired","RequestInTheFuture","RequestTimeTooSkewed","SignatureDoesNotMatch"],rsu=["BandwidthLimitExceeded","EC2ThrottledException","LimitExceededException","PriorRequestNotComplete","ProvisionedThroughputExceededException","RequestLimitExceeded","RequestThrottled","RequestThrottledException","SlowDown","ThrottledException","Throttling","ThrottlingException","TooManyRequestsException","TransactionInProgressException"],asu=["TimeoutError","RequestTimeout","RequestTimeoutException"],psu=[500,502,503,504],osu=["ECONNRESET","ECONNREFUSED","EPIPE","ETIMEDOUT"],ssu=["EHOSTUNREACH","ENETUNREACH","ENOTFOUND"],vS4=($)=>$?.$retryable!==void 0,esu=($)=>tsu.includes($.name),US4=($)=>$.$metadata?.clockSkewCorrected,NS4=($)=>{let u=new Set(["Failed to fetch","NetworkError when attempting to fetch resource","The Internet connection appears to be offline","Load failed","Network request failed"]);if(!($&&$ instanceof TypeError))return!1;return u.has($.message)},$eu=($)=>$.$metadata?.httpStatusCode===429||rsu.includes($.name)||$.$retryable?.throttling==!0,$Z1=($,u=0)=>vS4($)||US4($)||$.name==="InvalidSignatureException"&&$.message?.includes("Signature expired")||asu.includes($.name)||osu.includes($?.code||"")||ssu.includes($?.code||"")||psu.includes($.$metadata?.httpStatusCode||0)||NS4($)||OS4($)||$.cause!==void 0&&u<=10&&$Z1($.cause,u+1),ueu=($)=>{if($.$metadata?.httpStatusCode!==void 0){let u=$.$metadata.httpStatusCode;if(500<=u&&u<=599&&!$Z1($))return!0;return!1}return!1};function OS4($){return $.code==="ERR_HTTP2_STREAM_ERROR"&&$.message.includes("NGHTTP2_REFUSED_STREAM")}feu.isBrowserNetworkError=NS4;feu.isClockSkewCorrectedError=US4;feu.isClockSkewError=esu;feu.isNodeJsHttp2TransientError=OS4;feu.isRetryableByTrait=vS4;feu.isServerError=ueu;feu.isThrottlingError=$eu;feu.isTransientError=$Z1});var Iv=V((zeu)=>{var Weu=uZ1();zeu.RETRY_MODES=void 0;(function($){$.STANDARD="standard",$.ADAPTIVE="adaptive"})(zeu.RETRY_MODES||(zeu.RETRY_MODES={}));var uK0=3,Geu=zeu.RETRY_MODES.STANDARD;class fK0{static setTimeoutFn=setTimeout;beta;minCapacity;minFillRate;scaleConstant;smooth;enabled=!1;availableTokens=0;lastMaxRate=0;measuredTxRate=0;requestCount=0;fillRate;lastThrottleTime;lastTimestamp=0;lastTxRateBucket;maxCapacity;timeWindow=0;constructor($){this.beta=$?.beta??0.7,this.minCapacity=$?.minCapacity??1,this.minFillRate=$?.minFillRate??0.5,this.scaleConstant=$?.scaleConstant??0.4,this.smooth=$?.smooth??0.8,this.lastThrottleTime=this.getCurrentTimeInSeconds(),this.lastTxRateBucket=Math.floor(this.getCurrentTimeInSeconds()),this.fillRate=this.minFillRate,this.maxCapacity=this.minCapacity}async getSendToken(){return this.acquireTokenBucket(1)}updateClientSendingRate($){let u;this.updateMeasuredRate();let f=$;if(f?.errorType==="THROTTLING"||Weu.isThrottlingError(f?.error??$)){let J=!this.enabled?this.measuredTxRate:Math.min(this.measuredTxRate,this.fillRate);this.lastMaxRate=J,this.calculateTimeWindow(),this.lastThrottleTime=this.getCurrentTimeInSeconds(),u=this.cubicThrottle(J),this.enableTokenBucket()}else this.calculateTimeWindow(),u=this.cubicSuccess(this.getCurrentTimeInSeconds());let w=Math.min(u,2*this.measuredTxRate);this.updateTokenBucketRate(w)}getCurrentTimeInSeconds(){return Date.now()/1000}async acquireTokenBucket($){if(!this.enabled)return;if(this.refillTokenBucket(),$>this.availableTokens){let u=($-this.availableTokens)/this.fillRate*1000;await new Promise((f)=>fK0.setTimeoutFn(f,u))}this.availableTokens=this.availableTokens-$}refillTokenBucket(){let $=this.getCurrentTimeInSeconds();if(!this.lastTimestamp){this.lastTimestamp=$;return}let u=($-this.lastTimestamp)*this.fillRate;this.availableTokens=Math.min(this.maxCapacity,this.availableTokens+u),this.lastTimestamp=$}calculateTimeWindow(){this.timeWindow=this.getPrecise(Math.pow(this.lastMaxRate*(1-this.beta)/this.scaleConstant,0.3333333333333333))}cubicThrottle($){return this.getPrecise($*this.beta)}cubicSuccess($){return this.getPrecise(this.scaleConstant*Math.pow($-this.lastThrottleTime-this.timeWindow,3)+this.lastMaxRate)}enableTokenBucket(){this.enabled=!0}updateTokenBucketRate($){this.refillTokenBucket(),this.fillRate=Math.max($,this.minFillRate),this.maxCapacity=Math.max($,this.minCapacity),this.availableTokens=Math.min(this.availableTokens,this.maxCapacity)}updateMeasuredRate(){let $=this.getCurrentTimeInSeconds(),u=Math.floor($*2)/2;if(this.requestCount++,u>this.lastTxRateBucket){let f=this.requestCount/(u-this.lastTxRateBucket);this.measuredTxRate=this.getPrecise(f*this.smooth+this.measuredTxRate*(1-this.smooth)),this.requestCount=0,this.lastTxRateBucket=u}}getPrecise($){return parseFloat($.toFixed(8))}}var Feu=100,wZ1=20000,Beu=500,fZ1=500,veu=5,Ueu=10,zS4=1,Neu="amz-sdk-invocation-id",Oeu="amz-sdk-request";class nX{static v2026=typeof process<"u"&&process.env?.SMITHY_NEW_RETRIES_2026==="true";static delay(){return nX.v2026?50:100}static throttlingDelay(){return nX.v2026?1000:500}static cost(){return nX.v2026?14:5}static throttlingCost(){return nX.v2026?5:10}static modifiedCostType(){return nX.v2026?"THROTTLING":"TRANSIENT"}}class KS4{x=nX.delay();computeNextBackoffDelay($){let u=Math.random(),f=2,X=u*Math.min(this.x*2**$,wZ1);return Math.floor(X)}setDelayBase($){this.x=$}}class XZ1{delay;count;cost;longPoll;constructor($,u,f,X){this.delay=$,this.count=u,this.cost=f,this.longPoll=X}getRetryCount(){return this.count}getRetryDelay(){return Math.min(wZ1,this.delay)}getRetryCost(){return this.cost}isLongPoll(){return this.longPoll}}var $K0={incompatible:1,attempts:2,capacity:3};class Wf0{mode=zeu.RETRY_MODES.STANDARD;capacity=fZ1;retryBackoffStrategy;maxAttemptsProvider;baseDelay;constructor($){if(typeof $==="number")this.maxAttemptsProvider=async()=>$;else if(typeof $==="function")this.maxAttemptsProvider=$;else if($&&typeof $==="object")this.maxAttemptsProvider=async()=>$.maxAttempts,this.baseDelay=$.baseDelay,this.retryBackoffStrategy=$.backoff;this.maxAttemptsProvider??=async()=>uK0,this.baseDelay??=nX.delay(),this.retryBackoffStrategy??=new KS4}async acquireInitialRetryToken($){return new XZ1(nX.delay(),0,void 0,nX.v2026&&$.includes(":longpoll"))}async refreshRetryTokenForRetry($,u){let f=await this.getMaxAttempts(),X=this.retryCode($,u,f),w=X===0,J=$.isLongPoll?.();if(w||J){let E=u.errorType;this.retryBackoffStrategy.setDelayBase(E==="THROTTLING"?nX.throttlingDelay():this.baseDelay);let Q=this.retryBackoffStrategy.computeNextBackoffDelay($.getRetryCount()),Y=Q;if(u.retryAfterHint instanceof Date)Y=Math.max(Q,Math.min(u.retryAfterHint.getTime()-Date.now(),Q+5000));if(!w)throw Object.assign(Error("No retry token available"),{$backoff:nX.v2026&&X===$K0.capacity&&J?Y:0});else{let Z=this.getCapacityCost(E);return this.capacity-=Z,new XZ1(Y,$.getRetryCount()+1,Z,$.isLongPoll?.()??!1)}}throw Error("No retry token available")}recordSuccess($){this.capacity=Math.min(fZ1,this.capacity+($.getRetryCost()??zS4))}getCapacity(){return this.capacity}async maxAttempts(){return this.maxAttemptsProvider()}async getMaxAttempts(){try{return await this.maxAttemptsProvider()}catch($){return console.warn(`Max attempts provider could not resolve. Using default of ${uK0}`),uK0}}retryCode($,u,f){let X=$.getRetryCount()+1,w=this.isRetryableError(u.errorType)?0:$K0.incompatible,J=X<f?0:$K0.attempts,E=this.capacity>=this.getCapacityCost(u.errorType)?0:$K0.capacity;return w||J||E}getCapacityCost($){return $===nX.modifiedCostType()?nX.throttlingCost():nX.cost()}isRetryableError($){return $==="THROTTLING"||$==="TRANSIENT"}}class HS4{mode=zeu.RETRY_MODES.ADAPTIVE;rateLimiter;standardRetryStrategy;constructor($,u){let{rateLimiter:f}=u??{};this.rateLimiter=f??new fK0,this.standardRetryStrategy=u?new Wf0({maxAttempts:typeof $==="number"?$:3,...u}):new Wf0($)}async acquireInitialRetryToken($){return await this.rateLimiter.getSendToken(),this.standardRetryStrategy.acquireInitialRetryToken($)}async refreshRetryTokenForRetry($,u){return this.rateLimiter.updateClientSendingRate(u),this.standardRetryStrategy.refreshRetryTokenForRetry($,u)}recordSuccess($){this.rateLimiter.updateClientSendingRate({}),this.standardRetryStrategy.recordSuccess($)}async maxAttemptsProvider(){return this.standardRetryStrategy.maxAttempts()}}class _S4 extends Wf0{computeNextBackoffDelay;constructor($,u=nX.delay()){super(typeof $==="function"?$:async()=>$);if(typeof u==="number")this.computeNextBackoffDelay=()=>u;else this.computeNextBackoffDelay=u}async refreshRetryTokenForRetry($,u){let f=await super.refreshRetryTokenForRetry($,u);return f.getRetryDelay=()=>this.computeNextBackoffDelay(f.getRetryCount()),f}}zeu.AdaptiveRetryStrategy=HS4;zeu.ConfiguredRetryStrategy=_S4;zeu.DEFAULT_MAX_ATTEMPTS=uK0;zeu.DEFAULT_RETRY_DELAY_BASE=Feu;zeu.DEFAULT_RETRY_MODE=Geu;zeu.DefaultRateLimiter=fK0;zeu.INITIAL_RETRY_TOKENS=fZ1;zeu.INVOCATION_ID_HEADER=Neu;zeu.MAXIMUM_RETRY_DELAY=wZ1;zeu.NO_RETRY_INCREMENT=zS4;zeu.REQUEST_HEADER=Oeu;zeu.RETRY_COST=veu;zeu.Retry=nX;zeu.StandardRetryStrategy=Wf0;zeu.THROTTLING_RETRY_DELAY_BASE=Beu;zeu.TIMEOUT_RETRY_COST=Ueu});var B5=V((deu)=>{var yeu=Iv(),JZ1={warningEmitted:!1},geu=($)=>{if($&&!JZ1.warningEmitted&&parseInt($.substring(1,$.indexOf(".")))<20)JZ1.warningEmitted=!0,process.emitWarning(`NodeDeprecationWarning: The AWS SDK for JavaScript (v3) will
|
|
76086
76153
|
no longer support Node.js ${$} in January 2026.
|
|
76087
76154
|
|
|
76088
76155
|
To continue receiving updates to AWS services, bug fixes, and security
|
|
@@ -78200,7 +78267,7 @@ ${w}`:X}}catch{let f=u.split(`
|
|
|
78200
78267
|
Return ONLY valid JSON with this shape:
|
|
78201
78268
|
{"title":"Short imperative commit title (max 72 chars)","body":"1-3 sentence PR description explaining what changed and why"}
|
|
78202
78269
|
|
|
78203
|
-
Use sentence case for the title. No markdown fences.`;var ag$=U(()=>{vf();YI0()});function dy1($){let{runner:u}=$.get("vmClaim");if(!u)return $.json({error:"No sandbox runner configured"},503);return u}async function fQ($,u,f){let X=dy1($);if(X instanceof Response)return X;let{claimName:w}=$.get("vmClaim"),J=f?.method??"POST",E=null,Q=new Headers;if(f?.forwardJsonBody)E=await $.req.text(),Q.set("content-type","application/json");let Y;try{Y=await X.proxyDaemonRequest(w,u,{method:J,headers:Q,body:E,...f?.signal?{signal:f.signal}:{}})}catch(G){let F=G instanceof Error?G.message:String(G);return $.json({error:`Daemon unreachable: ${F}`},502)}if(f?.map404to410&&Y.status===404){try{await Y.body?.cancel()}catch{}return $.json({error:"Sandbox handle is gone. The sandbox needs to be re-provisioned."},410,Ws)}let Z=await Y.text(),W=Y.headers.get("content-type")??"application/json";return new Response(Z,{status:Y.status,headers:{"content-type":W,...Ws}})}async function pg$($,u,f,X="GET"){let w=await $.proxyDaemonRequest(u,f,{method:X,headers:new Headers,body:null});if(w.status===404){try{await w.body?.cancel()}catch{}throw Error("SANDBOX_GONE")}let J=await w.text();if(!w.ok)try{let E=JSON.parse(J);throw Error(E.error??`Daemon error (${w.status})`)}catch(E){if(E instanceof Error&&E.message!==J)throw E;throw Error(`Daemon error (${w.status})`)}return JSON.parse(J)}function J_3($){return og$.includes($)}var X_3,Ws,w_3,og$,sg$=()=>{let $=new m4;return $.use("/:virtualMcpId/:branch/*",X_3),$.post("/:virtualMcpId/:branch/write",(u)=>fQ(u,"/_sandbox/write",{forwardJsonBody:!0})),$.post("/:virtualMcpId/:branch/read",(u)=>fQ(u,"/_sandbox/read",{forwardJsonBody:!0})),$.post("/:virtualMcpId/:branch/glob",(u)=>fQ(u,"/_sandbox/glob",{forwardJsonBody:!0})),$.post("/:virtualMcpId/:branch/exec/:script",(u)=>{let f=u.req.param("script");if(!f)return u.json({error:"missing script name"},400);return fQ(u,`/_sandbox/exec/${encodeURIComponent(f)}`)}),$.post("/:virtualMcpId/:branch/exec/:script/kill",(u)=>{let f=u.req.param("script");if(!f)return u.json({error:"missing script name"},400);return fQ(u,`/_sandbox/exec/${encodeURIComponent(f)}/kill`)}),$.get("/:virtualMcpId/:branch/config",(u)=>fQ(u,"/_sandbox/config",{method:"GET",map404to410:!0})),$.put("/:virtualMcpId/:branch/config",(u)=>fQ(u,"/_sandbox/config",{method:"PUT",forwardJsonBody:!0,map404to410:!0})),$.post("/:virtualMcpId/:branch/setup/:step",async(u)=>{let f=u.req.param("step");if(!f||!J_3(f))return u.json({error:`step must be one of: ${og$.join(", ")}`},400);if(f==="start"){let X=u.get("vmClaim");if(X.runner){let w=t0(u.var.meshContext),J=yH$(X.virtualMcpMetadata);try{await BS0({ctx:u.var.meshContext,runner:X.runner,handle:X.claimName,orgId:w.id,userId:X.userId,entries:J})}catch(E){let Q=E instanceof Error?E.message:String(E);return u.json({error:`Failed to push env to daemon: ${Q}`},502)}}}return fQ(u,`/_sandbox/setup/${f}`,{signal:u.req.raw.signal,map404to410:!0})}),$.get("/:virtualMcpId/:branch/events",(u)=>{let f=u.get("vmClaim");if(!f.runner)return aD(u,async(X)=>{await X.writeSSE({event:"phase",data:JSON.stringify({kind:"failed",reason:"unknown",message:"No sandbox runner configured on this mesh."})})});return dg$(u,{ctx:u.var.meshContext,claimName:f.claimName,runner:f.runner,branch:f.branch,userId:f.userId,projectRef:f.projectRef,virtualMcpMetadata:f.virtualMcpMetadata})}),$.get("/:virtualMcpId/:branch/git/status",(u)=>fQ(u,"/_sandbox/git/status",{method:"GET",map404to410:!0})),$.post("/:virtualMcpId/:branch/git/status",(u)=>fQ(u,"/_sandbox/git/status",{map404to410:!0})),$.post("/:virtualMcpId/:branch/git/diff",(u)=>fQ(u,"/_sandbox/git/diff",{map404to410:!0})),$.post("/:virtualMcpId/:branch/git/publish",(u)=>fQ(u,"/_sandbox/git/publish",{forwardJsonBody:!0,map404to410:!0})),$.post("/:virtualMcpId/:branch/git/discard",(u)=>fQ(u,"/_sandbox/git/discard",{forwardJsonBody:!0,map404to410:!0})),$.post("/:virtualMcpId/:branch/git/rebase",(u)=>fQ(u,"/_sandbox/git/rebase",{forwardJsonBody:!0,map404to410:!0})),$.post("/:virtualMcpId/:branch/git/suggest-commit",async(u)=>{let f=dy1(u);if(f instanceof Response)return f;let{claimName:X}=u.get("vmClaim"),w=u.var.meshContext,J={};try{let E=await u.req.text();if(E.trim())J=JSON.parse(E)}catch{return u.json({error:"Invalid JSON body"},400,Ws)}try{let{status:E,diff:Q}=J;if(!E||!Q)[E,Q]=await Promise.all([pg$(f,X,"/_sandbox/git/status","GET"),pg$(f,X,"/_sandbox/git/diff","GET")]);let Y=await rg$(w,E,Q);return u.json(Y,200,Ws)}catch(E){let Q=E instanceof Error?E.message:String(E);if(Q==="SANDBOX_GONE")return u.json({error:"Sandbox handle is gone. The sandbox needs to be re-provisioned."},410,Ws);return u.json({error:Q},502,Ws)}}),$.get("/:virtualMcpId/:branch/preview-fetch",async(u)=>{let f=dy1(u);if(f instanceof Response)return f;let{claimName:X}=u.get("vmClaim"),w=u.req.query("path");if(!w)return u.json({error:"path query parameter is required"},400);if(!w_3.has(w))return u.json({error:"Path not allowed"},403);let J=await f.getPreviewUrl(X);if(!J)return u.json({error:"Preview not available"},502);let E=J.replace(/\/+$/,""),Q;try{Q=await fetch(`${E}${w}`)}catch{return u.json({error:"Preview unreachable"},502)}let Y=await Q.text();return new Response(Y,{status:Q.status,headers:{"content-type":Q.headers.get("content-type")??"application/json"}})}),$};var eg$=U(()=>{f5();lx();ig$();GY();ly1();mw0();mg$();zR1();FS0();ag$();X_3=bg$(async($,u)=>{let f=$.var.meshContext;try{u1(f)}catch{return $.json({error:"Unauthorized"},401)}let X=W$(f);if(!X)return $.json({error:"Unauthorized"},401);let w;try{w=t0(f)}catch{return $.json({error:"Organization scope required"},403)}let J=$.req.param("virtualMcpId"),E=$.req.param("branch");if(!J||!E)return $.json({error:"virtualMcpId and branch are required"},400);let Q=await f.storage.virtualMcps.findById(J);if(!Q||Q.organization_id!==w.id)return $.json({error:"Virtual MCP not found"},404);let Y=MH({orgId:w.id,virtualMcpId:J,branch:E}),Z=wm0({userId:X,projectRef:Y},E),W=Q.metadata??null,G;try{G=(await xU(f,{userId:X,branch:E,virtualMcpMetadata:W})).provider}catch{G=null}return $.set("vmClaim",{claimName:Z,runner:G,virtualMcpId:J,branch:E,userId:X,projectRef:Y,virtualMcpMetadata:W}),u()});Ws={"Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache"};w_3=new Set(["/.decofile","/live/_meta"]),og$=["clone","install","start"]});var $V$=($)=>{let u=new m4;if(u.use("*",ro),u.route("/",Kd0()),u.route("/",um0()),u.route("/",ed0({kvStorage:$.kvStorage})),u.route("/",Rg$()),u.route("/sandbox",sg$()),u.route("/",qg$()),u.route("/deco-sites",_d0()),u.route("/sso",pc0()),u.route("/",fm0({tokenStorage:$.tokenStorage,automationEventDispatcher:$.automationEventDispatcher})),u.route("/webhooks",nM$()),$.mountDevAssets)u.route("/dev-assets",Pd0({orgFromPath:!0}));return u.use("/mcp/:connectionId?",$.mcpAuth),u.use("/mcp/gateway/:virtualMcpId?",$.mcpAuth),u.use("/mcp/virtual-mcp/:virtualMcpId?",$.mcpAuth),u.use("/mcp/self",$.mcpAuth),u.route("/",bW$()),u.get("/mcp/:gateway?/:connectionId/.well-known/oauth-protected-resource/*",$.betterAuthProtectedResourceHandler),u.route("/mcp",NI0()),u.route("/mcp/self",$m0()),u.route("/mcp",zI0()),u.all("/oauth-proxy/:connectionId/*",$.oauthProxyHandler),u.post("/events/:type",$.eventsHandler),u.get("/watch",$.watchHandler),u};var uV$=U(()=>{f5();Bh1();tM$();zh1();jd0();Gh1();Cg$();hy1();H90();YM1();KI0();yy1();Mg$();gy1();Vy1();OI0();eg$()});async function Y_3($,u){try{return!await $.alive(u)}catch(f){return console.warn(`[vm-events] alive probe failed for ${u}; assuming alive: ${f instanceof Error?f.message:String(f)}`),!1}}async function D_3($){let{ctx:u,runner:f,claimName:X,userId:w,projectRef:J,sandboxProviderKind:E}=$;try{await f.delete(X)}catch(Q){console.warn(`[vm-events] runner.delete failed for ${X}: ${Q instanceof Error?Q.message:String(Q)}`)}try{await new yH(u.db).delete({userId:w,projectRef:J},E)}catch(Q){console.warn(`[vm-events] sandbox_runner_state delete failed for ${w}/${J}/${E}: ${Q instanceof Error?Q.message:String(Q)}`)}}async function Z_3($){let{stream:u,claimName:f,runner:X,signal:w}=$;return new Promise((J)=>{let E=!1,Q=!1,Y=null,Z=(F)=>{if(E)return;E=!0,clearTimeout(W),w.removeEventListener("abort",G),Y?.unsubscribe(),J(F)},W=setTimeout(()=>{if(Q||E)return;u.writeSSE({event:"phase",data:JSON.stringify({kind:"failed",reason:"claim-never-created",message:"Sandbox claim was never created. The SANDBOX_START call may have failed earlier \u2014 check the start error."})}).catch(()=>{}),Z(!1)},E_3),G=()=>Z(!1);w.addEventListener("abort",G,{once:!0}),Y=dw0(X,f,(F)=>{if(E)return;if(F.kind!=="claiming")Q=!0;if(u.writeSSE({event:"phase",data:JSON.stringify(F)}).catch(()=>{}),F.kind==="ready")Z(!0);else if(F.kind==="failed")Z(!1)})})}async function W_3($){let{stream:u,runner:f,claimName:X,signal:w}=$,J=Date.now(),E=null;while(!w.aborted){let Y=null;try{Y=await f.proxyDaemonRequest(X,"/_sandbox/events",{method:"GET",headers:new Headers({accept:"text/event-stream"}),body:null,signal:w})}catch(Z){if(w.aborted)return;if(Date.now()-J<fV$){await wV$(XV$,w);continue}let W=Z instanceof Error?Z.message:String(Z);await u.writeSSE({event:"phase",data:JSON.stringify({kind:"failed",reason:"unknown",message:`Upstream daemon SSE error: ${W}`})}).catch(()=>{});return}if(Y.status===404){try{await Y.body?.cancel()}catch{}if(Date.now()-J<fV$){await wV$(XV$,w);continue}await u.writeSSE({event:"gone",data:""}).catch(()=>{});return}if(!Y.ok||!Y.body){try{await Y.body?.cancel()}catch{}await u.writeSSE({event:"phase",data:JSON.stringify({kind:"failed",reason:"unknown",message:`Upstream daemon SSE failed (${Y.status}).`})}).catch(()=>{});return}E=Y;break}if(!E||!E.body)return;let Q=E.body.getReader();try{while(!w.aborted){let{value:Y,done:Z}=await Q.read();if(Z)break;if(Y)await u.write(Y)}}catch{}finally{try{Q.releaseLock()}catch{}}}function wV$($,u){return new Promise((f)=>{if(u.aborted){f();return}let X=setTimeout(()=>{u.removeEventListener("abort",w),f()},$),w=()=>{clearTimeout(X),f()};u.addEventListener("abort",w,{once:!0})})}var E_3=90000,Q_3=15000,JV$=()=>{let $=new m4;return $.get("/",async(u)=>{let f=u.var.meshContext;try{u1(f)}catch{return u.json({error:"Unauthorized"},401)}let X=W$(f);if(!X)return u.json({error:"Unauthorized"},401);let w;try{w=t0(f)}catch{return u.json({error:"Organization scope required"},403)}let J=u.req.query("virtualMcpId"),E=u.req.query("branch");if(!J||!E)return u.json({error:"virtualMcpId and branch are required"},400);let Q=await f.storage.virtualMcps.findById(J);if(!Q||Q.organization_id!==w.id)return u.json({error:"Virtual MCP not found"},404);let Y=MH({orgId:w.id,virtualMcpId:J,branch:E}),Z=wm0({userId:X,projectRef:Y},E),W=Q.metadata??null,G,F=null,B=null;try{let O=await xU(f,{userId:X,branch:E,virtualMcpMetadata:W});G=O.provider,F=O.kind}catch(O){B=O instanceof Error?O:Error(String(O)),G=null}let v=F&&hH(mD(W),X,E,F),N=!!v&&v.sandboxHandle===Z;if(!G)return aD(u,async(O)=>{await O.writeSSE({event:"phase",data:JSON.stringify({kind:"failed",reason:"unknown",message:B?.message??"No sandbox runner configured on this mesh."})})});return u.header("X-Accel-Buffering","no"),u.header("Content-Encoding","identity"),aD(u,async(O)=>{let z=new AbortController,H=setInterval(()=>{O.writeSSE({event:"keepalive",data:""}).catch(()=>{clearInterval(H)})},Q_3);O.onAbort(()=>{z.abort(),clearInterval(H)});try{if(N&&F){if(await Y_3(G,Z)){await D_3({ctx:f,runner:G,claimName:Z,userId:X,projectRef:Y,sandboxProviderKind:F}),await O.writeSSE({event:"gone",data:""}).catch(()=>{});return}}if(!await Z_3({stream:O,claimName:Z,runner:G,signal:z.signal})||z.signal.aborted)return;await W_3({stream:O,runner:G,claimName:Z,signal:z.signal})}finally{clearInterval(H)}})}),$},fV$=60000,XV$=500;var EV$=U(()=>{f5();lx();GY();ly1();sH();mw0();vS0();MU()});function LF($,u="invalid_request_error",f=null,X=null){return{error:{message:$,type:u,param:f,code:X}}}function K_3($){if(!$)return null;let u=$.indexOf(":");if(u===-1)return{credentialId:null,modelId:$};let f=$.substring(0,u),X=$.substring(u+1);if(!f||!X)return null;return{credentialId:f,modelId:X}}function H_3($,u,f){try{return JSON.parse($)}catch{throw new DV$(`Invalid JSON in tool call arguments for function '${f}' (tool_call_id: ${u}): ${$}`)}}function __3($){let u={};for(let f of $)if(f.role==="assistant"&&f.tool_calls)for(let X of f.tool_calls)u[X.id]=X.function.name;return $.map((f)=>{switch(f.role){case"system":return{role:"system",content:f.content};case"user":if(typeof f.content==="string")return{role:"user",content:f.content};return{role:"user",content:f.content.map((w)=>{if(w.type==="text")return{type:"text",text:w.text};return{type:"image",image:w.image_url.url}})};case"assistant":if(f.tool_calls&&f.tool_calls.length>0)return{role:"assistant",content:f.tool_calls.map((w)=>({type:"tool-call",toolCallId:w.id,toolName:w.function.name,input:H_3(w.function.arguments,w.id,w.function.name)}))};return{role:"assistant",content:f.content??""};case"tool":let X=u[f.tool_call_id]??"unknown";return{role:"tool",content:[{type:"tool-result",toolCallId:f.tool_call_id,toolName:X,output:{type:"text",value:f.content}}]}}})}function P_3($){let u=$.map((f)=>{let X=f.function.parameters?JY(f.function.parameters):JY({type:"object",properties:{}});return[f.function.name,Ou({description:f.function.description,inputSchema:X})]});return Object.fromEntries(u)}function j_3($){if(!$)return;return{openai:{response_format:$}}}function L_3(){return`chatcmpl-${crypto.randomUUID().replace(/-/g,"").substring(0,29)}`}function QV$($,u,f,X,w,J){let E={model:$,messages:u,tools:f,temperature:X.temperature,maxTokens:X.max_tokens,topP:X.top_p,frequencyPenalty:X.frequency_penalty,presencePenalty:X.presence_penalty,stopSequences:X.stop?Array.isArray(X.stop)?X.stop:[X.stop]:void 0,abortSignal:J};return w?{...E,providerOptions:w}:E}function YV$($){if($==="tool-calls")return"tool_calls";if($==="length")return"length";return"stop"}var G_3,F_3,B_3,v_3,U_3,N_3,O_3,z_3,DV$,ZV$,WV$;var GV$=U(()=>{vf();f5();lx();m0();G_3=D.object({type:D.literal("function"),function:D.object({name:D.string(),description:D.string().optional(),parameters:D.record(D.string(),D.unknown()).optional()})}),F_3=D.object({id:D.string(),type:D.literal("function"),function:D.object({name:D.string(),arguments:D.string()})}),B_3=D.discriminatedUnion("role",[D.object({role:D.literal("system"),content:D.string(),name:D.string().optional()}),D.object({role:D.literal("user"),content:D.union([D.string(),D.array(D.union([D.object({type:D.literal("text"),text:D.string()}),D.object({type:D.literal("image_url"),image_url:D.object({url:D.string(),detail:D.string().optional()})})]))]),name:D.string().optional()}),D.object({role:D.literal("assistant"),content:D.string().nullable().optional(),name:D.string().optional(),tool_calls:D.array(F_3).optional()}),D.object({role:D.literal("tool"),content:D.string(),tool_call_id:D.string()})]),v_3=D.object({type:D.literal("text")}),U_3=D.object({type:D.literal("json_object")}),N_3=D.object({type:D.literal("json_schema"),json_schema:D.object({name:D.string(),description:D.string().optional(),schema:D.record(D.string(),D.unknown()),strict:D.boolean().optional()})}),O_3=D.union([v_3,U_3,N_3]),z_3=D.object({model:D.string().describe("Format: 'model_id' or 'credential_id:model_id'"),messages:D.array(B_3),stream:D.boolean().optional().default(!1),temperature:D.number().min(0).max(2).optional(),max_tokens:D.number().positive().optional(),top_p:D.number().min(0).max(1).optional(),frequency_penalty:D.number().min(-2).max(2).optional(),presence_penalty:D.number().min(-2).max(2).optional(),stop:D.union([D.string(),D.array(D.string())]).optional(),tools:D.array(G_3).optional(),tool_choice:D.union([D.literal("auto"),D.literal("none"),D.literal("required"),D.object({type:D.literal("function"),function:D.object({name:D.string()})})]).optional(),response_format:O_3.optional(),user:D.string().optional()});DV$=class DV$ extends Error{constructor($){super($);this.name="MessageConversionError"}};ZV$=new m4;ZV$.post("/:org/v1/chat/completions",async($)=>{let u=$.get("meshContext"),f=$.req.param("org");try{if(!u.auth.apiKey?.id)return $.json(LF("API key authentication required. Provide a valid API key via Authorization header.","authentication_error"),401);if(!u.organization)return $.json(LF("Organization context is required. Ensure your API key has organization metadata.","invalid_request_error","organization"),400);if((u.organization.slug??u.organization.id)!==f)return $.json(LF("Organization mismatch. The API key's organization does not match the requested organization.","invalid_request_error","organization"),403);let X=await $.req.json(),w=z_3.safeParse(X);if(!w.success){let O=w.error.issues[0]??{message:"Invalid request",path:[]};return $.json(LF(`Invalid request: ${O.message}`,"invalid_request_error",O.path.length>0?O.path.join("."):null),400)}let J=w.data,E=K_3(J.model);if(!E)return $.json(LF("Invalid model format. Expected 'model_id' or 'credential_id:model_id' (e.g., 'claude-sonnet-4-6' or 'key_abc123:claude-sonnet-4-6')","invalid_request_error","model"),400);let{credentialId:Q}=E,{modelId:Y}=E;if(!Q){let O=await u.storage.aiProviderKeys.list({organizationId:u.organization.id});if(O.length===0)return $.json(LF("No AI provider credentials configured for this organization. Add a credential in settings or specify one explicitly via 'credential_id:model_id'.","invalid_request_error","model"),400);Q=O[0].id}let Z;try{Z=await u.aiProviders.activate(Q,u.organization.id)}catch{return $.json(LF(`AI provider credential not found or inaccessible: ${Q}`,"invalid_request_error","model"),404)}let W=Z.aiSdk.languageModel(Y),G=__3(J.messages),F=J.tools?P_3(J.tools):void 0,B=j_3(J.response_format),v=L_3(),N=Math.floor(Date.now()/1000);if(J.stream)return aD($,async(O)=>{let z=QV$(W,G,F,J,B,$.req.raw.signal);try{let H=cD(z),j=!1,A=0;for await(let L of H.fullStream){if(!j&&(L.type==="text-delta"||L.type==="tool-call"))await O.writeSSE({data:JSON.stringify({id:v,object:"chat.completion.chunk",created:N,model:J.model,choices:[{index:0,delta:{role:"assistant",content:""},finish_reason:null}]})}),j=!0;if(L.type==="text-delta")await O.writeSSE({data:JSON.stringify({id:v,object:"chat.completion.chunk",created:N,model:J.model,choices:[{index:0,delta:{content:L.text},finish_reason:null}]})});else if(L.type==="tool-call"){let I=A++;await O.writeSSE({data:JSON.stringify({id:v,object:"chat.completion.chunk",created:N,model:J.model,choices:[{index:0,delta:{tool_calls:[{index:I,id:L.toolCallId,type:"function",function:{name:L.toolName,arguments:JSON.stringify(L.input)}}]},finish_reason:null}]})})}else if(L.type==="finish")await O.writeSSE({data:JSON.stringify({id:v,object:"chat.completion.chunk",created:N,model:J.model,choices:[{index:0,delta:{},finish_reason:YV$(L.finishReason)}],usage:L.totalUsage?{prompt_tokens:L.totalUsage.inputTokens??0,completion_tokens:L.totalUsage.outputTokens??0,total_tokens:L.totalUsage.totalTokens??0}:void 0})})}await O.writeSSE({data:"[DONE]"})}catch(H){let j=H;console.error("[openai-compat:stream] Error:",j.message),await O.writeSSE({data:JSON.stringify({error:{message:j.message,type:"server_error"}})})}});else{let O=QV$(W,G,F,J,B,$.req.raw.signal),z=await GF(O),H={role:"assistant",content:z.text||null};if(z.toolCalls&&z.toolCalls.length>0)H.tool_calls=z.toolCalls.map((j)=>({id:j.toolCallId,type:"function",function:{name:j.toolName,arguments:JSON.stringify("input"in j?j.input:{})}})),H.content=null;return $.json({id:v,object:"chat.completion",created:N,model:J.model,choices:[{index:0,message:H,finish_reason:YV$(z.finishReason)}],usage:{prompt_tokens:z.usage?.inputTokens??0,completion_tokens:z.usage?.outputTokens??0,total_tokens:z.usage?.totalTokens??0}})}}catch(X){let w=X;if(w.name==="AbortError")return $.json(LF("Request aborted","invalid_request_error"),400);if(w.name==="MessageConversionError")return $.json(LF(w.message,"invalid_request_error","messages"),400);return console.error("[openai-compat] Error:",w.message,w.stack),$.json(LF(w.message,"server_error"),500)}});WV$=ZV$});function A_3(){let $=process.env.POSTHOG_KEY;if(!$)return null;return{key:$,host:process.env.POSTHOG_HOST??T_3}}var FV$,T_3="https://us.i.posthog.com",BV$;var vV$=U(()=>{f5();vK1();bo();$U();_f();wM1();FV$=new m4;FV$.get("/",($)=>{let u={theme:S4$(),...OT().logo&&{logo:OT().logo},...Ix()&&{internalUrl:Yj0()},...b4().enableDecoImport&&{enableDecoImport:!0},brandExtractEnabled:!!b4().firecrawlApiKey,auth:wk$(),posthog:A_3()};return $.json({success:!0,config:u})});BV$=FV$});var UV$,NV$;var OV$=U(()=>{f5();HZ();aw0();mr();UV$=new m4;UV$.get("/:org/files/*",async($)=>{let u=$.get("meshContext");if(!u.organization?.id)throw new h$(401,{message:"Organization context required"});let X=$.req.path.replace(/^.*\/files\//,"");if(!X)throw new h$(400,{message:"Missing file key"});let w=await kx(X,u);if(!w)throw new h$(503,{message:"Object storage not configured"});if(w.startsWith("data:")&&KZ()){let J=w.match(/^data:([^;]+);base64,(.+)$/s);if(!J)throw new h$(500,{message:"Invalid data URL from storage"});let[,E,Q]=J,Y=Buffer.from(Q,"base64");return $.body(Y,200,{"Content-Type":E,"Cache-Control":"private, max-age=86400"})}return $.redirect(w,302)});NV$=UV$});var HV$={};Q1(HV$,{shouldSkipMeshContext:()=>my1,isServerPath:()=>q_3,SYSTEM_PATHS:()=>w_});function zV$($){return $===w_.HEALTH_LIVE||$===w_.HEALTH_READY||$===w_.METRICS||$.startsWith(Gs.WELL_KNOWN)}function KV$($){return $.startsWith(Gs.API)}function S_3($){return $==="/mcp"||$.startsWith(Gs.MCP)}function k_3($){return $.startsWith(Gs.OAUTH_PROXY)}function R_3($){return I_3.test($)}function C_3($){return $.startsWith(Gs.ORG)}function q_3($){return KV$($)||S_3($)||k_3($)||C_3($)||zV$($)}function my1($){return $==="/"||$.startsWith(Gs.API_AUTH)||$==="/api/trigger-callback"||zV$($)||!KV$($)&&R_3($)}var w_,Gs,I_3;var ny1=U(()=>{w_={HEALTH_LIVE:"/health/live",HEALTH_READY:"/health/ready",METRICS:"/metrics"},Gs={API:"/api/",API_AUTH:"/api/auth/",MCP:"/mcp/",OAUTH_PROXY:"/oauth-proxy/",WELL_KNOWN:"/.well-known",ORG:"/org/"},I_3=/\.(html|css|js|ico|svg|png|jpg|jpeg|gif|webp|woff|woff2)$/});function _V$($){let u=$?.connectFn??g_3,f=null,X=null,w=!1,J=!1,E=!1,Q=[];function Y(){return f!==null&&!f.isClosed()&&!f.isDraining()&&!E}function Z(){console.log(`[NatsProvider] fireReady: ${Q.length} callbacks`);for(let F of Q)try{F()}catch{}}function W(F){(async()=>{for await(let B of F.status())if(B.type===RJ0.Events.Disconnect)console.log("[NatsProvider] Disconnected"),E=!0;else if(B.type===RJ0.Events.Reconnect)console.log("[NatsProvider] Reconnected, re-firing ready callbacks"),E=!1,X=null,Z()})().catch(()=>{})}async function G(F){let B=0;while(!J)try{f=await u({servers:F,timeout:y_3,reconnect:!0,maxReconnectAttempts:-1}),console.log(`[NatsProvider] Connected to ${f.getServer()} after ${B} attempt(s)`),X=null,E=!1,W(f),Z();return}catch{B++;let N=Math.min(M_3*2**(B-1),h_3)*(0.5+Math.random()*0.5);await V_3(N)}}return{init(F){if(w)return;w=!0,J=!1,G(F).catch(()=>{})},isConnected(){return Y()},getConnection(){return Y()?f:null},getJetStream(){if(!Y())return null;if(!X)X=f.jetstream();return X},onReady(F){if(Q.push(F),Y())try{F()}catch{}},async drain(){if(J=!0,w=!1,X=null,E=!1,f){let F=f;f=null,await F.drain().catch(()=>{})}}}}function g_3($){return RJ0.connect($)}function V_3($){return new Promise((u)=>setTimeout(u,$))}var RJ0,M_3=100,h_3=3000,y_3=3000;var PV$=U(()=>{RJ0=J0(aT(),1)});function ty1($,u){return`${$}.${u}`}class ry1{options;kv=null;codec=Jm0.JSONCodec();constructor($){this.options=$}async init(){let $=this.options.getJetStream();if(!$)return;this.kv=await $.views.kv(b_3,{ttl:i_3,storage:Jm0.StorageType.Memory})}async get($,u){if(!this.kv)return null;try{let f=ty1($,u),X=await this.kv.get(`models.${f}`);if(!X?.value?.length)return null;if(X.operation==="DEL"||X.operation==="PURGE")return null;return this.codec.decode(X.value)}catch{return null}}async set($,u,f){if(!this.kv)return;try{let X=ty1($,u);await this.kv.put(`models.${X}`,this.codec.encode(f))}catch(X){console.warn("[ModelListCache] set failed:",X)}}async invalidate($,u){if(!this.kv)return;try{let f=ty1($,u);await this.kv.delete(`models.${f}`)}catch{}}teardown(){this.kv=null}}var Jm0,b_3="MESH_MODEL_LISTS",i_3=600000;var jV$=U(()=>{Jm0=J0(aT(),1)});class ay1{options;sub=null;onCancel=null;encoder=new TextEncoder;originId=crypto.randomUUID();constructor($){this.options=$}async start($){if($)this.onCancel=$;if(this.sub)return;if(!this.onCancel)return;let u=this.options.getConnection();if(!u)return;this.sub=u.subscribe("mesh.decopilot.cancel");let f=new TextDecoder;(async()=>{for await(let X of this.sub)try{let w=JSON.parse(f.decode(X.data));if(w.originId===this.originId)continue;this.onCancel?.(w.taskId)}catch{}})().catch(console.error)}broadcast($){if(/[.*>\s]/.test($)){console.warn("[NatsCancelBroadcast] Invalid threadId, skipping broadcast");return}this.onCancel?.($);try{let u=this.options.getConnection();if(!u)return;u.publish("mesh.decopilot.cancel",this.encoder.encode(JSON.stringify({taskId:$,originId:this.originId})))}catch(u){console.warn("[NatsCancelBroadcast] Publish failed (non-critical):",u)}}async stop(){this.sub?.unsubscribe(),this.sub=null,this.onCancel=null}}function d_3($){if(/[.*>\s]/.test($))throw Error("Invalid NATS subject token")}function py1($){return d_3($),`${LV$}.${$}`}function m_3($){let u=0;return{publish(f,X,w){f.publish(X,w).catch((J)=>{if(u++,u===1||u%100===0)console.warn(`[Decopilot] JetStream publish failed for thread ${$} (${u} total):`,J)})},get errorCount(){return u}}}class oy1{options;js=null;jsm=null;encoder=new TextEncoder;constructor($){this.options=$}async init(){let $=this.options.getConnection();if(!$)return;let u=await $.jetstreamManager(),f={name:Em0,subjects:[`${LV$}.>`],storage:uW.StorageType.Memory,max_age:x_3,max_bytes:l_3,max_msgs_per_subject:c_3,discard:uW.DiscardPolicy.Old,retention:uW.RetentionPolicy.Limits,num_replicas:1};try{await u.streams.info(Em0),await u.streams.update(Em0,f)}catch(X){if(X instanceof Error&&X.message.includes("stream not found"))await u.streams.add(f);else throw X}this.js=this.options.getJetStream(),this.jsm=u}pump($,u,f){let X=this.js;if(!X)return;let w=py1(u),J=m_3(u),E=this.encoder,Q=!1,Y=()=>{if(Q)return;Q=!0,X.publish(w,E.encode(JSON.stringify({done:!0}))).catch(()=>{})};f.addEventListener("abort",Y,{once:!0}),(async()=>{let Z=$.getReader();try{while(!0){let{done:W,value:G}=await Z.read();if(W)break;J.publish(X,w,E.encode(JSON.stringify({p:G})))}}catch(W){console.warn(`[Decopilot] stream pump error for thread ${u}:`,W?.message??W)}finally{Z.releaseLock(),Y()}})()}async createTailStream($,u,f){let X=this.js;if(!X)return null;let w=f?.deliverPolicy==="new"?uW.DeliverPolicy.New:uW.DeliverPolicy.All,J=f?.closeOnDone??!1,E=py1($),Q;try{Q=await X.subscribe(E,{ordered:!0,config:{filter_subject:E,ack_policy:uW.AckPolicy.None,deliver_policy:w}})}catch(F){return console.warn("[Decopilot] JetStream tail unavailable (non-critical):",F?.message??F),null}let Y=new TextDecoder,Z=async function*(){for await(let F of Q)yield F}(),W=!1,G=()=>{if(W)return;W=!0,Q.unsubscribe(),Z.return(void 0).catch(()=>{})};return u?.addEventListener("abort",G,{once:!0}),new ReadableStream({async pull(F){while(!0){let B=await Z.next();if(B.done){G(),F.close();return}let v=B.value;try{let N=JSON.parse(Y.decode(v.data));if(N.done){if(J){G(),F.close();return}continue}if(N.p){F.enqueue(N.p);return}}catch{}}},cancel(){G()}})}purge($){if(!this.jsm)return;this.jsm.streams.purge(Em0,{filter:py1($)}).catch(()=>{})}teardown(){this.js=null,this.jsm=null}}var uW,Em0="DECOPILOT_STREAMS",LV$="decopilot.stream",x_3=300000000000,l_3=524288000,c_3=20000;var TV$=U(()=>{uW=J0(aT(),1)});function IV$($){let u=$.ttlSeconds??AV$,f=0,X=()=>$.nowSeconds()+f,w=new Map;return{async get(J){let E=w.get(J);if(!E)return null;if(E.expiresAt<=X())return w.delete(J),null;return E.entry},async put(J,E){w.set(J,{entry:E,expiresAt:X()+u})},async delete(J){w.delete(J)},advanceNow(J){f+=J}}}class sy1{options;kv=null;codec=Qm0.JSONCodec();ttl;constructor($){this.options=$;this.ttl=$.ttlSeconds??AV$}async init(){let $=this.options.getJetStream();if(!$)return;this.kv=await $.views.kv(n_3,{history:1,ttl:this.ttl*1000,storage:Qm0.StorageType.Memory})}async get($){if(!this.kv)return null;try{let u=await this.kv.get($);if(!u?.value)return null;if(u.operation==="DEL"||u.operation==="PURGE")return null;if(Date.now()-u.created.getTime()>this.ttl*1000)return null;return this.codec.decode(u.value)}catch{return null}}async put($,u){if(!this.kv)return;await this.kv.put($,this.codec.encode(u))}async delete($){if(!this.kv)return;try{await this.kv.delete($)}catch{}}}var Qm0,n_3="LINKS",AV$=30;var SV$=U(()=>{Qm0=J0(aT(),1)});import{randomBytes as t_3,timingSafeEqual as r_3}from"crypto";function a_3($){return`https://link-${$.toLowerCase()}.deco.host`}function kV$($,u){if($.length!==u.length)return!1;return r_3(Buffer.from($,"utf8"),Buffer.from(u,"utf8"))}function p_3($){try{return new URL($).hostname==="localhost"}catch{return!1}}function RV$($,u){$.post("/api/links",async(f)=>{let X=u.getAuthenticatedUserSub(f);if(!X)throw new h$(401,{message:"no session"});let w;try{w=await f.req.json()}catch{throw new h$(400,{message:"invalid json"})}let J=il1.safeParse(w);if(!J.success)throw new h$(400,{message:J.error.message});let E=J.data;if(!dl1(E.protocolVersion))return f.json({code:"upgrade_required",requiredVersion:cl1,installHint:"bunx decocms@latest link"},426);let Q=(()=>{if(E.tunnelUrl&&p_3(E.tunnelUrl)&&u.allowLocalhostLinks)return E.tunnelUrl;return a_3(X)})(),Y=await u.linkRegistry.get(X);if(Y&&Y.machineId!==E.machineId)return f.json({code:"another_machine_active",activeMachineId:Y.machineId},409);let Z=t_3(32).toString("base64url"),W={machineId:E.machineId,...E.hostname?{hostname:E.hostname}:{},tunnelUrl:Q,linkSecret:Z,cliVersion:E.cliVersion,protocolVersion:E.protocolVersion,capabilities:E.capabilities,createdAt:Y?.createdAt??new Date().toISOString()};return await u.linkRegistry.put(X,W),f.json({linkSecret:Z})}),$.post("/api/links/heartbeat",async(f)=>{let X=f.req.header("x-mesh-user-sub");if(!X)throw new h$(400,{message:"missing X-Mesh-User-Sub"});let w=f.req.header("x-link-secret");if(!w)throw new h$(401,{message:"missing X-Link-Secret"});let J=await u.linkRegistry.get(X);if(!J)throw new h$(401,{message:"no link"});if(!kV$(J.linkSecret,w))throw new h$(401,{message:"bad secret"});return await u.linkRegistry.put(X,J),f.body(null,204)}),$.delete("/api/links/me",async(f)=>{let X=f.req.header("x-mesh-user-sub");if(!X)throw new h$(400,{message:"missing X-Mesh-User-Sub"});let w=f.req.header("x-link-secret");if(!w)throw new h$(401,{message:"missing X-Link-Secret"});let J=await u.linkRegistry.get(X);if(!J)return f.body(null,204);if(!kV$(J.linkSecret,w))throw new h$(401,{message:"bad secret"});return await u.linkRegistry.delete(X),f.body(null,204)}),$.get("/api/links/me",async(f)=>{let X=u.getAuthenticatedUserSub(f);if(!X)throw new h$(401,{message:"no session"});let w=await u.linkRegistry.get(X);if(!w)return f.json({status:"offline"});return f.json({status:"online",capabilities:w.capabilities,machineId:w.machineId,cliVersion:w.cliVersion,currentProtocolVersion:s_,reportedProtocolVersion:w.protocolVersion})})}var CV$=U(()=>{e_();HZ()});function qV$($,u){switch($.type){case"START":{let f={type:"RUN_STARTED",taskId:$.taskId,orgId:$.orgId,userId:$.userId,abortController:$.abortController,runConfig:$.runConfig,podId:$.podId};if(u?.status.tag==="running")return[{type:"PREVIOUS_RUN_ABORTED",taskId:$.taskId,orgId:u.orgId},f];return[f]}case"STEP_DONE":{if(u?.status.tag!=="running")return[];return[{type:"STEP_COMPLETED",taskId:$.taskId,orgId:u.orgId,stepCount:u.status.stepCount+1}]}case"FINISH":{if(u==null||u.status.tag!=="running")return[];let{stepCount:f}=u.status;if($.threadStatus==="completed")return[{type:"RUN_COMPLETED",taskId:$.taskId,orgId:u.orgId,stepCount:f}];if($.threadStatus==="requires_action")return[{type:"RUN_REQUIRES_ACTION",taskId:$.taskId,orgId:u.orgId,stepCount:f}];return[{type:"RUN_FAILED",taskId:$.taskId,orgId:u.orgId,reason:"error"}]}case"CANCEL":{if(u?.status.tag!=="running")return[];return[{type:"RUN_FAILED",taskId:$.taskId,orgId:u.orgId,reason:"cancelled"}]}case"RESUME":{if(u?.status.tag==="running")return[];return[{type:"RUN_RESUMED",taskId:$.taskId,orgId:$.orgId,userId:$.userId,abortController:$.abortController,podId:$.podId}]}case"FORCE_FAIL":{if($.reason==="ghost")return[{type:"RUN_FAILED",taskId:$.taskId,orgId:u?.orgId??$.orgId,reason:$.reason}];if(u?.status.tag!=="running")return[];return[{type:"RUN_FAILED",taskId:$.taskId,orgId:u.orgId,reason:$.reason}]}}}function MV$($,u,f=new Date){switch(u.type){case"RUN_STARTED":return{taskId:u.taskId,orgId:u.orgId,userId:u.userId,status:{tag:"running",abortController:u.abortController,stepCount:0,startedAt:f}};case"RUN_RESUMED":return{taskId:u.taskId,orgId:u.orgId,userId:u.userId,status:{tag:"running",abortController:u.abortController,stepCount:0,startedAt:f}};case"STEP_COMPLETED":if($?.status.tag!=="running")return $;return{...$,status:{...$.status,stepCount:u.stepCount}};case"RUN_COMPLETED":return;case"RUN_REQUIRES_ACTION":return;case"RUN_FAILED":return;case"PREVIOUS_RUN_ABORTED":return}}async function hV$($,u,f,X){let{storage:w,streamBuffer:J,sseHub:E}=X,Q=await w.get($,u);await w.update($,u,{status:f,run_owner_pod:null,run_config:null,run_started_at:null}),J.purge($),E.emit(u,Qv($,f,{virtualMcpId:Q?.virtual_mcp_id??void 0,createdBy:Q?.created_by,triggerId:Q?.trigger_id,title:Q?.title,branch:Q?.branch??null,createdAt:Q?.created_at,updatedAt:Q?.updated_at})),E.emit(u,J30($,f))}async function o_3($,u){let{storage:f,streamBuffer:X,sseHub:w}=u;switch($.type){case"RUN_STARTED":{if(!await f.claimRunStart($.taskId,$.orgId,{status:"in_progress",run_owner_pod:$.podId??null,run_config:$.runConfig??null,run_started_at:$.podId?new Date().toISOString():null},$.podId??null))throw new yV$($.taskId);let E=await f.get($.taskId,$.orgId);w.emit($.orgId,Qv($.taskId,"in_progress",{virtualMcpId:E?.virtual_mcp_id??void 0,createdBy:E?.created_by,triggerId:E?.trigger_id,title:E?.title,branch:E?.branch??null,createdAt:E?.created_at,updatedAt:E?.updated_at}));return}case"RUN_RESUMED":{await f.update($.taskId,$.orgId,{run_owner_pod:$.podId,run_started_at:new Date().toISOString()});let J=await f.get($.taskId,$.orgId);w.emit($.orgId,Qv($.taskId,"in_progress",{virtualMcpId:J?.virtual_mcp_id??void 0,createdBy:J?.created_by,triggerId:J?.trigger_id,title:J?.title,branch:J?.branch??null,createdAt:J?.created_at,updatedAt:J?.updated_at}));return}case"STEP_COMPLETED":w.emit($.orgId,NO0($.taskId,$.stepCount));return;case"RUN_COMPLETED":await hV$($.taskId,$.orgId,"completed",u);return;case"RUN_REQUIRES_ACTION":await hV$($.taskId,$.orgId,"requires_action",u);return;case"RUN_FAILED":{if($.reason==="ghost"){if(!await f.forceFailIfInProgress($.taskId,$.orgId))return;await f.update($.taskId,$.orgId,{run_owner_pod:null,run_config:null,run_started_at:null})}else await f.update($.taskId,$.orgId,{status:"failed",run_owner_pod:null,run_config:null,run_started_at:null});X.purge($.taskId);let J=await f.get($.taskId,$.orgId);w.emit($.orgId,Qv($.taskId,"failed",{virtualMcpId:J?.virtual_mcp_id??void 0,createdBy:J?.created_by,triggerId:J?.trigger_id,title:J?.title,branch:J?.branch??null,createdAt:J?.created_at,updatedAt:J?.updated_at})),w.emit($.orgId,J30($.taskId,"failed"));return}case"PREVIOUS_RUN_ABORTED":return}}async function gV$($,u){for(let{event:f}of $)await o_3(f,u)}var yV$;var VV$=U(()=>{iu();yV$=class yV$ extends Error{constructor($){super(`Failed to claim run for thread ${$} \u2014 already running on another pod`);this.name="RunClaimError"}}});class ey1{deps;podId;clock;states=new Map;reaperTimer=null;constructor($,u,f=()=>new Date){this.deps=$;this.podId=u;this.clock=f;this.reaperTimer=setInterval(()=>this.reapStaleRuns(),s_3)}async execute($){let u=this.dispatch($);return await this.react(u),u}dispatch($){let u=this.states.get($.taskId),f=qV$($,u),X=[];for(let w of f){let J=this.states.get(w.taskId);if(w.type==="PREVIOUS_RUN_ABORTED"||w.type==="RUN_FAILED"){if(J?.status.tag==="running")J.status.abortController.abort()}let E=MV$(J,w,this.clock());if(E===void 0)this.states.delete(w.taskId);else this.states.set(w.taskId,E);if(X.push({event:w,state:E}),$P3.has(w.type))bV$.add(1,{"org.id":w.orgId});else if(uP3.has(w.type)&&J?.status.tag==="running")bV$.add(-1,{"org.id":w.orgId})}return X}react($){return gV$($,this.deps)}getAbortSignal($){let u=this.states.get($);if(u?.status.tag==="running")return u.status.abortController.signal;return null}isRunning($){return this.states.get($)?.status.tag==="running"}async stopAll(){try{await this.deps.storage.orphanRunsByPod(this.podId)}catch($){console.error("[RunRegistry] Failed to orphan runs in DB:",$)}for(let[,$]of this.states)if($.status.tag==="running")$.status.abortController.abort();this.states.clear()}async recoverOrphanedRuns($){let u=await this.deps.storage.listOrphanedRuns(this.podId);if(u.length===0)return;let f=5;for(let X=0;X<u.length;X+=f){let w=u.slice(X,X+f);await Promise.allSettled(w.map(async(J)=>{if(!await this.deps.storage.claimOrphanedRun(J.id,J.organization_id,this.podId))return;try{await $(J)}catch(Q){console.error(`[RunRegistry] Failed to resume ${J.id}:`,Q),await this.deps.storage.forceFailIfInProgress(J.id,J.organization_id).catch(()=>{})}}))}}async handlePodDeath($,u,f){let X=await this.deps.storage.listOrphanedRunsByPod($);if(X.length===0)return;for(let J of X)f?.broadcast(J.id);let w=5;for(let J=0;J<X.length;J+=w){let E=X.slice(J,J+w);await Promise.allSettled(E.map(async(Q)=>{if(this.isRunning(Q.id))return;if(!await this.deps.storage.claimOrphanedRun(Q.id,Q.organization_id,this.podId))return;try{await u(Q)}catch(Z){console.error(`[RunRegistry] Failed to resume ${Q.id}:`,Z),await this.deps.storage.forceFailIfInProgress(Q.id,Q.organization_id).catch(()=>{})}}))}}dispose(){if(this.reaperTimer)clearInterval(this.reaperTimer),this.reaperTimer=null}reapStaleRuns(){let $=this.clock().getTime();for(let[u,f]of this.states)if(f.status.tag==="running"&&$-f.status.startedAt.getTime()>e_3)console.warn(`[RunRegistry] Reaping stale run for thread ${u} ...`),this.execute({type:"FORCE_FAIL",taskId:u,reason:"reaped"}).catch((X)=>{console.error("[RunRegistry] Reaper execute failed",X)})}}var s_3=300000,e_3=1800000,$P3,uP3,bV$;var iV$=U(()=>{VV$();IQ();$P3=new Set(["RUN_STARTED","RUN_RESUMED"]),uP3=new Set(["RUN_COMPLETED","RUN_FAILED","RUN_REQUIRES_ACTION","PREVIOUS_RUN_ABORTED"]),bV$=d2.createUpDownCounter("decopilot.stream.inflight",{description:"Number of in-flight decopilot stream requests",unit:"{requests}"})});class $g1{storage;options;timer=null;constructor($,u={}){this.storage=$;this.options=u}start(){if(this.timer)return;let $=this.options.intervalMs??300000;this.timer=setInterval(()=>{this.runOnce()},$)}async runOnce(){let $=this.options.staleAfterMs??3600000;try{let u=await this.storage.sweepAbandoned($);if(u>0)console.log(`[async-research-sweeper] marked ${u} stale jobs as abandoned`);return u}catch(u){return console.error("[async-research-sweeper] sweep failed",u),0}}dispose(){if(this.timer)clearInterval(this.timer),this.timer=null}}import{readdir as fP3,rm as Ym0}from"fs/promises";import{join as Dm0}from"path";async function Zm0($){let u=new Date;u.setUTCDate(u.getUTCDate()-XP3),u.setUTCHours(0,0,0,0);let f=0;try{let X=await cx($);for(let w of X)if(/^\d{4}$/.test(w))f+=await xV$($,w,u);else if(!w.startsWith(".")){let J=Dm0($,w),E=await cx(J);for(let Y of E){if(!/^\d{4}$/.test(Y))continue;f+=await xV$(J,Y,u)}if((await cx(J)).length===0)await Ym0(J,{recursive:!0,force:!0})}}catch(X){console.warn("monitoring retention cleanup failed:",X)}return f}async function xV$($,u,f){let X=0,w=Dm0($,u),J=await cx(w);for(let Q of J){if(!/^\d{2}$/.test(Q))continue;let Y=Dm0(w,Q),Z=await cx(Y);for(let G of Z){if(!/^\d{2}$/.test(G))continue;let F=new Date(`${u}-${Q}-${G}T00:00:00Z`);if(isNaN(F.getTime()))continue;if(F<f){let B=Dm0(Y,G);await Ym0(B,{recursive:!0,force:!0}),X++}}if((await cx(Y)).length===0)await Ym0(Y,{recursive:!0,force:!0})}if((await cx(w)).length===0)await Ym0(w,{recursive:!0,force:!0});return X}async function cx($){try{return(await fP3($)).filter((f)=>!f.startsWith("."))}catch{return[]}}var XP3=30;var ug1=()=>{};import{DBOS as fg1,SchedulerMode as wP3}from"@dbos-inc/dbos-sdk";async function EP3(){let $=[y2(),ym(),iB()],u=0;for(let f of $)try{u+=await Zm0(f)}catch(X){console.error("[monitoring-retention] cleanup failed:",X)}return console.log(`[monitoring-retention] deleted ${u} day-dir(s) across ${$.length} signal dir(s)`),{deleted:u,dirs:$.length}}async function QP3($,u){await fg1.runStep(()=>EP3(),{name:"monitoringRetention"})}function cV$(){if(lV$)return;lV$=!0;let $=fg1.registerWorkflow(QP3,{name:"monitoringRetentionWorkflow"});fg1.registerScheduled($,{name:"monitoringRetentionWorkflow",crontab:JP3,mode:wP3.ExactlyOncePerIntervalWhenActive})}var JP3="23 4 * * *",lV$=!1;var dV$=U(()=>{SQ();ug1()});function qJ0($){return{...$,title:$.title??$.id}}function nV$($){return{credentialId:$.credentialId,thinking:qJ0($.thinking),...$.coding&&{coding:qJ0($.coding)},...$.fast&&{fast:qJ0($.fast)},...$.image&&{image:qJ0($.image)},...$.deepResearch&&{deepResearch:qJ0($.deepResearch)}}}var CJ0,YP3,mV$;var tV$=U(()=>{m0();CJ0=D.object({id:D.string(),title:D.string().optional(),capabilities:D.object({vision:D.boolean().optional(),text:D.boolean().optional(),tools:D.boolean().optional(),reasoning:D.boolean().optional(),file:D.boolean().optional()}).passthrough().optional(),limits:D.object({contextWindow:D.number().optional(),maxOutputTokens:D.number().optional()}).passthrough().optional(),provider:D.string().nullish()}),YP3=D.object({models:D.object({credentialId:D.string(),thinking:CJ0,coding:CJ0.optional(),fast:CJ0.optional(),image:CJ0.optional(),deepResearch:CJ0.optional()}),agent:D.object({id:D.string()}),temperature:D.number(),toolApprovalLevel:D.enum(["auto","readonly","plan"]).optional(),mode:D.enum(["default","plan","web-search","gen-image"]).optional(),windowSize:D.number().optional(),triggerId:D.string().optional()}),mV$=YP3.transform(($)=>{let u=$.mode??"default",f="auto";if($.toolApprovalLevel==="plan")u="plan",f="readonly";else if($.toolApprovalLevel==="readonly")f="readonly";else if($.toolApprovalLevel==="auto")f="auto";return{models:$.models,agent:$.agent,temperature:$.temperature,toolApprovalLevel:f,mode:u,windowSize:$.windowSize,triggerId:$.triggerId}})});class Xg1{deps;kv=null;podId=null;refreshTimer=null;watchAbortController=null;initPromise=null;pendingDeathCallback=null;constructor($){this.deps=$}async init(){if(this.watchAbortController)this.watchAbortController.abort(),this.watchAbortController=null;if(this.refreshTimer)clearInterval(this.refreshTimer),this.refreshTimer=null;this.kv=null,this.initPromise=null;let $=this.deps.getJetStream();if(!$)return;return this.initPromise=$.views.kv(DP3,{ttl:ZP3,storage:rV$.StorageType.Memory}).then((u)=>{this.kv=u}).catch((u)=>{throw this.initPromise=null,u}),this.initPromise}start($){if(!this.kv)return;if(this.refreshTimer)return;if(this.podId=$,this.kv.put($,new TextEncoder().encode(new Date().toISOString())),this.refreshTimer=setInterval(()=>{this.kv?.put($,new TextEncoder().encode(new Date().toISOString())).catch((u)=>{console.error("[PodHeartbeat] Refresh failed:",u)})},WP3),this.pendingDeathCallback)this.startDeathWatcher(this.pendingDeathCallback),this.pendingDeathCallback=null}onPodDeath($){if(!this.kv){this.pendingDeathCallback=$;return}this.startDeathWatcher($)}startDeathWatcher($){if(!this.kv)return;this.watchAbortController=new AbortController;let u=this.kv,f=this.podId,X=this.watchAbortController.signal;(async()=>{while(!X.aborted)try{let J=await u.watch({initializedFn:()=>{}});for await(let E of J){if(X.aborted)break;if(E.operation==="DEL"||E.operation==="PURGE"){let Q=E.key;if(Q!==f)$(Q)}}}catch(J){if(X.aborted)break;console.error("[PodHeartbeat] Watcher error, reconnecting in 1s:",J),await new Promise((E)=>setTimeout(E,1000))}})().catch((J)=>{if(!X.aborted)console.error("[PodHeartbeat] Watcher loop failed:",J)})}async stop(){if(this.refreshTimer)clearInterval(this.refreshTimer),this.refreshTimer=null;if(this.kv&&this.podId)try{await this.kv.delete(this.podId)}catch{}if(this.watchAbortController)this.watchAbortController.abort(),this.watchAbortController=null;this.kv=null,this.podId=null,this.initPromise=null,this.pendingDeathCallback=null}}var rV$,DP3="POD_HEARTBEATS",ZP3=45000,WP3=1e4;var aV$=U(()=>{rV$=J0(aT(),1)});class wg1{db;constructor($){this.db=$}async get($,u){let f=await this.db.selectFrom("kv").select("value").where("organization_id","=",$).where("key","=",u).executeTakeFirst();if(!f)return null;return f.value}async set($,u,f){await this.db.insertInto("kv").values({organization_id:$,key:u,value:JSON.stringify(f),updated_at:new Date().toISOString()}).onConflict((X)=>X.columns(["organization_id","key"]).doUpdateSet({value:JSON.stringify(f),updated_at:new Date().toISOString()})).execute()}async delete($,u){await this.db.deleteFrom("kv").where("organization_id","=",$).where("key","=",u).execute()}}function pV$($){return async(u,f)=>{let X=await $.db.selectFrom("member").innerJoin("organization","organization.id","member.organizationId").select(["member.role","organization.id as orgId","organization.slug as orgSlug","organization.name as orgName"]).where("member.userId","=",f).where("member.organizationId","=",u).executeTakeFirst();if(!X)return console.warn(`[automationContextFactory] User ${f} not found in org ${u} \u2014 returning null`),null;let w=await lZ.create();w.auth.user={id:f,role:X.role},w.organization={id:X.orgId,slug:X.orgSlug,name:X.orgName};let J=await jA1($.db,u,X.role);return w.boundAuth=PA1({auth:w.authInstance,headers:new Headers,role:X.role,permissions:J,userId:f}),w.access=new UA(w.authInstance,f,void 0,w.boundAuth,X.role,"self"),w.storage.threads=new DX0($.threadStorage,X.orgId),w.storage.asyncResearchJobs=new WX0($.asyncResearchJobStorage,X.orgId),w}}var oV$=U(()=>{bT0();O90();aT0();oT0()});import{EventEmitter as GP3}from"events";var Jg1;var sV$=U(()=>{kG();Jg1=new GP3;Jg1.on("request",($)=>{Av($)})});function eV$(){return async($,u)=>{let f=Date.now(),X=$.req.method,w=$.req.path;if(w==="/api/auth/get-session"||w.includes("favicon")){await u();return}let J="",E=!1;if(w.startsWith("/mcp")&&X==="POST"){E=!0;try{if($.req.header("Content-Type")?.includes("application/json")){let F=await $.req.raw.clone().json();if(F.method==="tools/call"&&F.params?.name){let B=eU(F.params.name),v=F.params.arguments||{};if(B==="EVENT_PUBLISH"&&v.type){let N=eU(String(v.type));J=`${G6.tool}EVENT_PUBLISH${G6.reset} ${G6.bold}\u2192 ${N}${G6.reset}`}else if(B==="EVENT_SUBSCRIBE"&&v.eventType){let N=eU(String(v.eventType));J=`${G6.tool}EVENT_SUBSCRIBE${G6.reset} ${G6.bold}\u2190 ${N}${G6.reset}`}else if(B==="EVENT_UNSUBSCRIBE"&&v.eventType){let N=eU(String(v.eventType));J=`${G6.tool}EVENT_UNSUBSCRIBE${G6.reset} ${G6.dim}\u2715 ${N}${G6.reset}`}else{let N=Object.keys(v).map((z)=>eU(z)),O=N.length>0?N.slice(0,3).join(",")+(N.length>3?"\u2026":""):"";J=`${G6.tool}${B}${G6.dim}(${O})${G6.reset}`}}else if(F.method)J=`${G6.dim}${eU(F.method)}${G6.reset}`}}catch{}}let Q=eU(w);if(w.startsWith("/mcp/conn_")){let W=w.split("/")[2]??"";Q=`/mcp/${G6.mcp}${eU(W.slice(0,12))}\u2026${G6.reset}`}else if(w==="/mcp")Q=`${G6.mcp}/mcp${G6.reset}`;else if(w==="/mcp/registry")Q=`${G6.mcp}/mcp/registry${G6.reset}`;let Y=BP3(X),Z=E?"\u25C0":"\u2190";if(!cz0())console.log(`${G6.dim}${Z}${G6.reset} ${Y}${X}${G6.reset} ${Q}${J?` ${J}`:""}`);try{await u()}finally{let W=Date.now()-f,G=$.res.status,F=FP3(G),B=W<1000?`${W}ms`:`${(W/1000).toFixed(1)}s`,v=E?"\u25B6":"\u2192";if(!cz0())console.log(`${G6.dim}${v}${G6.reset} ${Y}${X}${G6.reset} ${Q}${J?` ${J}`:""} ${F}${G}${G6.reset} ${G6.duration}${B}${G6.reset}`);Jg1.emit("request",{method:X,path:eU(w),status:G,duration:W,timestamp:new Date})}}}var G6,FP3=($)=>{if($>=500)return G6.serverError;if($>=400)return G6.clientError;if($>=300)return G6.redirect;return G6.ok},BP3=($)=>{return G6[$]||G6.reset},eU=($)=>{return $.replace(/\r/g,"").replace(/\n/g,"").replace(/\x1b\[[0-9;]*m/g,"").replace(/[\x00-\x1f\x7f-\x9f]/g,"")};var $b$=U(()=>{kG();sV$();G6={reset:"\x1B[0m",dim:"\x1B[2m",bold:"\x1B[1m",GET:"\x1B[36m",POST:"\x1B[33m",PUT:"\x1B[35m",DELETE:"\x1B[31m",ok:"\x1B[32m",redirect:"\x1B[36m",clientError:"\x1B[33m",serverError:"\x1B[31m",mcp:"\x1B[35m",tool:"\x1B[96m",duration:"\x1B[90m"}});import{createHmac as wb$}from"crypto";import{mkdir as vP3,readdir as UP3,rm as ub$,stat as Jb$}from"fs/promises";import{join as Qg1,relative as NP3}from"path";function Qb$($){let u=$.replace(/[^a-zA-Z0-9_-]/g,"_");return Qg1(OP3,u)}function Yb$($){return $.replace(/^\/+/,"").replace(/\.\./g,"")}function Eg1($,u){let f=Qb$($),X=Yb$(u);return Qg1(f,X)}function zP3($,u,f,X){let w=b4().encryptionKey||"dev-secret",J=`${$}:${u}:${f}:${X}`;return wb$("sha256",w).update(J).digest("hex")}function Xb$($,u,f,X,w){let J=Math.floor(Date.now()/1000)+X,E=zP3(u,f,J,w),Q=new URL(`/api/dev-assets/${u}/${Yb$(f)}`,$);return Q.searchParams.set("expires",J.toString()),Q.searchParams.set("signature",E),Q.searchParams.set("method",w),Q.toString()}function Db$($,u,f){let X=`${$}:${u.getTime()}:${f}`;return`"${wb$("md5","etag").update(X).digest("hex")}"`}async function Zb$($,u,f,X,w){try{let J=await UP3($,{withFileTypes:!0});for(let E of J){let Q=Qg1($,E.name),Z=NP3(u,Q).replace(/\\/g,"/");if(f&&!Z.startsWith(f))continue;if(E.isDirectory())if(X){let W=Z+"/";if(!f||W.startsWith(f)){if(!(f?Z.slice(f.length):Z).includes("/"))w.commonPrefixes.add(W)}}else await Zb$(Q,u,f,X,w);else if(E.isFile()){if(X&&f){let W=Z.slice(f.length);if(W.includes(X)){let G=W.indexOf(X),F=f+W.slice(0,G+1);w.commonPrefixes.add(F);continue}}try{let W=await Jb$(Q);w.objects.push({key:Z,size:W.size,lastModified:W.mtime.toISOString(),etag:Db$(Q,W.mtime,W.size)})}catch{}}}}catch{}}function Wb$($,u){let X=t0($).id;return[{name:"LIST_OBJECTS",description:"List objects in the local assets directory with pagination support",inputSchema:D.object({prefix:D.string().optional(),maxKeys:D.number().optional().default(1000),continuationToken:D.string().optional(),delimiter:D.string().optional()}),outputSchema:D.object({objects:D.array(D.object({key:D.string(),size:D.number(),lastModified:D.string(),etag:D.string()})),nextContinuationToken:D.string().optional(),isTruncated:D.boolean(),commonPrefixes:D.array(D.string()).optional()}),handler:async(w)=>{let J=w,E=J.prefix||"",Q=J.maxKeys??1000,Y=J.delimiter,Z=J.continuationToken,W=Qb$(X);await vP3(W,{recursive:!0});let G={objects:[],commonPrefixes:new Set};await Zb$(W,W,E,Y,G),G.objects.sort((O,z)=>O.key.localeCompare(z.key));let F=0;if(Z){if(F=G.objects.findIndex((O)=>O.key>Z),F===-1)F=G.objects.length}let B=G.objects.slice(F,F+Q),v=F+Q<G.objects.length,N=v?B[B.length-1]?.key:void 0;return{objects:B,isTruncated:v,nextContinuationToken:N,commonPrefixes:Array.from(G.commonPrefixes).sort()}}},{name:"GET_OBJECT_METADATA",description:"Get metadata for a file in the local assets directory",inputSchema:D.object({key:D.string()}),outputSchema:D.object({contentType:D.string().optional(),contentLength:D.number(),lastModified:D.string(),etag:D.string(),metadata:D.record(D.string(),D.string()).optional()}),handler:async(w)=>{let J=w,E=Eg1(X,J.key),Q=await Jb$(E);return{contentType:Kh1(J.key),contentLength:Q.size,lastModified:Q.mtime.toISOString(),etag:Db$(E,Q.mtime,Q.size)}}},{name:"GET_PRESIGNED_URL",description:"Generate a presigned URL for downloading a file from local storage",inputSchema:D.object({key:D.string(),expiresIn:D.number().optional()}),outputSchema:D.object({url:D.string(),expiresIn:D.number()}),handler:async(w)=>{let J=w,E=J.expiresIn??fb$;return{url:Xb$(u,X,J.key,E,"GET"),expiresIn:E}}},{name:"PUT_PRESIGNED_URL",description:"Generate a presigned URL for uploading a file to local storage",inputSchema:D.object({key:D.string(),expiresIn:D.number().optional(),contentType:D.string().optional()}),outputSchema:D.object({url:D.string(),expiresIn:D.number()}),handler:async(w)=>{let J=w,E=J.expiresIn??fb$;return{url:Xb$(u,X,J.key,E,"PUT"),expiresIn:E}}},{name:"DELETE_OBJECT",description:"Delete a single file from local storage",inputSchema:D.object({key:D.string()}),outputSchema:D.object({success:D.boolean(),key:D.string()}),handler:async(w)=>{let J=w,E=Eg1(X,J.key);try{return await ub$(E),{success:!0,key:J.key}}catch{return{success:!1,key:J.key}}}},{name:"DELETE_OBJECTS",description:"Delete multiple files from local storage",inputSchema:D.object({keys:D.array(D.string()).max(1000)}),outputSchema:D.object({deleted:D.array(D.string()),errors:D.array(D.object({key:D.string(),message:D.string()}))}),handler:async(w)=>{let J=w,E=[],Q=[];return await Promise.all(J.keys.map(async(Y)=>{let Z=Eg1(X,Y);try{await ub$(Z),E.push(Y)}catch(W){Q.push({key:Y,message:W instanceof Error?W.message:"Unknown error"})}})),{deleted:E,errors:Q}}}]}async function Yg1($,u,f){let X=Wb$(u,f),w=new Yv({name:"dev-assets-mcp",version:"1.0.0"},{capabilities:{tools:{}}});for(let E of X){let Q="shape"in E.inputSchema?E.inputSchema.shape:D.object({}).shape,Y=E.outputSchema&&"shape"in E.outputSchema?E.outputSchema.shape:D.object({}).shape;w.registerTool(E.name,{description:E.description??"",inputSchema:Q,outputSchema:Y,annotations:E.annotations,_meta:E._meta},async(Z)=>{try{let W=await E.handler(Z);return{content:[{type:"text",text:JSON.stringify(W)}],structuredContent:W}}catch(W){return{content:[{type:"text",text:`Error: ${W.message}`}],isError:!0}}})}let J=new iD({enableJsonResponse:$.headers.get("Accept")?.includes("application/json")??!1});return await w.connect(J),J.handleRequest($)}async function Gb$($,u,f,X){let J=Wb$(f,X).find((E)=>E.name===$);if(!J)return{content:[{type:"text",text:`Tool not found: ${$}`}],isError:!0};try{let E=await J.handler(u);return{content:[{type:"text",text:JSON.stringify(E)}]}}catch(E){return{content:[{type:"text",text:E instanceof Error?E.message:String(E)}],isError:!0}}}var OP3="./data/assets",fb$=3600,Eb$,Fb$;var Bb$=U(()=>{_f();f5();m0();Q30();wo();jd0();Eb$=new m4;Eb$.all("/",async($)=>{let u=$.get("meshContext"),f=new URL($.req.url),X=`${f.protocol}//${f.host}`;return Yg1($.req.raw,u,X)});Fb$=Eb$});var vb$={};Q1(vb$,{mountDevRoutes:()=>KP3});function KP3($,u){$.all("/mcp/:connectionId{.*_dev-assets$}",u,async(X)=>{let w=X.get("meshContext"),J=new URL(X.req.url),E=`${J.protocol}//${J.host}`;return Yg1(X.req.raw,w,E)}),$.all("/mcp/:connectionId{.*_dev-assets$}/call-tool/:toolName",u,async(X)=>{let w=X.get("meshContext"),J=new URL(X.req.url),E=`${J.protocol}//${J.host}`,Q=X.req.param("toolName");if(!Q)return X.json({error:"Missing tool name"},400);let Y=await X.req.json(),Z=await Gb$(Q,Y,w,E);if(Z.isError)return X.json(Z.content,500);return X.json(Z.content)}),$.use("/mcp/dev-assets",u),$.route("/mcp/dev-assets",Fb$);let f=new m4;f.use("*",OY({mountPath:"/api/dev-assets"})),f.route("/",Pd0({orgFromPath:!1})),$.route("/api/dev-assets",f)}var Ub$=U(()=>{f5();Fh1();jd0();Bb$()});var Nb$=U(()=>{pQ1();oQ1();Gv()});var Wm0=U(()=>{Nb$()});var zb$={};Q1(zb$,{streamAgent:()=>Ob$,createDecopilotClient:()=>_P3});async function HP3($){let{parseJsonEventStream:u,uiMessageChunkSchema:f}=await Promise.resolve().then(() => (vf(),ik1));return u({stream:$,schema:f}).pipeThrough(new TransformStream({transform(X,w){if(!X.success)throw X.error;w.enqueue(X.value)}}))}async function Ob$($,u,f,X,w){let{readUIMessageStream:J}=await Promise.resolve().then(() => (vf(),ik1)),E=f.value??f.id;if(!E)throw Error("Agent binding has no id or value \u2014 cannot resolve agent");let Q=X.credentialId??f.credentialId,Y=X.thinking??f.thinking,Z=Y?.id,W={messages:X.messages,...Z?{models:{credentialId:Q,thinking:Y,...X.coding??f.coding?{coding:X.coding??f.coding}:{},...X.fast??f.fast?{fast:X.fast??f.fast}:{}}}:{},agent:{id:E},temperature:X.temperature??f.temperature,toolApprovalLevel:X.toolApprovalLevel??f.toolApprovalLevel,mode:X.mode??f.mode??"default",...X.memory?{memory:X.memory}:{},...X.thread_id?{thread_id:X.thread_id}:{}},G=await fetch($,{method:"POST",headers:{"Content-Type":"application/json","x-mesh-token":u,Authorization:`Bearer ${u}`},body:JSON.stringify(W),signal:w?.signal});if(!G.ok){let B=await G.text().catch(()=>""),v=`HTTP ${G.status}`;try{let N=JSON.parse(B);if(N?.error)v=N.error}catch{if(B)v=B}throw Error(v)}if(!G.body)throw Error("Empty response body from decopilot stream");let F=await HP3(G.body);return J({stream:F})}function _P3($){let{baseUrl:u,orgSlug:f,token:X}=$,w=`${u}/${f}/decopilot/runtime/stream`;return{stream(J,E){let Q={__type:"@deco/agent",id:J.agent.id,credentialId:J.credentialId??"",thinking:J.thinking??{id:"",title:""},coding:J.coding,fast:J.fast,toolApprovalLevel:J.toolApprovalLevel,mode:J.mode,temperature:J.temperature};return Ob$(w,X,Q,J,E)}}}function Kb$($){let u=$.properties;if(!u)return $;for(let f of Object.values(u)){let X=f.properties;if(!X?.__type?.const)continue;let w=X.__type.const,J=PP3.get(w);if(!J)continue;let E=J.map((Q)=>({name:String(Q.name),...Q.inputSchema&&{inputSchema:D.toJSONSchema(Q.inputSchema)},...Q.outputSchema&&{outputSchema:D.toJSONSchema(Q.outputSchema)}}));X.__binding={const:E}}return $}var PP3,pq7,jP3=($)=>{return typeof $==="object"&&$!==null&&$.__type==="@deco/agent"},Zg1=($)=>{return typeof $==="object"&&$!==null&&typeof $.__type==="string"&&$.__type!=="@deco/agent"&&typeof $.value==="string"},Gm0=($,u,f)=>{let X=f?{"x-caller-app":f}:void 0;if(u.cookie)X??={},X.cookie=u.cookie;if(u.token)X??={},X["x-mesh-token"]=u.token;return{type:"HTTP",url:new URL(`/mcp/${$}`,u.meshUrl).href,token:u.token,headers:X}},LP3=($,u,f)=>{let X=Gm0($,u,f);return new Proxy(Wt.forConnection(X),{get(w,J){if(J==="value")return $;if(J==="__type")return f;return w[J]}})},TP3=($,u)=>{let f=u.organizationSlug;if(!f)throw Error("organizationSlug is required for agent bindings");let X=`${u.meshUrl}/api/${f}/decopilot/runtime/stream`;return{STREAM:async(w,J)=>{let{streamAgent:E}=await Promise.resolve().then(() => zb$);return E(X,u.token,$,w,J)}}},Dg1=($,u)=>{if($===null||$===void 0)return $;if(Array.isArray($))return $.map((f)=>Dg1(f,u));if(typeof $==="object"){if(jP3($))return TP3($,u);if(Zg1($))return LP3($.value,u,$.__type);let f={};for(let[X,w]of Object.entries($))f[X]=Dg1(w,u);return f}return $},Hb$=($)=>{return Dg1($.state,$)};var Fs=U(()=>{Wm0();m0();PP3=new Map;pq7=D.object({id:D.string(),title:D.string(),capabilities:D.object({vision:D.boolean().optional(),text:D.boolean().optional(),tools:D.boolean().optional(),reasoning:D.boolean().optional()}).passthrough().optional(),provider:D.string().optional().nullable(),limits:D.object({contextWindow:D.number().optional(),maxOutputTokens:D.number().optional()}).passthrough().optional()})});var AP3,_b$=($,u,f)=>{if(!u)return null;if($===void 0||$==="*")return"*";if(typeof $==="string")return $===u?$:null;if(Array.isArray($))return $.includes(u)?u:null;if(typeof $==="function")return $(u,f)??null;return null},IP3=($,u,f)=>{let X=u.headers.get("Origin"),w=_b$(f.origin,X,u);if(w)$.set("Access-Control-Allow-Origin",w);if(f.credentials)$.set("Access-Control-Allow-Credentials","true");if(f.exposeHeaders?.length)$.set("Access-Control-Expose-Headers",f.exposeHeaders.join(", "))},Pb$=($,u)=>{let f=new Headers,X=$.headers.get("Origin"),w=_b$(u.origin,X,$);if(w)f.set("Access-Control-Allow-Origin",w);if(u.credentials)f.set("Access-Control-Allow-Credentials","true");let J=u.allowMethods??AP3;f.set("Access-Control-Allow-Methods",J.join(", "));let E=$.headers.get("Access-Control-Request-Headers");if(u.allowHeaders?.length)f.set("Access-Control-Allow-Headers",u.allowHeaders.join(", "));else if(E)f.set("Access-Control-Allow-Headers",E);if(u.maxAge!==void 0)f.set("Access-Control-Max-Age",u.maxAge.toString());return new Response(null,{status:204,headers:f})},jb$=($,u,f)=>{let X=new Headers($.headers);return IP3(X,u,f),new Response($.body,{status:$.status,statusText:$.statusText,headers:X})};var Lb$=U(()=>{AP3=["GET","HEAD","PUT","POST","DELETE","PATCH"]});function Tb$($=32){let f=new Uint8Array($);return crypto.getRandomValues(f),Array.from(f,(X)=>"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"[X%62]).join("")}function SP3($){try{let u=new URL($);return u.protocol==="https:"||u.hostname==="localhost"||u.hostname.endsWith(".localhost")||u.hostname==="127.0.0.1"||!u.protocol.startsWith("http")}catch{return!1}}function Ab$($){return btoa(JSON.stringify($)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function Ib$($){try{let u=$.replace(/-/g,"+").replace(/_/g,"/");return JSON.parse(atob(u))}catch{return null}}function Sb$($){return{handleProtectedResourceMetadata:(Z)=>{let W=TF(new URL(Z.url)),G=`${W.origin}/mcp`;return Response.json({resource:G,authorization_servers:[W.origin],scopes_supported:["*"],bearer_methods_supported:["header"],resource_signing_alg_values_supported:["RS256","none"]})},handleAuthorizationServerMetadata:(Z)=>{let G=TF(new URL(Z.url)).origin;return Response.json({issuer:G,authorization_endpoint:`${G}/authorize`,token_endpoint:`${G}/token`,registration_endpoint:`${G}/register`,scopes_supported:["*"],response_types_supported:["code"],response_modes_supported:["query"],grant_types_supported:["authorization_code","refresh_token"],token_endpoint_auth_methods_supported:["none","client_secret_post"],code_challenge_methods_supported:["S256","plain"]})},handleAuthorize:(Z)=>{let W=TF(new URL(Z.url)),G=W.searchParams.get("redirect_uri"),F=W.searchParams.get("response_type"),B=W.searchParams.get("state"),v=W.searchParams.get("code_challenge"),N=W.searchParams.get("code_challenge_method");if(!G)return Response.json({error:"invalid_request",error_description:"redirect_uri required"},{status:400});if(F!=="code")return Response.json({error:"unsupported_response_type",error_description:"Only 'code' is supported"},{status:400});let O=TF(new URL(`${W.origin}/oauth/callback`)),z=O.toString(),j=Ab$({redirectUri:G,clientState:B??void 0,codeChallenge:v??void 0,codeChallengeMethod:N??void 0,oauthCallbackUri:z});O.searchParams.set("state",j);let A=$.authorizationUrl(O.toString());return Response.redirect(A,302)},handleOAuthCallback:async(Z)=>{let W=TF(new URL(Z.url)),G=W.searchParams.get("code"),F=W.searchParams.get("state"),B=W.searchParams.get("error"),v=F?Ib$(F):null;if(B){let N=W.searchParams.get("error_description")??"Authorization failed";if(v?.redirectUri){let O=TF(new URL(v.redirectUri));if(O.searchParams.set("error",B),O.searchParams.set("error_description",N),v.clientState)O.searchParams.set("state",v.clientState);return Response.redirect(O.toString(),302)}return Response.json({error:B,error_description:N},{status:400})}if(!G||!v)return Response.json({error:"invalid_request",error_description:"Missing code or state"},{status:400});try{let N=v.oauthCallbackUri??TF(new URL(`${W.origin}/oauth/callback`)).toString(),O={code:G,redirect_uri:N},z=await $.exchangeCode(O),H={accessToken:z.access_token,tokenType:z.token_type,refreshToken:z.refresh_token,expiresIn:z.expires_in,scope:z.scope,codeChallenge:v.codeChallenge,codeChallengeMethod:v.codeChallengeMethod},j=Ab$(H),A=TF(new URL(v.redirectUri));if(A.searchParams.set("code",j),v.clientState)A.searchParams.set("state",v.clientState);return Response.redirect(A.toString(),302)}catch(N){console.error("OAuth callback error:",N);let O=TF(new URL(v.redirectUri));if(O.searchParams.set("error","server_error"),O.searchParams.set("error_description","Failed to exchange authorization code"),v.clientState)O.searchParams.set("state",v.clientState);return Response.redirect(O.toString(),302)}},handleToken:async(Z)=>{try{let W=Z.headers.get("content-type")??"",G;if(W.includes("application/x-www-form-urlencoded")){let H=await Z.formData();G=Object.fromEntries(H.entries())}else{let H=await Z.json();if(typeof H!=="object"||H===null||Array.isArray(H))return Response.json({error:"invalid_request",error_description:"Request body must be a JSON object"},{status:400});G=H}let{code:F,code_verifier:B,grant_type:v,refresh_token:N}=G;if(v==="refresh_token"){if(typeof N!=="string"||!N)return Response.json({error:"invalid_request",error_description:"refresh_token is required and must be a string"},{status:400});if(!$.refreshToken)return Response.json({error:"unsupported_grant_type",error_description:"refresh_token grant not supported"},{status:400});let H;try{H=await $.refreshToken(N)}catch(A){if(A instanceof Wg1)return Response.json({error:A.error,...A.errorDescription?{error_description:A.errorDescription}:{}},{status:400});throw A}let j={access_token:H.access_token,token_type:H.token_type};if(H.refresh_token)j.refresh_token=H.refresh_token;if(H.expires_in!==void 0)j.expires_in=H.expires_in;if(H.scope)j.scope=H.scope;return Response.json(j,{headers:{"Cache-Control":"no-store",Pragma:"no-cache"}})}if(v!=="authorization_code")return Response.json({error:"unsupported_grant_type",error_description:"Only authorization_code and refresh_token supported"},{status:400});if(typeof F!=="string"||!F)return Response.json({error:"invalid_request",error_description:"code is required and must be a string"},{status:400});let O=Ib$(F);if(!O||!O.accessToken)return Response.json({error:"invalid_grant",error_description:"Invalid or expired code"},{status:400});if(O.codeChallenge){if(typeof B!=="string"||!B)return Response.json({error:"invalid_grant",error_description:"code_verifier required and must be a string"},{status:400});let H;if(O.codeChallengeMethod==="S256"){let A=new TextEncoder().encode(B),L=await crypto.subtle.digest("SHA-256",A);H=btoa(String.fromCharCode(...new Uint8Array(L))).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}else H=B;if(H!==O.codeChallenge)return Response.json({error:"invalid_grant",error_description:"Invalid code_verifier"},{status:400})}let z={access_token:O.accessToken,token_type:O.tokenType};if(O.refreshToken)z.refresh_token=O.refreshToken;if(O.expiresIn!==void 0)z.expires_in=O.expiresIn;if(O.scope)z.scope=O.scope;return Response.json(z,{headers:{"Cache-Control":"no-store",Pragma:"no-cache"}})}catch(W){return console.error("Token exchange error:",W),Response.json({error:"server_error",error_description:"Failed to process token request"},{status:500})}},handleClientRegistration:async(Z)=>{try{let W=await Z.json();if(!W.redirect_uris||W.redirect_uris.length===0)return Response.json({error:"invalid_redirect_uri",error_description:"At least one redirect_uri is required"},{status:400});for(let N of W.redirect_uris)if(!SP3(N))return Response.json({error:"invalid_redirect_uri",error_description:`Invalid redirect URI: ${N}`},{status:400});let G=Tb$(32),F=W.token_endpoint_auth_method!=="none"?Tb$(32):void 0,B=Math.floor(Date.now()/1000),v={client_id:G,client_secret:F,client_name:W.client_name,redirect_uris:W.redirect_uris,grant_types:W.grant_types??["authorization_code"],response_types:W.response_types??["code"],token_endpoint_auth_method:W.token_endpoint_auth_method??"client_secret_post",scope:W.scope,client_id_issued_at:B,client_secret_expires_at:0};if($.persistence)await $.persistence.saveClient(v);return new Response(JSON.stringify(v),{status:201,headers:{"Content-Type":"application/json","Cache-Control":"no-store",Pragma:"no-cache"}})}catch(W){return console.error("Client registration error:",W),Response.json({error:"invalid_client_metadata",error_description:"Invalid client registration request"},{status:400})}},createUnauthorizedResponse:(Z)=>{let F=`Bearer resource_metadata="${`${TF(new URL(Z.url)).origin}/.well-known/oauth-protected-resource`}", scope="*"`;return Response.json({jsonrpc:"2.0",error:{code:-32000,message:"Unauthorized: Authentication required"},id:null},{status:401,headers:{"WWW-Authenticate":F,"Access-Control-Expose-Headers":"WWW-Authenticate"}})},hasAuth:(Z)=>Z.headers.has("Authorization")}}var Wg1,TF=($)=>{if(!($.hostname==="localhost"||$.hostname.endsWith(".localhost")||$.hostname==="127.0.0.1"))$.protocol="https:";return $};var Gg1=U(()=>{Wg1=class Wg1 extends Error{error;errorDescription;constructor($="invalid_grant",u){super(u??$);this.name="OAuthInvalidGrantError",this.error=$,this.errorDescription=u}}});import{AsyncLocalStorage as kP3}from"async_hooks";var kb$,MJ0;var Fg1=U(()=>{kb$=new kP3,MJ0={getStore:()=>{return kb$.getStore()},run:($,u,...f)=>kb$.run($,u,...f)}});var Cb$="SELF",Bm0=($)=>{return typeof $==="object"&&$!==null&&"handler"in $&&"events"in $&&typeof $.handler==="function"&&Array.isArray($.events)},qb$=($)=>{return typeof $==="object"&&$!==null&&"handler"in $&&"events"in $&&typeof $.handler==="function"&&Array.isArray($.events)},Rb$="::",Mb$=($)=>{let u=$.indexOf(Rb$);if(u===-1)return null;let f=$.substring(0,u),X=$.substring(u+Rb$.length);return[f,X]},RP3=($)=>{if(!$.startsWith("cron/"))return null;let u=$.substring(5),f=u.indexOf("/");if(f===-1)return null;let X=u.substring(0,f),w=u.substring(f+1);return[X,w]},hb$=($)=>{if(Bm0($))return[];return Object.keys($)},CP3=($,u)=>{if(Bm0($))return $.events;let f=$[u];if(!f)return[];if(qb$(f))return f.events;return Object.keys(f)},Fm0=($,u,f)=>{if($===Cb$){if(!f)return console.warn("[Event] SELF binding used but no connectionId available"),null;return f}let X=u[$];if(!Zg1(X))return console.warn(`[Event] Binding "${$}" not found in state`),null;return X.value},qP3=($,u,f)=>{let X=u;if(Bm0($)){let J=[];for(let E of $.events){let Q=Mb$(E);if(!Q){console.warn(`[Event] Global handler event "${E}" must be prefixed with BINDING:: (e.g., "SELF::${E}" or "DATABASE::${E}")`);continue}let[Y,Z]=Q,W=Fm0(Y,X,f);if(!W)continue;J.push({eventType:Z,publisher:W})}return J}let w=[];for(let J of hb$($)){let E=Fm0(J,X,f);if(!E)continue;let Q=CP3($,J);for(let Y of Q)w.push({eventType:Y,publisher:E})}return w},MP3=($)=>{let u=new Map;for(let f of $){let X=f.source,w=u.get(X)||[];w.push(f),u.set(X,w)}return u},hP3=($)=>{let u=new Map;for(let f of $){let X=f.type,w=u.get(X)||[];w.push(f),u.set(X,w)}return u},yP3=($)=>{let u={},f={},X=!1,w=0,J=[];for(let E of $){if(E.results)Object.assign(f,E.results);if(E.success===!1){if(X=!0,E.error)J.push(E.error)}if(E.processedCount!==void 0)w+=E.processedCount}if(Object.keys(f).length>0)u.results=f;if(u.success=!X,J.length>0)u.error=J.join("; ");if(w>0)u.processedCount=w;return u},gP3=async($,u,f,X,w)=>{let J=X;if(Bm0($)){let W=new Set;for(let F of $.events){let B=Mb$(F);if(!B)continue;let[v,N]=B,O=Fm0(v,J,w);if(!O)continue;W.add(`${O}:${N}`)}let G=u.filter((F)=>{let B=`${F.source}:${F.type}`;return W.has(B)});if(G.length===0)return{success:!0};try{return await $.handler({events:G},f)}catch(F){return{success:!1,error:F instanceof Error?F.message:String(F)}}}let E=new Map;for(let W of hb$($)){let G=Fm0(W,J,w);if(G)E.set(G,W)}let Q=MP3(u),Y=[];for(let[W,G]of Q){let F=E.get(W);if(!F)continue;let B=$[F];if(!B)continue;if(qb$(B)){Y.push((async()=>{try{return await B.handler({events:G},f)}catch(O){let z={};for(let H of G)z[H.id]={success:!1,error:O instanceof Error?O.message:String(O)};return{results:z}}})());continue}let v=B,N=hP3(G);for(let[O,z]of N){let H=v[O];if(!H)continue;Y.push((async()=>{try{let j=await H({events:z},f),A={};for(let L of z)A[L.id]=j;return{results:A}}catch(j){let A={};for(let L of z)A[L.id]={success:!1,error:j instanceof Error?j.message:String(j)};return{results:A}}})())}}let Z=await Promise.all(Y);if(Z.length===0)return{success:!0};return yP3(Z)},vm0;var Bg1=U(()=>{Fs();vm0={subscriptions:qP3,execute:gP3,parseCron:RP3}});function Bs($){return $.toLowerCase().trim().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"")}function gb$($,u){return`${$}::${Bs(u)}`}function vg1($){return`START_WORKFLOW_${Bs($).toUpperCase().replace(/-/g,"_")}`}function Vb$($,u){let f=Gm0("self",{meshUrl:$,token:u});return Wt.forConnection(f)}function VP3($,u){if(!dx.has($)&&dx.size>=bb$){let f=dx.keys().next().value;if(f!==void 0)dx.delete(f)}dx.set($,u)}function bP3($){return`Workflows Agent (${$})`}function yb$($,u){if(!mx.has($)&&mx.size>=bb$){let f=mx.keys().next().value;if(f!==void 0)mx.delete(f)}mx.set($,u)}async function iP3($,u,f){let X=mx.get($);if(X)return console.log(`${f} Using cached default Virtual MCP: ${X}`),X;let w=bP3($);try{let J=await u.COLLECTION_VIRTUAL_MCP_LIST({where:{operator:"and",conditions:[{field:["connection_id"],operator:"eq",value:$},{field:["title"],operator:"eq",value:w}]},limit:1});if(J.items.length>0){let E=J.items[0].id;return yb$($,E),console.log(`${f} Found existing default Virtual MCP: ${E}`),E}}catch(J){console.warn(`${f} Could not list Virtual MCPs \u2014 proceeding without default. Error: ${J instanceof Error?J.message:String(J)}`);return}try{let E=(await u.COLLECTION_VIRTUAL_MCP_CREATE({data:{title:w,connections:[{connection_id:$,selected_tools:null}]}})).item.id;return yb$($,E),console.log(`${f} Created default Virtual MCP: ${E}`),E}catch(J){console.warn(`${f} Could not create default Virtual MCP \u2014 proceeding without default. Error: ${J instanceof Error?J.message:String(J)}`);return}}function xP3($){return JSON.stringify($.map((u)=>({title:u.title,description:u.description??void 0,virtual_mcp_id:u.virtual_mcp_id??void 0,steps:u.steps,toolId:u.toolId??void 0,inputSchema:u.inputSchema??void 0})))}async function lP3($,u,f,X,w){let J=`[Workflows][${f}]`,E=$.find((j)=>Bs(j.title)==="");if(E!==void 0){console.warn(`${J} Workflow title "${E.title}" produces an empty ID. Skipping sync.`);return}if($.length>0){let j=$.map((L)=>Bs(L.title));if(new Set(j).size!==j.length){let L=new Set(j.filter((k,S)=>j.indexOf(k)!==S)),I=$.filter((k)=>L.has(Bs(k.title))).map((k)=>k.title);console.warn(`${J} Workflow titles that produce duplicate IDs: ${[...new Set(I)].join(", ")}. Skipping sync.`);return}}let Q=xP3($),Y=dx.get(f);if(Y===Q){console.log(`${J} Fingerprint unchanged \u2014 skipping sync. Declared: ${$.length} workflow(s): [${$.map((j)=>j.title).join(", ")}]`);return}console.log(`${J} Fingerprint changed (or first sync) \u2014 starting sync. Declared: ${$.length} workflow(s): [${$.map((j)=>j.title).join(", ")}]`,Y?"(previous fingerprint existed)":"(no previous fingerprint)");let Z=w??Vb$(u,X),G=$.some((j)=>j.virtual_mcp_id===void 0)?await iP3(f,Z,J):void 0,F;try{let j=[],A=0,L=200;while(!0){let I=await Z.COLLECTION_WORKFLOW_LIST({limit:L,offset:A});if(j.push(...I.items),!I.hasMore||I.items.length===0)break;A+=I.items.length}F=j,console.log(`${J} LIST returned ${F.length} total workflow(s). IDs owned by this connection: [${F.filter((I)=>I.id.startsWith(`${f}::`)).map((I)=>I.id).join(", ")||"none"}]`)}catch(j){let A=j instanceof Error?j.message:String(j);console.warn(`${J} Could not list workflows (workflows plugin may not be enabled). Skipping sync. Error: ${A}`);return}let B=`${f}::`,v=new Map(F.filter((j)=>j.id.startsWith(B)).map((j)=>[j.id,j])),N=$.map((j)=>[gb$(f,j.title),j]),O=new Set(N.map(([j])=>j)),z=!1;await Promise.all(N.map(async([j,A])=>{let L=v.has(j)?"UPDATE":"CREATE";console.log(`${J} ${L} "${A.title}" (id=${j})`);try{let I=A.virtual_mcp_id??G;if(L==="UPDATE"){let k=await Z.COLLECTION_WORKFLOW_UPDATE({id:j,data:{title:A.title,description:A.description,...I!==void 0&&{virtual_mcp_id:I},steps:A.steps,input_schema:A.inputSchema===void 0?void 0:A.inputSchema??null}});if(!k.success)z=!0,console.warn(`${J} UPDATE "${A.title}" returned success=false:`,String(k.error??"(no error message)"));else console.log(`${J} UPDATE "${A.title}" OK`)}else await Z.COLLECTION_WORKFLOW_CREATE({data:{id:j,title:A.title,description:A.description,virtual_mcp_id:I,steps:A.steps,input_schema:A.inputSchema??null}}),console.log(`${J} CREATE "${A.title}" OK`)}catch(I){z=!0,console.warn(`${J} Failed to ${L} workflow "${A.title}":`,I instanceof Error?I.message:String(I))}}));let H=[...v.keys()].filter((j)=>!O.has(j));if(H.length>0)console.log(`${J} Deleting ${H.length} orphaned workflow(s): [${H.join(", ")}]`);if(await Promise.all(H.map(async(j)=>{try{await Z.COLLECTION_WORKFLOW_DELETE({id:j}),console.log(`${J} DELETE "${j}" OK`)}catch(A){z=!0,console.warn(`${J} Failed to delete orphaned workflow "${j}":`,A instanceof Error?A.message:String(A))}})),!z)VP3(f,Q),console.log(`${J} Sync complete \u2014 fingerprint stored.`);else console.warn(`${J} Sync finished with errors \u2014 fingerprint NOT stored so the next call will retry.`)}async function cP3($,u,f,X,w){let E=(Um0.get(f)??Promise.resolve()).catch(()=>{}).then(()=>lP3($,u,f,X,w)).finally(()=>{if(Um0.get(f)===E)Um0.delete(f)});return Um0.set(f,E),E}var Um0,bb$=500,dx,mx,ib$,Nm0;var Ug1=U(()=>{Fs();Wm0();Um0=new Map,dx=new Map;mx=new Map;ib$=["SELF::COLLECTION_WORKFLOW_LIST","SELF::COLLECTION_WORKFLOW_CREATE","SELF::COLLECTION_WORKFLOW_UPDATE","SELF::COLLECTION_WORKFLOW_DELETE","SELF::COLLECTION_WORKFLOW_EXECUTION_CREATE","SELF::COLLECTION_VIRTUAL_MCP_LIST","SELF::COLLECTION_VIRTUAL_MCP_CREATE"],Nm0={sync:cP3,slugify:Bs,workflowId:gb$,toolId:vg1,createExecution:async($,u,f)=>{return(await Vb$($,u).COLLECTION_WORKFLOW_EXECUTION_CREATE(f)).item.id},clearFingerprint:($)=>{dx.delete($),mx.delete($)}}});function AF($){return{...$,execute:(u)=>{let f=hJ0(u.runtimeContext);return $.execute({...u,runtimeContext:f},f)}}}var hJ0=($)=>{let u=MJ0.getStore();if(!u){if($)return $;throw Error("Missing context, did you forget to call State.bind?")}return u},dP3=($,u)=>{let f=u;return typeof f[$]<"u"?f[$]:u?.MESH_REQUEST_CONTEXT?.state?.[$]},Om0=($)=>{let u=$.runtimeContext.env.MESH_REQUEST_CONTEXT;return{connectionId:u?.connectionId,meshUrl:u?.meshUrl,token:u?.token}},mP3=({events:$,workflows:u,configuration:{state:f,scopes:X,onChange:w}={}}={})=>{let J=f?Kb$(D.toJSONSchema(f)):{type:"object",properties:{}},E=String($?.bus??"EVENT_BUS");return[...w||$||u?.length?[AF({id:"ON_MCP_CONFIGURATION",description:"MCP Configuration On Change",inputSchema:D.object({state:f??D.unknown(),scopes:D.array(D.string()).describe("Array of scopes in format 'KEY::SCOPE' (e.g., 'GMAIL::GetCurrentUser')")}),outputSchema:D.object({}),execute:async(Q)=>{let Y=Q.context.state;await w?.(Q.runtimeContext.env,{state:Y,scopes:Q.context.scopes});let Z=dP3(E,Q.runtimeContext.env);if($&&Y&&Z){let{connectionId:W}=Om0(Q),G=vm0.subscriptions($?.handlers??{},Y,W);if(await Z.EVENT_SYNC_SUBSCRIPTIONS({subscriptions:G}),W){let F=G.filter((B)=>B.eventType.startsWith("cron/")&&B.publisher===W);await Promise.all(F.map(async(B)=>{let v=vm0.parseCron(B.eventType);if(v){let[,N]=v;await Z.EVENT_PUBLISH({type:B.eventType,cron:N})}}))}}if(u?.length){let{connectionId:W,meshUrl:G,token:F}=Om0(Q);if(W&&G)await Nm0.sync(u,G,W,F)}return Promise.resolve({})}})]:[],...$?.handlers?[AF({id:"ON_EVENTS",description:"Receive and process CloudEvents from the event bus. Returns per-event or batch results.",inputSchema:gL0,outputSchema:VL0,execute:async(Q)=>{let Y=Q.runtimeContext.env,Z=Y.MESH_REQUEST_CONTEXT?.state,{connectionId:W}=Om0(Q);return vm0.execute($.handlers,Q.context.events,Y,Z,W)}})]:[],AF({id:"MCP_CONFIGURATION",description:"MCP Configuration",inputSchema:D.object({}),outputSchema:D.object({stateSchema:D.unknown(),scopes:D.array(D.string()).optional()}),execute:()=>{return Promise.resolve({stateSchema:J,scopes:[...X??[],...$?[`${E}::EVENT_SYNC_SUBSCRIPTIONS`]:[],...u?.length?[...ib$]:[]]})}}),...u?.length?u.map((Q)=>{let Y=Q.toolId??vg1(Q.title),Z=[Q.description?`Run workflow: ${Q.description}`:`Start the "${Q.title}" workflow.`,"Returns an execution_id immediately. Use COLLECTION_WORKFLOW_EXECUTION_GET to track progress."].join(" ");return AF({id:Y,description:(()=>{if(!Q.inputSchema)return Z;let W=JSON.stringify(Q.inputSchema,null,2);return W.length<=2048?`${Z}
|
|
78270
|
+
Use sentence case for the title. No markdown fences.`;var ag$=U(()=>{vf();YI0()});function dy1($){let{runner:u}=$.get("vmClaim");if(!u)return $.json({error:"No sandbox runner configured"},503);return u}async function fQ($,u,f){let X=dy1($);if(X instanceof Response)return X;let{claimName:w}=$.get("vmClaim"),J=f?.method??"POST",E=null,Q=new Headers;if(f?.forwardJsonBody)E=await $.req.text(),Q.set("content-type","application/json");let Y;try{Y=await X.proxyDaemonRequest(w,u,{method:J,headers:Q,body:E,...f?.signal?{signal:f.signal}:{}})}catch(G){let F=G instanceof Error?G.message:String(G);return $.json({error:`Daemon unreachable: ${F}`},502)}if(f?.map404to410&&Y.status===404){try{await Y.body?.cancel()}catch{}return $.json({error:"Sandbox handle is gone. The sandbox needs to be re-provisioned."},410,Ws)}let Z=await Y.text(),W=Y.headers.get("content-type")??"application/json";return new Response(Z,{status:Y.status,headers:{"content-type":W,...Ws}})}async function pg$($,u,f,X="GET"){let w=await $.proxyDaemonRequest(u,f,{method:X,headers:new Headers,body:null});if(w.status===404){try{await w.body?.cancel()}catch{}throw Error("SANDBOX_GONE")}let J=await w.text();if(!w.ok)try{let E=JSON.parse(J);throw Error(E.error??`Daemon error (${w.status})`)}catch(E){if(E instanceof Error&&E.message!==J)throw E;throw Error(`Daemon error (${w.status})`)}return JSON.parse(J)}function J_3($){return og$.includes($)}var X_3,Ws,w_3,og$,sg$=()=>{let $=new m4;return $.use("/:virtualMcpId/:branch/*",X_3),$.post("/:virtualMcpId/:branch/write",(u)=>fQ(u,"/_sandbox/write",{forwardJsonBody:!0})),$.post("/:virtualMcpId/:branch/read",(u)=>fQ(u,"/_sandbox/read",{forwardJsonBody:!0})),$.post("/:virtualMcpId/:branch/glob",(u)=>fQ(u,"/_sandbox/glob",{forwardJsonBody:!0})),$.post("/:virtualMcpId/:branch/exec/:script",(u)=>{let f=u.req.param("script");if(!f)return u.json({error:"missing script name"},400);return fQ(u,`/_sandbox/exec/${encodeURIComponent(f)}`)}),$.post("/:virtualMcpId/:branch/exec/:script/kill",(u)=>{let f=u.req.param("script");if(!f)return u.json({error:"missing script name"},400);return fQ(u,`/_sandbox/exec/${encodeURIComponent(f)}/kill`)}),$.get("/:virtualMcpId/:branch/config",(u)=>fQ(u,"/_sandbox/config",{method:"GET",map404to410:!0})),$.put("/:virtualMcpId/:branch/config",(u)=>fQ(u,"/_sandbox/config",{method:"PUT",forwardJsonBody:!0,map404to410:!0})),$.post("/:virtualMcpId/:branch/setup/:step",async(u)=>{let f=u.req.param("step");if(!f||!J_3(f))return u.json({error:`step must be one of: ${og$.join(", ")}`},400);if(f==="start"){let X=u.get("vmClaim");if(X.runner){let w=t0(u.var.meshContext),J=yH$(X.virtualMcpMetadata);try{await BS0({ctx:u.var.meshContext,runner:X.runner,handle:X.claimName,orgId:w.id,userId:X.userId,entries:J})}catch(E){let Q=E instanceof Error?E.message:String(E);return u.json({error:`Failed to push env to daemon: ${Q}`},502)}}}return fQ(u,`/_sandbox/setup/${f}`,{signal:u.req.raw.signal,map404to410:!0})}),$.get("/:virtualMcpId/:branch/events",(u)=>{let f=u.get("vmClaim");if(!f.runner)return aD(u,async(X)=>{await X.writeSSE({event:"phase",data:JSON.stringify({kind:"failed",reason:"unknown",message:"No sandbox runner configured on this mesh."})})});return dg$(u,{ctx:u.var.meshContext,claimName:f.claimName,runner:f.runner,branch:f.branch,userId:f.userId,projectRef:f.projectRef,virtualMcpMetadata:f.virtualMcpMetadata})}),$.get("/:virtualMcpId/:branch/git/status",(u)=>fQ(u,"/_sandbox/git/status",{method:"GET",map404to410:!0})),$.post("/:virtualMcpId/:branch/git/status",(u)=>fQ(u,"/_sandbox/git/status",{map404to410:!0})),$.post("/:virtualMcpId/:branch/git/diff",(u)=>fQ(u,"/_sandbox/git/diff",{forwardJsonBody:!0,map404to410:!0})),$.post("/:virtualMcpId/:branch/git/publish",(u)=>fQ(u,"/_sandbox/git/publish",{forwardJsonBody:!0,map404to410:!0})),$.post("/:virtualMcpId/:branch/git/discard",(u)=>fQ(u,"/_sandbox/git/discard",{forwardJsonBody:!0,map404to410:!0})),$.post("/:virtualMcpId/:branch/git/rebase",(u)=>fQ(u,"/_sandbox/git/rebase",{forwardJsonBody:!0,map404to410:!0})),$.post("/:virtualMcpId/:branch/git/suggest-commit",async(u)=>{let f=dy1(u);if(f instanceof Response)return f;let{claimName:X}=u.get("vmClaim"),w=u.var.meshContext,J={};try{let E=await u.req.text();if(E.trim())J=JSON.parse(E)}catch{return u.json({error:"Invalid JSON body"},400,Ws)}try{let{status:E,diff:Q}=J;if(!E||!Q)[E,Q]=await Promise.all([pg$(f,X,"/_sandbox/git/status","GET"),pg$(f,X,"/_sandbox/git/diff","GET")]);let Y=await rg$(w,E,Q);return u.json(Y,200,Ws)}catch(E){let Q=E instanceof Error?E.message:String(E);if(Q==="SANDBOX_GONE")return u.json({error:"Sandbox handle is gone. The sandbox needs to be re-provisioned."},410,Ws);return u.json({error:Q},502,Ws)}}),$.get("/:virtualMcpId/:branch/preview-fetch",async(u)=>{let f=dy1(u);if(f instanceof Response)return f;let{claimName:X}=u.get("vmClaim"),w=u.req.query("path");if(!w)return u.json({error:"path query parameter is required"},400);if(!w_3.has(w))return u.json({error:"Path not allowed"},403);let J=await f.getPreviewUrl(X);if(!J)return u.json({error:"Preview not available"},502);let E=J.replace(/\/+$/,""),Q;try{Q=await fetch(`${E}${w}`)}catch{return u.json({error:"Preview unreachable"},502)}let Y=await Q.text();return new Response(Y,{status:Q.status,headers:{"content-type":Q.headers.get("content-type")??"application/json"}})}),$};var eg$=U(()=>{f5();lx();ig$();GY();ly1();mw0();mg$();zR1();FS0();ag$();X_3=bg$(async($,u)=>{let f=$.var.meshContext;try{u1(f)}catch{return $.json({error:"Unauthorized"},401)}let X=W$(f);if(!X)return $.json({error:"Unauthorized"},401);let w;try{w=t0(f)}catch{return $.json({error:"Organization scope required"},403)}let J=$.req.param("virtualMcpId"),E=$.req.param("branch");if(!J||!E)return $.json({error:"virtualMcpId and branch are required"},400);let Q=await f.storage.virtualMcps.findById(J);if(!Q||Q.organization_id!==w.id)return $.json({error:"Virtual MCP not found"},404);let Y=MH({orgId:w.id,virtualMcpId:J,branch:E}),Z=wm0({userId:X,projectRef:Y},E),W=Q.metadata??null,G;try{G=(await xU(f,{userId:X,branch:E,virtualMcpMetadata:W})).provider}catch{G=null}return $.set("vmClaim",{claimName:Z,runner:G,virtualMcpId:J,branch:E,userId:X,projectRef:Y,virtualMcpMetadata:W}),u()});Ws={"Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache"};w_3=new Set(["/.decofile","/live/_meta"]),og$=["clone","install","start"]});var $V$=($)=>{let u=new m4;if(u.use("*",ro),u.route("/",Kd0()),u.route("/",um0()),u.route("/",ed0({kvStorage:$.kvStorage})),u.route("/",Rg$()),u.route("/sandbox",sg$()),u.route("/",qg$()),u.route("/deco-sites",_d0()),u.route("/sso",pc0()),u.route("/",fm0({tokenStorage:$.tokenStorage,automationEventDispatcher:$.automationEventDispatcher})),u.route("/webhooks",nM$()),$.mountDevAssets)u.route("/dev-assets",Pd0({orgFromPath:!0}));return u.use("/mcp/:connectionId?",$.mcpAuth),u.use("/mcp/gateway/:virtualMcpId?",$.mcpAuth),u.use("/mcp/virtual-mcp/:virtualMcpId?",$.mcpAuth),u.use("/mcp/self",$.mcpAuth),u.route("/",bW$()),u.get("/mcp/:gateway?/:connectionId/.well-known/oauth-protected-resource/*",$.betterAuthProtectedResourceHandler),u.route("/mcp",NI0()),u.route("/mcp/self",$m0()),u.route("/mcp",zI0()),u.all("/oauth-proxy/:connectionId/*",$.oauthProxyHandler),u.post("/events/:type",$.eventsHandler),u.get("/watch",$.watchHandler),u};var uV$=U(()=>{f5();Bh1();tM$();zh1();jd0();Gh1();Cg$();hy1();H90();YM1();KI0();yy1();Mg$();gy1();Vy1();OI0();eg$()});async function Y_3($,u){try{return!await $.alive(u)}catch(f){return console.warn(`[vm-events] alive probe failed for ${u}; assuming alive: ${f instanceof Error?f.message:String(f)}`),!1}}async function D_3($){let{ctx:u,runner:f,claimName:X,userId:w,projectRef:J,sandboxProviderKind:E}=$;try{await f.delete(X)}catch(Q){console.warn(`[vm-events] runner.delete failed for ${X}: ${Q instanceof Error?Q.message:String(Q)}`)}try{await new yH(u.db).delete({userId:w,projectRef:J},E)}catch(Q){console.warn(`[vm-events] sandbox_runner_state delete failed for ${w}/${J}/${E}: ${Q instanceof Error?Q.message:String(Q)}`)}}async function Z_3($){let{stream:u,claimName:f,runner:X,signal:w}=$;return new Promise((J)=>{let E=!1,Q=!1,Y=null,Z=(F)=>{if(E)return;E=!0,clearTimeout(W),w.removeEventListener("abort",G),Y?.unsubscribe(),J(F)},W=setTimeout(()=>{if(Q||E)return;u.writeSSE({event:"phase",data:JSON.stringify({kind:"failed",reason:"claim-never-created",message:"Sandbox claim was never created. The SANDBOX_START call may have failed earlier \u2014 check the start error."})}).catch(()=>{}),Z(!1)},E_3),G=()=>Z(!1);w.addEventListener("abort",G,{once:!0}),Y=dw0(X,f,(F)=>{if(E)return;if(F.kind!=="claiming")Q=!0;if(u.writeSSE({event:"phase",data:JSON.stringify(F)}).catch(()=>{}),F.kind==="ready")Z(!0);else if(F.kind==="failed")Z(!1)})})}async function W_3($){let{stream:u,runner:f,claimName:X,signal:w}=$,J=Date.now(),E=null;while(!w.aborted){let Y=null;try{Y=await f.proxyDaemonRequest(X,"/_sandbox/events",{method:"GET",headers:new Headers({accept:"text/event-stream"}),body:null,signal:w})}catch(Z){if(w.aborted)return;if(Date.now()-J<fV$){await wV$(XV$,w);continue}let W=Z instanceof Error?Z.message:String(Z);await u.writeSSE({event:"phase",data:JSON.stringify({kind:"failed",reason:"unknown",message:`Upstream daemon SSE error: ${W}`})}).catch(()=>{});return}if(Y.status===404){try{await Y.body?.cancel()}catch{}if(Date.now()-J<fV$){await wV$(XV$,w);continue}await u.writeSSE({event:"gone",data:""}).catch(()=>{});return}if(!Y.ok||!Y.body){try{await Y.body?.cancel()}catch{}await u.writeSSE({event:"phase",data:JSON.stringify({kind:"failed",reason:"unknown",message:`Upstream daemon SSE failed (${Y.status}).`})}).catch(()=>{});return}E=Y;break}if(!E||!E.body)return;let Q=E.body.getReader();try{while(!w.aborted){let{value:Y,done:Z}=await Q.read();if(Z)break;if(Y)await u.write(Y)}}catch{}finally{try{Q.releaseLock()}catch{}}}function wV$($,u){return new Promise((f)=>{if(u.aborted){f();return}let X=setTimeout(()=>{u.removeEventListener("abort",w),f()},$),w=()=>{clearTimeout(X),f()};u.addEventListener("abort",w,{once:!0})})}var E_3=90000,Q_3=15000,JV$=()=>{let $=new m4;return $.get("/",async(u)=>{let f=u.var.meshContext;try{u1(f)}catch{return u.json({error:"Unauthorized"},401)}let X=W$(f);if(!X)return u.json({error:"Unauthorized"},401);let w;try{w=t0(f)}catch{return u.json({error:"Organization scope required"},403)}let J=u.req.query("virtualMcpId"),E=u.req.query("branch");if(!J||!E)return u.json({error:"virtualMcpId and branch are required"},400);let Q=await f.storage.virtualMcps.findById(J);if(!Q||Q.organization_id!==w.id)return u.json({error:"Virtual MCP not found"},404);let Y=MH({orgId:w.id,virtualMcpId:J,branch:E}),Z=wm0({userId:X,projectRef:Y},E),W=Q.metadata??null,G,F=null,B=null;try{let O=await xU(f,{userId:X,branch:E,virtualMcpMetadata:W});G=O.provider,F=O.kind}catch(O){B=O instanceof Error?O:Error(String(O)),G=null}let v=F&&hH(mD(W),X,E,F),N=!!v&&v.sandboxHandle===Z;if(!G)return aD(u,async(O)=>{await O.writeSSE({event:"phase",data:JSON.stringify({kind:"failed",reason:"unknown",message:B?.message??"No sandbox runner configured on this mesh."})})});return u.header("X-Accel-Buffering","no"),u.header("Content-Encoding","identity"),aD(u,async(O)=>{let z=new AbortController,H=setInterval(()=>{O.writeSSE({event:"keepalive",data:""}).catch(()=>{clearInterval(H)})},Q_3);O.onAbort(()=>{z.abort(),clearInterval(H)});try{if(N&&F){if(await Y_3(G,Z)){await D_3({ctx:f,runner:G,claimName:Z,userId:X,projectRef:Y,sandboxProviderKind:F}),await O.writeSSE({event:"gone",data:""}).catch(()=>{});return}}if(!await Z_3({stream:O,claimName:Z,runner:G,signal:z.signal})||z.signal.aborted)return;await W_3({stream:O,runner:G,claimName:Z,signal:z.signal})}finally{clearInterval(H)}})}),$},fV$=60000,XV$=500;var EV$=U(()=>{f5();lx();GY();ly1();sH();mw0();vS0();MU()});function LF($,u="invalid_request_error",f=null,X=null){return{error:{message:$,type:u,param:f,code:X}}}function K_3($){if(!$)return null;let u=$.indexOf(":");if(u===-1)return{credentialId:null,modelId:$};let f=$.substring(0,u),X=$.substring(u+1);if(!f||!X)return null;return{credentialId:f,modelId:X}}function H_3($,u,f){try{return JSON.parse($)}catch{throw new DV$(`Invalid JSON in tool call arguments for function '${f}' (tool_call_id: ${u}): ${$}`)}}function __3($){let u={};for(let f of $)if(f.role==="assistant"&&f.tool_calls)for(let X of f.tool_calls)u[X.id]=X.function.name;return $.map((f)=>{switch(f.role){case"system":return{role:"system",content:f.content};case"user":if(typeof f.content==="string")return{role:"user",content:f.content};return{role:"user",content:f.content.map((w)=>{if(w.type==="text")return{type:"text",text:w.text};return{type:"image",image:w.image_url.url}})};case"assistant":if(f.tool_calls&&f.tool_calls.length>0)return{role:"assistant",content:f.tool_calls.map((w)=>({type:"tool-call",toolCallId:w.id,toolName:w.function.name,input:H_3(w.function.arguments,w.id,w.function.name)}))};return{role:"assistant",content:f.content??""};case"tool":let X=u[f.tool_call_id]??"unknown";return{role:"tool",content:[{type:"tool-result",toolCallId:f.tool_call_id,toolName:X,output:{type:"text",value:f.content}}]}}})}function P_3($){let u=$.map((f)=>{let X=f.function.parameters?JY(f.function.parameters):JY({type:"object",properties:{}});return[f.function.name,Ou({description:f.function.description,inputSchema:X})]});return Object.fromEntries(u)}function j_3($){if(!$)return;return{openai:{response_format:$}}}function L_3(){return`chatcmpl-${crypto.randomUUID().replace(/-/g,"").substring(0,29)}`}function QV$($,u,f,X,w,J){let E={model:$,messages:u,tools:f,temperature:X.temperature,maxTokens:X.max_tokens,topP:X.top_p,frequencyPenalty:X.frequency_penalty,presencePenalty:X.presence_penalty,stopSequences:X.stop?Array.isArray(X.stop)?X.stop:[X.stop]:void 0,abortSignal:J};return w?{...E,providerOptions:w}:E}function YV$($){if($==="tool-calls")return"tool_calls";if($==="length")return"length";return"stop"}var G_3,F_3,B_3,v_3,U_3,N_3,O_3,z_3,DV$,ZV$,WV$;var GV$=U(()=>{vf();f5();lx();m0();G_3=D.object({type:D.literal("function"),function:D.object({name:D.string(),description:D.string().optional(),parameters:D.record(D.string(),D.unknown()).optional()})}),F_3=D.object({id:D.string(),type:D.literal("function"),function:D.object({name:D.string(),arguments:D.string()})}),B_3=D.discriminatedUnion("role",[D.object({role:D.literal("system"),content:D.string(),name:D.string().optional()}),D.object({role:D.literal("user"),content:D.union([D.string(),D.array(D.union([D.object({type:D.literal("text"),text:D.string()}),D.object({type:D.literal("image_url"),image_url:D.object({url:D.string(),detail:D.string().optional()})})]))]),name:D.string().optional()}),D.object({role:D.literal("assistant"),content:D.string().nullable().optional(),name:D.string().optional(),tool_calls:D.array(F_3).optional()}),D.object({role:D.literal("tool"),content:D.string(),tool_call_id:D.string()})]),v_3=D.object({type:D.literal("text")}),U_3=D.object({type:D.literal("json_object")}),N_3=D.object({type:D.literal("json_schema"),json_schema:D.object({name:D.string(),description:D.string().optional(),schema:D.record(D.string(),D.unknown()),strict:D.boolean().optional()})}),O_3=D.union([v_3,U_3,N_3]),z_3=D.object({model:D.string().describe("Format: 'model_id' or 'credential_id:model_id'"),messages:D.array(B_3),stream:D.boolean().optional().default(!1),temperature:D.number().min(0).max(2).optional(),max_tokens:D.number().positive().optional(),top_p:D.number().min(0).max(1).optional(),frequency_penalty:D.number().min(-2).max(2).optional(),presence_penalty:D.number().min(-2).max(2).optional(),stop:D.union([D.string(),D.array(D.string())]).optional(),tools:D.array(G_3).optional(),tool_choice:D.union([D.literal("auto"),D.literal("none"),D.literal("required"),D.object({type:D.literal("function"),function:D.object({name:D.string()})})]).optional(),response_format:O_3.optional(),user:D.string().optional()});DV$=class DV$ extends Error{constructor($){super($);this.name="MessageConversionError"}};ZV$=new m4;ZV$.post("/:org/v1/chat/completions",async($)=>{let u=$.get("meshContext"),f=$.req.param("org");try{if(!u.auth.apiKey?.id)return $.json(LF("API key authentication required. Provide a valid API key via Authorization header.","authentication_error"),401);if(!u.organization)return $.json(LF("Organization context is required. Ensure your API key has organization metadata.","invalid_request_error","organization"),400);if((u.organization.slug??u.organization.id)!==f)return $.json(LF("Organization mismatch. The API key's organization does not match the requested organization.","invalid_request_error","organization"),403);let X=await $.req.json(),w=z_3.safeParse(X);if(!w.success){let O=w.error.issues[0]??{message:"Invalid request",path:[]};return $.json(LF(`Invalid request: ${O.message}`,"invalid_request_error",O.path.length>0?O.path.join("."):null),400)}let J=w.data,E=K_3(J.model);if(!E)return $.json(LF("Invalid model format. Expected 'model_id' or 'credential_id:model_id' (e.g., 'claude-sonnet-4-6' or 'key_abc123:claude-sonnet-4-6')","invalid_request_error","model"),400);let{credentialId:Q}=E,{modelId:Y}=E;if(!Q){let O=await u.storage.aiProviderKeys.list({organizationId:u.organization.id});if(O.length===0)return $.json(LF("No AI provider credentials configured for this organization. Add a credential in settings or specify one explicitly via 'credential_id:model_id'.","invalid_request_error","model"),400);Q=O[0].id}let Z;try{Z=await u.aiProviders.activate(Q,u.organization.id)}catch{return $.json(LF(`AI provider credential not found or inaccessible: ${Q}`,"invalid_request_error","model"),404)}let W=Z.aiSdk.languageModel(Y),G=__3(J.messages),F=J.tools?P_3(J.tools):void 0,B=j_3(J.response_format),v=L_3(),N=Math.floor(Date.now()/1000);if(J.stream)return aD($,async(O)=>{let z=QV$(W,G,F,J,B,$.req.raw.signal);try{let H=cD(z),j=!1,A=0;for await(let L of H.fullStream){if(!j&&(L.type==="text-delta"||L.type==="tool-call"))await O.writeSSE({data:JSON.stringify({id:v,object:"chat.completion.chunk",created:N,model:J.model,choices:[{index:0,delta:{role:"assistant",content:""},finish_reason:null}]})}),j=!0;if(L.type==="text-delta")await O.writeSSE({data:JSON.stringify({id:v,object:"chat.completion.chunk",created:N,model:J.model,choices:[{index:0,delta:{content:L.text},finish_reason:null}]})});else if(L.type==="tool-call"){let I=A++;await O.writeSSE({data:JSON.stringify({id:v,object:"chat.completion.chunk",created:N,model:J.model,choices:[{index:0,delta:{tool_calls:[{index:I,id:L.toolCallId,type:"function",function:{name:L.toolName,arguments:JSON.stringify(L.input)}}]},finish_reason:null}]})})}else if(L.type==="finish")await O.writeSSE({data:JSON.stringify({id:v,object:"chat.completion.chunk",created:N,model:J.model,choices:[{index:0,delta:{},finish_reason:YV$(L.finishReason)}],usage:L.totalUsage?{prompt_tokens:L.totalUsage.inputTokens??0,completion_tokens:L.totalUsage.outputTokens??0,total_tokens:L.totalUsage.totalTokens??0}:void 0})})}await O.writeSSE({data:"[DONE]"})}catch(H){let j=H;console.error("[openai-compat:stream] Error:",j.message),await O.writeSSE({data:JSON.stringify({error:{message:j.message,type:"server_error"}})})}});else{let O=QV$(W,G,F,J,B,$.req.raw.signal),z=await GF(O),H={role:"assistant",content:z.text||null};if(z.toolCalls&&z.toolCalls.length>0)H.tool_calls=z.toolCalls.map((j)=>({id:j.toolCallId,type:"function",function:{name:j.toolName,arguments:JSON.stringify("input"in j?j.input:{})}})),H.content=null;return $.json({id:v,object:"chat.completion",created:N,model:J.model,choices:[{index:0,message:H,finish_reason:YV$(z.finishReason)}],usage:{prompt_tokens:z.usage?.inputTokens??0,completion_tokens:z.usage?.outputTokens??0,total_tokens:z.usage?.totalTokens??0}})}}catch(X){let w=X;if(w.name==="AbortError")return $.json(LF("Request aborted","invalid_request_error"),400);if(w.name==="MessageConversionError")return $.json(LF(w.message,"invalid_request_error","messages"),400);return console.error("[openai-compat] Error:",w.message,w.stack),$.json(LF(w.message,"server_error"),500)}});WV$=ZV$});function A_3(){let $=process.env.POSTHOG_KEY;if(!$)return null;return{key:$,host:process.env.POSTHOG_HOST??T_3}}var FV$,T_3="https://us.i.posthog.com",BV$;var vV$=U(()=>{f5();vK1();bo();$U();_f();wM1();FV$=new m4;FV$.get("/",($)=>{let u={theme:S4$(),...OT().logo&&{logo:OT().logo},...Ix()&&{internalUrl:Yj0()},...b4().enableDecoImport&&{enableDecoImport:!0},brandExtractEnabled:!!b4().firecrawlApiKey,auth:wk$(),posthog:A_3()};return $.json({success:!0,config:u})});BV$=FV$});var UV$,NV$;var OV$=U(()=>{f5();HZ();aw0();mr();UV$=new m4;UV$.get("/:org/files/*",async($)=>{let u=$.get("meshContext");if(!u.organization?.id)throw new h$(401,{message:"Organization context required"});let X=$.req.path.replace(/^.*\/files\//,"");if(!X)throw new h$(400,{message:"Missing file key"});let w=await kx(X,u);if(!w)throw new h$(503,{message:"Object storage not configured"});if(w.startsWith("data:")&&KZ()){let J=w.match(/^data:([^;]+);base64,(.+)$/s);if(!J)throw new h$(500,{message:"Invalid data URL from storage"});let[,E,Q]=J,Y=Buffer.from(Q,"base64");return $.body(Y,200,{"Content-Type":E,"Cache-Control":"private, max-age=86400"})}return $.redirect(w,302)});NV$=UV$});var HV$={};Q1(HV$,{shouldSkipMeshContext:()=>my1,isServerPath:()=>q_3,SYSTEM_PATHS:()=>w_});function zV$($){return $===w_.HEALTH_LIVE||$===w_.HEALTH_READY||$===w_.METRICS||$.startsWith(Gs.WELL_KNOWN)}function KV$($){return $.startsWith(Gs.API)}function S_3($){return $==="/mcp"||$.startsWith(Gs.MCP)}function k_3($){return $.startsWith(Gs.OAUTH_PROXY)}function R_3($){return I_3.test($)}function C_3($){return $.startsWith(Gs.ORG)}function q_3($){return KV$($)||S_3($)||k_3($)||C_3($)||zV$($)}function my1($){return $==="/"||$.startsWith(Gs.API_AUTH)||$==="/api/trigger-callback"||zV$($)||!KV$($)&&R_3($)}var w_,Gs,I_3;var ny1=U(()=>{w_={HEALTH_LIVE:"/health/live",HEALTH_READY:"/health/ready",METRICS:"/metrics"},Gs={API:"/api/",API_AUTH:"/api/auth/",MCP:"/mcp/",OAUTH_PROXY:"/oauth-proxy/",WELL_KNOWN:"/.well-known",ORG:"/org/"},I_3=/\.(html|css|js|ico|svg|png|jpg|jpeg|gif|webp|woff|woff2)$/});function _V$($){let u=$?.connectFn??g_3,f=null,X=null,w=!1,J=!1,E=!1,Q=[];function Y(){return f!==null&&!f.isClosed()&&!f.isDraining()&&!E}function Z(){console.log(`[NatsProvider] fireReady: ${Q.length} callbacks`);for(let F of Q)try{F()}catch{}}function W(F){(async()=>{for await(let B of F.status())if(B.type===RJ0.Events.Disconnect)console.log("[NatsProvider] Disconnected"),E=!0;else if(B.type===RJ0.Events.Reconnect)console.log("[NatsProvider] Reconnected, re-firing ready callbacks"),E=!1,X=null,Z()})().catch(()=>{})}async function G(F){let B=0;while(!J)try{f=await u({servers:F,timeout:y_3,reconnect:!0,maxReconnectAttempts:-1}),console.log(`[NatsProvider] Connected to ${f.getServer()} after ${B} attempt(s)`),X=null,E=!1,W(f),Z();return}catch{B++;let N=Math.min(M_3*2**(B-1),h_3)*(0.5+Math.random()*0.5);await V_3(N)}}return{init(F){if(w)return;w=!0,J=!1,G(F).catch(()=>{})},isConnected(){return Y()},getConnection(){return Y()?f:null},getJetStream(){if(!Y())return null;if(!X)X=f.jetstream();return X},onReady(F){if(Q.push(F),Y())try{F()}catch{}},async drain(){if(J=!0,w=!1,X=null,E=!1,f){let F=f;f=null,await F.drain().catch(()=>{})}}}}function g_3($){return RJ0.connect($)}function V_3($){return new Promise((u)=>setTimeout(u,$))}var RJ0,M_3=100,h_3=3000,y_3=3000;var PV$=U(()=>{RJ0=J0(aT(),1)});function ty1($,u){return`${$}.${u}`}class ry1{options;kv=null;codec=Jm0.JSONCodec();constructor($){this.options=$}async init(){let $=this.options.getJetStream();if(!$)return;this.kv=await $.views.kv(b_3,{ttl:i_3,storage:Jm0.StorageType.Memory})}async get($,u){if(!this.kv)return null;try{let f=ty1($,u),X=await this.kv.get(`models.${f}`);if(!X?.value?.length)return null;if(X.operation==="DEL"||X.operation==="PURGE")return null;return this.codec.decode(X.value)}catch{return null}}async set($,u,f){if(!this.kv)return;try{let X=ty1($,u);await this.kv.put(`models.${X}`,this.codec.encode(f))}catch(X){console.warn("[ModelListCache] set failed:",X)}}async invalidate($,u){if(!this.kv)return;try{let f=ty1($,u);await this.kv.delete(`models.${f}`)}catch{}}teardown(){this.kv=null}}var Jm0,b_3="MESH_MODEL_LISTS",i_3=600000;var jV$=U(()=>{Jm0=J0(aT(),1)});class ay1{options;sub=null;onCancel=null;encoder=new TextEncoder;originId=crypto.randomUUID();constructor($){this.options=$}async start($){if($)this.onCancel=$;if(this.sub)return;if(!this.onCancel)return;let u=this.options.getConnection();if(!u)return;this.sub=u.subscribe("mesh.decopilot.cancel");let f=new TextDecoder;(async()=>{for await(let X of this.sub)try{let w=JSON.parse(f.decode(X.data));if(w.originId===this.originId)continue;this.onCancel?.(w.taskId)}catch{}})().catch(console.error)}broadcast($){if(/[.*>\s]/.test($)){console.warn("[NatsCancelBroadcast] Invalid threadId, skipping broadcast");return}this.onCancel?.($);try{let u=this.options.getConnection();if(!u)return;u.publish("mesh.decopilot.cancel",this.encoder.encode(JSON.stringify({taskId:$,originId:this.originId})))}catch(u){console.warn("[NatsCancelBroadcast] Publish failed (non-critical):",u)}}async stop(){this.sub?.unsubscribe(),this.sub=null,this.onCancel=null}}function d_3($){if(/[.*>\s]/.test($))throw Error("Invalid NATS subject token")}function py1($){return d_3($),`${LV$}.${$}`}function m_3($){let u=0;return{publish(f,X,w){f.publish(X,w).catch((J)=>{if(u++,u===1||u%100===0)console.warn(`[Decopilot] JetStream publish failed for thread ${$} (${u} total):`,J)})},get errorCount(){return u}}}class oy1{options;js=null;jsm=null;encoder=new TextEncoder;constructor($){this.options=$}async init(){let $=this.options.getConnection();if(!$)return;let u=await $.jetstreamManager(),f={name:Em0,subjects:[`${LV$}.>`],storage:uW.StorageType.Memory,max_age:x_3,max_bytes:l_3,max_msgs_per_subject:c_3,discard:uW.DiscardPolicy.Old,retention:uW.RetentionPolicy.Limits,num_replicas:1};try{await u.streams.info(Em0),await u.streams.update(Em0,f)}catch(X){if(X instanceof Error&&X.message.includes("stream not found"))await u.streams.add(f);else throw X}this.js=this.options.getJetStream(),this.jsm=u}pump($,u,f){let X=this.js;if(!X)return;let w=py1(u),J=m_3(u),E=this.encoder,Q=!1,Y=()=>{if(Q)return;Q=!0,X.publish(w,E.encode(JSON.stringify({done:!0}))).catch(()=>{})};f.addEventListener("abort",Y,{once:!0}),(async()=>{let Z=$.getReader();try{while(!0){let{done:W,value:G}=await Z.read();if(W)break;J.publish(X,w,E.encode(JSON.stringify({p:G})))}}catch(W){console.warn(`[Decopilot] stream pump error for thread ${u}:`,W?.message??W)}finally{Z.releaseLock(),Y()}})()}async createTailStream($,u,f){let X=this.js;if(!X)return null;let w=f?.deliverPolicy==="new"?uW.DeliverPolicy.New:uW.DeliverPolicy.All,J=f?.closeOnDone??!1,E=py1($),Q;try{Q=await X.subscribe(E,{ordered:!0,config:{filter_subject:E,ack_policy:uW.AckPolicy.None,deliver_policy:w}})}catch(F){return console.warn("[Decopilot] JetStream tail unavailable (non-critical):",F?.message??F),null}let Y=new TextDecoder,Z=async function*(){for await(let F of Q)yield F}(),W=!1,G=()=>{if(W)return;W=!0,Q.unsubscribe(),Z.return(void 0).catch(()=>{})};return u?.addEventListener("abort",G,{once:!0}),new ReadableStream({async pull(F){while(!0){let B=await Z.next();if(B.done){G(),F.close();return}let v=B.value;try{let N=JSON.parse(Y.decode(v.data));if(N.done){if(J){G(),F.close();return}continue}if(N.p){F.enqueue(N.p);return}}catch{}}},cancel(){G()}})}purge($){if(!this.jsm)return;this.jsm.streams.purge(Em0,{filter:py1($)}).catch(()=>{})}teardown(){this.js=null,this.jsm=null}}var uW,Em0="DECOPILOT_STREAMS",LV$="decopilot.stream",x_3=300000000000,l_3=524288000,c_3=20000;var TV$=U(()=>{uW=J0(aT(),1)});function IV$($){let u=$.ttlSeconds??AV$,f=0,X=()=>$.nowSeconds()+f,w=new Map;return{async get(J){let E=w.get(J);if(!E)return null;if(E.expiresAt<=X())return w.delete(J),null;return E.entry},async put(J,E){w.set(J,{entry:E,expiresAt:X()+u})},async delete(J){w.delete(J)},advanceNow(J){f+=J}}}class sy1{options;kv=null;codec=Qm0.JSONCodec();ttl;constructor($){this.options=$;this.ttl=$.ttlSeconds??AV$}async init(){let $=this.options.getJetStream();if(!$)return;this.kv=await $.views.kv(n_3,{history:1,ttl:this.ttl*1000,storage:Qm0.StorageType.Memory})}async get($){if(!this.kv)return null;try{let u=await this.kv.get($);if(!u?.value)return null;if(u.operation==="DEL"||u.operation==="PURGE")return null;if(Date.now()-u.created.getTime()>this.ttl*1000)return null;return this.codec.decode(u.value)}catch{return null}}async put($,u){if(!this.kv)return;await this.kv.put($,this.codec.encode(u))}async delete($){if(!this.kv)return;try{await this.kv.delete($)}catch{}}}var Qm0,n_3="LINKS",AV$=30;var SV$=U(()=>{Qm0=J0(aT(),1)});import{randomBytes as t_3,timingSafeEqual as r_3}from"crypto";function a_3($){return`https://link-${$.toLowerCase()}.deco.host`}function kV$($,u){if($.length!==u.length)return!1;return r_3(Buffer.from($,"utf8"),Buffer.from(u,"utf8"))}function p_3($){try{return new URL($).hostname==="localhost"}catch{return!1}}function RV$($,u){$.post("/api/links",async(f)=>{let X=u.getAuthenticatedUserSub(f);if(!X)throw new h$(401,{message:"no session"});let w;try{w=await f.req.json()}catch{throw new h$(400,{message:"invalid json"})}let J=il1.safeParse(w);if(!J.success)throw new h$(400,{message:J.error.message});let E=J.data;if(!dl1(E.protocolVersion))return f.json({code:"upgrade_required",requiredVersion:cl1,installHint:"bunx decocms@latest link"},426);let Q=(()=>{if(E.tunnelUrl&&p_3(E.tunnelUrl)&&u.allowLocalhostLinks)return E.tunnelUrl;return a_3(X)})(),Y=await u.linkRegistry.get(X);if(Y&&Y.machineId!==E.machineId)return f.json({code:"another_machine_active",activeMachineId:Y.machineId},409);let Z=t_3(32).toString("base64url"),W={machineId:E.machineId,...E.hostname?{hostname:E.hostname}:{},tunnelUrl:Q,linkSecret:Z,cliVersion:E.cliVersion,protocolVersion:E.protocolVersion,capabilities:E.capabilities,createdAt:Y?.createdAt??new Date().toISOString()};return await u.linkRegistry.put(X,W),f.json({linkSecret:Z})}),$.post("/api/links/heartbeat",async(f)=>{let X=f.req.header("x-mesh-user-sub");if(!X)throw new h$(400,{message:"missing X-Mesh-User-Sub"});let w=f.req.header("x-link-secret");if(!w)throw new h$(401,{message:"missing X-Link-Secret"});let J=await u.linkRegistry.get(X);if(!J)throw new h$(401,{message:"no link"});if(!kV$(J.linkSecret,w))throw new h$(401,{message:"bad secret"});return await u.linkRegistry.put(X,J),f.body(null,204)}),$.delete("/api/links/me",async(f)=>{let X=f.req.header("x-mesh-user-sub");if(!X)throw new h$(400,{message:"missing X-Mesh-User-Sub"});let w=f.req.header("x-link-secret");if(!w)throw new h$(401,{message:"missing X-Link-Secret"});let J=await u.linkRegistry.get(X);if(!J)return f.body(null,204);if(!kV$(J.linkSecret,w))throw new h$(401,{message:"bad secret"});return await u.linkRegistry.delete(X),f.body(null,204)}),$.get("/api/links/me",async(f)=>{let X=u.getAuthenticatedUserSub(f);if(!X)throw new h$(401,{message:"no session"});let w=await u.linkRegistry.get(X);if(!w)return f.json({status:"offline"});return f.json({status:"online",capabilities:w.capabilities,machineId:w.machineId,cliVersion:w.cliVersion,currentProtocolVersion:s_,reportedProtocolVersion:w.protocolVersion})})}var CV$=U(()=>{e_();HZ()});function qV$($,u){switch($.type){case"START":{let f={type:"RUN_STARTED",taskId:$.taskId,orgId:$.orgId,userId:$.userId,abortController:$.abortController,runConfig:$.runConfig,podId:$.podId};if(u?.status.tag==="running")return[{type:"PREVIOUS_RUN_ABORTED",taskId:$.taskId,orgId:u.orgId},f];return[f]}case"STEP_DONE":{if(u?.status.tag!=="running")return[];return[{type:"STEP_COMPLETED",taskId:$.taskId,orgId:u.orgId,stepCount:u.status.stepCount+1}]}case"FINISH":{if(u==null||u.status.tag!=="running")return[];let{stepCount:f}=u.status;if($.threadStatus==="completed")return[{type:"RUN_COMPLETED",taskId:$.taskId,orgId:u.orgId,stepCount:f}];if($.threadStatus==="requires_action")return[{type:"RUN_REQUIRES_ACTION",taskId:$.taskId,orgId:u.orgId,stepCount:f}];return[{type:"RUN_FAILED",taskId:$.taskId,orgId:u.orgId,reason:"error"}]}case"CANCEL":{if(u?.status.tag!=="running")return[];return[{type:"RUN_FAILED",taskId:$.taskId,orgId:u.orgId,reason:"cancelled"}]}case"RESUME":{if(u?.status.tag==="running")return[];return[{type:"RUN_RESUMED",taskId:$.taskId,orgId:$.orgId,userId:$.userId,abortController:$.abortController,podId:$.podId}]}case"FORCE_FAIL":{if($.reason==="ghost")return[{type:"RUN_FAILED",taskId:$.taskId,orgId:u?.orgId??$.orgId,reason:$.reason}];if(u?.status.tag!=="running")return[];return[{type:"RUN_FAILED",taskId:$.taskId,orgId:u.orgId,reason:$.reason}]}}}function MV$($,u,f=new Date){switch(u.type){case"RUN_STARTED":return{taskId:u.taskId,orgId:u.orgId,userId:u.userId,status:{tag:"running",abortController:u.abortController,stepCount:0,startedAt:f}};case"RUN_RESUMED":return{taskId:u.taskId,orgId:u.orgId,userId:u.userId,status:{tag:"running",abortController:u.abortController,stepCount:0,startedAt:f}};case"STEP_COMPLETED":if($?.status.tag!=="running")return $;return{...$,status:{...$.status,stepCount:u.stepCount}};case"RUN_COMPLETED":return;case"RUN_REQUIRES_ACTION":return;case"RUN_FAILED":return;case"PREVIOUS_RUN_ABORTED":return}}async function hV$($,u,f,X){let{storage:w,streamBuffer:J,sseHub:E}=X,Q=await w.get($,u);await w.update($,u,{status:f,run_owner_pod:null,run_config:null,run_started_at:null}),J.purge($),E.emit(u,Qv($,f,{virtualMcpId:Q?.virtual_mcp_id??void 0,createdBy:Q?.created_by,triggerId:Q?.trigger_id,title:Q?.title,branch:Q?.branch??null,createdAt:Q?.created_at,updatedAt:Q?.updated_at})),E.emit(u,J30($,f))}async function o_3($,u){let{storage:f,streamBuffer:X,sseHub:w}=u;switch($.type){case"RUN_STARTED":{if(!await f.claimRunStart($.taskId,$.orgId,{status:"in_progress",run_owner_pod:$.podId??null,run_config:$.runConfig??null,run_started_at:$.podId?new Date().toISOString():null},$.podId??null))throw new yV$($.taskId);let E=await f.get($.taskId,$.orgId);w.emit($.orgId,Qv($.taskId,"in_progress",{virtualMcpId:E?.virtual_mcp_id??void 0,createdBy:E?.created_by,triggerId:E?.trigger_id,title:E?.title,branch:E?.branch??null,createdAt:E?.created_at,updatedAt:E?.updated_at}));return}case"RUN_RESUMED":{await f.update($.taskId,$.orgId,{run_owner_pod:$.podId,run_started_at:new Date().toISOString()});let J=await f.get($.taskId,$.orgId);w.emit($.orgId,Qv($.taskId,"in_progress",{virtualMcpId:J?.virtual_mcp_id??void 0,createdBy:J?.created_by,triggerId:J?.trigger_id,title:J?.title,branch:J?.branch??null,createdAt:J?.created_at,updatedAt:J?.updated_at}));return}case"STEP_COMPLETED":w.emit($.orgId,NO0($.taskId,$.stepCount));return;case"RUN_COMPLETED":await hV$($.taskId,$.orgId,"completed",u);return;case"RUN_REQUIRES_ACTION":await hV$($.taskId,$.orgId,"requires_action",u);return;case"RUN_FAILED":{if($.reason==="ghost"){if(!await f.forceFailIfInProgress($.taskId,$.orgId))return;await f.update($.taskId,$.orgId,{run_owner_pod:null,run_config:null,run_started_at:null})}else await f.update($.taskId,$.orgId,{status:"failed",run_owner_pod:null,run_config:null,run_started_at:null});X.purge($.taskId);let J=await f.get($.taskId,$.orgId);w.emit($.orgId,Qv($.taskId,"failed",{virtualMcpId:J?.virtual_mcp_id??void 0,createdBy:J?.created_by,triggerId:J?.trigger_id,title:J?.title,branch:J?.branch??null,createdAt:J?.created_at,updatedAt:J?.updated_at})),w.emit($.orgId,J30($.taskId,"failed"));return}case"PREVIOUS_RUN_ABORTED":return}}async function gV$($,u){for(let{event:f}of $)await o_3(f,u)}var yV$;var VV$=U(()=>{iu();yV$=class yV$ extends Error{constructor($){super(`Failed to claim run for thread ${$} \u2014 already running on another pod`);this.name="RunClaimError"}}});class ey1{deps;podId;clock;states=new Map;reaperTimer=null;constructor($,u,f=()=>new Date){this.deps=$;this.podId=u;this.clock=f;this.reaperTimer=setInterval(()=>this.reapStaleRuns(),s_3)}async execute($){let u=this.dispatch($);return await this.react(u),u}dispatch($){let u=this.states.get($.taskId),f=qV$($,u),X=[];for(let w of f){let J=this.states.get(w.taskId);if(w.type==="PREVIOUS_RUN_ABORTED"||w.type==="RUN_FAILED"){if(J?.status.tag==="running")J.status.abortController.abort()}let E=MV$(J,w,this.clock());if(E===void 0)this.states.delete(w.taskId);else this.states.set(w.taskId,E);if(X.push({event:w,state:E}),$P3.has(w.type))bV$.add(1,{"org.id":w.orgId});else if(uP3.has(w.type)&&J?.status.tag==="running")bV$.add(-1,{"org.id":w.orgId})}return X}react($){return gV$($,this.deps)}getAbortSignal($){let u=this.states.get($);if(u?.status.tag==="running")return u.status.abortController.signal;return null}isRunning($){return this.states.get($)?.status.tag==="running"}async stopAll(){try{await this.deps.storage.orphanRunsByPod(this.podId)}catch($){console.error("[RunRegistry] Failed to orphan runs in DB:",$)}for(let[,$]of this.states)if($.status.tag==="running")$.status.abortController.abort();this.states.clear()}async recoverOrphanedRuns($){let u=await this.deps.storage.listOrphanedRuns(this.podId);if(u.length===0)return;let f=5;for(let X=0;X<u.length;X+=f){let w=u.slice(X,X+f);await Promise.allSettled(w.map(async(J)=>{if(!await this.deps.storage.claimOrphanedRun(J.id,J.organization_id,this.podId))return;try{await $(J)}catch(Q){console.error(`[RunRegistry] Failed to resume ${J.id}:`,Q),await this.deps.storage.forceFailIfInProgress(J.id,J.organization_id).catch(()=>{})}}))}}async handlePodDeath($,u,f){let X=await this.deps.storage.listOrphanedRunsByPod($);if(X.length===0)return;for(let J of X)f?.broadcast(J.id);let w=5;for(let J=0;J<X.length;J+=w){let E=X.slice(J,J+w);await Promise.allSettled(E.map(async(Q)=>{if(this.isRunning(Q.id))return;if(!await this.deps.storage.claimOrphanedRun(Q.id,Q.organization_id,this.podId))return;try{await u(Q)}catch(Z){console.error(`[RunRegistry] Failed to resume ${Q.id}:`,Z),await this.deps.storage.forceFailIfInProgress(Q.id,Q.organization_id).catch(()=>{})}}))}}dispose(){if(this.reaperTimer)clearInterval(this.reaperTimer),this.reaperTimer=null}reapStaleRuns(){let $=this.clock().getTime();for(let[u,f]of this.states)if(f.status.tag==="running"&&$-f.status.startedAt.getTime()>e_3)console.warn(`[RunRegistry] Reaping stale run for thread ${u} ...`),this.execute({type:"FORCE_FAIL",taskId:u,reason:"reaped"}).catch((X)=>{console.error("[RunRegistry] Reaper execute failed",X)})}}var s_3=300000,e_3=1800000,$P3,uP3,bV$;var iV$=U(()=>{VV$();IQ();$P3=new Set(["RUN_STARTED","RUN_RESUMED"]),uP3=new Set(["RUN_COMPLETED","RUN_FAILED","RUN_REQUIRES_ACTION","PREVIOUS_RUN_ABORTED"]),bV$=d2.createUpDownCounter("decopilot.stream.inflight",{description:"Number of in-flight decopilot stream requests",unit:"{requests}"})});class $g1{storage;options;timer=null;constructor($,u={}){this.storage=$;this.options=u}start(){if(this.timer)return;let $=this.options.intervalMs??300000;this.timer=setInterval(()=>{this.runOnce()},$)}async runOnce(){let $=this.options.staleAfterMs??3600000;try{let u=await this.storage.sweepAbandoned($);if(u>0)console.log(`[async-research-sweeper] marked ${u} stale jobs as abandoned`);return u}catch(u){return console.error("[async-research-sweeper] sweep failed",u),0}}dispose(){if(this.timer)clearInterval(this.timer),this.timer=null}}import{readdir as fP3,rm as Ym0}from"fs/promises";import{join as Dm0}from"path";async function Zm0($){let u=new Date;u.setUTCDate(u.getUTCDate()-XP3),u.setUTCHours(0,0,0,0);let f=0;try{let X=await cx($);for(let w of X)if(/^\d{4}$/.test(w))f+=await xV$($,w,u);else if(!w.startsWith(".")){let J=Dm0($,w),E=await cx(J);for(let Y of E){if(!/^\d{4}$/.test(Y))continue;f+=await xV$(J,Y,u)}if((await cx(J)).length===0)await Ym0(J,{recursive:!0,force:!0})}}catch(X){console.warn("monitoring retention cleanup failed:",X)}return f}async function xV$($,u,f){let X=0,w=Dm0($,u),J=await cx(w);for(let Q of J){if(!/^\d{2}$/.test(Q))continue;let Y=Dm0(w,Q),Z=await cx(Y);for(let G of Z){if(!/^\d{2}$/.test(G))continue;let F=new Date(`${u}-${Q}-${G}T00:00:00Z`);if(isNaN(F.getTime()))continue;if(F<f){let B=Dm0(Y,G);await Ym0(B,{recursive:!0,force:!0}),X++}}if((await cx(Y)).length===0)await Ym0(Y,{recursive:!0,force:!0})}if((await cx(w)).length===0)await Ym0(w,{recursive:!0,force:!0});return X}async function cx($){try{return(await fP3($)).filter((f)=>!f.startsWith("."))}catch{return[]}}var XP3=30;var ug1=()=>{};import{DBOS as fg1,SchedulerMode as wP3}from"@dbos-inc/dbos-sdk";async function EP3(){let $=[y2(),ym(),iB()],u=0;for(let f of $)try{u+=await Zm0(f)}catch(X){console.error("[monitoring-retention] cleanup failed:",X)}return console.log(`[monitoring-retention] deleted ${u} day-dir(s) across ${$.length} signal dir(s)`),{deleted:u,dirs:$.length}}async function QP3($,u){await fg1.runStep(()=>EP3(),{name:"monitoringRetention"})}function cV$(){if(lV$)return;lV$=!0;let $=fg1.registerWorkflow(QP3,{name:"monitoringRetentionWorkflow"});fg1.registerScheduled($,{name:"monitoringRetentionWorkflow",crontab:JP3,mode:wP3.ExactlyOncePerIntervalWhenActive})}var JP3="23 4 * * *",lV$=!1;var dV$=U(()=>{SQ();ug1()});function qJ0($){return{...$,title:$.title??$.id}}function nV$($){return{credentialId:$.credentialId,thinking:qJ0($.thinking),...$.coding&&{coding:qJ0($.coding)},...$.fast&&{fast:qJ0($.fast)},...$.image&&{image:qJ0($.image)},...$.deepResearch&&{deepResearch:qJ0($.deepResearch)}}}var CJ0,YP3,mV$;var tV$=U(()=>{m0();CJ0=D.object({id:D.string(),title:D.string().optional(),capabilities:D.object({vision:D.boolean().optional(),text:D.boolean().optional(),tools:D.boolean().optional(),reasoning:D.boolean().optional(),file:D.boolean().optional()}).passthrough().optional(),limits:D.object({contextWindow:D.number().optional(),maxOutputTokens:D.number().optional()}).passthrough().optional(),provider:D.string().nullish()}),YP3=D.object({models:D.object({credentialId:D.string(),thinking:CJ0,coding:CJ0.optional(),fast:CJ0.optional(),image:CJ0.optional(),deepResearch:CJ0.optional()}),agent:D.object({id:D.string()}),temperature:D.number(),toolApprovalLevel:D.enum(["auto","readonly","plan"]).optional(),mode:D.enum(["default","plan","web-search","gen-image"]).optional(),windowSize:D.number().optional(),triggerId:D.string().optional()}),mV$=YP3.transform(($)=>{let u=$.mode??"default",f="auto";if($.toolApprovalLevel==="plan")u="plan",f="readonly";else if($.toolApprovalLevel==="readonly")f="readonly";else if($.toolApprovalLevel==="auto")f="auto";return{models:$.models,agent:$.agent,temperature:$.temperature,toolApprovalLevel:f,mode:u,windowSize:$.windowSize,triggerId:$.triggerId}})});class Xg1{deps;kv=null;podId=null;refreshTimer=null;watchAbortController=null;initPromise=null;pendingDeathCallback=null;constructor($){this.deps=$}async init(){if(this.watchAbortController)this.watchAbortController.abort(),this.watchAbortController=null;if(this.refreshTimer)clearInterval(this.refreshTimer),this.refreshTimer=null;this.kv=null,this.initPromise=null;let $=this.deps.getJetStream();if(!$)return;return this.initPromise=$.views.kv(DP3,{ttl:ZP3,storage:rV$.StorageType.Memory}).then((u)=>{this.kv=u}).catch((u)=>{throw this.initPromise=null,u}),this.initPromise}start($){if(!this.kv)return;if(this.refreshTimer)return;if(this.podId=$,this.kv.put($,new TextEncoder().encode(new Date().toISOString())),this.refreshTimer=setInterval(()=>{this.kv?.put($,new TextEncoder().encode(new Date().toISOString())).catch((u)=>{console.error("[PodHeartbeat] Refresh failed:",u)})},WP3),this.pendingDeathCallback)this.startDeathWatcher(this.pendingDeathCallback),this.pendingDeathCallback=null}onPodDeath($){if(!this.kv){this.pendingDeathCallback=$;return}this.startDeathWatcher($)}startDeathWatcher($){if(!this.kv)return;this.watchAbortController=new AbortController;let u=this.kv,f=this.podId,X=this.watchAbortController.signal;(async()=>{while(!X.aborted)try{let J=await u.watch({initializedFn:()=>{}});for await(let E of J){if(X.aborted)break;if(E.operation==="DEL"||E.operation==="PURGE"){let Q=E.key;if(Q!==f)$(Q)}}}catch(J){if(X.aborted)break;console.error("[PodHeartbeat] Watcher error, reconnecting in 1s:",J),await new Promise((E)=>setTimeout(E,1000))}})().catch((J)=>{if(!X.aborted)console.error("[PodHeartbeat] Watcher loop failed:",J)})}async stop(){if(this.refreshTimer)clearInterval(this.refreshTimer),this.refreshTimer=null;if(this.kv&&this.podId)try{await this.kv.delete(this.podId)}catch{}if(this.watchAbortController)this.watchAbortController.abort(),this.watchAbortController=null;this.kv=null,this.podId=null,this.initPromise=null,this.pendingDeathCallback=null}}var rV$,DP3="POD_HEARTBEATS",ZP3=45000,WP3=1e4;var aV$=U(()=>{rV$=J0(aT(),1)});class wg1{db;constructor($){this.db=$}async get($,u){let f=await this.db.selectFrom("kv").select("value").where("organization_id","=",$).where("key","=",u).executeTakeFirst();if(!f)return null;return f.value}async set($,u,f){await this.db.insertInto("kv").values({organization_id:$,key:u,value:JSON.stringify(f),updated_at:new Date().toISOString()}).onConflict((X)=>X.columns(["organization_id","key"]).doUpdateSet({value:JSON.stringify(f),updated_at:new Date().toISOString()})).execute()}async delete($,u){await this.db.deleteFrom("kv").where("organization_id","=",$).where("key","=",u).execute()}}function pV$($){return async(u,f)=>{let X=await $.db.selectFrom("member").innerJoin("organization","organization.id","member.organizationId").select(["member.role","organization.id as orgId","organization.slug as orgSlug","organization.name as orgName"]).where("member.userId","=",f).where("member.organizationId","=",u).executeTakeFirst();if(!X)return console.warn(`[automationContextFactory] User ${f} not found in org ${u} \u2014 returning null`),null;let w=await lZ.create();w.auth.user={id:f,role:X.role},w.organization={id:X.orgId,slug:X.orgSlug,name:X.orgName};let J=await jA1($.db,u,X.role);return w.boundAuth=PA1({auth:w.authInstance,headers:new Headers,role:X.role,permissions:J,userId:f}),w.access=new UA(w.authInstance,f,void 0,w.boundAuth,X.role,"self"),w.storage.threads=new DX0($.threadStorage,X.orgId),w.storage.asyncResearchJobs=new WX0($.asyncResearchJobStorage,X.orgId),w}}var oV$=U(()=>{bT0();O90();aT0();oT0()});import{EventEmitter as GP3}from"events";var Jg1;var sV$=U(()=>{kG();Jg1=new GP3;Jg1.on("request",($)=>{Av($)})});function eV$(){return async($,u)=>{let f=Date.now(),X=$.req.method,w=$.req.path;if(w==="/api/auth/get-session"||w.includes("favicon")){await u();return}let J="",E=!1;if(w.startsWith("/mcp")&&X==="POST"){E=!0;try{if($.req.header("Content-Type")?.includes("application/json")){let F=await $.req.raw.clone().json();if(F.method==="tools/call"&&F.params?.name){let B=eU(F.params.name),v=F.params.arguments||{};if(B==="EVENT_PUBLISH"&&v.type){let N=eU(String(v.type));J=`${G6.tool}EVENT_PUBLISH${G6.reset} ${G6.bold}\u2192 ${N}${G6.reset}`}else if(B==="EVENT_SUBSCRIBE"&&v.eventType){let N=eU(String(v.eventType));J=`${G6.tool}EVENT_SUBSCRIBE${G6.reset} ${G6.bold}\u2190 ${N}${G6.reset}`}else if(B==="EVENT_UNSUBSCRIBE"&&v.eventType){let N=eU(String(v.eventType));J=`${G6.tool}EVENT_UNSUBSCRIBE${G6.reset} ${G6.dim}\u2715 ${N}${G6.reset}`}else{let N=Object.keys(v).map((z)=>eU(z)),O=N.length>0?N.slice(0,3).join(",")+(N.length>3?"\u2026":""):"";J=`${G6.tool}${B}${G6.dim}(${O})${G6.reset}`}}else if(F.method)J=`${G6.dim}${eU(F.method)}${G6.reset}`}}catch{}}let Q=eU(w);if(w.startsWith("/mcp/conn_")){let W=w.split("/")[2]??"";Q=`/mcp/${G6.mcp}${eU(W.slice(0,12))}\u2026${G6.reset}`}else if(w==="/mcp")Q=`${G6.mcp}/mcp${G6.reset}`;else if(w==="/mcp/registry")Q=`${G6.mcp}/mcp/registry${G6.reset}`;let Y=BP3(X),Z=E?"\u25C0":"\u2190";if(!cz0())console.log(`${G6.dim}${Z}${G6.reset} ${Y}${X}${G6.reset} ${Q}${J?` ${J}`:""}`);try{await u()}finally{let W=Date.now()-f,G=$.res.status,F=FP3(G),B=W<1000?`${W}ms`:`${(W/1000).toFixed(1)}s`,v=E?"\u25B6":"\u2192";if(!cz0())console.log(`${G6.dim}${v}${G6.reset} ${Y}${X}${G6.reset} ${Q}${J?` ${J}`:""} ${F}${G}${G6.reset} ${G6.duration}${B}${G6.reset}`);Jg1.emit("request",{method:X,path:eU(w),status:G,duration:W,timestamp:new Date})}}}var G6,FP3=($)=>{if($>=500)return G6.serverError;if($>=400)return G6.clientError;if($>=300)return G6.redirect;return G6.ok},BP3=($)=>{return G6[$]||G6.reset},eU=($)=>{return $.replace(/\r/g,"").replace(/\n/g,"").replace(/\x1b\[[0-9;]*m/g,"").replace(/[\x00-\x1f\x7f-\x9f]/g,"")};var $b$=U(()=>{kG();sV$();G6={reset:"\x1B[0m",dim:"\x1B[2m",bold:"\x1B[1m",GET:"\x1B[36m",POST:"\x1B[33m",PUT:"\x1B[35m",DELETE:"\x1B[31m",ok:"\x1B[32m",redirect:"\x1B[36m",clientError:"\x1B[33m",serverError:"\x1B[31m",mcp:"\x1B[35m",tool:"\x1B[96m",duration:"\x1B[90m"}});import{createHmac as wb$}from"crypto";import{mkdir as vP3,readdir as UP3,rm as ub$,stat as Jb$}from"fs/promises";import{join as Qg1,relative as NP3}from"path";function Qb$($){let u=$.replace(/[^a-zA-Z0-9_-]/g,"_");return Qg1(OP3,u)}function Yb$($){return $.replace(/^\/+/,"").replace(/\.\./g,"")}function Eg1($,u){let f=Qb$($),X=Yb$(u);return Qg1(f,X)}function zP3($,u,f,X){let w=b4().encryptionKey||"dev-secret",J=`${$}:${u}:${f}:${X}`;return wb$("sha256",w).update(J).digest("hex")}function Xb$($,u,f,X,w){let J=Math.floor(Date.now()/1000)+X,E=zP3(u,f,J,w),Q=new URL(`/api/dev-assets/${u}/${Yb$(f)}`,$);return Q.searchParams.set("expires",J.toString()),Q.searchParams.set("signature",E),Q.searchParams.set("method",w),Q.toString()}function Db$($,u,f){let X=`${$}:${u.getTime()}:${f}`;return`"${wb$("md5","etag").update(X).digest("hex")}"`}async function Zb$($,u,f,X,w){try{let J=await UP3($,{withFileTypes:!0});for(let E of J){let Q=Qg1($,E.name),Z=NP3(u,Q).replace(/\\/g,"/");if(f&&!Z.startsWith(f))continue;if(E.isDirectory())if(X){let W=Z+"/";if(!f||W.startsWith(f)){if(!(f?Z.slice(f.length):Z).includes("/"))w.commonPrefixes.add(W)}}else await Zb$(Q,u,f,X,w);else if(E.isFile()){if(X&&f){let W=Z.slice(f.length);if(W.includes(X)){let G=W.indexOf(X),F=f+W.slice(0,G+1);w.commonPrefixes.add(F);continue}}try{let W=await Jb$(Q);w.objects.push({key:Z,size:W.size,lastModified:W.mtime.toISOString(),etag:Db$(Q,W.mtime,W.size)})}catch{}}}}catch{}}function Wb$($,u){let X=t0($).id;return[{name:"LIST_OBJECTS",description:"List objects in the local assets directory with pagination support",inputSchema:D.object({prefix:D.string().optional(),maxKeys:D.number().optional().default(1000),continuationToken:D.string().optional(),delimiter:D.string().optional()}),outputSchema:D.object({objects:D.array(D.object({key:D.string(),size:D.number(),lastModified:D.string(),etag:D.string()})),nextContinuationToken:D.string().optional(),isTruncated:D.boolean(),commonPrefixes:D.array(D.string()).optional()}),handler:async(w)=>{let J=w,E=J.prefix||"",Q=J.maxKeys??1000,Y=J.delimiter,Z=J.continuationToken,W=Qb$(X);await vP3(W,{recursive:!0});let G={objects:[],commonPrefixes:new Set};await Zb$(W,W,E,Y,G),G.objects.sort((O,z)=>O.key.localeCompare(z.key));let F=0;if(Z){if(F=G.objects.findIndex((O)=>O.key>Z),F===-1)F=G.objects.length}let B=G.objects.slice(F,F+Q),v=F+Q<G.objects.length,N=v?B[B.length-1]?.key:void 0;return{objects:B,isTruncated:v,nextContinuationToken:N,commonPrefixes:Array.from(G.commonPrefixes).sort()}}},{name:"GET_OBJECT_METADATA",description:"Get metadata for a file in the local assets directory",inputSchema:D.object({key:D.string()}),outputSchema:D.object({contentType:D.string().optional(),contentLength:D.number(),lastModified:D.string(),etag:D.string(),metadata:D.record(D.string(),D.string()).optional()}),handler:async(w)=>{let J=w,E=Eg1(X,J.key),Q=await Jb$(E);return{contentType:Kh1(J.key),contentLength:Q.size,lastModified:Q.mtime.toISOString(),etag:Db$(E,Q.mtime,Q.size)}}},{name:"GET_PRESIGNED_URL",description:"Generate a presigned URL for downloading a file from local storage",inputSchema:D.object({key:D.string(),expiresIn:D.number().optional()}),outputSchema:D.object({url:D.string(),expiresIn:D.number()}),handler:async(w)=>{let J=w,E=J.expiresIn??fb$;return{url:Xb$(u,X,J.key,E,"GET"),expiresIn:E}}},{name:"PUT_PRESIGNED_URL",description:"Generate a presigned URL for uploading a file to local storage",inputSchema:D.object({key:D.string(),expiresIn:D.number().optional(),contentType:D.string().optional()}),outputSchema:D.object({url:D.string(),expiresIn:D.number()}),handler:async(w)=>{let J=w,E=J.expiresIn??fb$;return{url:Xb$(u,X,J.key,E,"PUT"),expiresIn:E}}},{name:"DELETE_OBJECT",description:"Delete a single file from local storage",inputSchema:D.object({key:D.string()}),outputSchema:D.object({success:D.boolean(),key:D.string()}),handler:async(w)=>{let J=w,E=Eg1(X,J.key);try{return await ub$(E),{success:!0,key:J.key}}catch{return{success:!1,key:J.key}}}},{name:"DELETE_OBJECTS",description:"Delete multiple files from local storage",inputSchema:D.object({keys:D.array(D.string()).max(1000)}),outputSchema:D.object({deleted:D.array(D.string()),errors:D.array(D.object({key:D.string(),message:D.string()}))}),handler:async(w)=>{let J=w,E=[],Q=[];return await Promise.all(J.keys.map(async(Y)=>{let Z=Eg1(X,Y);try{await ub$(Z),E.push(Y)}catch(W){Q.push({key:Y,message:W instanceof Error?W.message:"Unknown error"})}})),{deleted:E,errors:Q}}}]}async function Yg1($,u,f){let X=Wb$(u,f),w=new Yv({name:"dev-assets-mcp",version:"1.0.0"},{capabilities:{tools:{}}});for(let E of X){let Q="shape"in E.inputSchema?E.inputSchema.shape:D.object({}).shape,Y=E.outputSchema&&"shape"in E.outputSchema?E.outputSchema.shape:D.object({}).shape;w.registerTool(E.name,{description:E.description??"",inputSchema:Q,outputSchema:Y,annotations:E.annotations,_meta:E._meta},async(Z)=>{try{let W=await E.handler(Z);return{content:[{type:"text",text:JSON.stringify(W)}],structuredContent:W}}catch(W){return{content:[{type:"text",text:`Error: ${W.message}`}],isError:!0}}})}let J=new iD({enableJsonResponse:$.headers.get("Accept")?.includes("application/json")??!1});return await w.connect(J),J.handleRequest($)}async function Gb$($,u,f,X){let J=Wb$(f,X).find((E)=>E.name===$);if(!J)return{content:[{type:"text",text:`Tool not found: ${$}`}],isError:!0};try{let E=await J.handler(u);return{content:[{type:"text",text:JSON.stringify(E)}]}}catch(E){return{content:[{type:"text",text:E instanceof Error?E.message:String(E)}],isError:!0}}}var OP3="./data/assets",fb$=3600,Eb$,Fb$;var Bb$=U(()=>{_f();f5();m0();Q30();wo();jd0();Eb$=new m4;Eb$.all("/",async($)=>{let u=$.get("meshContext"),f=new URL($.req.url),X=`${f.protocol}//${f.host}`;return Yg1($.req.raw,u,X)});Fb$=Eb$});var vb$={};Q1(vb$,{mountDevRoutes:()=>KP3});function KP3($,u){$.all("/mcp/:connectionId{.*_dev-assets$}",u,async(X)=>{let w=X.get("meshContext"),J=new URL(X.req.url),E=`${J.protocol}//${J.host}`;return Yg1(X.req.raw,w,E)}),$.all("/mcp/:connectionId{.*_dev-assets$}/call-tool/:toolName",u,async(X)=>{let w=X.get("meshContext"),J=new URL(X.req.url),E=`${J.protocol}//${J.host}`,Q=X.req.param("toolName");if(!Q)return X.json({error:"Missing tool name"},400);let Y=await X.req.json(),Z=await Gb$(Q,Y,w,E);if(Z.isError)return X.json(Z.content,500);return X.json(Z.content)}),$.use("/mcp/dev-assets",u),$.route("/mcp/dev-assets",Fb$);let f=new m4;f.use("*",OY({mountPath:"/api/dev-assets"})),f.route("/",Pd0({orgFromPath:!1})),$.route("/api/dev-assets",f)}var Ub$=U(()=>{f5();Fh1();jd0();Bb$()});var Nb$=U(()=>{pQ1();oQ1();Gv()});var Wm0=U(()=>{Nb$()});var zb$={};Q1(zb$,{streamAgent:()=>Ob$,createDecopilotClient:()=>_P3});async function HP3($){let{parseJsonEventStream:u,uiMessageChunkSchema:f}=await Promise.resolve().then(() => (vf(),ik1));return u({stream:$,schema:f}).pipeThrough(new TransformStream({transform(X,w){if(!X.success)throw X.error;w.enqueue(X.value)}}))}async function Ob$($,u,f,X,w){let{readUIMessageStream:J}=await Promise.resolve().then(() => (vf(),ik1)),E=f.value??f.id;if(!E)throw Error("Agent binding has no id or value \u2014 cannot resolve agent");let Q=X.credentialId??f.credentialId,Y=X.thinking??f.thinking,Z=Y?.id,W={messages:X.messages,...Z?{models:{credentialId:Q,thinking:Y,...X.coding??f.coding?{coding:X.coding??f.coding}:{},...X.fast??f.fast?{fast:X.fast??f.fast}:{}}}:{},agent:{id:E},temperature:X.temperature??f.temperature,toolApprovalLevel:X.toolApprovalLevel??f.toolApprovalLevel,mode:X.mode??f.mode??"default",...X.memory?{memory:X.memory}:{},...X.thread_id?{thread_id:X.thread_id}:{}},G=await fetch($,{method:"POST",headers:{"Content-Type":"application/json","x-mesh-token":u,Authorization:`Bearer ${u}`},body:JSON.stringify(W),signal:w?.signal});if(!G.ok){let B=await G.text().catch(()=>""),v=`HTTP ${G.status}`;try{let N=JSON.parse(B);if(N?.error)v=N.error}catch{if(B)v=B}throw Error(v)}if(!G.body)throw Error("Empty response body from decopilot stream");let F=await HP3(G.body);return J({stream:F})}function _P3($){let{baseUrl:u,orgSlug:f,token:X}=$,w=`${u}/${f}/decopilot/runtime/stream`;return{stream(J,E){let Q={__type:"@deco/agent",id:J.agent.id,credentialId:J.credentialId??"",thinking:J.thinking??{id:"",title:""},coding:J.coding,fast:J.fast,toolApprovalLevel:J.toolApprovalLevel,mode:J.mode,temperature:J.temperature};return Ob$(w,X,Q,J,E)}}}function Kb$($){let u=$.properties;if(!u)return $;for(let f of Object.values(u)){let X=f.properties;if(!X?.__type?.const)continue;let w=X.__type.const,J=PP3.get(w);if(!J)continue;let E=J.map((Q)=>({name:String(Q.name),...Q.inputSchema&&{inputSchema:D.toJSONSchema(Q.inputSchema)},...Q.outputSchema&&{outputSchema:D.toJSONSchema(Q.outputSchema)}}));X.__binding={const:E}}return $}var PP3,pq7,jP3=($)=>{return typeof $==="object"&&$!==null&&$.__type==="@deco/agent"},Zg1=($)=>{return typeof $==="object"&&$!==null&&typeof $.__type==="string"&&$.__type!=="@deco/agent"&&typeof $.value==="string"},Gm0=($,u,f)=>{let X=f?{"x-caller-app":f}:void 0;if(u.cookie)X??={},X.cookie=u.cookie;if(u.token)X??={},X["x-mesh-token"]=u.token;return{type:"HTTP",url:new URL(`/mcp/${$}`,u.meshUrl).href,token:u.token,headers:X}},LP3=($,u,f)=>{let X=Gm0($,u,f);return new Proxy(Wt.forConnection(X),{get(w,J){if(J==="value")return $;if(J==="__type")return f;return w[J]}})},TP3=($,u)=>{let f=u.organizationSlug;if(!f)throw Error("organizationSlug is required for agent bindings");let X=`${u.meshUrl}/api/${f}/decopilot/runtime/stream`;return{STREAM:async(w,J)=>{let{streamAgent:E}=await Promise.resolve().then(() => zb$);return E(X,u.token,$,w,J)}}},Dg1=($,u)=>{if($===null||$===void 0)return $;if(Array.isArray($))return $.map((f)=>Dg1(f,u));if(typeof $==="object"){if(jP3($))return TP3($,u);if(Zg1($))return LP3($.value,u,$.__type);let f={};for(let[X,w]of Object.entries($))f[X]=Dg1(w,u);return f}return $},Hb$=($)=>{return Dg1($.state,$)};var Fs=U(()=>{Wm0();m0();PP3=new Map;pq7=D.object({id:D.string(),title:D.string(),capabilities:D.object({vision:D.boolean().optional(),text:D.boolean().optional(),tools:D.boolean().optional(),reasoning:D.boolean().optional()}).passthrough().optional(),provider:D.string().optional().nullable(),limits:D.object({contextWindow:D.number().optional(),maxOutputTokens:D.number().optional()}).passthrough().optional()})});var AP3,_b$=($,u,f)=>{if(!u)return null;if($===void 0||$==="*")return"*";if(typeof $==="string")return $===u?$:null;if(Array.isArray($))return $.includes(u)?u:null;if(typeof $==="function")return $(u,f)??null;return null},IP3=($,u,f)=>{let X=u.headers.get("Origin"),w=_b$(f.origin,X,u);if(w)$.set("Access-Control-Allow-Origin",w);if(f.credentials)$.set("Access-Control-Allow-Credentials","true");if(f.exposeHeaders?.length)$.set("Access-Control-Expose-Headers",f.exposeHeaders.join(", "))},Pb$=($,u)=>{let f=new Headers,X=$.headers.get("Origin"),w=_b$(u.origin,X,$);if(w)f.set("Access-Control-Allow-Origin",w);if(u.credentials)f.set("Access-Control-Allow-Credentials","true");let J=u.allowMethods??AP3;f.set("Access-Control-Allow-Methods",J.join(", "));let E=$.headers.get("Access-Control-Request-Headers");if(u.allowHeaders?.length)f.set("Access-Control-Allow-Headers",u.allowHeaders.join(", "));else if(E)f.set("Access-Control-Allow-Headers",E);if(u.maxAge!==void 0)f.set("Access-Control-Max-Age",u.maxAge.toString());return new Response(null,{status:204,headers:f})},jb$=($,u,f)=>{let X=new Headers($.headers);return IP3(X,u,f),new Response($.body,{status:$.status,statusText:$.statusText,headers:X})};var Lb$=U(()=>{AP3=["GET","HEAD","PUT","POST","DELETE","PATCH"]});function Tb$($=32){let f=new Uint8Array($);return crypto.getRandomValues(f),Array.from(f,(X)=>"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"[X%62]).join("")}function SP3($){try{let u=new URL($);return u.protocol==="https:"||u.hostname==="localhost"||u.hostname.endsWith(".localhost")||u.hostname==="127.0.0.1"||!u.protocol.startsWith("http")}catch{return!1}}function Ab$($){return btoa(JSON.stringify($)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function Ib$($){try{let u=$.replace(/-/g,"+").replace(/_/g,"/");return JSON.parse(atob(u))}catch{return null}}function Sb$($){return{handleProtectedResourceMetadata:(Z)=>{let W=TF(new URL(Z.url)),G=`${W.origin}/mcp`;return Response.json({resource:G,authorization_servers:[W.origin],scopes_supported:["*"],bearer_methods_supported:["header"],resource_signing_alg_values_supported:["RS256","none"]})},handleAuthorizationServerMetadata:(Z)=>{let G=TF(new URL(Z.url)).origin;return Response.json({issuer:G,authorization_endpoint:`${G}/authorize`,token_endpoint:`${G}/token`,registration_endpoint:`${G}/register`,scopes_supported:["*"],response_types_supported:["code"],response_modes_supported:["query"],grant_types_supported:["authorization_code","refresh_token"],token_endpoint_auth_methods_supported:["none","client_secret_post"],code_challenge_methods_supported:["S256","plain"]})},handleAuthorize:(Z)=>{let W=TF(new URL(Z.url)),G=W.searchParams.get("redirect_uri"),F=W.searchParams.get("response_type"),B=W.searchParams.get("state"),v=W.searchParams.get("code_challenge"),N=W.searchParams.get("code_challenge_method");if(!G)return Response.json({error:"invalid_request",error_description:"redirect_uri required"},{status:400});if(F!=="code")return Response.json({error:"unsupported_response_type",error_description:"Only 'code' is supported"},{status:400});let O=TF(new URL(`${W.origin}/oauth/callback`)),z=O.toString(),j=Ab$({redirectUri:G,clientState:B??void 0,codeChallenge:v??void 0,codeChallengeMethod:N??void 0,oauthCallbackUri:z});O.searchParams.set("state",j);let A=$.authorizationUrl(O.toString());return Response.redirect(A,302)},handleOAuthCallback:async(Z)=>{let W=TF(new URL(Z.url)),G=W.searchParams.get("code"),F=W.searchParams.get("state"),B=W.searchParams.get("error"),v=F?Ib$(F):null;if(B){let N=W.searchParams.get("error_description")??"Authorization failed";if(v?.redirectUri){let O=TF(new URL(v.redirectUri));if(O.searchParams.set("error",B),O.searchParams.set("error_description",N),v.clientState)O.searchParams.set("state",v.clientState);return Response.redirect(O.toString(),302)}return Response.json({error:B,error_description:N},{status:400})}if(!G||!v)return Response.json({error:"invalid_request",error_description:"Missing code or state"},{status:400});try{let N=v.oauthCallbackUri??TF(new URL(`${W.origin}/oauth/callback`)).toString(),O={code:G,redirect_uri:N},z=await $.exchangeCode(O),H={accessToken:z.access_token,tokenType:z.token_type,refreshToken:z.refresh_token,expiresIn:z.expires_in,scope:z.scope,codeChallenge:v.codeChallenge,codeChallengeMethod:v.codeChallengeMethod},j=Ab$(H),A=TF(new URL(v.redirectUri));if(A.searchParams.set("code",j),v.clientState)A.searchParams.set("state",v.clientState);return Response.redirect(A.toString(),302)}catch(N){console.error("OAuth callback error:",N);let O=TF(new URL(v.redirectUri));if(O.searchParams.set("error","server_error"),O.searchParams.set("error_description","Failed to exchange authorization code"),v.clientState)O.searchParams.set("state",v.clientState);return Response.redirect(O.toString(),302)}},handleToken:async(Z)=>{try{let W=Z.headers.get("content-type")??"",G;if(W.includes("application/x-www-form-urlencoded")){let H=await Z.formData();G=Object.fromEntries(H.entries())}else{let H=await Z.json();if(typeof H!=="object"||H===null||Array.isArray(H))return Response.json({error:"invalid_request",error_description:"Request body must be a JSON object"},{status:400});G=H}let{code:F,code_verifier:B,grant_type:v,refresh_token:N}=G;if(v==="refresh_token"){if(typeof N!=="string"||!N)return Response.json({error:"invalid_request",error_description:"refresh_token is required and must be a string"},{status:400});if(!$.refreshToken)return Response.json({error:"unsupported_grant_type",error_description:"refresh_token grant not supported"},{status:400});let H;try{H=await $.refreshToken(N)}catch(A){if(A instanceof Wg1)return Response.json({error:A.error,...A.errorDescription?{error_description:A.errorDescription}:{}},{status:400});throw A}let j={access_token:H.access_token,token_type:H.token_type};if(H.refresh_token)j.refresh_token=H.refresh_token;if(H.expires_in!==void 0)j.expires_in=H.expires_in;if(H.scope)j.scope=H.scope;return Response.json(j,{headers:{"Cache-Control":"no-store",Pragma:"no-cache"}})}if(v!=="authorization_code")return Response.json({error:"unsupported_grant_type",error_description:"Only authorization_code and refresh_token supported"},{status:400});if(typeof F!=="string"||!F)return Response.json({error:"invalid_request",error_description:"code is required and must be a string"},{status:400});let O=Ib$(F);if(!O||!O.accessToken)return Response.json({error:"invalid_grant",error_description:"Invalid or expired code"},{status:400});if(O.codeChallenge){if(typeof B!=="string"||!B)return Response.json({error:"invalid_grant",error_description:"code_verifier required and must be a string"},{status:400});let H;if(O.codeChallengeMethod==="S256"){let A=new TextEncoder().encode(B),L=await crypto.subtle.digest("SHA-256",A);H=btoa(String.fromCharCode(...new Uint8Array(L))).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}else H=B;if(H!==O.codeChallenge)return Response.json({error:"invalid_grant",error_description:"Invalid code_verifier"},{status:400})}let z={access_token:O.accessToken,token_type:O.tokenType};if(O.refreshToken)z.refresh_token=O.refreshToken;if(O.expiresIn!==void 0)z.expires_in=O.expiresIn;if(O.scope)z.scope=O.scope;return Response.json(z,{headers:{"Cache-Control":"no-store",Pragma:"no-cache"}})}catch(W){return console.error("Token exchange error:",W),Response.json({error:"server_error",error_description:"Failed to process token request"},{status:500})}},handleClientRegistration:async(Z)=>{try{let W=await Z.json();if(!W.redirect_uris||W.redirect_uris.length===0)return Response.json({error:"invalid_redirect_uri",error_description:"At least one redirect_uri is required"},{status:400});for(let N of W.redirect_uris)if(!SP3(N))return Response.json({error:"invalid_redirect_uri",error_description:`Invalid redirect URI: ${N}`},{status:400});let G=Tb$(32),F=W.token_endpoint_auth_method!=="none"?Tb$(32):void 0,B=Math.floor(Date.now()/1000),v={client_id:G,client_secret:F,client_name:W.client_name,redirect_uris:W.redirect_uris,grant_types:W.grant_types??["authorization_code"],response_types:W.response_types??["code"],token_endpoint_auth_method:W.token_endpoint_auth_method??"client_secret_post",scope:W.scope,client_id_issued_at:B,client_secret_expires_at:0};if($.persistence)await $.persistence.saveClient(v);return new Response(JSON.stringify(v),{status:201,headers:{"Content-Type":"application/json","Cache-Control":"no-store",Pragma:"no-cache"}})}catch(W){return console.error("Client registration error:",W),Response.json({error:"invalid_client_metadata",error_description:"Invalid client registration request"},{status:400})}},createUnauthorizedResponse:(Z)=>{let F=`Bearer resource_metadata="${`${TF(new URL(Z.url)).origin}/.well-known/oauth-protected-resource`}", scope="*"`;return Response.json({jsonrpc:"2.0",error:{code:-32000,message:"Unauthorized: Authentication required"},id:null},{status:401,headers:{"WWW-Authenticate":F,"Access-Control-Expose-Headers":"WWW-Authenticate"}})},hasAuth:(Z)=>Z.headers.has("Authorization")}}var Wg1,TF=($)=>{if(!($.hostname==="localhost"||$.hostname.endsWith(".localhost")||$.hostname==="127.0.0.1"))$.protocol="https:";return $};var Gg1=U(()=>{Wg1=class Wg1 extends Error{error;errorDescription;constructor($="invalid_grant",u){super(u??$);this.name="OAuthInvalidGrantError",this.error=$,this.errorDescription=u}}});import{AsyncLocalStorage as kP3}from"async_hooks";var kb$,MJ0;var Fg1=U(()=>{kb$=new kP3,MJ0={getStore:()=>{return kb$.getStore()},run:($,u,...f)=>kb$.run($,u,...f)}});var Cb$="SELF",Bm0=($)=>{return typeof $==="object"&&$!==null&&"handler"in $&&"events"in $&&typeof $.handler==="function"&&Array.isArray($.events)},qb$=($)=>{return typeof $==="object"&&$!==null&&"handler"in $&&"events"in $&&typeof $.handler==="function"&&Array.isArray($.events)},Rb$="::",Mb$=($)=>{let u=$.indexOf(Rb$);if(u===-1)return null;let f=$.substring(0,u),X=$.substring(u+Rb$.length);return[f,X]},RP3=($)=>{if(!$.startsWith("cron/"))return null;let u=$.substring(5),f=u.indexOf("/");if(f===-1)return null;let X=u.substring(0,f),w=u.substring(f+1);return[X,w]},hb$=($)=>{if(Bm0($))return[];return Object.keys($)},CP3=($,u)=>{if(Bm0($))return $.events;let f=$[u];if(!f)return[];if(qb$(f))return f.events;return Object.keys(f)},Fm0=($,u,f)=>{if($===Cb$){if(!f)return console.warn("[Event] SELF binding used but no connectionId available"),null;return f}let X=u[$];if(!Zg1(X))return console.warn(`[Event] Binding "${$}" not found in state`),null;return X.value},qP3=($,u,f)=>{let X=u;if(Bm0($)){let J=[];for(let E of $.events){let Q=Mb$(E);if(!Q){console.warn(`[Event] Global handler event "${E}" must be prefixed with BINDING:: (e.g., "SELF::${E}" or "DATABASE::${E}")`);continue}let[Y,Z]=Q,W=Fm0(Y,X,f);if(!W)continue;J.push({eventType:Z,publisher:W})}return J}let w=[];for(let J of hb$($)){let E=Fm0(J,X,f);if(!E)continue;let Q=CP3($,J);for(let Y of Q)w.push({eventType:Y,publisher:E})}return w},MP3=($)=>{let u=new Map;for(let f of $){let X=f.source,w=u.get(X)||[];w.push(f),u.set(X,w)}return u},hP3=($)=>{let u=new Map;for(let f of $){let X=f.type,w=u.get(X)||[];w.push(f),u.set(X,w)}return u},yP3=($)=>{let u={},f={},X=!1,w=0,J=[];for(let E of $){if(E.results)Object.assign(f,E.results);if(E.success===!1){if(X=!0,E.error)J.push(E.error)}if(E.processedCount!==void 0)w+=E.processedCount}if(Object.keys(f).length>0)u.results=f;if(u.success=!X,J.length>0)u.error=J.join("; ");if(w>0)u.processedCount=w;return u},gP3=async($,u,f,X,w)=>{let J=X;if(Bm0($)){let W=new Set;for(let F of $.events){let B=Mb$(F);if(!B)continue;let[v,N]=B,O=Fm0(v,J,w);if(!O)continue;W.add(`${O}:${N}`)}let G=u.filter((F)=>{let B=`${F.source}:${F.type}`;return W.has(B)});if(G.length===0)return{success:!0};try{return await $.handler({events:G},f)}catch(F){return{success:!1,error:F instanceof Error?F.message:String(F)}}}let E=new Map;for(let W of hb$($)){let G=Fm0(W,J,w);if(G)E.set(G,W)}let Q=MP3(u),Y=[];for(let[W,G]of Q){let F=E.get(W);if(!F)continue;let B=$[F];if(!B)continue;if(qb$(B)){Y.push((async()=>{try{return await B.handler({events:G},f)}catch(O){let z={};for(let H of G)z[H.id]={success:!1,error:O instanceof Error?O.message:String(O)};return{results:z}}})());continue}let v=B,N=hP3(G);for(let[O,z]of N){let H=v[O];if(!H)continue;Y.push((async()=>{try{let j=await H({events:z},f),A={};for(let L of z)A[L.id]=j;return{results:A}}catch(j){let A={};for(let L of z)A[L.id]={success:!1,error:j instanceof Error?j.message:String(j)};return{results:A}}})())}}let Z=await Promise.all(Y);if(Z.length===0)return{success:!0};return yP3(Z)},vm0;var Bg1=U(()=>{Fs();vm0={subscriptions:qP3,execute:gP3,parseCron:RP3}});function Bs($){return $.toLowerCase().trim().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"")}function gb$($,u){return`${$}::${Bs(u)}`}function vg1($){return`START_WORKFLOW_${Bs($).toUpperCase().replace(/-/g,"_")}`}function Vb$($,u){let f=Gm0("self",{meshUrl:$,token:u});return Wt.forConnection(f)}function VP3($,u){if(!dx.has($)&&dx.size>=bb$){let f=dx.keys().next().value;if(f!==void 0)dx.delete(f)}dx.set($,u)}function bP3($){return`Workflows Agent (${$})`}function yb$($,u){if(!mx.has($)&&mx.size>=bb$){let f=mx.keys().next().value;if(f!==void 0)mx.delete(f)}mx.set($,u)}async function iP3($,u,f){let X=mx.get($);if(X)return console.log(`${f} Using cached default Virtual MCP: ${X}`),X;let w=bP3($);try{let J=await u.COLLECTION_VIRTUAL_MCP_LIST({where:{operator:"and",conditions:[{field:["connection_id"],operator:"eq",value:$},{field:["title"],operator:"eq",value:w}]},limit:1});if(J.items.length>0){let E=J.items[0].id;return yb$($,E),console.log(`${f} Found existing default Virtual MCP: ${E}`),E}}catch(J){console.warn(`${f} Could not list Virtual MCPs \u2014 proceeding without default. Error: ${J instanceof Error?J.message:String(J)}`);return}try{let E=(await u.COLLECTION_VIRTUAL_MCP_CREATE({data:{title:w,connections:[{connection_id:$,selected_tools:null}]}})).item.id;return yb$($,E),console.log(`${f} Created default Virtual MCP: ${E}`),E}catch(J){console.warn(`${f} Could not create default Virtual MCP \u2014 proceeding without default. Error: ${J instanceof Error?J.message:String(J)}`);return}}function xP3($){return JSON.stringify($.map((u)=>({title:u.title,description:u.description??void 0,virtual_mcp_id:u.virtual_mcp_id??void 0,steps:u.steps,toolId:u.toolId??void 0,inputSchema:u.inputSchema??void 0})))}async function lP3($,u,f,X,w){let J=`[Workflows][${f}]`,E=$.find((j)=>Bs(j.title)==="");if(E!==void 0){console.warn(`${J} Workflow title "${E.title}" produces an empty ID. Skipping sync.`);return}if($.length>0){let j=$.map((L)=>Bs(L.title));if(new Set(j).size!==j.length){let L=new Set(j.filter((k,S)=>j.indexOf(k)!==S)),I=$.filter((k)=>L.has(Bs(k.title))).map((k)=>k.title);console.warn(`${J} Workflow titles that produce duplicate IDs: ${[...new Set(I)].join(", ")}. Skipping sync.`);return}}let Q=xP3($),Y=dx.get(f);if(Y===Q){console.log(`${J} Fingerprint unchanged \u2014 skipping sync. Declared: ${$.length} workflow(s): [${$.map((j)=>j.title).join(", ")}]`);return}console.log(`${J} Fingerprint changed (or first sync) \u2014 starting sync. Declared: ${$.length} workflow(s): [${$.map((j)=>j.title).join(", ")}]`,Y?"(previous fingerprint existed)":"(no previous fingerprint)");let Z=w??Vb$(u,X),G=$.some((j)=>j.virtual_mcp_id===void 0)?await iP3(f,Z,J):void 0,F;try{let j=[],A=0,L=200;while(!0){let I=await Z.COLLECTION_WORKFLOW_LIST({limit:L,offset:A});if(j.push(...I.items),!I.hasMore||I.items.length===0)break;A+=I.items.length}F=j,console.log(`${J} LIST returned ${F.length} total workflow(s). IDs owned by this connection: [${F.filter((I)=>I.id.startsWith(`${f}::`)).map((I)=>I.id).join(", ")||"none"}]`)}catch(j){let A=j instanceof Error?j.message:String(j);console.warn(`${J} Could not list workflows (workflows plugin may not be enabled). Skipping sync. Error: ${A}`);return}let B=`${f}::`,v=new Map(F.filter((j)=>j.id.startsWith(B)).map((j)=>[j.id,j])),N=$.map((j)=>[gb$(f,j.title),j]),O=new Set(N.map(([j])=>j)),z=!1;await Promise.all(N.map(async([j,A])=>{let L=v.has(j)?"UPDATE":"CREATE";console.log(`${J} ${L} "${A.title}" (id=${j})`);try{let I=A.virtual_mcp_id??G;if(L==="UPDATE"){let k=await Z.COLLECTION_WORKFLOW_UPDATE({id:j,data:{title:A.title,description:A.description,...I!==void 0&&{virtual_mcp_id:I},steps:A.steps,input_schema:A.inputSchema===void 0?void 0:A.inputSchema??null}});if(!k.success)z=!0,console.warn(`${J} UPDATE "${A.title}" returned success=false:`,String(k.error??"(no error message)"));else console.log(`${J} UPDATE "${A.title}" OK`)}else await Z.COLLECTION_WORKFLOW_CREATE({data:{id:j,title:A.title,description:A.description,virtual_mcp_id:I,steps:A.steps,input_schema:A.inputSchema??null}}),console.log(`${J} CREATE "${A.title}" OK`)}catch(I){z=!0,console.warn(`${J} Failed to ${L} workflow "${A.title}":`,I instanceof Error?I.message:String(I))}}));let H=[...v.keys()].filter((j)=>!O.has(j));if(H.length>0)console.log(`${J} Deleting ${H.length} orphaned workflow(s): [${H.join(", ")}]`);if(await Promise.all(H.map(async(j)=>{try{await Z.COLLECTION_WORKFLOW_DELETE({id:j}),console.log(`${J} DELETE "${j}" OK`)}catch(A){z=!0,console.warn(`${J} Failed to delete orphaned workflow "${j}":`,A instanceof Error?A.message:String(A))}})),!z)VP3(f,Q),console.log(`${J} Sync complete \u2014 fingerprint stored.`);else console.warn(`${J} Sync finished with errors \u2014 fingerprint NOT stored so the next call will retry.`)}async function cP3($,u,f,X,w){let E=(Um0.get(f)??Promise.resolve()).catch(()=>{}).then(()=>lP3($,u,f,X,w)).finally(()=>{if(Um0.get(f)===E)Um0.delete(f)});return Um0.set(f,E),E}var Um0,bb$=500,dx,mx,ib$,Nm0;var Ug1=U(()=>{Fs();Wm0();Um0=new Map,dx=new Map;mx=new Map;ib$=["SELF::COLLECTION_WORKFLOW_LIST","SELF::COLLECTION_WORKFLOW_CREATE","SELF::COLLECTION_WORKFLOW_UPDATE","SELF::COLLECTION_WORKFLOW_DELETE","SELF::COLLECTION_WORKFLOW_EXECUTION_CREATE","SELF::COLLECTION_VIRTUAL_MCP_LIST","SELF::COLLECTION_VIRTUAL_MCP_CREATE"],Nm0={sync:cP3,slugify:Bs,workflowId:gb$,toolId:vg1,createExecution:async($,u,f)=>{return(await Vb$($,u).COLLECTION_WORKFLOW_EXECUTION_CREATE(f)).item.id},clearFingerprint:($)=>{dx.delete($),mx.delete($)}}});function AF($){return{...$,execute:(u)=>{let f=hJ0(u.runtimeContext);return $.execute({...u,runtimeContext:f},f)}}}var hJ0=($)=>{let u=MJ0.getStore();if(!u){if($)return $;throw Error("Missing context, did you forget to call State.bind?")}return u},dP3=($,u)=>{let f=u;return typeof f[$]<"u"?f[$]:u?.MESH_REQUEST_CONTEXT?.state?.[$]},Om0=($)=>{let u=$.runtimeContext.env.MESH_REQUEST_CONTEXT;return{connectionId:u?.connectionId,meshUrl:u?.meshUrl,token:u?.token}},mP3=({events:$,workflows:u,configuration:{state:f,scopes:X,onChange:w}={}}={})=>{let J=f?Kb$(D.toJSONSchema(f)):{type:"object",properties:{}},E=String($?.bus??"EVENT_BUS");return[...w||$||u?.length?[AF({id:"ON_MCP_CONFIGURATION",description:"MCP Configuration On Change",inputSchema:D.object({state:f??D.unknown(),scopes:D.array(D.string()).describe("Array of scopes in format 'KEY::SCOPE' (e.g., 'GMAIL::GetCurrentUser')")}),outputSchema:D.object({}),execute:async(Q)=>{let Y=Q.context.state;await w?.(Q.runtimeContext.env,{state:Y,scopes:Q.context.scopes});let Z=dP3(E,Q.runtimeContext.env);if($&&Y&&Z){let{connectionId:W}=Om0(Q),G=vm0.subscriptions($?.handlers??{},Y,W);if(await Z.EVENT_SYNC_SUBSCRIPTIONS({subscriptions:G}),W){let F=G.filter((B)=>B.eventType.startsWith("cron/")&&B.publisher===W);await Promise.all(F.map(async(B)=>{let v=vm0.parseCron(B.eventType);if(v){let[,N]=v;await Z.EVENT_PUBLISH({type:B.eventType,cron:N})}}))}}if(u?.length){let{connectionId:W,meshUrl:G,token:F}=Om0(Q);if(W&&G)await Nm0.sync(u,G,W,F)}return Promise.resolve({})}})]:[],...$?.handlers?[AF({id:"ON_EVENTS",description:"Receive and process CloudEvents from the event bus. Returns per-event or batch results.",inputSchema:gL0,outputSchema:VL0,execute:async(Q)=>{let Y=Q.runtimeContext.env,Z=Y.MESH_REQUEST_CONTEXT?.state,{connectionId:W}=Om0(Q);return vm0.execute($.handlers,Q.context.events,Y,Z,W)}})]:[],AF({id:"MCP_CONFIGURATION",description:"MCP Configuration",inputSchema:D.object({}),outputSchema:D.object({stateSchema:D.unknown(),scopes:D.array(D.string()).optional()}),execute:()=>{return Promise.resolve({stateSchema:J,scopes:[...X??[],...$?[`${E}::EVENT_SYNC_SUBSCRIPTIONS`]:[],...u?.length?[...ib$]:[]]})}}),...u?.length?u.map((Q)=>{let Y=Q.toolId??vg1(Q.title),Z=[Q.description?`Run workflow: ${Q.description}`:`Start the "${Q.title}" workflow.`,"Returns an execution_id immediately. Use COLLECTION_WORKFLOW_EXECUTION_GET to track progress."].join(" ");return AF({id:Y,description:(()=>{if(!Q.inputSchema)return Z;let W=JSON.stringify(Q.inputSchema,null,2);return W.length<=2048?`${Z}
|
|
78204
78271
|
|
|
78205
78272
|
Input schema:
|
|
78206
78273
|
${W}`:`${Z}
|