decocms 2.443.0 → 2.443.1
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-C0w7vkhj.js → AlertCircle-CZWA2nH8.js} +1 -1
- package/dist/client/assets/{ArrowUpRight-DNyQYu-V.js → ArrowUpRight-DXFfY2Nq.js} +1 -1
- package/dist/client/assets/{Check-8AgR6ZjG.js → Check-B7DufF9O.js} +1 -1
- package/dist/client/assets/{CheckCircle-CEi1N2Mq.js → CheckCircle-B3a532XL.js} +1 -1
- package/dist/client/assets/{ChevronDown-DhOfQXzQ.js → ChevronDown-DhIkdEzt.js} +1 -1
- package/dist/client/assets/{ChevronRight-DQs4tkMm.js → ChevronRight-BQDeINW7.js} +1 -1
- package/dist/client/assets/{ChevronUp-BJ7RKHi2.js → ChevronUp-BMLC4SgN.js} +1 -1
- package/dist/client/assets/{Container-nZYBPJRv.js → Container-DprTine2.js} +1 -1
- package/dist/client/assets/{DotsVertical-C00j11Qg.js → DotsVertical-BebTEDkn.js} +1 -1
- package/dist/client/assets/{Eye-B7Xkt1CB.js → Eye-DgcZpf5x.js} +1 -1
- package/dist/client/assets/{FilterLines-FHjfh1pF.js → FilterLines-uT-sk3rc.js} +1 -1
- package/dist/client/assets/{Globe01-Uo6KHfk2.js → Globe01-Dd7C_j_O.js} +1 -1
- package/dist/client/assets/{HardDrive-CGMuM2Oy.js → HardDrive-BtjljIRu.js} +1 -1
- package/dist/client/assets/{Key01-BIkGax_i.js → Key01-D1UyWXgw.js} +1 -1
- package/dist/client/assets/{LinkExternal01-DycVPnNy.js → LinkExternal01-Brj_TJxd.js} +1 -1
- package/dist/client/assets/{Monitor01-D1U6Pa3W.js → Monitor01-DFXqifzv.js} +1 -1
- package/dist/client/assets/{Palette-Toq4eQ-J.js → Palette-Bq9PMsoj.js} +1 -1
- package/dist/client/assets/{Play-CA-oDPY7.js → Play-C9o4InoB.js} +1 -1
- package/dist/client/assets/{Plus-DgS5eNSe.js → Plus-DdlGCl-J.js} +1 -1
- package/dist/client/assets/{RefreshCcw01-DVTjMN9w.js → RefreshCcw01-CZGSpPEW.js} +1 -1
- package/dist/client/assets/{SearchMd-WbJoDaWs.js → SearchMd-88EikaJB.js} +1 -1
- package/dist/client/assets/{Settings02-rrw51k4M.js → Settings02-B1lp2SVd.js} +1 -1
- package/dist/client/assets/{Shield01-5itVZGiR.js → Shield01-_I_z0Yxe.js} +1 -1
- package/dist/client/assets/{Star01-CeDy0qEH.js → Star01-b362v54F.js} +1 -1
- package/dist/client/assets/{Stars01-DYDsxZnS.js → Stars01-DAcarfyW.js} +1 -1
- package/dist/client/assets/{Stars02-ButLG8tI.js → Stars02-BFmBskXR.js} +1 -1
- package/dist/client/assets/{Sun-DB_K22EW.js → Sun-BaMRN3tl.js} +1 -1
- package/dist/client/assets/{SwitchHorizontal01-5B3DSr8e.js → SwitchHorizontal01-LvHBRitv.js} +1 -1
- package/dist/client/assets/{Tool01-BcHwzAg_.js → Tool01-B3nr_Qai.js} +1 -1
- package/dist/client/assets/{Trash01-C9vkf5T6.js → Trash01-DzP4bSXT.js} +1 -1
- package/dist/client/assets/{Upload01-BXTkAAEz.js → Upload01-DJAirPOl.js} +1 -1
- package/dist/client/assets/{User01-C3qNbl-c.js → User01-D7oZ1u1w.js} +1 -1
- package/dist/client/assets/{Users01-C95xm0Ia.js → Users01-CQa1tUzy.js} +1 -1
- package/dist/client/assets/{Users03-Cgth-3GS.js → Users03-C7bMD3jg.js} +1 -1
- package/dist/client/assets/{X-FDfBE4i9.js → X-DEXMke5_.js} +1 -1
- package/dist/client/assets/{XCircle-8FTuCNvR.js → XCircle-B5jqknVe.js} +1 -1
- package/dist/client/assets/{XClose-BfJTW_HK.js → XClose-CpZzpgAq.js} +1 -1
- package/dist/client/assets/{Zap-DK6MOOIv.js → Zap-8zhK1JZ1.js} +1 -1
- package/dist/client/assets/{ZapSquare-wTPdLQod.js → ZapSquare-DT1D4OAA.js} +1 -1
- package/dist/client/assets/{ZoomOut-NkImUVHk.js → ZoomOut-C10GWzTz.js} +1 -1
- package/dist/client/assets/{access-gate-DwKbtSzY.js → access-gate-ChprljzU.js} +1 -1
- package/dist/client/assets/accordion-Dk7Q-28t.js +1 -0
- package/dist/client/assets/{add-section-modal-D23n3egw.js → add-section-modal-5UNgBmcq.js} +1 -1
- package/dist/client/assets/{agent-capabilities-CpWXCeRz.js → agent-capabilities-DtKIatZt.js} +1 -1
- package/dist/client/assets/{agent-icon-ExlCX9f5.js → agent-icon-DJnCVbR0.js} +1 -1
- package/dist/client/assets/{agent-icons-DAJPmC7Z.js → agent-icons-gxkxqZlA.js} +1 -1
- package/dist/client/assets/{agents-list-DdCb3QPP.js → agents-list-D-EW2m0k.js} +1 -1
- package/dist/client/assets/{ai-providers-D52L7y0S.js → ai-providers-DU29lPIn.js} +1 -1
- package/dist/client/assets/{alert-saVtzR2u.js → alert-CJmrA1-_.js} +1 -1
- package/dist/client/assets/{alert-dialog-rlUwGNsJ.js → alert-dialog-Bfzm0Sn1.js} +1 -1
- package/dist/client/assets/app-editor-BA0Rnv-W.js +1 -0
- package/dist/client/assets/{auth-catchall-DtCKOmFI.js → auth-catchall-Bmq1g-xe.js} +1 -1
- package/dist/client/assets/{auth-split-layout-DaXnlxNx.js → auth-split-layout-dlovNwqZ.js} +1 -1
- package/dist/client/assets/{automation-list-row-BYivUbaE.js → automation-list-row-DfQIV2Dv.js} +1 -1
- package/dist/client/assets/{automation-runs-B9Hv9eE-.js → automation-runs-B2hZA4Kn.js} +1 -1
- package/dist/client/assets/{automations-A6uZCwrZ.js → automations-DLu0_3ZB.js} +1 -1
- package/dist/client/assets/{avatar-GGBvmgaP.js → avatar-BCcehYOw.js} +1 -1
- package/dist/client/assets/{badge-BYAYJbYP.js → badge-Dxvv_o2R.js} +1 -1
- package/dist/client/assets/{brand-context-C7vqZWF-.js → brand-context-B9uo781k.js} +1 -1
- package/dist/client/assets/{buckets-Cv2ETh1T.js → buckets-B2ukbmRF.js} +1 -1
- package/dist/client/assets/{calendar-xjXZIDeb.js → calendar-alfK9fhJ.js} +1 -1
- package/dist/client/assets/{capability-load-error-CUPCgjg9.js → capability-load-error-Dz7EyokS.js} +1 -1
- package/dist/client/assets/{card-7rOCFixx.js → card-DwoGuIpq.js} +1 -1
- package/dist/client/assets/{chat-context-T6Hxtz67.js → chat-context-D4gb0Scc.js} +1 -1
- package/dist/client/assets/{checkbox-DotF6hoA.js → checkbox-CWwDb0cu.js} +1 -1
- package/dist/client/assets/{cli-auth-success-C_1kF7Fn.js → cli-auth-success-CKRlzllD.js} +1 -1
- package/dist/client/assets/collection-detail-DcSclG2P.js +1 -0
- package/dist/client/assets/{collection-display-button-Cn72Xu3L.js → collection-display-button-BoA_VnYw.js} +1 -1
- package/dist/client/assets/{collection-search-loHJ7IYX.js → collection-search-C5IBLwI6.js} +1 -1
- package/dist/client/assets/{collection-table-wrapper-CB8ynCFf.js → collection-table-wrapper-CT-F8LmT.js} +1 -1
- package/dist/client/assets/{collection-tabs-IuChGrKO.js → collection-tabs-Bm-12qTR.js} +1 -1
- package/dist/client/assets/{collections-BY2lU4NZ.js → collections-D79oYVs-.js} +1 -1
- package/dist/client/assets/{command-CYcMZe50.js → command-DbOdOn2n.js} +1 -1
- package/dist/client/assets/{connect-desktop-dialog-BjjpdcQ_.js → connect-desktop-dialog-Cl2Sz5Lx.js} +1 -1
- package/dist/client/assets/{connection-card-C98P6TUE.js → connection-card-JnLktoFU.js} +1 -1
- package/dist/client/assets/{connection-detail-DzFlb_go.js → connection-detail-BhA_swsb.js} +1 -1
- package/dist/client/assets/{connection-form-helpers-B_et0Rp5.js → connection-form-helpers-DGv50Ov6.js} +1 -1
- package/dist/client/assets/{connections-B1EHRtVn.js → connections-D7jUJRkf.js} +1 -1
- package/dist/client/assets/{constants-P1xnRFeX.js → constants-h1Hu02Pl.js} +1 -1
- package/dist/client/assets/{decopilot-sse-pool-CnTXTZP-.js → decopilot-sse-pool-CsEl5FJL.js} +1 -1
- package/dist/client/assets/{dialog-C3j-c3SR.js → dialog-C-asYC2o.js} +1 -1
- package/dist/client/assets/{domain-settings-8dDTfx0k.js → domain-settings-B1U-lr-C.js} +1 -1
- package/dist/client/assets/{drawer-ySjhgvkO.js → drawer-BgbFTtty.js} +1 -1
- package/dist/client/assets/{dropdown-menu-DKiorR9d.js → dropdown-menu-DLTe8MWs.js} +1 -1
- package/dist/client/assets/{dynamic-plugin-layout-CtrFibYD.js → dynamic-plugin-layout-BLaOVD7L.js} +1 -1
- package/dist/client/assets/{empty-state-D0UPz__M.js → empty-state-CBUfB2GJ.js} +1 -1
- package/dist/client/assets/{empty-state-CsQfijIL.js → empty-state-DDTXMCO_.js} +1 -1
- package/dist/client/assets/{extract-connection-data-DQPoIIzo.js → extract-connection-data-DHULaZ4q.js} +1 -1
- package/dist/client/assets/{features-DOYt53uh.js → features-n0dTbit2.js} +1 -1
- package/dist/client/assets/{file-explorer-BcIDvGnY.js → file-explorer-BAFEd0NP.js} +1 -1
- package/dist/client/assets/{file-preview-kcOvLrSx.js → file-preview-CVTyFcNA.js} +1 -1
- package/dist/client/assets/{file-type-icon-DWtzaQPp.js → file-type-icon-DiMBps0i.js} +1 -1
- package/dist/client/assets/{files-x6DVqY52.js → files-Dp4-coqo.js} +1 -1
- package/dist/client/assets/{form-w7JkvptQ.js → form-DcYfsvAB.js} +1 -1
- package/dist/client/assets/{general-BPDsNgDe.js → general-BHPyq_-g.js} +1 -1
- package/dist/client/assets/{generate-id-BsvOSxwt.js → generate-id-CHF9qC8v.js} +1 -1
- package/dist/client/assets/{github-repo-picker-B_v87FGw.js → github-repo-picker-vgbSu5iY.js} +1 -1
- package/dist/client/assets/{hover-card-B_RJCrCA.js → hover-card-Bi21pBU4.js} +1 -1
- package/dist/client/assets/{image-field-Cru0b2ZK.js → image-field-DoKub9f6.js} +1 -1
- package/dist/client/assets/{index-CswQOvGx.js → index-BBtzzfJI.js} +1 -1
- package/dist/client/assets/index-BCtg-ofa.js +1 -0
- package/dist/client/assets/{index-pO-YX1wf.js → index-BKi6N-tx.js} +25 -25
- package/dist/client/assets/{index-NioO90_M.js → index-BLjO-ihk.js} +1 -1
- package/dist/client/assets/{index-EVJ_UeFF.js → index-Bs5fxOOB.js} +3 -3
- package/dist/client/assets/{index-Cwd5mIBy.js → index-CDgtzHtW.js} +1 -1
- package/dist/client/assets/{index-BiOB1WZm.js → index-C_zwlUYa.js} +1 -1
- package/dist/client/assets/{index-B7LqxKQ-.js → index-DDGP_6P-.js} +1 -1
- package/dist/client/assets/{index-vNb1uvqd.js → index-Dh4s8pMn.js} +1 -1
- package/dist/client/assets/{index-CJoBkEf_.js → index-DoLgm5xJ.js} +3 -3
- package/dist/client/assets/{index-mPypacb-.js → index-DqPY9Bgk.js} +1 -1
- package/dist/client/assets/{index-C4kuSARI.js → index-Dvc_l9fe.js} +1 -1
- package/dist/client/assets/{index-Ck3k86Ip.js → index-a11Lx-OW.js} +1 -1
- package/dist/client/assets/{index-redirect-mdT-wByU.js → index-redirect-lTXXknoq.js} +1 -1
- package/dist/client/assets/{index-CKPUoGqe.js → index-yh2aXH-0.js} +1 -1
- package/dist/client/assets/{infiniteQueryObserver-hzkIseBw.js → infiniteQueryObserver-DvYnKas5.js} +1 -1
- package/dist/client/assets/{input-BZDQfdYn.js → input-DKgzjTqx.js} +1 -1
- package/dist/client/assets/{integration-icon-DYz5eywh.js → integration-icon-DOg8lUEK.js} +1 -1
- package/dist/client/assets/{label-09bf4ZUr.js → label-CFa8MFdj.js} +1 -1
- package/dist/client/assets/{layout-hMbyvZRj.js → layout-BONESzv4.js} +1 -1
- package/dist/client/assets/{login-BWhh5Wx9.js → login-BUll2EP0.js} +1 -1
- package/dist/client/assets/{members-PDEQDpHB.js → members-DdoqCGvI.js} +1 -1
- package/dist/client/assets/{monaco-editor-B2MBxzPo.js → monaco-editor-DtMDBznS.js} +1 -1
- package/dist/client/assets/{monitoring-stats-row-D8gHIB7G.js → monitoring-stats-row-BapIOHm7.js} +1 -1
- package/dist/client/assets/{oauth-callback-BlANIrYK.js → oauth-callback-C-zOQYfK.js} +1 -1
- package/dist/client/assets/{oauth-callback-ai-provider-ClHHYRKz.js → oauth-callback-ai-provider-DlnjgMD7.js} +1 -1
- package/dist/client/assets/{onboarding-lvXp9VmW.js → onboarding-g1-Y-MfC.js} +1 -1
- package/dist/client/assets/{org-install-C2fZgqt9.js → org-install-BTJrtDpZ.js} +1 -1
- package/dist/client/assets/{org-layout-NE6bn4Sq.js → org-layout-CvrkU3K2.js} +1 -1
- package/dist/client/assets/{org-plugin-layout-hZqikTN5.js → org-plugin-layout-BExflMAw.js} +1 -1
- package/dist/client/assets/{page-seo-form-aB22X3RV.js → page-seo-form-CubEWrg6.js} +1 -1
- package/dist/client/assets/page-seo-sheet-B5ltGvRt.js +1 -0
- package/dist/client/assets/{pair-B1HhmTC2.js → pair-CcKUxOpV.js} +1 -1
- package/dist/client/assets/{plugin-empty-state-Bq8PMk0Q.js → plugin-empty-state-DLFBKaPz.js} +1 -1
- package/dist/client/assets/{plugin-header-C3QgrcHM.js → plugin-header-CLwSjE0J.js} +1 -1
- package/dist/client/assets/{plugin-layout-D8j3qU9M.js → plugin-layout-C02I389s.js} +1 -1
- package/dist/client/assets/{popover-D7H0zNnu.js → popover-CAUP1BNb.js} +1 -1
- package/dist/client/assets/{post-editor-Q0aCt3BM.js → post-editor-Drz2Eab1.js} +1 -1
- package/dist/client/assets/{primitives-JHMgB1o-.js → primitives-CXryVT6L.js} +1 -1
- package/dist/client/assets/{profile-B9yqAVYS.js → profile-D65b5iWG.js} +1 -1
- package/dist/client/assets/{project-app-view-CQ14p1sb.js → project-app-view-BbeatmvL.js} +1 -1
- package/dist/client/assets/record-editor-CekyWQKV.js +1 -0
- package/dist/client/assets/registry-D2u_uWpG.js +2 -0
- package/dist/client/assets/{registry-layout-DYhQxzqY.js → registry-layout-B1tTNZCj.js} +1 -1
- package/dist/client/assets/{require-capability-DJDpC59C.js → require-capability-kQtzy73_.js} +1 -1
- package/dist/client/assets/{required-auth-layout-D_pVrMnQ.js → required-auth-layout-DoJBYTK7.js} +1 -1
- package/dist/client/assets/{reset-password-DzpB5VA8.js → reset-password-Dj6PXWH2.js} +1 -1
- package/dist/client/assets/{roles-BIa4EfJE.js → roles-C8T8UgqZ.js} +1 -1
- package/dist/client/assets/{save-status-B_RrNks8.js → save-status-DcbUOEsL.js} +1 -1
- package/dist/client/assets/schema-form-DGKrspeM.js +1 -0
- package/dist/client/assets/{scroll-area-DCO9LjjC.js → scroll-area-BhZZYQyk.js} +1 -1
- package/dist/client/assets/{search-input-BkjmAgNX.js → search-input-D-UUT0vq.js} +1 -1
- package/dist/client/assets/{secrets-eB4KGgEb.js → secrets-CYRDbt9b.js} +1 -1
- package/dist/client/assets/{sections-editor-DcoSMLUX.js → sections-editor-x1CRZCFt.js} +2 -2
- package/dist/client/assets/{select-D3xFKLhW.js → select-BqVzUjvA.js} +1 -1
- package/dist/client/assets/{select-model-DClZJUk2.js → select-model-rPu-NTfe.js} +1 -1
- package/dist/client/assets/{seo-editor-DEb43_7H.js → seo-editor-CWxIx22-.js} +1 -1
- package/dist/client/assets/{settings-layout-Y8ddbgRB.js → settings-layout-CwfaDJUd.js} +1 -1
- package/dist/client/assets/{settings-section-xKZ0B7RQ.js → settings-section-BaJoW4YL.js} +1 -1
- package/dist/client/assets/{sheet-y48NbizY.js → sheet-BJnnVAor.js} +1 -1
- package/dist/client/assets/{shell-controls-DTs3k-tY.js → shell-controls-Di_I0aR7.js} +1 -1
- package/dist/client/assets/{shell-layout-CtsnLkL0.js → shell-layout-C8xCDde2.js} +1 -1
- package/dist/client/assets/{shell-route-loading-2R_HkOJm.js → shell-route-loading-SSKWvym2.js} +1 -1
- package/dist/client/assets/{sidebar-BNHENVF_.js → sidebar-BItduOLp.js} +1 -1
- package/dist/client/assets/{skeleton-BWDI6b5B.js → skeleton-BITJK7H7.js} +1 -1
- package/dist/client/assets/{sortable.esm-D1-ateSo.js → sortable.esm-2KwbcifU.js} +1 -1
- package/dist/client/assets/{spinner-BLcfraim.js → spinner-D3DwAv1t.js} +1 -1
- package/dist/client/assets/{sso-B-Hyr04j.js → sso-AGe3fKNz.js} +1 -1
- package/dist/client/assets/{store-DtSOq-my.js → store-CiA5SmK4.js} +1 -1
- package/dist/client/assets/store-registry-0coppvYh.js +2 -0
- package/dist/client/assets/{switch-DFEmgVSQ.js → switch-C7IedEah.js} +1 -1
- package/dist/client/assets/{tab-id-BfrA42Sy.js → tab-id-DkCs8lF_.js} +1 -1
- package/dist/client/assets/{table-zHqbyGEy.js → table-CgfREqGw.js} +1 -1
- package/dist/client/assets/{tabs-Dj3HihPI.js → tabs-D8e1US14.js} +1 -1
- package/dist/client/assets/{task-status-gyYC-BVM.js → task-status-CxSktPB-.js} +1 -1
- package/dist/client/assets/{textarea-Kw6SbqZA.js → textarea-07GHniRL.js} +1 -1
- package/dist/client/assets/{toggle-group-CgAd7Mg_.js → toggle-group-vrtDLNQt.js} +1 -1
- package/dist/client/assets/{toolbar-D7UKSzZi.js → toolbar-DHbG5RVx.js} +1 -1
- package/dist/client/assets/{tools-list-X7Olg8ty.js → tools-list-CBmqUrzf.js} +1 -1
- package/dist/client/assets/{tooltip-BseNApEN.js → tooltip-C4Mvcc3-.js} +1 -1
- package/dist/client/assets/{types-CEUmohd_.js → types-CU1XYsZ6.js} +1 -1
- package/dist/client/assets/{use-ai-providers-DSjz3Xn-.js → use-ai-providers-BrNyOb2S.js} +1 -1
- package/dist/client/assets/{use-automations-DD-gzzG-.js → use-automations-kjzpslcz.js} +1 -1
- package/dist/client/assets/{use-capability-BETReHdP.js → use-capability-DMQVY-z7.js} +1 -1
- package/dist/client/assets/{use-collections-C-e494pb.js → use-collections-0elTitFK.js} +1 -1
- package/dist/client/assets/{use-connection-COB3wZyv.js → use-connection-BFK8HgLm.js} +1 -1
- package/dist/client/assets/{use-copy-B4ijm3eQ.js → use-copy--KxUwDht.js} +1 -1
- package/dist/client/assets/{use-create-virtual-mcp-DHggusOz.js → use-create-virtual-mcp-xfijFFeU.js} +1 -1
- package/dist/client/assets/{use-debounced-autosave-7RLEJTRO.js → use-debounced-autosave-EPr2q190.js} +1 -1
- package/dist/client/assets/{use-delete-connection-CWde71K0.js → use-delete-connection-DThowArC.js} +1 -1
- package/dist/client/assets/{use-file-configs-BXchIe2N.js → use-file-configs-BFWFGnU_.js} +1 -1
- package/dist/client/assets/{use-infinite-scroll-BTrNIqxO.js → use-infinite-scroll-Bsai9Hjv.js} +1 -1
- package/dist/client/assets/{use-list-state-DSHFjIyq.js → use-list-state-bJ_RuI2S.js} +1 -1
- package/dist/client/assets/{use-mcp-prompts-CLrlZKHJ.js → use-mcp-prompts-B0SzsQFQ.js} +1 -1
- package/dist/client/assets/{use-mcp-tools-BdUmFkbH.js → use-mcp-tools-CQC_DvOV.js} +1 -1
- package/dist/client/assets/{use-members-CaSqF02H.js → use-members-Bmr4BOrW.js} +1 -1
- package/dist/client/assets/{use-navigate-to-agent-BLkLok3n.js → use-navigate-to-agent-DHuSnk-7.js} +1 -1
- package/dist/client/assets/{use-org-auth-client-Bl3vPuak.js → use-org-auth-client-rr7_FC67.js} +1 -1
- package/dist/client/assets/{use-org-sso-Bm8Zb6fp.js → use-org-sso-CUWrIQka.js} +1 -1
- package/dist/client/assets/{use-organization-roles-JDC-YH-l.js → use-organization-roles-G_sIrmcQ.js} +1 -1
- package/dist/client/assets/{use-organization-settings-D5g7NFw1.js → use-organization-settings-Y6xPrKF0.js} +1 -1
- package/dist/client/assets/{use-registry-connections-BfC5RU93.js → use-registry-connections-D2Pb5Zae.js} +1 -1
- package/dist/client/assets/{use-secrets-BjVtsdxA.js → use-secrets-B2BL0CXw.js} +1 -1
- package/dist/client/assets/{use-status-sounds-9imVHc_4.js → use-status-sounds-BgSY6E7R.js} +1 -1
- package/dist/client/assets/{use-view-mode-CUhYlh8A.js → use-view-mode-BzGrBtpu.js} +1 -1
- package/dist/client/assets/{use-virtual-mcp-C09vm-BM.js → use-virtual-mcp-C5RbeZo0.js} +1 -1
- package/dist/client/assets/useInfiniteQuery-C0Nzygow.js +1 -0
- package/dist/client/assets/{useRouterState-BjzQ0bsm.js → useRouterState-CAzgDa1e.js} +1 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-DhuueYPO.js +1 -0
- package/dist/client/assets/{user-Coaz5g4K.js → user-C3BOkzKG.js} +1 -1
- package/dist/client/assets/{view-mode-toggle-CoifNzqg.js → view-mode-toggle-BM4piPkb.js} +1 -1
- package/dist/client/assets/workflow-detail-CVGljoUQ.js +1 -0
- package/dist/client/assets/{workflow-53Ic0UX5.js → workflow-zG_0zF_e.js} +1 -1
- package/dist/client/index.html +1 -1
- package/dist/server/cli.js +2 -2
- package/dist/server/server.js +1 -1
- package/package.json +1 -1
- package/dist/client/assets/accordion-BrfX2IfA.js +0 -1
- package/dist/client/assets/app-editor-DR7rTN1y.js +0 -1
- package/dist/client/assets/collection-detail-Bfy-MA_d.js +0 -1
- package/dist/client/assets/index-D935qYUN.js +0 -1
- package/dist/client/assets/page-seo-sheet-9U2O7bHl.js +0 -1
- package/dist/client/assets/record-editor-DcoIPsEz.js +0 -1
- package/dist/client/assets/registry-a7dn3L4L.js +0 -2
- package/dist/client/assets/schema-form-B58UjuIl.js +0 -1
- package/dist/client/assets/store-registry-D5nKgOXT.js +0 -2
- package/dist/client/assets/useInfiniteQuery--C6hdwWo.js +0 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-BZeP3q20.js +0 -1
- package/dist/client/assets/workflow-detail-xBmS8ZJ3.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{e as oe,j as t,B as Ce,f as Be,b as ct,q as ze,r as dt,o as Fe,F as mt,a as ut,K as Le,e1 as Ke,di as pt}from"./index-CJoBkEf_.js";import{u as qe,S as Ve}from"./constants-P1xnRFeX.js";import{B as ft,g as Me}from"./generate-id-BsvOSxwt.js";import{C as Qe}from"./collection-display-button-Cn72Xu3L.js";import{C as ht}from"./collection-search-loHJ7IYX.js";import{C as gt}from"./card-7rOCFixx.js";import{I as Ge}from"./integration-icon-DYz5eywh.js";import{D as He,a as Je,b as Ye,c as O}from"./dropdown-menu-DKiorR9d.js";import{s as Xe,a as Ze}from"./Eye-B7Xkt1CB.js";import{i as et}from"./DotsVertical-C00j11Qg.js";import{i as tt}from"./Tool01-BcHwzAg_.js";import{s as st}from"./Trash01-C9vkf5T6.js";import{C as xt}from"./collection-table-wrapper-CB8ynCFf.js";import{E as Ue}from"./empty-state-CsQfijIL.js";import{n as We}from"./Stars02-ButLG8tI.js";import{U as jt}from"./user-Coaz5g4K.js";import{E as it}from"./empty-state-D0UPz__M.js";import{u as Ct}from"./use-list-state-DSHFjIyq.js";import{g as bt}from"./connection-slug-eyAPH6o3.js";import{f as vt,g as yt,c as Nt,b as wt,d as St,e as Pt,a as _t,A as Dt}from"./alert-dialog-rlUwGNsJ.js";import{a as It,b as At}from"./use-collections-C-e494pb.js";import{a as Tt}from"./use-connection-COB3wZyv.js";import{s as Et}from"./Plus-DgS5eNSe.js";import{a as Ot}from"./layout-hMbyvZRj.js";import{P as je}from"./index-mPypacb-.js";import"./collections-BY2lU4NZ.js";import"./SwitchHorizontal01-5B3DSr8e.js";import"./Check-8AgR6ZjG.js";import"./tooltip-BseNApEN.js";import"./view-mode-toggle-CoifNzqg.js";import"./badge-BYAYJbYP.js";import"./SearchMd-WbJoDaWs.js";import"./Container-nZYBPJRv.js";import"./agent-icon-ExlCX9f5.js";import"./AlertCircle-C0w7vkhj.js";import"./RefreshCcw01-DVTjMN9w.js";import"./XCircle-8FTuCNvR.js";import"./ArrowUpRight-DNyQYu-V.js";import"./ZapSquare-wTPdLQod.js";import"./Users03-Cgth-3GS.js";import"./CheckCircle-CEi1N2Mq.js";import"./ChevronDown-DhOfQXzQ.js";import"./ChevronRight-DQs4tkMm.js";import"./ChevronUp-BJ7RKHi2.js";import"./Globe01-Uo6KHfk2.js";import"./FilterLines-FHjfh1pF.js";import"./ZoomOut-NkImUVHk.js";import"./Star01-CeDy0qEH.js";import"./Palette-Toq4eQ-J.js";import"./HardDrive-CGMuM2Oy.js";import"./Key01-BIkGax_i.js";import"./sheet-y48NbizY.js";import"./X-FDfBE4i9.js";import"./LinkExternal01-DycVPnNy.js";import"./Monitor01-D1U6Pa3W.js";import"./Sun-DB_K22EW.js";import"./Play-CA-oDPY7.js";import"./Settings02-rrw51k4M.js";import"./Shield01-5itVZGiR.js";import"./Stars01-DYDsxZnS.js";import"./Upload01-BXTkAAEz.js";import"./User01-C3qNbl-c.js";import"./Users01-C95xm0Ia.js";import"./XClose-BfJTW_HK.js";import"./Zap-DK6MOOIv.js";import"./table-zHqbyGEy.js";import"./avatar-GGBvmgaP.js";import"./use-view-mode-CUhYlh8A.js";import"./sidebar-BNHENVF_.js";function $t(i,e){const s=i.properties||{};for(const n in s){const c=s[n];if(c&&c.type==="string"&&(c.format==="url"||c.format==="uri")&&e&&typeof e=="object"&&n in e&&e[n])return e[n]}const l=["image","img","avatar","icon","logo","thumbnail","cover"];for(const n of l)if(e&&typeof e=="object"&&n in e&&typeof e[n]=="string")return e[n]}function kt(i){const e=oe.c(25),{item:s,schema:l,actions:n}=i;let c;e[0]!==s||e[1]!==l?(c=$t(l,s),e[0]=s,e[1]=l,e[2]=c):c=e[2];const r=c,p=s&&typeof s=="object"&&"description"in s&&typeof s.description=="string"?s.description:void 0;let d;e[3]!==n?(d=n&&Object.keys(n).length>0,e[3]=n,e[4]=d):d=e[4];const o=d;let u;e[5]!==r||e[6]!==s.title?(u=t.jsx(Ge,{icon:r,name:s.title,size:"md",className:"shrink-0 shadow-sm"}),e[5]=r,e[6]=s.title,e[7]=u):u=e[7];let m;e[8]!==s.title?(m=t.jsx("h3",{className:"text-base font-medium text-foreground truncate",children:s.title}),e[8]=s.title,e[9]=m):m=e[9];const f=p||"No description";let a;e[10]!==f?(a=t.jsx("p",{className:"text-base text-muted-foreground line-clamp-2",children:f}),e[10]=f,e[11]=a):a=e[11];let v;e[12]!==m||e[13]!==a?(v=t.jsxs("div",{className:"flex flex-col gap-0 flex-1",children:[m,a]}),e[12]=m,e[13]=a,e[14]=v):v=e[14];let y;e[15]!==u||e[16]!==v?(y=t.jsxs("div",{className:"flex flex-col gap-4 p-6 flex-1",children:[u,v]}),e[15]=u,e[16]=v,e[17]=y):y=e[17];let b;e[18]!==n||e[19]!==o||e[20]!==s?(b=o&&t.jsx("div",{className:"absolute top-6 right-6 sm:opacity-0 sm:group-hover:opacity-100 transition-opacity",onClick:Kt,onMouseDown:Lt,children:t.jsxs(He,{children:[t.jsx(Je,{asChild:!0,children:t.jsx(Ce,{variant:"ghost",size:"icon",className:"h-8 w-8",onClick:Ft,children:t.jsx(et,{size:20})})}),t.jsxs(Ye,{align:"end",onClick:zt,children:[n.open&&t.jsxs(O,{onClick:g=>{g.stopPropagation(),n.open?.(s)},children:[t.jsx(Xe,{size:16}),"Open"]}),n.edit&&t.jsxs(O,{onClick:g=>{g.stopPropagation(),n.edit?.(s)},children:[t.jsx(tt,{size:16}),"Edit"]}),n.duplicate&&t.jsxs(O,{onClick:g=>{g.stopPropagation(),n.duplicate?.(s)},children:[t.jsx(Ze,{size:16}),"Duplicate"]}),n.delete&&t.jsxs(O,{variant:"destructive",onClick:g=>{g.stopPropagation(),n.delete?.(s)},children:[t.jsx(st,{size:16}),"Delete"]})]})]})}),e[18]=n,e[19]=o,e[20]=s,e[21]=b):b=e[21];let x;return e[22]!==y||e[23]!==b?(x=t.jsxs(gt,{className:"cursor-pointer transition-colors hover:bg-accent/50 h-full flex flex-col group relative",children:[y,b]}),e[22]=y,e[23]=b,e[24]=x):x=e[24],x}function zt(i){return i.stopPropagation()}function Ft(i){return i.stopPropagation()}function Lt(i){return i.stopPropagation()}function Kt(i){return i.stopPropagation()}const Mt=["icon","avatar","logo"],Re=["created_at","created_by","id"];function Ut(i){return Object.keys(i).find(e=>Mt.includes(e.toLowerCase()))}function ot(i,e){return Object.keys(i.properties||{}).filter(s=>["id","created_at","updated_at","created_by","updated_by"].includes(s)?!1:e?e.includes(s):!0).map(s=>({id:s,label:s.charAt(0).toUpperCase()+s.slice(1).replace(/_/g," ")}))}function Wt(i){const e=oe.c(30),{data:s,schema:l,viewMode:n,search:c,sortKey:r,sortDirection:p,onSort:d,actions:o,onItemClick:u,headerActions:m,emptyState:f,readOnly:a,columns:v,hideToolbar:y,sortableFields:b}=i,x=p===void 0?"asc":p,g=d===void 0?Vt:d;let $;e[0]!==o?($=o===void 0?{}:o,e[0]=o,e[1]=$):$=e[1];const h=$,T=u===void 0?qt:u,E=m===void 0?null:m,N=f===void 0?null:f,k=a===void 0?!1:a,j=v===void 0?void 0:v,z=y===void 0?!1:y,P=b===void 0?void 0:b;let D;e[2]!==j||e[3]!==l||e[4]!==P?(D=j?j.filter(Bt).filter(A=>!P||P.includes(A.id)).map(Rt):ot(l,P),e[2]=j,e[3]=l,e[4]=P,e[5]=D):D=e[5];const w=D;let S;e[6]!==E||e[7]!==z||e[8]!==g||e[9]!==x||e[10]!==r||e[11]!==w?(S=!z&&t.jsx("div",{className:"shrink-0 w-full border-b border-border h-12",children:t.jsxs("div",{className:"flex items-center gap-3 h-12 px-4",children:[t.jsx("div",{className:"flex items-center gap-2 flex-1",children:E}),t.jsx("div",{className:"flex items-center gap-2 shrink-0",children:t.jsx(Qe,{sortKey:r,sortDirection:x,onSort:g,sortOptions:w})})]})}),e[6]=E,e[7]=z,e[8]=g,e[9]=x,e[10]=r,e[11]=w,e[12]=S):S=e[12];let _;e[13]!==h||e[14]!==j||e[15]!==s||e[16]!==N||e[17]!==T||e[18]!==g||e[19]!==k||e[20]!==l||e[21]!==c||e[22]!==x||e[23]!==r||e[24]!==P||e[25]!==n?(_=n==="cards"?t.jsx("div",{className:"flex-1 overflow-auto p-5",children:s.length===0?t.jsx("div",{className:"flex items-center justify-center h-full",children:N||t.jsx(Ue,{icon:t.jsx(We,{size:36,className:"text-muted-foreground"}),title:"No items found",description:c?"Try adjusting your search":"No items to display"})}):t.jsx("div",{className:"grid grid-cols-[repeat(auto-fill,minmax(280px,1fr))] gap-4",children:s.map(A=>t.jsx("div",{onClick:()=>T?.(A),className:"cursor-pointer h-full",children:t.jsx(kt,{item:A,schema:l,readOnly:k,actions:h})},A.id))})}):t.jsx(xt,{columns:Ht(j,l,P,h),data:s,sortKey:r,sortDirection:x,onSort:g,onRowClick:T,emptyState:N||t.jsx(Ue,{icon:t.jsx(We,{size:36,className:"text-muted-foreground"}),title:"No items found",description:c?"Try adjusting your search":"No items to display"})}),e[13]=h,e[14]=j,e[15]=s,e[16]=N,e[17]=T,e[18]=g,e[19]=k,e[20]=l,e[21]=c,e[22]=x,e[23]=r,e[24]=P,e[25]=n,e[26]=_):_=e[26];let I;return e[27]!==S||e[28]!==_?(I=t.jsxs("div",{className:"h-full flex flex-col overflow-hidden",children:[S,_]}),e[27]=S,e[28]=_,e[29]=I):I=e[29],I}function Rt(i){return{id:i.id,label:typeof i.header=="string"?i.header:i.id}}function Bt(i){return i.sortable!==!1}function qt(){}function Vt(){}function Qt(i){return{id:"actions",header:"",render:e=>t.jsxs(He,{children:[t.jsx(Je,{asChild:!0,children:t.jsx(Ce,{variant:"ghost",size:"sm",className:"h-8 w-8 p-0",onClick:s=>s.stopPropagation(),children:t.jsx(et,{size:20})})}),t.jsxs(Ye,{align:"end",onClick:s=>s.stopPropagation(),children:[i.open&&t.jsxs(O,{onClick:s=>{s.stopPropagation(),i.open?.(e)},children:[t.jsx(Xe,{size:16}),"Open"]}),i.edit&&t.jsxs(O,{onClick:s=>{s.stopPropagation(),i.edit?.(e)},children:[t.jsx(tt,{size:16}),"Edit"]}),i.duplicate&&t.jsxs(O,{onClick:s=>{s.stopPropagation(),i.duplicate?.(e)},children:[t.jsx(Ze,{size:16}),"Duplicate"]}),i.delete&&t.jsxs(O,{variant:"destructive",onClick:s=>{s.stopPropagation(),i.delete?.(e)},children:[t.jsx(st,{size:16}),"Delete"]})]})]}),cellClassName:"w-[60px]",sortable:!1}}function nt(i){const e=i.type;return Array.isArray(e)?e.every(s=>nt({type:s})):e==="string"||e==="number"||e==="integer"||e==="boolean"||e==="null"}function Gt(i,e){const s=i.properties||{},l=Object.keys(s).filter(o=>{const u=s[o];return u&&nt(u)}),n=Ut(s),c=[],r=new Set;n&&l.includes(n)&&(c.push(n),r.add(n));const p=["title","description","updated_at","updated_by"];for(const o of p)l.includes(o)&&!r.has(o)&&(c.push(o),r.add(o));const d=l.filter(o=>!r.has(o)&&!Re.includes(o)).sort((o,u)=>o.localeCompare(u));for(const o of d)c.push(o),r.add(o);for(const o of Re)l.includes(o)&&!r.has(o)&&(c.push(o),r.add(o));return c.map(o=>{const u=s[o],m=e?e.includes(o):!["id"].includes(o);return o===n?{id:o,header:"",render:f=>{const a=f[o];return t.jsx(Ge,{icon:a,name:f.title,size:"sm",className:"shrink-0 shadow-sm"})},sortable:!1,cellClassName:"w-16 shrink-0",wrap:!0}:o==="description"?{id:o,header:"Description",render:f=>{const a=f[o];return a==null?"—":t.jsx("span",{className:"block truncate max-w-[50ch]",children:String(a)})},sortable:m,cellClassName:"max-w-[50ch]"}:o==="created_by"||o==="updated_by"?{id:o,header:o.charAt(0).toUpperCase()+o.slice(1).replace(/_/g," "),render:f=>{const a=f[o];return a?t.jsx(jt,{id:String(a),size:"xs"}):"—"},sortable:m,cellClassName:"max-w-[250px]"}:u?.format==="date-time"||o.endsWith("_at")?{id:o,header:o.charAt(0).toUpperCase()+o.slice(1).replace(/_/g," "),render:f=>{const a=f[o];return a?t.jsx("span",{className:"block truncate max-w-full",children:new Date(a).toLocaleDateString()}):"—"},sortable:m,cellClassName:"max-w-[200px]"}:{id:o,header:o.charAt(0).toUpperCase()+o.slice(1).replace(/_/g," "),render:f=>{const a=f[o];return a==null?"—":t.jsx("span",{className:"block truncate max-w-full",children:String(a)})},sortable:m,cellClassName:"max-w-[200px]"}})}function Ht(i,e,s,l){const n=i||Gt(e,s);return n.some(p=>p.id==="actions")?n:Object.keys(l).length>0?[...n,Qt(l)]:n}function Jt(i){const e=oe.c(119),{connectionId:s,org:l,activeCollection:n,onItemClick:c}=i,r=n.name,p=n.schema??ft,d=n.hasCreateTool,o=n.hasUpdateTool,u=n.hasDeleteTool,m=Be(),{data:f}=ct.useSession(),a=f?.user?.id||"unknown",v=Tt(s);let y;e[0]!==v||e[1]!==s?(y=v?bt(v):s,e[0]=v,e[1]=s,e[2]=y):y=e[2];const b=y,{org:x}=ze();let g;e[3]!==s||e[4]!==x.id||e[5]!==x.slug?(g={connectionId:s,orgId:x.id,orgSlug:x.slug},e[3]=s,e[4]=x.id,e[5]=x.slug,e[6]=g):g=e[6];const $=qe(g),h=It(s,r,$),T=`${s}-${r}`;let E;e[7]!==l||e[8]!==T?(E={namespace:l,resource:T,defaultSortKey:"updated_at"},e[7]=l,e[8]=T,e[9]=E):E=e[9];const{search:N,searchTerm:k,setSearch:j,viewMode:z,setViewMode:P,sortKey:D,sortDirection:w,handleSort:S}=Ct(E);let _;e[10]!==k||e[11]!==w||e[12]!==D?(_={searchTerm:k,sortKey:D,sortDirection:w},e[10]=k,e[11]=w,e[12]=D,e[13]=_):_=e[13];const I=At(s,r,$,_),A=!d&&!o&&!u;let ne;e[14]!==b||e[15]!==r||e[16]!==m||e[17]!==c||e[18]!==l?(ne=C=>{if(c){c(C);return}m({to:"/$org/settings/connections/$appSlug/$collectionName/$itemId",params:{org:l,appSlug:b,collectionName:r,itemId:C.id}})},e[14]=b,e[15]=r,e[16]=m,e[17]=c,e[18]=l,e[19]=ne):ne=e[19];const F=ne;let re;e[20]!==h.create||e[21]!==a?(re=async C=>{const xe=new Date().toISOString();await h.create.mutateAsync({...C,id:Me("conn"),title:`${C.title} (Copy)`,created_at:xe,updated_at:xe,created_by:a,updated_by:a})},e[20]=h.create,e[21]=a,e[22]=re):re=e[22];const be=re,[L,ve]=dt.useState(null);let le;e[23]===Symbol.for("react.memo_cache_sentinel")?(le=C=>{ve(C)},e[23]=le):le=e[23];const rt=le;let K;e[24]!==F||e[25]!==o?(K=o&&{edit:F},e[24]=F,e[25]=o,e[26]=K):K=e[26];let M;e[27]!==be||e[28]!==d?(M=d&&{duplicate:be},e[27]=be,e[28]=d,e[29]=M):M=e[29];let U;e[30]!==u?(U=u&&{delete:rt},e[30]=u,e[31]=U):U=e[31];let ae;e[32]!==M||e[33]!==U||e[34]!==K?(ae={...K,...M,...U},e[32]=M,e[33]=U,e[34]=K,e[35]=ae):ae=e[35];const ye=ae;let ce;e[36]!==h.delete||e[37]!==L?(ce=async()=>{L&&(await h.delete.mutateAsync(L.id),ve(null))},e[36]=h.delete,e[37]=L,e[38]=ce):ce=e[38];const Ne=ce;let de;e[39]!==h.create||e[40]!==b||e[41]!==r||e[42]!==d||e[43]!==m||e[44]!==l||e[45]!==a?(de=async()=>{if(!d){Fe.error("Create operation is not available for this collection");return}const C=new Date().toISOString(),xe={id:Me("conn"),title:"New Item",description:"A brief description of the item",created_at:C,updated_at:C,created_by:a,updated_by:a};try{const ke=await h.create.mutateAsync(xe);m({to:"/$org/settings/connections/$appSlug/$collectionName/$itemId",params:{org:l,appSlug:b,collectionName:r,itemId:ke.id}})}catch(ke){console.error("Failed to create item:",ke)}},e[39]=h.create,e[40]=b,e[41]=r,e[42]=d,e[43]=m,e[44]=l,e[45]=a,e[46]=de):de=e[46];const we=de;let me;e[47]!==p?(me=ot(p),e[47]=p,e[48]=me):me=e[48];const Se=me,lt=(I?.length??0)>0,at=d&&!lt&&!N;let ue;e[49]!==h.create||e[50]!==we||e[51]!==d?(ue=d?t.jsxs(Ce,{onClick:we,size:"sm",disabled:h.create.isPending,className:"h-7",children:[t.jsx(Et,{className:"mr-2 h-4 w-4"}),h.create.isPending?"Creating...":"Create"]}):null,e[49]=h.create,e[50]=we,e[51]=d,e[52]=ue):ue=e[52];const pe=ue,Pe=D;let W;e[53]!==S||e[54]!==w||e[55]!==Se||e[56]!==Pe?(W=t.jsx(Ot,{children:t.jsx(Qe,{sortKey:Pe,sortDirection:w,onSort:S,sortOptions:Se})}),e[53]=S,e[54]=w,e[55]=Se,e[56]=Pe,e[57]=W):W=e[57];const _e=`Search ${r}...`;let R;e[58]!==j?(R=C=>{C.key==="Escape"&&(j(""),C.target.blur())},e[58]=j,e[59]=R):R=e[59];let B;e[60]!==N||e[61]!==j||e[62]!==_e||e[63]!==R?(B=t.jsx("div",{className:"flex-1",children:t.jsx(ht,{value:N,onChange:j,placeholder:_e,onKeyDown:R})}),e[60]=N,e[61]=j,e[62]=_e,e[63]=R,e[64]=B):B=e[64];let q;e[65]!==pe||e[66]!==d?(q=d&&t.jsx("div",{className:"pr-3",children:pe}),e[65]=pe,e[66]=d,e[67]=q):q=e[67];let V;e[68]!==B||e[69]!==q?(V=t.jsxs("div",{className:"flex items-center gap-2",children:[B,q]}),e[68]=B,e[69]=q,e[70]=V):V=e[70];let Q;e[71]!==I?(Q=I??[],e[71]=I,e[72]=Q):Q=e[72];const De=D;let G;e[73]!==F?(G=C=>F(C),e[73]=F,e[74]=G):G=e[74];const Ie="No items found",Ae=N?"Try adjusting your search terms":"This collection doesn't have any items yet.",Te=at?pe:void 0;let H;e[75]!==Ie||e[76]!==Ae||e[77]!==Te?(H=t.jsx(it,{image:null,title:Ie,description:Ae,actions:Te}),e[75]=Ie,e[76]=Ae,e[77]=Te,e[78]=H):H=e[78];let J;e[79]!==S||e[80]!==A||e[81]!==ye||e[82]!==p||e[83]!==N||e[84]!==j||e[85]!==P||e[86]!==w||e[87]!==Q||e[88]!==De||e[89]!==G||e[90]!==H||e[91]!==z?(J=t.jsx("div",{className:"flex-1 overflow-auto",children:t.jsx(Wt,{hideToolbar:!0,data:Q,schema:p,viewMode:z,onViewModeChange:P,search:N,onSearchChange:j,sortKey:De,sortDirection:w,onSort:S,actions:ye,onItemClick:G,readOnly:A,emptyState:H})}),e[79]=S,e[80]=A,e[81]=ye,e[82]=p,e[83]=N,e[84]=j,e[85]=P,e[86]=w,e[87]=Q,e[88]=De,e[89]=G,e[90]=H,e[91]=z,e[92]=J):J=e[92];let Y;e[93]!==V||e[94]!==J?(Y=t.jsxs("div",{className:"flex flex-col h-full overflow-hidden",children:[V,J]}),e[93]=V,e[94]=J,e[95]=Y):Y=e[95];const Ee=!!L;let fe;e[96]===Symbol.for("react.memo_cache_sentinel")?(fe=C=>{C||ve(null)},e[96]=fe):fe=e[96];let he;e[97]===Symbol.for("react.memo_cache_sentinel")?(he=t.jsx(Nt,{children:"Delete item?"}),e[97]=he):he=e[97];const Oe=L?.title;let X;e[98]!==Oe?(X=t.jsxs(wt,{children:[he,t.jsxs(St,{children:['Are you sure you want to delete "',Oe,'"? This action cannot be undone.']})]}),e[98]=Oe,e[99]=X):X=e[99];let Z;e[100]!==h.delete.isPending?(Z=t.jsx(vt,{disabled:h.delete.isPending,children:"Cancel"}),e[100]=h.delete.isPending,e[101]=Z):Z=e[101];const $e=h.delete.isPending?"Deleting...":"Delete";let ee;e[102]!==h.delete.isPending||e[103]!==Ne||e[104]!==$e?(ee=t.jsx(yt,{onClick:Ne,disabled:h.delete.isPending,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:$e}),e[102]=h.delete.isPending,e[103]=Ne,e[104]=$e,e[105]=ee):ee=e[105];let te;e[106]!==Z||e[107]!==ee?(te=t.jsxs(Pt,{children:[Z,ee]}),e[106]=Z,e[107]=ee,e[108]=te):te=e[108];let se;e[109]!==X||e[110]!==te?(se=t.jsxs(_t,{children:[X,te]}),e[109]=X,e[110]=te,e[111]=se):se=e[111];let ie;e[112]!==Ee||e[113]!==se?(ie=t.jsx(Dt,{open:Ee,onOpenChange:fe,children:se}),e[112]=Ee,e[113]=se,e[114]=ie):ie=e[114];let ge;return e[115]!==W||e[116]!==Y||e[117]!==ie?(ge=t.jsxs(t.Fragment,{children:[W,Y,ie]}),e[115]=W,e[116]=Y,e[117]=ie,e[118]=ge):ge=e[118],ge}function Yt(){const i=oe.c(13),{org:e,project:s}=ze(),l=mt();let n;i[0]!==e.id||i[1]!==e.slug?(n={connectionId:Ve,orgId:e.id,orgSlug:e.slug},i[0]=e.id,i[1]=e.slug,i[2]=n):n=i[2];const c=qe(n);let r;i[3]!==c||i[4]!==s?(r=async u=>{const m=s.enabledPlugins??[];if(m.includes(u))return;const f=[...m,u],a=await c.callTool({name:"COLLECTION_VIRTUAL_MCP_UPDATE",arguments:{id:s.id,data:{metadata:{enabled_plugins:f}}}});return a.structuredContent??a},i[3]=c,i[4]=s,i[5]=r):r=i[5];let p;i[6]!==e.id||i[7]!==s||i[8]!==l?(p=()=>{l.invalidateQueries({queryKey:Le.project(e.id,s.slug)}),l.invalidateQueries({queryKey:Le.projects(e.id)})},i[6]=e.id,i[7]=s,i[8]=l,i[9]=p):p=i[9];let d;return i[10]!==r||i[11]!==p?(d={mutationFn:r,onSuccess:p,onError:Xt},i[10]=r,i[11]=p,i[12]=d):d=i[12],ut(d)}function Xt(i){Fe.error("Failed to enable plugin: "+(i instanceof Error?i.message:"Unknown error"))}function Zt(i){const e=oe.c(12),{pluginId:s,title:l,description:n,icon:c}=i,r=Yt();let p;e[0]!==r||e[1]!==s?(p=async()=>{try{await r.mutateAsync(s),Fe.success("Plugin enabled!")}catch{}},e[0]=r,e[1]=s,e[2]=p):p=e[2];const d=p,o=c??null,u=r.isPending?"Enabling…":"Enable plugin";let m;e[3]!==r.isPending||e[4]!==d||e[5]!==u?(m=t.jsx(Ce,{onClick:d,disabled:r.isPending,children:u}),e[3]=r.isPending,e[4]=d,e[5]=u,e[6]=m):m=e[6];let f;return e[7]!==n||e[8]!==o||e[9]!==m||e[10]!==l?(f=t.jsx(it,{image:o,title:l,description:n,actions:m}),e[7]=n,e[8]=o,e[9]=m,e[10]=l,e[11]=f):f=e[11],f}const es={name:"WORKFLOW",displayName:"Workflow",hasCreateTool:!0,hasUpdateTool:!0,hasDeleteTool:!0};function xi(){const{project:i,org:e}=ze();if(!(i.enabledPlugins??[]).includes(Ke))return t.jsx(je,{children:t.jsx(je.Content,{children:t.jsx("div",{className:"flex flex-col items-center justify-center h-full",children:t.jsx(Zt,{pluginId:Ke,title:"Enable Workflows",description:"Automate multi-step processes by enabling the Workflows plugin. Once enabled you can create, run, and monitor workflows.",icon:t.jsx("div",{className:"bg-muted p-4 rounded-full",children:t.jsx(pt,{className:"size-8 text-muted-foreground"})})})})})});const n=Be();return t.jsx(je,{children:t.jsx(je.Content,{children:t.jsx(Jt,{connectionId:Ve,org:e.slug,activeCollection:es,onItemClick:c=>n({to:"/$org/settings/workflows/$itemId",params:{org:e.slug,itemId:c.id}})})})})}export{xi as default};
|
|
1
|
+
import{e as oe,j as t,B as Ce,f as Be,b as ct,q as ze,r as dt,o as Fe,F as mt,a as ut,K as Le,e1 as Ke,di as pt}from"./index-DoLgm5xJ.js";import{u as qe,S as Ve}from"./constants-h1Hu02Pl.js";import{B as ft,g as Me}from"./generate-id-CHF9qC8v.js";import{C as Qe}from"./collection-display-button-BoA_VnYw.js";import{C as ht}from"./collection-search-C5IBLwI6.js";import{C as gt}from"./card-DwoGuIpq.js";import{I as Ge}from"./integration-icon-DOg8lUEK.js";import{D as He,a as Je,b as Ye,c as O}from"./dropdown-menu-DLTe8MWs.js";import{s as Xe,a as Ze}from"./Eye-DgcZpf5x.js";import{i as et}from"./DotsVertical-BebTEDkn.js";import{i as tt}from"./Tool01-B3nr_Qai.js";import{s as st}from"./Trash01-DzP4bSXT.js";import{C as xt}from"./collection-table-wrapper-CT-F8LmT.js";import{E as Ue}from"./empty-state-DDTXMCO_.js";import{n as We}from"./Stars02-BFmBskXR.js";import{U as jt}from"./user-C3BOkzKG.js";import{E as it}from"./empty-state-CBUfB2GJ.js";import{u as Ct}from"./use-list-state-bJ_RuI2S.js";import{g as bt}from"./connection-slug-eyAPH6o3.js";import{f as vt,g as yt,c as Nt,b as wt,d as St,e as Pt,a as _t,A as Dt}from"./alert-dialog-Bfzm0Sn1.js";import{a as It,b as At}from"./use-collections-0elTitFK.js";import{a as Tt}from"./use-connection-BFK8HgLm.js";import{s as Et}from"./Plus-DdlGCl-J.js";import{a as Ot}from"./layout-BONESzv4.js";import{P as je}from"./index-DqPY9Bgk.js";import"./collections-D79oYVs-.js";import"./SwitchHorizontal01-LvHBRitv.js";import"./Check-B7DufF9O.js";import"./tooltip-C4Mvcc3-.js";import"./view-mode-toggle-BM4piPkb.js";import"./badge-Dxvv_o2R.js";import"./SearchMd-88EikaJB.js";import"./Container-DprTine2.js";import"./agent-icon-DJnCVbR0.js";import"./AlertCircle-CZWA2nH8.js";import"./RefreshCcw01-CZGSpPEW.js";import"./XCircle-B5jqknVe.js";import"./ArrowUpRight-DXFfY2Nq.js";import"./ZapSquare-DT1D4OAA.js";import"./Users03-C7bMD3jg.js";import"./CheckCircle-B3a532XL.js";import"./ChevronDown-DhIkdEzt.js";import"./ChevronRight-BQDeINW7.js";import"./ChevronUp-BMLC4SgN.js";import"./Globe01-Dd7C_j_O.js";import"./FilterLines-uT-sk3rc.js";import"./ZoomOut-C10GWzTz.js";import"./Star01-b362v54F.js";import"./Palette-Bq9PMsoj.js";import"./HardDrive-BtjljIRu.js";import"./Key01-D1UyWXgw.js";import"./sheet-BJnnVAor.js";import"./X-DEXMke5_.js";import"./LinkExternal01-Brj_TJxd.js";import"./Monitor01-DFXqifzv.js";import"./Sun-BaMRN3tl.js";import"./Play-C9o4InoB.js";import"./Settings02-B1lp2SVd.js";import"./Shield01-_I_z0Yxe.js";import"./Stars01-DAcarfyW.js";import"./Upload01-DJAirPOl.js";import"./User01-D7oZ1u1w.js";import"./Users01-CQa1tUzy.js";import"./XClose-CpZzpgAq.js";import"./Zap-8zhK1JZ1.js";import"./table-CgfREqGw.js";import"./avatar-BCcehYOw.js";import"./use-view-mode-BzGrBtpu.js";import"./sidebar-BItduOLp.js";function $t(i,e){const s=i.properties||{};for(const n in s){const c=s[n];if(c&&c.type==="string"&&(c.format==="url"||c.format==="uri")&&e&&typeof e=="object"&&n in e&&e[n])return e[n]}const l=["image","img","avatar","icon","logo","thumbnail","cover"];for(const n of l)if(e&&typeof e=="object"&&n in e&&typeof e[n]=="string")return e[n]}function kt(i){const e=oe.c(25),{item:s,schema:l,actions:n}=i;let c;e[0]!==s||e[1]!==l?(c=$t(l,s),e[0]=s,e[1]=l,e[2]=c):c=e[2];const r=c,p=s&&typeof s=="object"&&"description"in s&&typeof s.description=="string"?s.description:void 0;let d;e[3]!==n?(d=n&&Object.keys(n).length>0,e[3]=n,e[4]=d):d=e[4];const o=d;let u;e[5]!==r||e[6]!==s.title?(u=t.jsx(Ge,{icon:r,name:s.title,size:"md",className:"shrink-0 shadow-sm"}),e[5]=r,e[6]=s.title,e[7]=u):u=e[7];let m;e[8]!==s.title?(m=t.jsx("h3",{className:"text-base font-medium text-foreground truncate",children:s.title}),e[8]=s.title,e[9]=m):m=e[9];const f=p||"No description";let a;e[10]!==f?(a=t.jsx("p",{className:"text-base text-muted-foreground line-clamp-2",children:f}),e[10]=f,e[11]=a):a=e[11];let v;e[12]!==m||e[13]!==a?(v=t.jsxs("div",{className:"flex flex-col gap-0 flex-1",children:[m,a]}),e[12]=m,e[13]=a,e[14]=v):v=e[14];let y;e[15]!==u||e[16]!==v?(y=t.jsxs("div",{className:"flex flex-col gap-4 p-6 flex-1",children:[u,v]}),e[15]=u,e[16]=v,e[17]=y):y=e[17];let b;e[18]!==n||e[19]!==o||e[20]!==s?(b=o&&t.jsx("div",{className:"absolute top-6 right-6 sm:opacity-0 sm:group-hover:opacity-100 transition-opacity",onClick:Kt,onMouseDown:Lt,children:t.jsxs(He,{children:[t.jsx(Je,{asChild:!0,children:t.jsx(Ce,{variant:"ghost",size:"icon",className:"h-8 w-8",onClick:Ft,children:t.jsx(et,{size:20})})}),t.jsxs(Ye,{align:"end",onClick:zt,children:[n.open&&t.jsxs(O,{onClick:g=>{g.stopPropagation(),n.open?.(s)},children:[t.jsx(Xe,{size:16}),"Open"]}),n.edit&&t.jsxs(O,{onClick:g=>{g.stopPropagation(),n.edit?.(s)},children:[t.jsx(tt,{size:16}),"Edit"]}),n.duplicate&&t.jsxs(O,{onClick:g=>{g.stopPropagation(),n.duplicate?.(s)},children:[t.jsx(Ze,{size:16}),"Duplicate"]}),n.delete&&t.jsxs(O,{variant:"destructive",onClick:g=>{g.stopPropagation(),n.delete?.(s)},children:[t.jsx(st,{size:16}),"Delete"]})]})]})}),e[18]=n,e[19]=o,e[20]=s,e[21]=b):b=e[21];let x;return e[22]!==y||e[23]!==b?(x=t.jsxs(gt,{className:"cursor-pointer transition-colors hover:bg-accent/50 h-full flex flex-col group relative",children:[y,b]}),e[22]=y,e[23]=b,e[24]=x):x=e[24],x}function zt(i){return i.stopPropagation()}function Ft(i){return i.stopPropagation()}function Lt(i){return i.stopPropagation()}function Kt(i){return i.stopPropagation()}const Mt=["icon","avatar","logo"],Re=["created_at","created_by","id"];function Ut(i){return Object.keys(i).find(e=>Mt.includes(e.toLowerCase()))}function ot(i,e){return Object.keys(i.properties||{}).filter(s=>["id","created_at","updated_at","created_by","updated_by"].includes(s)?!1:e?e.includes(s):!0).map(s=>({id:s,label:s.charAt(0).toUpperCase()+s.slice(1).replace(/_/g," ")}))}function Wt(i){const e=oe.c(30),{data:s,schema:l,viewMode:n,search:c,sortKey:r,sortDirection:p,onSort:d,actions:o,onItemClick:u,headerActions:m,emptyState:f,readOnly:a,columns:v,hideToolbar:y,sortableFields:b}=i,x=p===void 0?"asc":p,g=d===void 0?Vt:d;let $;e[0]!==o?($=o===void 0?{}:o,e[0]=o,e[1]=$):$=e[1];const h=$,T=u===void 0?qt:u,E=m===void 0?null:m,N=f===void 0?null:f,k=a===void 0?!1:a,j=v===void 0?void 0:v,z=y===void 0?!1:y,P=b===void 0?void 0:b;let D;e[2]!==j||e[3]!==l||e[4]!==P?(D=j?j.filter(Bt).filter(A=>!P||P.includes(A.id)).map(Rt):ot(l,P),e[2]=j,e[3]=l,e[4]=P,e[5]=D):D=e[5];const w=D;let S;e[6]!==E||e[7]!==z||e[8]!==g||e[9]!==x||e[10]!==r||e[11]!==w?(S=!z&&t.jsx("div",{className:"shrink-0 w-full border-b border-border h-12",children:t.jsxs("div",{className:"flex items-center gap-3 h-12 px-4",children:[t.jsx("div",{className:"flex items-center gap-2 flex-1",children:E}),t.jsx("div",{className:"flex items-center gap-2 shrink-0",children:t.jsx(Qe,{sortKey:r,sortDirection:x,onSort:g,sortOptions:w})})]})}),e[6]=E,e[7]=z,e[8]=g,e[9]=x,e[10]=r,e[11]=w,e[12]=S):S=e[12];let _;e[13]!==h||e[14]!==j||e[15]!==s||e[16]!==N||e[17]!==T||e[18]!==g||e[19]!==k||e[20]!==l||e[21]!==c||e[22]!==x||e[23]!==r||e[24]!==P||e[25]!==n?(_=n==="cards"?t.jsx("div",{className:"flex-1 overflow-auto p-5",children:s.length===0?t.jsx("div",{className:"flex items-center justify-center h-full",children:N||t.jsx(Ue,{icon:t.jsx(We,{size:36,className:"text-muted-foreground"}),title:"No items found",description:c?"Try adjusting your search":"No items to display"})}):t.jsx("div",{className:"grid grid-cols-[repeat(auto-fill,minmax(280px,1fr))] gap-4",children:s.map(A=>t.jsx("div",{onClick:()=>T?.(A),className:"cursor-pointer h-full",children:t.jsx(kt,{item:A,schema:l,readOnly:k,actions:h})},A.id))})}):t.jsx(xt,{columns:Ht(j,l,P,h),data:s,sortKey:r,sortDirection:x,onSort:g,onRowClick:T,emptyState:N||t.jsx(Ue,{icon:t.jsx(We,{size:36,className:"text-muted-foreground"}),title:"No items found",description:c?"Try adjusting your search":"No items to display"})}),e[13]=h,e[14]=j,e[15]=s,e[16]=N,e[17]=T,e[18]=g,e[19]=k,e[20]=l,e[21]=c,e[22]=x,e[23]=r,e[24]=P,e[25]=n,e[26]=_):_=e[26];let I;return e[27]!==S||e[28]!==_?(I=t.jsxs("div",{className:"h-full flex flex-col overflow-hidden",children:[S,_]}),e[27]=S,e[28]=_,e[29]=I):I=e[29],I}function Rt(i){return{id:i.id,label:typeof i.header=="string"?i.header:i.id}}function Bt(i){return i.sortable!==!1}function qt(){}function Vt(){}function Qt(i){return{id:"actions",header:"",render:e=>t.jsxs(He,{children:[t.jsx(Je,{asChild:!0,children:t.jsx(Ce,{variant:"ghost",size:"sm",className:"h-8 w-8 p-0",onClick:s=>s.stopPropagation(),children:t.jsx(et,{size:20})})}),t.jsxs(Ye,{align:"end",onClick:s=>s.stopPropagation(),children:[i.open&&t.jsxs(O,{onClick:s=>{s.stopPropagation(),i.open?.(e)},children:[t.jsx(Xe,{size:16}),"Open"]}),i.edit&&t.jsxs(O,{onClick:s=>{s.stopPropagation(),i.edit?.(e)},children:[t.jsx(tt,{size:16}),"Edit"]}),i.duplicate&&t.jsxs(O,{onClick:s=>{s.stopPropagation(),i.duplicate?.(e)},children:[t.jsx(Ze,{size:16}),"Duplicate"]}),i.delete&&t.jsxs(O,{variant:"destructive",onClick:s=>{s.stopPropagation(),i.delete?.(e)},children:[t.jsx(st,{size:16}),"Delete"]})]})]}),cellClassName:"w-[60px]",sortable:!1}}function nt(i){const e=i.type;return Array.isArray(e)?e.every(s=>nt({type:s})):e==="string"||e==="number"||e==="integer"||e==="boolean"||e==="null"}function Gt(i,e){const s=i.properties||{},l=Object.keys(s).filter(o=>{const u=s[o];return u&&nt(u)}),n=Ut(s),c=[],r=new Set;n&&l.includes(n)&&(c.push(n),r.add(n));const p=["title","description","updated_at","updated_by"];for(const o of p)l.includes(o)&&!r.has(o)&&(c.push(o),r.add(o));const d=l.filter(o=>!r.has(o)&&!Re.includes(o)).sort((o,u)=>o.localeCompare(u));for(const o of d)c.push(o),r.add(o);for(const o of Re)l.includes(o)&&!r.has(o)&&(c.push(o),r.add(o));return c.map(o=>{const u=s[o],m=e?e.includes(o):!["id"].includes(o);return o===n?{id:o,header:"",render:f=>{const a=f[o];return t.jsx(Ge,{icon:a,name:f.title,size:"sm",className:"shrink-0 shadow-sm"})},sortable:!1,cellClassName:"w-16 shrink-0",wrap:!0}:o==="description"?{id:o,header:"Description",render:f=>{const a=f[o];return a==null?"—":t.jsx("span",{className:"block truncate max-w-[50ch]",children:String(a)})},sortable:m,cellClassName:"max-w-[50ch]"}:o==="created_by"||o==="updated_by"?{id:o,header:o.charAt(0).toUpperCase()+o.slice(1).replace(/_/g," "),render:f=>{const a=f[o];return a?t.jsx(jt,{id:String(a),size:"xs"}):"—"},sortable:m,cellClassName:"max-w-[250px]"}:u?.format==="date-time"||o.endsWith("_at")?{id:o,header:o.charAt(0).toUpperCase()+o.slice(1).replace(/_/g," "),render:f=>{const a=f[o];return a?t.jsx("span",{className:"block truncate max-w-full",children:new Date(a).toLocaleDateString()}):"—"},sortable:m,cellClassName:"max-w-[200px]"}:{id:o,header:o.charAt(0).toUpperCase()+o.slice(1).replace(/_/g," "),render:f=>{const a=f[o];return a==null?"—":t.jsx("span",{className:"block truncate max-w-full",children:String(a)})},sortable:m,cellClassName:"max-w-[200px]"}})}function Ht(i,e,s,l){const n=i||Gt(e,s);return n.some(p=>p.id==="actions")?n:Object.keys(l).length>0?[...n,Qt(l)]:n}function Jt(i){const e=oe.c(119),{connectionId:s,org:l,activeCollection:n,onItemClick:c}=i,r=n.name,p=n.schema??ft,d=n.hasCreateTool,o=n.hasUpdateTool,u=n.hasDeleteTool,m=Be(),{data:f}=ct.useSession(),a=f?.user?.id||"unknown",v=Tt(s);let y;e[0]!==v||e[1]!==s?(y=v?bt(v):s,e[0]=v,e[1]=s,e[2]=y):y=e[2];const b=y,{org:x}=ze();let g;e[3]!==s||e[4]!==x.id||e[5]!==x.slug?(g={connectionId:s,orgId:x.id,orgSlug:x.slug},e[3]=s,e[4]=x.id,e[5]=x.slug,e[6]=g):g=e[6];const $=qe(g),h=It(s,r,$),T=`${s}-${r}`;let E;e[7]!==l||e[8]!==T?(E={namespace:l,resource:T,defaultSortKey:"updated_at"},e[7]=l,e[8]=T,e[9]=E):E=e[9];const{search:N,searchTerm:k,setSearch:j,viewMode:z,setViewMode:P,sortKey:D,sortDirection:w,handleSort:S}=Ct(E);let _;e[10]!==k||e[11]!==w||e[12]!==D?(_={searchTerm:k,sortKey:D,sortDirection:w},e[10]=k,e[11]=w,e[12]=D,e[13]=_):_=e[13];const I=At(s,r,$,_),A=!d&&!o&&!u;let ne;e[14]!==b||e[15]!==r||e[16]!==m||e[17]!==c||e[18]!==l?(ne=C=>{if(c){c(C);return}m({to:"/$org/settings/connections/$appSlug/$collectionName/$itemId",params:{org:l,appSlug:b,collectionName:r,itemId:C.id}})},e[14]=b,e[15]=r,e[16]=m,e[17]=c,e[18]=l,e[19]=ne):ne=e[19];const F=ne;let re;e[20]!==h.create||e[21]!==a?(re=async C=>{const xe=new Date().toISOString();await h.create.mutateAsync({...C,id:Me("conn"),title:`${C.title} (Copy)`,created_at:xe,updated_at:xe,created_by:a,updated_by:a})},e[20]=h.create,e[21]=a,e[22]=re):re=e[22];const be=re,[L,ve]=dt.useState(null);let le;e[23]===Symbol.for("react.memo_cache_sentinel")?(le=C=>{ve(C)},e[23]=le):le=e[23];const rt=le;let K;e[24]!==F||e[25]!==o?(K=o&&{edit:F},e[24]=F,e[25]=o,e[26]=K):K=e[26];let M;e[27]!==be||e[28]!==d?(M=d&&{duplicate:be},e[27]=be,e[28]=d,e[29]=M):M=e[29];let U;e[30]!==u?(U=u&&{delete:rt},e[30]=u,e[31]=U):U=e[31];let ae;e[32]!==M||e[33]!==U||e[34]!==K?(ae={...K,...M,...U},e[32]=M,e[33]=U,e[34]=K,e[35]=ae):ae=e[35];const ye=ae;let ce;e[36]!==h.delete||e[37]!==L?(ce=async()=>{L&&(await h.delete.mutateAsync(L.id),ve(null))},e[36]=h.delete,e[37]=L,e[38]=ce):ce=e[38];const Ne=ce;let de;e[39]!==h.create||e[40]!==b||e[41]!==r||e[42]!==d||e[43]!==m||e[44]!==l||e[45]!==a?(de=async()=>{if(!d){Fe.error("Create operation is not available for this collection");return}const C=new Date().toISOString(),xe={id:Me("conn"),title:"New Item",description:"A brief description of the item",created_at:C,updated_at:C,created_by:a,updated_by:a};try{const ke=await h.create.mutateAsync(xe);m({to:"/$org/settings/connections/$appSlug/$collectionName/$itemId",params:{org:l,appSlug:b,collectionName:r,itemId:ke.id}})}catch(ke){console.error("Failed to create item:",ke)}},e[39]=h.create,e[40]=b,e[41]=r,e[42]=d,e[43]=m,e[44]=l,e[45]=a,e[46]=de):de=e[46];const we=de;let me;e[47]!==p?(me=ot(p),e[47]=p,e[48]=me):me=e[48];const Se=me,lt=(I?.length??0)>0,at=d&&!lt&&!N;let ue;e[49]!==h.create||e[50]!==we||e[51]!==d?(ue=d?t.jsxs(Ce,{onClick:we,size:"sm",disabled:h.create.isPending,className:"h-7",children:[t.jsx(Et,{className:"mr-2 h-4 w-4"}),h.create.isPending?"Creating...":"Create"]}):null,e[49]=h.create,e[50]=we,e[51]=d,e[52]=ue):ue=e[52];const pe=ue,Pe=D;let W;e[53]!==S||e[54]!==w||e[55]!==Se||e[56]!==Pe?(W=t.jsx(Ot,{children:t.jsx(Qe,{sortKey:Pe,sortDirection:w,onSort:S,sortOptions:Se})}),e[53]=S,e[54]=w,e[55]=Se,e[56]=Pe,e[57]=W):W=e[57];const _e=`Search ${r}...`;let R;e[58]!==j?(R=C=>{C.key==="Escape"&&(j(""),C.target.blur())},e[58]=j,e[59]=R):R=e[59];let B;e[60]!==N||e[61]!==j||e[62]!==_e||e[63]!==R?(B=t.jsx("div",{className:"flex-1",children:t.jsx(ht,{value:N,onChange:j,placeholder:_e,onKeyDown:R})}),e[60]=N,e[61]=j,e[62]=_e,e[63]=R,e[64]=B):B=e[64];let q;e[65]!==pe||e[66]!==d?(q=d&&t.jsx("div",{className:"pr-3",children:pe}),e[65]=pe,e[66]=d,e[67]=q):q=e[67];let V;e[68]!==B||e[69]!==q?(V=t.jsxs("div",{className:"flex items-center gap-2",children:[B,q]}),e[68]=B,e[69]=q,e[70]=V):V=e[70];let Q;e[71]!==I?(Q=I??[],e[71]=I,e[72]=Q):Q=e[72];const De=D;let G;e[73]!==F?(G=C=>F(C),e[73]=F,e[74]=G):G=e[74];const Ie="No items found",Ae=N?"Try adjusting your search terms":"This collection doesn't have any items yet.",Te=at?pe:void 0;let H;e[75]!==Ie||e[76]!==Ae||e[77]!==Te?(H=t.jsx(it,{image:null,title:Ie,description:Ae,actions:Te}),e[75]=Ie,e[76]=Ae,e[77]=Te,e[78]=H):H=e[78];let J;e[79]!==S||e[80]!==A||e[81]!==ye||e[82]!==p||e[83]!==N||e[84]!==j||e[85]!==P||e[86]!==w||e[87]!==Q||e[88]!==De||e[89]!==G||e[90]!==H||e[91]!==z?(J=t.jsx("div",{className:"flex-1 overflow-auto",children:t.jsx(Wt,{hideToolbar:!0,data:Q,schema:p,viewMode:z,onViewModeChange:P,search:N,onSearchChange:j,sortKey:De,sortDirection:w,onSort:S,actions:ye,onItemClick:G,readOnly:A,emptyState:H})}),e[79]=S,e[80]=A,e[81]=ye,e[82]=p,e[83]=N,e[84]=j,e[85]=P,e[86]=w,e[87]=Q,e[88]=De,e[89]=G,e[90]=H,e[91]=z,e[92]=J):J=e[92];let Y;e[93]!==V||e[94]!==J?(Y=t.jsxs("div",{className:"flex flex-col h-full overflow-hidden",children:[V,J]}),e[93]=V,e[94]=J,e[95]=Y):Y=e[95];const Ee=!!L;let fe;e[96]===Symbol.for("react.memo_cache_sentinel")?(fe=C=>{C||ve(null)},e[96]=fe):fe=e[96];let he;e[97]===Symbol.for("react.memo_cache_sentinel")?(he=t.jsx(Nt,{children:"Delete item?"}),e[97]=he):he=e[97];const Oe=L?.title;let X;e[98]!==Oe?(X=t.jsxs(wt,{children:[he,t.jsxs(St,{children:['Are you sure you want to delete "',Oe,'"? This action cannot be undone.']})]}),e[98]=Oe,e[99]=X):X=e[99];let Z;e[100]!==h.delete.isPending?(Z=t.jsx(vt,{disabled:h.delete.isPending,children:"Cancel"}),e[100]=h.delete.isPending,e[101]=Z):Z=e[101];const $e=h.delete.isPending?"Deleting...":"Delete";let ee;e[102]!==h.delete.isPending||e[103]!==Ne||e[104]!==$e?(ee=t.jsx(yt,{onClick:Ne,disabled:h.delete.isPending,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:$e}),e[102]=h.delete.isPending,e[103]=Ne,e[104]=$e,e[105]=ee):ee=e[105];let te;e[106]!==Z||e[107]!==ee?(te=t.jsxs(Pt,{children:[Z,ee]}),e[106]=Z,e[107]=ee,e[108]=te):te=e[108];let se;e[109]!==X||e[110]!==te?(se=t.jsxs(_t,{children:[X,te]}),e[109]=X,e[110]=te,e[111]=se):se=e[111];let ie;e[112]!==Ee||e[113]!==se?(ie=t.jsx(Dt,{open:Ee,onOpenChange:fe,children:se}),e[112]=Ee,e[113]=se,e[114]=ie):ie=e[114];let ge;return e[115]!==W||e[116]!==Y||e[117]!==ie?(ge=t.jsxs(t.Fragment,{children:[W,Y,ie]}),e[115]=W,e[116]=Y,e[117]=ie,e[118]=ge):ge=e[118],ge}function Yt(){const i=oe.c(13),{org:e,project:s}=ze(),l=mt();let n;i[0]!==e.id||i[1]!==e.slug?(n={connectionId:Ve,orgId:e.id,orgSlug:e.slug},i[0]=e.id,i[1]=e.slug,i[2]=n):n=i[2];const c=qe(n);let r;i[3]!==c||i[4]!==s?(r=async u=>{const m=s.enabledPlugins??[];if(m.includes(u))return;const f=[...m,u],a=await c.callTool({name:"COLLECTION_VIRTUAL_MCP_UPDATE",arguments:{id:s.id,data:{metadata:{enabled_plugins:f}}}});return a.structuredContent??a},i[3]=c,i[4]=s,i[5]=r):r=i[5];let p;i[6]!==e.id||i[7]!==s||i[8]!==l?(p=()=>{l.invalidateQueries({queryKey:Le.project(e.id,s.slug)}),l.invalidateQueries({queryKey:Le.projects(e.id)})},i[6]=e.id,i[7]=s,i[8]=l,i[9]=p):p=i[9];let d;return i[10]!==r||i[11]!==p?(d={mutationFn:r,onSuccess:p,onError:Xt},i[10]=r,i[11]=p,i[12]=d):d=i[12],ut(d)}function Xt(i){Fe.error("Failed to enable plugin: "+(i instanceof Error?i.message:"Unknown error"))}function Zt(i){const e=oe.c(12),{pluginId:s,title:l,description:n,icon:c}=i,r=Yt();let p;e[0]!==r||e[1]!==s?(p=async()=>{try{await r.mutateAsync(s),Fe.success("Plugin enabled!")}catch{}},e[0]=r,e[1]=s,e[2]=p):p=e[2];const d=p,o=c??null,u=r.isPending?"Enabling…":"Enable plugin";let m;e[3]!==r.isPending||e[4]!==d||e[5]!==u?(m=t.jsx(Ce,{onClick:d,disabled:r.isPending,children:u}),e[3]=r.isPending,e[4]=d,e[5]=u,e[6]=m):m=e[6];let f;return e[7]!==n||e[8]!==o||e[9]!==m||e[10]!==l?(f=t.jsx(it,{image:o,title:l,description:n,actions:m}),e[7]=n,e[8]=o,e[9]=m,e[10]=l,e[11]=f):f=e[11],f}const es={name:"WORKFLOW",displayName:"Workflow",hasCreateTool:!0,hasUpdateTool:!0,hasDeleteTool:!0};function xi(){const{project:i,org:e}=ze();if(!(i.enabledPlugins??[]).includes(Ke))return t.jsx(je,{children:t.jsx(je.Content,{children:t.jsx("div",{className:"flex flex-col items-center justify-center h-full",children:t.jsx(Zt,{pluginId:Ke,title:"Enable Workflows",description:"Automate multi-step processes by enabling the Workflows plugin. Once enabled you can create, run, and monitor workflows.",icon:t.jsx("div",{className:"bg-muted p-4 rounded-full",children:t.jsx(pt,{className:"size-8 text-muted-foreground"})})})})})});const n=Be();return t.jsx(je,{children:t.jsx(je.Content,{children:t.jsx(Jt,{connectionId:Ve,org:e.slug,activeCollection:es,onItemClick:c=>n({to:"/$org/settings/workflows/$itemId",params:{org:e.slug,itemId:c.id}})})})})}export{xi as default};
|
package/dist/client/index.html
CHANGED
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
<meta name="apple-mobile-web-app-capable" content="yes" />
|
|
44
44
|
<meta name="apple-mobile-web-app-status-bar-style" content="default" />
|
|
45
45
|
<meta name="apple-mobile-web-app-title" content="deco Studio" />
|
|
46
|
-
<script type="module" crossorigin src="/assets/index-
|
|
46
|
+
<script type="module" crossorigin src="/assets/index-DoLgm5xJ.js"></script>
|
|
47
47
|
<link rel="stylesheet" crossorigin href="/assets/index-LtT7znvk.css">
|
|
48
48
|
</head>
|
|
49
49
|
<body>
|
package/dist/server/cli.js
CHANGED
|
@@ -104395,7 +104395,7 @@ ${_}`:_;return{...c,description:g,inputExamples:u?void 0:c.inputExamples}});retu
|
|
|
104395
104395
|
`);if(g===-1)return;let h=$.subarray(0,g).toString("utf8"),E=$.subarray(g+4),v=h.split(`\r
|
|
104396
104396
|
`,1)[0]??"";if(!/^HTTP\/1\.[01] 101(?:\s|$)/.test(v)){_y(i,1011,t.upstreamErrorReason);try{c.end()}catch{}return}d=!0,i.data.upstream=c;let r=AQl((x,D)=>{try{if(x===1)i.send(D.toString("utf8"));else if(x===2)i.send(D);else if(x===8){let{code:O,reason:X}=SQl(D);_y(i,O,X);try{c.end()}catch{}}}catch{}});if(c.removeAllListeners("data"),E.length>0)r(E);c.on("data",(x)=>r(x));for(let x of i.data.pending)try{c.write(TWi(x,!0))}catch{}i.data.pending.length=0})}function PQl(i,t){let u=[`GET ${i} HTTP/1.1`];for(let[l,n]of Object.entries(t))u.push(`${l}: ${n}`);return u.push("",""),u.join(`\r
|
|
104397
104397
|
`)}function _y(i,t,u){try{if(t!==void 0)i.close(t,u??"");else i.close()}catch{}}function TWi(i,t,u){let l,n;if(typeof i==="string")l=Buffer.from(i,"utf8"),n=1;else if(i instanceof ArrayBuffer)l=Buffer.from(i),n=2;else if(Buffer.isBuffer(i))l=i,n=2;else l=Buffer.from(i),n=2;let f=u??n,c=l.length,$=[];$.push(128|f&15);let d=t?128:0;if(c<126)$.push(d|c);else if(c<65536)$.push(d|126,c>>8&255,c&255);else $.push(d|127,0,0,0,0),$.push(c>>>24&255,c>>>16&255,c>>>8&255,c&255);if(t){let _=lHt(4),g=Buffer.alloc(c);for(let h=0;h<c;h++)g[h]=l[h]^_[h&3];return Buffer.concat([Buffer.from($),_,g])}return Buffer.concat([Buffer.from($),l])}function SQl(i){if(i.length<2)return{code:1000,reason:""};return{code:i.readUInt16BE(0),reason:i.subarray(2).toString("utf8")}}function AQl(i){let t=Buffer.alloc(0);return(u)=>{t=t.length===0?u:Buffer.concat([t,u]);while(!0){if(t.length<2)return;let l=t[0],n=t[1],f=l&15,c=(n&128)!==0,$=n&127,d=2;if($===126){if(t.length<d+2)return;$=t[d]<<8|t[d+1],d+=2}else if($===127){if(t.length<d+8)return;$=t[d+4]*16777216+(t[d+5]<<16|t[d+6]<<8|t[d+7]),d+=8}let _=null;if(c){if(t.length<d+4)return;_=t.subarray(d,d+4),d+=4}if(t.length<d+$)return;let g=t.subarray(d,d+$);if(_){let h=Buffer.alloc($);for(let E=0;E<$;E++)h[E]=g[E]^_[E&3];g=h}t=t.subarray(d+$),i(f,g)}}}var IQl=256;var $Ht=w(()=>{uHt()});function dHt(i){if(typeof i!=="string"||i.length===0)return null;let t=i.lastIndexOf(":");if(i.startsWith("["))return null;let l=(t>=0?i.slice(0,t):i).replace(/\.$/,"").toLowerCase(),n=".localhost";if(!l.endsWith(n))return null;let f=l.slice(0,-n.length);if(f.length===0)return null;if(f.includes("."))return null;return f}async function _Ht(i){let t=cHt({maxPendingFrames:i.maxPendingWsFrames??GQl,backlogOverflowReason:"ingress backlog overflow"}),u=Bun.serve({port:i.port,hostname:"127.0.0.1",idleTimeout:0,async fetch(l,n){let f=l.headers.get("host"),c=dHt(f);if(!c)return new Response("not found",{status:404});let $=i.lookupSandboxPort(c);if(!$){if(l.headers.get("upgrade")==="websocket")return new Response("unknown handle",{status:404});return new Response(WQl,{status:503,headers:{"Content-Type":"text/html; charset=utf-8","Cache-Control":"no-store","Retry-After":"1"}})}if(l.headers.get("upgrade")==="websocket"){let h=new URL(l.url);if(!n.upgrade(l,{data:fHt({port:$,pathQuery:`${h.pathname}${h.search}`,protocols:nHt(l.headers)})}))return new Response("ws upgrade failed",{status:400});return}let d=new URL(l.url),_=`http://127.0.0.1:${$}${d.pathname}${d.search}`,g=new Headers(l.headers);return g.set("host",`127.0.0.1:${$}`),fetch(_,{method:l.method,headers:g,body:l.body,redirect:"manual"})},websocket:{open:t.open,message:t.message,close:t.close}});return{port:u.port??0,async stop(){u.stop(!0)}}}var GQl=256,WQl='<!DOCTYPE html><html><head><meta charset="utf-8"><title>Connecting\u2026</title><style>body{font-family:system-ui,sans-serif;display:flex;align-items:center;justify-content:center;min-height:100vh;margin:0;background:#fafafa;color:#555}div{text-align:center;max-width:420px;padding:24px}h3{margin:0 0 8px}p{margin:0;font-size:14px;color:#999;line-height:1.5}</style></head><body><div><h3>Connecting to sandbox\u2026</h3><p>Waiting for the local sandbox to come online. This page refreshes automatically.</p></div><script>setTimeout(function(){window.location.reload()},1500)</script></body></html>';var gHt=w(()=>{$Ht()});async function hHt(i=bQl){let t=["decopilot-sandbox","body-offload"],[u,l]=await Promise.all([i.detectClaudeCode().catch(()=>!1),i.detectCodex().catch(()=>!1)]);if(u)t.push("claude-code");if(l)t.push("codex");return t}async function kQl(){try{let{query:i}=await import("@anthropic-ai/claude-agent-sdk"),t=i({prompt:"",options:{maxTurns:1}}),u=await t.accountInfo();return t.return(void 0),Boolean(u.email)}catch{return!1}}async function jQl(){try{let i=Bun.spawn(["codex","--version"],{stdout:"ignore",stderr:"ignore"}),t=setTimeout(()=>i.kill(),1e4),u=await i.exited;return clearTimeout(t),u===0}catch{return!1}}var bQl;var EHt=w(()=>{bQl={detectClaudeCode:kQl,detectCodex:jQl}});import{randomBytes as zQl}from"crypto";import{mkdir as KQl,readFile as HQl,writeFile as LQl}from"fs/promises";import{dirname as RQl,join as eQl}from"path";function CQl(i){return eQl(i,"machine-id")}async function vHt(i){let t=CQl(i);try{let n=(await HQl(t,"utf8")).trim();if(n)return n}catch{}let u=zQl(16).toString("hex");return await KQl(RQl(t),{recursive:!0}),await LQl(t,u),u}var rHt=()=>{};import{randomBytes as MQl}from"crypto";import{mkdir as qQl}from"fs/promises";import{createServer as VQl}from"net";import{join as mQl}from"path";function wHt(i,t){return Error(`sandbox failed to start: ${i}`,{cause:t})}function aQl(i){if(!(i instanceof Error))return!1;return i.name==="TimeoutError"||/timed out|timeout|operation was aborted|aborted/i.test(i.message)}function oQl(i){if(i instanceof Error){let t=i.cause;if(t instanceof Error&&t.message)return t.message;return i.message}return String(i)}function xHt(i){let t=i.maxSandboxes??20,u=new Map,l=i.pickPort??sQl,n=i.fetchImpl??fetch,f=i.resolvePreviewUrl??((E,v)=>`http://127.0.0.1:${v}`),c=(E)=>{try{i.onEvent?.(E)}catch{}},$=async(E)=>{let v=new AbortController,r=setTimeout(()=>v.abort(),1500);try{let x=await n(`${E}/health`,{signal:v.signal});if(!x.ok)console.warn(`[user-desktop] probe ${E}/health \u2192 ${x.status} (treating as dead)`);return x.ok}catch(x){return console.warn(`[user-desktop] probe ${E}/health failed: ${x instanceof Error?x.message:String(x)} (treating as dead)`),!1}finally{clearTimeout(r)}},d=(E)=>{console.warn(`[user-desktop] evicting dead daemon handle=${E.handle} port=${E.port}`);try{E.process.kill("SIGTERM")}catch{}if(u.get(E.handle)===E)u.delete(E.handle),c({handle:E.handle,phase:"evicted"})},_=new Map;function g(){if(u.size<t)return;let E=[...u.values()].filter((r)=>r.activeDispatchCount===0).sort((r,x)=>r.lastUsedAt-x.lastUsedAt);if(E.length===0){console.warn(`[user-desktop] at cap ${u.size}/${t} but every sandbox is pinned (active dispatch) \u2014 exceeding cap temporarily`);return}let v=E[0];console.log(`[user-desktop] evicting LRU victim handle=${v.handle} port=${v.port} (cap ${t} reached, size=${u.size})`);try{v.process.kill("SIGTERM")}catch{}u.delete(v.handle),c({handle:v.handle,phase:"evicted"})}let h=async(E)=>{c({handle:E.handle,phase:"spawning"}),g();let v=mQl(i.dataDir,"sandboxes",E.handle);await qQl(v,{recursive:!0}),console.log(`[user-desktop] ensure handle=${E.handle} repo=${E.repo?.cloneUrl??"(none)"} branch=${E.repo?.branch??"(none)"} runtime=${E.workload?.runtime??"(autodetect)"} pm=${E.workload?.packageManager??"(autodetect)"}`);let r=MQl(24).toString("hex"),[x,D]=await Promise.all([l(),l()]);console.log(`[user-desktop] spawn handle=${E.handle} port=${x} devPort=${D} workdir=${v}`);let O=await Promise.resolve(i.spawnDaemon({workdir:v,handle:E.handle,port:x,daemonToken:r,offloadAllowedHosts:E.offloadAllowedHosts??[],offloadAllowSameHostDev:E.offloadAllowSameHostDev??!1,orgFsConfigJson:E.orgFsConfigJson}));try{try{await i.waitForHealth(x)}catch(Q){throw wHt("the sandbox didn't come online in time",Q)}console.log(`[user-desktop] healthy handle=${E.handle} port=${x} \u2014 posting config`);try{await i.postConfig(x,D,{repo:E.repo,workload:E.workload,operator:E.operator},r)}catch(Q){throw wHt(aQl(Q)?"configuration timed out":"the sandbox rejected its configuration",Q)}}catch(Q){console.error(`[user-desktop] sandbox bring-up failed handle=${E.handle} port=${x} (killing daemon):`,Q);try{O.kill("SIGKILL")}catch{}throw c({handle:E.handle,phase:"failed",error:oQl(Q)}),Q}let X=`http://127.0.0.1:${x}`,N=f(E.handle,x);console.log(`[user-desktop] ready handle=${E.handle} port=${x} sandboxApiUrl=${X} previewUrl=${N}`);let J={handle:E.handle,port:x,process:O,sandboxApiUrl:X,previewUrl:N,lastUsedAt:Date.now(),activeDispatchCount:0,daemonToken:r};if(u.set(E.handle,J),c({handle:E.handle,phase:"ready",port:x,previewUrl:N}),O.exited)O.exited.then(()=>{if(u.get(E.handle)===J)console.warn(`[user-desktop] daemon process exited unexpectedly handle=${E.handle} port=${x} \u2014 removing from cache`),u.delete(E.handle),c({handle:E.handle,phase:"evicted"});else console.log(`[user-desktop] daemon process exited handle=${E.handle} port=${x} (already replaced/removed)`)});return{sandboxApiUrl:X,previewUrl:N,port:x}};return{async ensureSandbox(E){let v=u.get(E.handle);if(v){if(await $(v.sandboxApiUrl))return console.log(`[user-desktop] cache hit handle=${E.handle} port=${v.port} (alive)`),v.lastUsedAt=Date.now(),{sandboxApiUrl:v.sandboxApiUrl,previewUrl:v.previewUrl,port:v.port};console.warn(`[user-desktop] cache stale handle=${E.handle} port=${v.port} \u2014 respawning`),d(v)}let r=_.get(E.handle);if(r)return console.log(`[user-desktop] joining in-flight ensure handle=${E.handle}`),r;let x=h(E).finally(()=>{_.delete(E.handle)});return _.set(E.handle,x),x},proxyPort(E){let v=u.get(E);if(v)v.lastUsedAt=Date.now();return v?.port??null},getDaemonToken(E){return u.get(E)?.daemonToken??null},hasHandle(E){return u.has(E)||_.has(E)},recordHit(E){let v=u.get(E);if(v)v.lastUsedAt=Date.now()},acquireDispatch(E){let v=u.get(E);if(!v)return()=>{};v.activeDispatchCount+=1;let r=!1;return()=>{if(r)return;r=!0;let x=u.get(E);if(x)x.activeDispatchCount=Math.max(0,x.activeDispatchCount-1)}},listSandboxes(){return[...u.values()]},async deleteSandbox(E){let v=u.get(E);if(!v){console.log(`[user-desktop] delete handle=${E} (not found, no-op)`);return}console.log(`[user-desktop] delete handle=${E} port=${v.port}`);try{v.process.kill("SIGTERM")}catch{}u.delete(E),c({handle:E,phase:"deleted"})},async shutdown(){console.log(`[user-desktop] shutdown \u2014 killing ${u.size} sandbox(es)`);for(let E of u.values())try{E.process.kill("SIGTERM")}catch{}u.clear()}}}function sQl(){return new Promise((i,t)=>{let u=VQl();u.unref(),u.on("error",t),u.listen(0,"127.0.0.1",()=>{let l=u.address();if(l&&typeof l==="object"){let n=l.port;u.close(()=>i(n))}else u.close(()=>t(Error("could not allocate port")))})})}var DHt=()=>{};import{randomUUID as pQl}from"crypto";import{hostname as iFl}from"os";async function yHt(i){let t=iFl()||void 0;i.monitor?.onMachine?.(t??"this machine");let u=xYt(i.dataDir,{outFd:i.logFd,hotReload:i.hotReload}),l=0,n=xHt({dataDir:i.dataDir,resolvePreviewUrl:(D,O)=>l>0?`http://${D}.localhost:${l}`:`http://127.0.0.1:${O}`,spawnDaemon:async(D)=>{let O={DAEMON_BOOT_ID:pQl(),APP_ROOT:D.workdir,PROXY_PORT:String(D.port),DAEMON_TOKEN:D.daemonToken,OFFLOAD_ALLOWED_HOSTS:D.offloadAllowedHosts.join(","),...D.offloadAllowSameHostDev?{OFFLOAD_ALLOW_SAME_HOST_DEV:"1"}:{}};if(D.orgFsConfigJson){let N=await XYt(i.dataDir);if(N)O.ORGFS_CONFIG=D.orgFsConfigJson,O.ORGFS_RCLONE_PATH=N}let X=await u({workdir:D.workdir,env:O,daemonPort:D.port});return{port:D.port,kill:(N)=>X.kill(N),exited:X.exited.then(()=>{return})}},postConfig:async(D,O,X,N)=>{let J={port:O};if(X.workload)J.runtime=X.workload.runtime,J.packageManager={name:X.workload.packageManager,...X.workload.packageManagerPath?{path:X.workload.packageManagerPath}:{}};let Q={application:J},U=nh(X.operator??null);if(U)Q.operator=U;if(X.repo)Q.git={repository:{cloneUrl:X.repo.cloneUrl,branch:X.repo.branch},...X.repo.userName&&X.repo.userEmail?{identity:{userName:X.repo.userName,userEmail:X.repo.userEmail}}:{}};await I8(`http://127.0.0.1:${D}`,N,Q)},waitForHealth:async(D)=>{await Rui(`http://127.0.0.1:${D}`)},maxSandboxes:20,onEvent:i.monitor?.onEvent}),f=await _Ht({port:i.port,lookupSandboxPort:(D)=>n.proxyPort(D)});l=f.port,console.log(`Local ingress listening on http://127.0.0.1:${f.port} (use http://<handle>.localhost:${f.port}/)`),i.monitor?.onIngress?.(f.port);let c=JYt({provider:n}),$=async()=>{let D=await Kw({dataDir:i.dataDir,target:i.clusterBaseUrl});if(!D)throw Object.assign(Error(`Session for ${i.clusterBaseUrl} is no longer valid \u2014 run \`deco auth login --target ${i.clusterBaseUrl}\` and restart \`deco link\`.`),{fatal:!0});return D.accessToken};console.log(`[link-daemon] transport=pull cluster=${i.clusterBaseUrl}`);let d=await vHt(i.dataDir),_=process.env.npm_package_version??"0.0.0",g=await hHt(),h=await oKt({clusterBaseUrl:i.clusterBaseUrl,getAccessToken:$,provider:n,controlHandler:c,capabilities:g,machineId:d,cliVersion:_,previewPort:f.port,onConnected:()=>{i.monitor?.onCluster?.("linked"),console.log(`Linked to ${i.clusterBaseUrl} (pull transport)`)}}),E,v=new Promise((D)=>{E=D}),r=!1,x=async()=>{if(r)return;r=!0,console.log(`
|
|
104398
|
-
Shutting down\u2026`);try{await h.close()}catch{}try{await f.stop()}catch{}try{await n.shutdown()}catch{}E(0)};return process.on("SIGINT",()=>void x()),process.on("SIGTERM",()=>void x()),h.closed.then(()=>{if(i.monitor?.onCluster?.("closed"),!r)console.error("Cluster connection closed permanently; exiting."),x()}),{stopped:v,stop:x}}var OHt=w(()=>{rSi();bH();DYt();NYt();QYt();sKt();gHt();EHt();rHt();jH();DHt()});function ZWi(i){return i.map((t)=>typeof t==="string"?t:String(t)).join(" ")}var I0i;var BWi=w(()=>{I0i={name:"decocms",version:"2.443.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":"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","@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/sandbox":"workspace:*","@decocms/std":"workspace:*","@decocms/vite-plugin":"workspace:*","@floating-ui/react":"^0.27.16","@happy-dom/global-registrator":"^20.9.0","@hookform/resolvers":"^5.2.2","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.29.0","@monaco-editor/react":"^4.7.0","@opentelemetry/api":"^1.9.0","@opentelemetry/api-logs":"^0.211.0","@opentelemetry/exporter-logs-otlp-proto":"^0.211.0","@opentelemetry/exporter-prometheus":"^0.208.0","@opentelemetry/exporter-trace-otlp-proto":"^0.207.0","@opentelemetry/instrumentation-runtime-node":"^0.24.0","@opentelemetry/resources":"^2.6.0","@opentelemetry/sdk-logs":"^0.211.0","@opentelemetry/sdk-metrics":"^2.2.0","@opentelemetry/sdk-node":"^0.207.0","@opentelemetry/sdk-trace-base":"^2.5.0","@playwright/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","lucide-react":"^0.468.0",marked:"^15.0.6","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"}}});var TL={};Gi(TL,{printBanner:()=>lFl,bannerLines:()=>XHt,BANNER_LINES:()=>Y0i,BANNER_GRADIENT:()=>P0i});function uFl(i){let t=Number.parseInt(i.slice(1),16);return[t>>16&255,t>>8&255,t&255]}function XHt(i){let t=Y0i.map((u,l)=>{let[n,f,c]=uFl(P0i[l]);return`\x1B[38;2;${n};${f};${c}m${u}\x1B[39m`});if(i!==void 0)t.push(`\x1B[2m v${i}\x1B[22m`);return t}function lFl(i){console.log("");for(let t of XHt(i))console.log(t);console.log("")}var Y0i,P0i;var zG=w(()=>{Y0i=[" \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 "],P0i=["#00ff64","#00ee5e","#00dc56","#00c84e","#00b444","#00a03c","#008832","#006e28"]});import{Box as nFl,Text as NHt}from"ink";import{jsx as fFl,jsxs as JHt}from"react/jsx-runtime";function S0i({version:i}){return JHt(nFl,{flexDirection:"column",marginTop:1,children:[Y0i.map((t,u)=>fFl(NHt,{color:P0i[u],children:t},u)),JHt(NHt,{dimColor:!0,children:[" v",i]})]})}var IWi=w(()=>{zG()});var FHt={};Gi(FHt,{subscribeLinkState:()=>SWi,setMachine:()=>_Fl,setLogPath:()=>hFl,setIngress:()=>dFl,setDaemonError:()=>gFl,setClusterUrl:()=>$Fl,setCluster:()=>cFl,pushSandboxEvent:()=>EFl,getLinkState:()=>PWi,applySandboxEvent:()=>QHt});function QHt(i,t){let u=new Map(i);if(t.phase==="evicted"||t.phase==="deleted")return u.delete(t.handle),u;let l=u.get(t.handle);return u.set(t.handle,{handle:t.handle,port:t.port??l?.port??null,previewUrl:t.previewUrl??l?.previewUrl??null,status:t.phase,error:t.phase==="failed"?t.error??"failed":null}),u}function gy(){for(let i of YWi)i()}function PWi(){return $$}function SWi(i){return YWi.add(i),()=>YWi.delete(i)}function cFl(i){$$={...$$,cluster:i},gy()}function $Fl(i){$$={...$$,clusterUrl:i},gy()}function dFl(i,t){$$={...$$,ingressPort:i,ingressUrl:t},gy()}function _Fl(i){$$={...$$,machine:i},gy()}function gFl(i){$$={...$$,daemonError:i},gy()}function hFl(i){$$={...$$,logPath:i},gy()}function EFl(i){$$={...$$,sandboxes:QHt($$.sandboxes,i)},gy()}var $$,YWi;var AWi=w(()=>{$$={cluster:"connecting",clusterUrl:null,ingressUrl:null,ingressPort:null,machine:null,cap:20,sandboxes:new Map,daemonError:null,logPath:null},YWi=new Set});var UHt={};Gi(UHt,{LinkApp:()=>wFl});import{Box as d$,Text as _$}from"ink";import{useSyncExternalStore as vFl}from"react";import{jsx as d1,jsxs as aE}from"react/jsx-runtime";function rFl(i){if(i.status==="ready")return{color:"green",text:"\u25CF Live"};if(i.status==="spawning")return{color:"yellow",text:"\u25CC Starting\u2026"};return{color:"red",text:`\u2717 Error: ${i.error??""}`}}function wFl(){let i=vFl(SWi,PWi),t=[...i.sandboxes.values()].sort((u,l)=>u.handle.localeCompare(l.handle));return aE(d$,{flexDirection:"column",children:[d1(S0i,{version:I0i.version}),d1(d$,{marginBottom:1,children:d1(_$,{dimColor:!0,children:"\u2500".repeat(80)})}),d1(d$,{children:i.cluster==="linked"?aE(_$,{color:"green",children:["\u2713 Connected to ",i.clusterUrl??"deco"]}):i.cluster==="connecting"?aE(_$,{color:"yellow",children:["\u25CC Connecting to ",i.clusterUrl??"deco","\u2026"]}):aE(_$,{color:"red",children:["\u2717 Disconnected from ",i.clusterUrl??"deco"]})}),d1(d$,{children:i.ingressUrl?aE(_$,{color:"green",children:["\u2713 Serving at ",i.ingressUrl]}):d1(_$,{dimColor:!0,children:"\u25CC Starting local server\u2026"})}),d1(d$,{marginBottom:1,children:d1(_$,{dimColor:!0,children:`${"Computer".padEnd(16)}${i.machine??"this computer"} \xB7 ${t.length} of ${i.cap} previews`})}),t.length===0?d1(_$,{dimColor:!0,children:"No previews running yet."}):aE(d$,{flexDirection:"column",children:[aE(d$,{children:[d1(d$,{width:A0i.project,flexShrink:0,marginRight:1,children:d1(_$,{dimColor:!0,wrap:"truncate-end",children:"PROJECT"})}),d1(d$,{width:A0i.status,flexShrink:0,marginRight:1,children:d1(_$,{dimColor:!0,wrap:"truncate-end",children:"STATUS"})}),d1(d$,{flexGrow:1,children:d1(_$,{dimColor:!0,wrap:"truncate-end",children:"PREVIEW URL"})})]}),t.map((u)=>{let l=rFl(u);return aE(d$,{children:[d1(d$,{width:A0i.project,flexShrink:0,marginRight:1,children:d1(_$,{wrap:"truncate-end",children:u.handle})}),d1(d$,{width:A0i.status,flexShrink:0,marginRight:1,children:d1(_$,{color:l.color,wrap:"truncate-end",children:l.text})}),d1(d$,{flexGrow:1,children:d1(_$,{dimColor:!0,wrap:"truncate-end",children:u.previewUrl??"\u2014"})})]},u.handle)})]}),i.daemonError?d1(d$,{marginTop:1,children:aE(_$,{color:"red",children:["\u26A0 ",i.daemonError]})}):null,i.logPath?d1(d$,{marginTop:1,children:aE(_$,{dimColor:!0,children:["Logs: ",i.logPath]})}):null]})}var A0i;var THt=w(()=>{BWi();IWi();AWi();A0i={project:18,status:14}});var BHt={};Gi(BHt,{runLinkCommand:()=>QFl});import{closeSync as xFl,mkdirSync as DFl,openSync as yFl,writeSync as OFl}from"fs";import{homedir as XFl}from"os";import{join as ZHt}from"path";function NFl(i,t){let u={log:console.log,warn:console.warn,error:console.error},l=(n)=>{if(t===void 0)return;try{OFl(t,`${ZWi(n)}
|
|
104398
|
+
Shutting down\u2026`);try{await h.close()}catch{}try{await f.stop()}catch{}try{await n.shutdown()}catch{}E(0)};return process.on("SIGINT",()=>void x()),process.on("SIGTERM",()=>void x()),h.closed.then(()=>{if(i.monitor?.onCluster?.("closed"),!r)console.error("Cluster connection closed permanently; exiting."),x()}),{stopped:v,stop:x}}var OHt=w(()=>{rSi();bH();DYt();NYt();QYt();sKt();gHt();EHt();rHt();jH();DHt()});function ZWi(i){return i.map((t)=>typeof t==="string"?t:String(t)).join(" ")}var I0i;var BWi=w(()=>{I0i={name:"decocms",version:"2.443.1",description:"Deco CMS \u2014 Self-hostable MCP Gateway for managing AI connections and tools",author:"Deco team",repository:{type:"git",url:"git+https://github.com/decocms/studio.git",directory:"apps/mesh"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:'bun run migrate && concurrently "bun run dev:client" "bun run dev:server"',"dev:servers":'concurrently "bun run dev:client" "bun run dev:server"',"dev:client":"vite dev","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts","build:client":"bun --bun vite build","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","db:migrate":"bun run ./dist/server/migrate.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts",test:"bun test","test: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","@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/sandbox":"workspace:*","@decocms/std":"workspace:*","@decocms/vite-plugin":"workspace:*","@floating-ui/react":"^0.27.16","@happy-dom/global-registrator":"^20.9.0","@hookform/resolvers":"^5.2.2","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.29.0","@monaco-editor/react":"^4.7.0","@opentelemetry/api":"^1.9.0","@opentelemetry/api-logs":"^0.211.0","@opentelemetry/exporter-logs-otlp-proto":"^0.211.0","@opentelemetry/exporter-prometheus":"^0.208.0","@opentelemetry/exporter-trace-otlp-proto":"^0.207.0","@opentelemetry/instrumentation-runtime-node":"^0.24.0","@opentelemetry/resources":"^2.6.0","@opentelemetry/sdk-logs":"^0.211.0","@opentelemetry/sdk-metrics":"^2.2.0","@opentelemetry/sdk-node":"^0.207.0","@opentelemetry/sdk-trace-base":"^2.5.0","@playwright/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","lucide-react":"^0.468.0",marked:"^15.0.6","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"}}});var TL={};Gi(TL,{printBanner:()=>lFl,bannerLines:()=>XHt,BANNER_LINES:()=>Y0i,BANNER_GRADIENT:()=>P0i});function uFl(i){let t=Number.parseInt(i.slice(1),16);return[t>>16&255,t>>8&255,t&255]}function XHt(i){let t=Y0i.map((u,l)=>{let[n,f,c]=uFl(P0i[l]);return`\x1B[38;2;${n};${f};${c}m${u}\x1B[39m`});if(i!==void 0)t.push(`\x1B[2m v${i}\x1B[22m`);return t}function lFl(i){console.log("");for(let t of XHt(i))console.log(t);console.log("")}var Y0i,P0i;var zG=w(()=>{Y0i=[" \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 "],P0i=["#00ff64","#00ee5e","#00dc56","#00c84e","#00b444","#00a03c","#008832","#006e28"]});import{Box as nFl,Text as NHt}from"ink";import{jsx as fFl,jsxs as JHt}from"react/jsx-runtime";function S0i({version:i}){return JHt(nFl,{flexDirection:"column",marginTop:1,children:[Y0i.map((t,u)=>fFl(NHt,{color:P0i[u],children:t},u)),JHt(NHt,{dimColor:!0,children:[" v",i]})]})}var IWi=w(()=>{zG()});var FHt={};Gi(FHt,{subscribeLinkState:()=>SWi,setMachine:()=>_Fl,setLogPath:()=>hFl,setIngress:()=>dFl,setDaemonError:()=>gFl,setClusterUrl:()=>$Fl,setCluster:()=>cFl,pushSandboxEvent:()=>EFl,getLinkState:()=>PWi,applySandboxEvent:()=>QHt});function QHt(i,t){let u=new Map(i);if(t.phase==="evicted"||t.phase==="deleted")return u.delete(t.handle),u;let l=u.get(t.handle);return u.set(t.handle,{handle:t.handle,port:t.port??l?.port??null,previewUrl:t.previewUrl??l?.previewUrl??null,status:t.phase,error:t.phase==="failed"?t.error??"failed":null}),u}function gy(){for(let i of YWi)i()}function PWi(){return $$}function SWi(i){return YWi.add(i),()=>YWi.delete(i)}function cFl(i){$$={...$$,cluster:i},gy()}function $Fl(i){$$={...$$,clusterUrl:i},gy()}function dFl(i,t){$$={...$$,ingressPort:i,ingressUrl:t},gy()}function _Fl(i){$$={...$$,machine:i},gy()}function gFl(i){$$={...$$,daemonError:i},gy()}function hFl(i){$$={...$$,logPath:i},gy()}function EFl(i){$$={...$$,sandboxes:QHt($$.sandboxes,i)},gy()}var $$,YWi;var AWi=w(()=>{$$={cluster:"connecting",clusterUrl:null,ingressUrl:null,ingressPort:null,machine:null,cap:20,sandboxes:new Map,daemonError:null,logPath:null},YWi=new Set});var UHt={};Gi(UHt,{LinkApp:()=>wFl});import{Box as d$,Text as _$}from"ink";import{useSyncExternalStore as vFl}from"react";import{jsx as d1,jsxs as aE}from"react/jsx-runtime";function rFl(i){if(i.status==="ready")return{color:"green",text:"\u25CF Live"};if(i.status==="spawning")return{color:"yellow",text:"\u25CC Starting\u2026"};return{color:"red",text:`\u2717 Error: ${i.error??""}`}}function wFl(){let i=vFl(SWi,PWi),t=[...i.sandboxes.values()].sort((u,l)=>u.handle.localeCompare(l.handle));return aE(d$,{flexDirection:"column",children:[d1(S0i,{version:I0i.version}),d1(d$,{marginBottom:1,children:d1(_$,{dimColor:!0,children:"\u2500".repeat(80)})}),d1(d$,{children:i.cluster==="linked"?aE(_$,{color:"green",children:["\u2713 Connected to ",i.clusterUrl??"deco"]}):i.cluster==="connecting"?aE(_$,{color:"yellow",children:["\u25CC Connecting to ",i.clusterUrl??"deco","\u2026"]}):aE(_$,{color:"red",children:["\u2717 Disconnected from ",i.clusterUrl??"deco"]})}),d1(d$,{children:i.ingressUrl?aE(_$,{color:"green",children:["\u2713 Serving at ",i.ingressUrl]}):d1(_$,{dimColor:!0,children:"\u25CC Starting local server\u2026"})}),d1(d$,{marginBottom:1,children:d1(_$,{dimColor:!0,children:`${"Computer".padEnd(16)}${i.machine??"this computer"} \xB7 ${t.length} of ${i.cap} previews`})}),t.length===0?d1(_$,{dimColor:!0,children:"No previews running yet."}):aE(d$,{flexDirection:"column",children:[aE(d$,{children:[d1(d$,{width:A0i.project,flexShrink:0,marginRight:1,children:d1(_$,{dimColor:!0,wrap:"truncate-end",children:"PROJECT"})}),d1(d$,{width:A0i.status,flexShrink:0,marginRight:1,children:d1(_$,{dimColor:!0,wrap:"truncate-end",children:"STATUS"})}),d1(d$,{flexGrow:1,children:d1(_$,{dimColor:!0,wrap:"truncate-end",children:"PREVIEW URL"})})]}),t.map((u)=>{let l=rFl(u);return aE(d$,{children:[d1(d$,{width:A0i.project,flexShrink:0,marginRight:1,children:d1(_$,{wrap:"truncate-end",children:u.handle})}),d1(d$,{width:A0i.status,flexShrink:0,marginRight:1,children:d1(_$,{color:l.color,wrap:"truncate-end",children:l.text})}),d1(d$,{flexGrow:1,children:d1(_$,{dimColor:!0,wrap:"truncate-end",children:u.previewUrl??"\u2014"})})]},u.handle)})]}),i.daemonError?d1(d$,{marginTop:1,children:aE(_$,{color:"red",children:["\u26A0 ",i.daemonError]})}):null,i.logPath?d1(d$,{marginTop:1,children:aE(_$,{dimColor:!0,children:["Logs: ",i.logPath]})}):null]})}var A0i;var THt=w(()=>{BWi();IWi();AWi();A0i={project:18,status:14}});var BHt={};Gi(BHt,{runLinkCommand:()=>QFl});import{closeSync as xFl,mkdirSync as DFl,openSync as yFl,writeSync as OFl}from"fs";import{homedir as XFl}from"os";import{join as ZHt}from"path";function NFl(i,t){let u={log:console.log,warn:console.warn,error:console.error},l=(n)=>{if(t===void 0)return;try{OFl(t,`${ZWi(n)}
|
|
104399
104399
|
`)}catch{}};return console.log=(...n)=>l(n),console.warn=(...n)=>l(n),console.error=(...n)=>{l(n),i(ZWi(n))},()=>{console.log=u.log,console.warn=u.warn,console.error=u.error}}async function JFl(i,t){let u;try{u=await fetch(`${i}/api/links/me`,{headers:{authorization:`Bearer ${t}`},signal:AbortSignal.timeout(1e4)})}catch{return}if(u.status===401||u.status===403)throw Error(`Authentication rejected by ${i} \u2014 the session token was not accepted. `+`Run \`deco auth login --target ${i}\` and try again.`)}async function QFl(i={}){let t=i.port??5174,u=i.dataDir??process.env.DATA_DIR??process.env.DECOCMS_HOME??ZHt(XFl(),"deco"),l=i.clusterBaseUrl??process.env.MESH_CLUSTER_URL??"https://studio.decocms.com",n,f;try{let c=await zui({dataDir:u,intent:"Link",target:l});if(process.env.DECOCMS_LINK_MANAGED!=="1")await JFl(l,c.accessToken);let $;if(i.tui){let{render:_}=await import("ink"),{createElement:g}=await import("react"),{LinkApp:h}=await Promise.resolve().then(() => (THt(),UHt)),{pushSandboxEvent:E,setCluster:v,setClusterUrl:r,setDaemonError:x,setIngress:D,setLogPath:O,setMachine:X}=await Promise.resolve().then(() => (AWi(),FHt));DFl(u,{recursive:!0});let N=ZHt(u,"link.log");f=yFl(N,"a"),O(N),r(l),v("connecting"),$={onEvent:(J)=>E(J),onIngress:(J)=>D(J,`http://127.0.0.1:${J}`),onCluster:(J)=>v(J),onMachine:(J)=>X(J)},n=NFl(x,f),_(g(h),{patchConsole:!1})}else if(i.banner!==!1){let{printBanner:_}=await Promise.resolve().then(() => (zG(),TL));_(i.version??"0.0.0")}return await(await yHt({port:t,clusterBaseUrl:l,dataDir:u,session:c,monitor:$,logFd:f,hotReload:i.hotReload})).stopped}catch(c){return n?.(),console.error(c instanceof Error?c.message:String(c)),1}finally{if(n?.(),f!==void 0)try{xFl(f)}catch{}}}var IHt=w(()=>{vSi();OHt()});var YHt={};Gi(YHt,{migrateBetterAuth:()=>GWi});import{getMigrations as FFl}from"better-auth/db";import{sso as UFl}from"@better-auth/sso";import{organization as TFl}from"@decocms/better-auth/plugins";import{admin as ZFl,apiKey as BFl,jwt as IFl,magicLink as YFl,mcp as PFl,openAPI as SFl}from"better-auth/plugins";import{emailOTP as AFl}from"better-auth/plugins/email-otp";async function GWi(i){let u={database:AH(i||kw()),plugins:[TFl({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),ZFl(),BFl(),IFl(),SFl(),PFl({loginPage:"/login"}),UFl(),YFl({sendMagicLink:async()=>{}}),AFl({sendVerificationOTP:async()=>{}})]},{toBeAdded:l,toBeCreated:n,runMigrations:f}=await FFl(u);if(!l.length&&!n.length)return"up to date";return await f(),`${n.length+l.length} table(s) migrated`}var WWi=w(()=>{Qd()});var kWi={};Gi(kWi,{up:()=>GFl,down:()=>WFl});import{sql as oE}from"kysely";async function GFl(i){await i.schema.createTable("connections").addColumn("id","text",(t)=>t.primaryKey()).addColumn("organizationId","text",(t)=>t.notNull().references("organization.id").onDelete("cascade")).addColumn("createdById","text",(t)=>t.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(t)=>t.notNull()).addColumn("description","text").addColumn("icon","text").addColumn("appName","text").addColumn("appId","text").addColumn("connectionType","text",(t)=>t.notNull()).addColumn("connectionUrl","text",(t)=>t.notNull()).addColumn("connectionToken","text").addColumn("connectionHeaders","text").addColumn("oauthConfig","text").addColumn("metadata","text").addColumn("tools","text").addColumn("bindings","text").addColumn("status","text",(t)=>t.notNull().defaultTo("active")).addColumn("createdAt","text",(t)=>t.notNull().defaultTo(oE`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(t)=>t.notNull().defaultTo(oE`CURRENT_TIMESTAMP`)).execute(),await i.schema.createTable("api_keys").addColumn("id","text",(t)=>t.primaryKey()).addColumn("userId","text",(t)=>t.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(t)=>t.notNull()).addColumn("hashedKey","text",(t)=>t.notNull().unique()).addColumn("permissions","text",(t)=>t.notNull()).addColumn("expiresAt","text").addColumn("remaining","integer").addColumn("metadata","text").addColumn("createdAt","text",(t)=>t.notNull().defaultTo(oE`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(t)=>t.notNull().defaultTo(oE`CURRENT_TIMESTAMP`)).execute(),await i.schema.createTable("audit_logs").addColumn("id","text",(t)=>t.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(t)=>t.references("user.id").onDelete("set null")).addColumn("connectionId","text",(t)=>t.references("connections.id").onDelete("set null")).addColumn("toolName","text",(t)=>t.notNull()).addColumn("allowed","integer",(t)=>t.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(t)=>t.notNull().defaultTo(oE`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await i.schema.createTable("oauth_clients").addColumn("id","text",(t)=>t.primaryKey()).addColumn("clientId","text",(t)=>t.notNull().unique()).addColumn("clientSecret","text").addColumn("clientName","text",(t)=>t.notNull()).addColumn("redirectUris","text",(t)=>t.notNull()).addColumn("grantTypes","text",(t)=>t.notNull()).addColumn("scope","text").addColumn("clientUri","text").addColumn("logoUri","text").addColumn("createdAt","text",(t)=>t.notNull().defaultTo(oE`CURRENT_TIMESTAMP`)).execute(),await i.schema.createTable("oauth_authorization_codes").addColumn("code","text",(t)=>t.primaryKey()).addColumn("clientId","text",(t)=>t.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(t)=>t.notNull().references("user.id").onDelete("cascade")).addColumn("redirectUri","text",(t)=>t.notNull()).addColumn("scope","text").addColumn("codeChallenge","text").addColumn("codeChallengeMethod","text").addColumn("expiresAt","text",(t)=>t.notNull()).addColumn("createdAt","text",(t)=>t.notNull().defaultTo(oE`CURRENT_TIMESTAMP`)).execute(),await i.schema.createTable("oauth_refresh_tokens").addColumn("token","text",(t)=>t.primaryKey()).addColumn("clientId","text",(t)=>t.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(t)=>t.notNull().references("user.id").onDelete("cascade")).addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(t)=>t.notNull().defaultTo(oE`CURRENT_TIMESTAMP`)).execute(),await i.schema.createTable("downstream_tokens").addColumn("id","text",(t)=>t.primaryKey()).addColumn("connectionId","text",(t)=>t.notNull().references("connections.id").onDelete("cascade")).addColumn("userId","text",(t)=>t.references("user.id").onDelete("cascade")).addColumn("accessToken","text",(t)=>t.notNull()).addColumn("refreshToken","text").addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(t)=>t.notNull().defaultTo(oE`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(t)=>t.notNull().defaultTo(oE`CURRENT_TIMESTAMP`)).execute(),await i.schema.createIndex("idx_connections_organizationId").on("connections").column("organizationId").execute(),await i.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await i.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await i.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}async function WFl(i){await i.schema.dropTable("downstream_tokens").execute(),await i.schema.dropTable("oauth_refresh_tokens").execute(),await i.schema.dropTable("oauth_authorization_codes").execute(),await i.schema.dropTable("oauth_clients").execute(),await i.schema.dropTable("audit_logs").execute(),await i.schema.dropTable("api_keys").execute(),await i.schema.dropTable("connections").execute()}var PHt=()=>{};var jWi={};Gi(jWi,{up:()=>kFl,down:()=>jFl});import{sql as SHt}from"kysely";async function kFl(i){await i.schema.createTable("organization_settings").addColumn("organizationId","text",(t)=>t.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(t)=>t.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(t)=>t.notNull().defaultTo(SHt`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(t)=>t.notNull().defaultTo(SHt`CURRENT_TIMESTAMP`)).execute()}async function jFl(i){await i.schema.dropTable("organization_settings").execute()}var AHt=()=>{};var bWi={};Gi(bWi,{up:()=>bFl,down:()=>zFl});async function bFl(i){await i.schema.alterTable("connections").renameColumn("name","title").execute(),await i.schema.alterTable("connections").renameColumn("createdById","created_by").execute(),await i.schema.alterTable("connections").renameColumn("createdAt","created_at").execute(),await i.schema.alterTable("connections").renameColumn("updatedAt","updated_at").execute(),await i.schema.alterTable("connections").renameColumn("organizationId","organization_id").execute(),await i.schema.alterTable("connections").renameColumn("connectionType","connection_type").execute(),await i.schema.alterTable("connections").renameColumn("connectionUrl","connection_url").execute(),await i.schema.alterTable("connections").renameColumn("connectionToken","connection_token").execute(),await i.schema.alterTable("connections").renameColumn("connectionHeaders","connection_headers").execute(),await i.schema.alterTable("connections").renameColumn("oauthConfig","oauth_config").execute(),await i.schema.alterTable("connections").renameColumn("appName","app_name").execute(),await i.schema.alterTable("connections").renameColumn("appId","app_id").execute()}async function zFl(i){await i.schema.alterTable("connections").renameColumn("title","name").execute(),await i.schema.alterTable("connections").renameColumn("created_by","createdById").execute(),await i.schema.alterTable("connections").renameColumn("created_at","createdAt").execute(),await i.schema.alterTable("connections").renameColumn("updated_at","updatedAt").execute(),await i.schema.alterTable("connections").renameColumn("organization_id","organizationId").execute(),await i.schema.alterTable("connections").renameColumn("connection_type","connectionType").execute(),await i.schema.alterTable("connections").renameColumn("connection_url","connectionUrl").execute(),await i.schema.alterTable("connections").renameColumn("connection_token","connectionToken").execute(),await i.schema.alterTable("connections").renameColumn("connection_headers","connectionHeaders").execute(),await i.schema.alterTable("connections").renameColumn("oauth_config","oauthConfig").execute(),await i.schema.alterTable("connections").renameColumn("app_name","appName").execute(),await i.schema.alterTable("connections").renameColumn("app_id","appId").execute()}var zWi={};Gi(zWi,{up:()=>KFl,down:()=>HFl});async function KFl(i){await i.schema.createTable("organization_settings_new").addColumn("organizationId","text",(t)=>t.primaryKey().references("organization.id").onDelete("cascade")).addColumn("createdAt","text",(t)=>t.notNull()).addColumn("updatedAt","text",(t)=>t.notNull()).execute(),await i.insertInto("organization_settings_new").columns(["organizationId","createdAt","updatedAt"]).expression((t)=>t.selectFrom("organization_settings").select(["organizationId","createdAt","updatedAt"])).execute(),await i.schema.dropTable("organization_settings").execute(),await i.schema.alterTable("organization_settings_new").renameTo("organization_settings").execute()}async function HFl(i){await i.schema.createTable("organization_settings_new").addColumn("organizationId","text",(t)=>t.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(t)=>t.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(t)=>t.notNull()).addColumn("updatedAt","text",(t)=>t.notNull()).execute(),await i.insertInto("organization_settings_new").columns(["organizationId","modelsBindingConnectionId","createdAt","updatedAt"]).expression((t)=>t.selectFrom("organization_settings").select(["organizationId",t.val(null).as("modelsBindingConnectionId"),"createdAt","updatedAt"])).execute(),await i.schema.dropTable("organization_settings").execute(),await i.schema.alterTable("organization_settings_new").renameTo("organization_settings").execute()}var KWi={};Gi(KWi,{up:()=>LFl,down:()=>RFl});async function LFl(i){await i.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await i.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function RFl(i){await i.schema.alterTable("connections").dropColumn("configuration_state").execute(),await i.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var HWi={};Gi(HWi,{up:()=>CFl,down:()=>MFl});import{sql as eFl}from"kysely";async function CFl(i){await i.schema.alterTable("organization_settings").addColumn("sidebar_items",eFl`text`).execute()}async function MFl(i){await i.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var GHt=()=>{};var LWi={};Gi(LWi,{up:()=>qFl,down:()=>VFl});async function qFl(i){await i.schema.createTable("monitoring_logs").addColumn("id","text",(t)=>t.primaryKey()).addColumn("organization_id","text",(t)=>t.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(t)=>t.notNull().references("connections.id").onDelete("cascade")).addColumn("connection_title","text",(t)=>t.notNull()).addColumn("tool_name","text",(t)=>t.notNull()).addColumn("input","text",(t)=>t.notNull()).addColumn("output","text",(t)=>t.notNull()).addColumn("is_error","integer",(t)=>t.notNull()).addColumn("error_message","text").addColumn("duration_ms","integer",(t)=>t.notNull()).addColumn("timestamp","text",(t)=>t.notNull()).addColumn("user_id","text").addColumn("request_id","text",(t)=>t.notNull()).execute(),await i.schema.createIndex("monitoring_logs_org_timestamp").on("monitoring_logs").columns(["organization_id","timestamp"]).execute(),await i.schema.createIndex("monitoring_logs_connection_timestamp").on("monitoring_logs").columns(["connection_id","timestamp"]).execute(),await i.schema.createIndex("monitoring_logs_is_error").on("monitoring_logs").columns(["organization_id","is_error","timestamp"]).execute()}async function VFl(i){await i.schema.dropIndex("monitoring_logs_is_error").execute(),await i.schema.dropIndex("monitoring_logs_connection_timestamp").execute(),await i.schema.dropIndex("monitoring_logs_org_timestamp").execute(),await i.schema.dropTable("monitoring_logs").execute()}var RWi={};Gi(RWi,{up:()=>mFl,down:()=>aFl});import{sql as ZL}from"kysely";async function mFl(i){await i.schema.createTable("events").addColumn("id","text",(t)=>t.primaryKey()).addColumn("organization_id","text",(t)=>t.notNull().references("organization.id").onDelete("cascade")).addColumn("type","text",(t)=>t.notNull()).addColumn("source","text",(t)=>t.notNull()).addColumn("specversion","text",(t)=>t.notNull().defaultTo("1.0")).addColumn("subject","text").addColumn("time","text",(t)=>t.notNull()).addColumn("datacontenttype","text",(t)=>t.notNull().defaultTo("application/json")).addColumn("dataschema","text").addColumn("data","text").addColumn("cron","varchar(255)").addColumn("status","text",(t)=>t.notNull().defaultTo("pending")).addColumn("attempts","integer",(t)=>t.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("next_retry_at","text").addColumn("created_at","text",(t)=>t.notNull().defaultTo(ZL`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(t)=>t.notNull().defaultTo(ZL`CURRENT_TIMESTAMP`)).execute(),await i.schema.createTable("event_subscriptions").addColumn("id","text",(t)=>t.primaryKey()).addColumn("organization_id","text",(t)=>t.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(t)=>t.notNull().references("connections.id").onDelete("cascade")).addColumn("publisher","text").addColumn("event_type","text",(t)=>t.notNull()).addColumn("filter","text").addColumn("enabled","integer",(t)=>t.notNull().defaultTo(1)).addColumn("created_at","text",(t)=>t.notNull().defaultTo(ZL`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(t)=>t.notNull().defaultTo(ZL`CURRENT_TIMESTAMP`)).execute(),await i.schema.createTable("event_deliveries").addColumn("id","text",(t)=>t.primaryKey()).addColumn("event_id","text",(t)=>t.notNull()).addColumn("subscription_id","text",(t)=>t.notNull().references("event_subscriptions.id").onDelete("cascade")).addColumn("status","text",(t)=>t.notNull().defaultTo("pending")).addColumn("attempts","integer",(t)=>t.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("delivered_at","text").addColumn("next_retry_at","text").addColumn("created_at","text",(t)=>t.notNull().defaultTo(ZL`CURRENT_TIMESTAMP`)).execute(),await i.schema.createIndex("idx_events_org_status").on("events").columns(["organization_id","status"]).execute(),await i.schema.createIndex("idx_events_source").on("events").columns(["source"]).execute(),await i.schema.createIndex("idx_events_type").on("events").columns(["type"]).execute(),await i.schema.createIndex("idx_events_retry").on("events").columns(["status","next_retry_at"]).execute(),await i.schema.createIndex("idx_subscriptions_connection").on("event_subscriptions").columns(["connection_id"]).execute(),await i.schema.createIndex("idx_subscriptions_type").on("event_subscriptions").columns(["event_type"]).execute(),await i.schema.createIndex("idx_subscriptions_org_enabled").on("event_subscriptions").columns(["organization_id","enabled"]).execute(),await i.schema.createIndex("idx_subscriptions_unique").on("event_subscriptions").columns(["connection_id","event_type","publisher","filter"]).unique().execute(),await i.schema.createIndex("idx_deliveries_event").on("event_deliveries").columns(["event_id"]).execute(),await i.schema.createIndex("idx_deliveries_subscription_status").on("event_deliveries").columns(["subscription_id","status"]).execute(),await i.schema.createIndex("idx_deliveries_retry").on("event_deliveries").columns(["status","next_retry_at"]).execute()}async function aFl(i){await i.schema.dropIndex("idx_deliveries_retry").execute(),await i.schema.dropIndex("idx_deliveries_subscription_status").execute(),await i.schema.dropIndex("idx_deliveries_event").execute(),await i.schema.dropIndex("idx_subscriptions_unique").execute(),await i.schema.dropIndex("idx_subscriptions_org_enabled").execute(),await i.schema.dropIndex("idx_subscriptions_type").execute(),await i.schema.dropIndex("idx_subscriptions_connection").execute(),await i.schema.dropIndex("idx_events_retry").execute(),await i.schema.dropIndex("idx_events_type").execute(),await i.schema.dropIndex("idx_events_source").execute(),await i.schema.dropIndex("idx_events_org_status").execute(),await i.schema.dropTable("event_deliveries").execute(),await i.schema.dropTable("event_subscriptions").execute(),await i.schema.dropTable("events").execute()}var WHt=()=>{};var eWi={};Gi(eWi,{up:()=>sFl,down:()=>pFl});import{sql as oFl}from"kysely";async function sFl(i){await i.schema.dropTable("audit_logs").ifExists().execute()}async function pFl(i){await i.schema.createTable("audit_logs").ifNotExists().addColumn("id","text",(t)=>t.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(t)=>t.references("user.id").onDelete("set null")).addColumn("connectionId","text",(t)=>t.references("connections.id").onDelete("set null")).addColumn("toolName","text",(t)=>t.notNull()).addColumn("allowed","integer",(t)=>t.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(t)=>t.notNull().defaultTo(oFl`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await i.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await i.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await i.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}var kHt=()=>{};var CWi={};Gi(CWi,{up:()=>iUl,down:()=>tUl});import{sql as G0i}from"kysely";async function iUl(i){await i.schema.createTable("gateways").addColumn("id","text",(t)=>t.primaryKey()).addColumn("organization_id","text",(t)=>t.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(t)=>t.notNull()).addColumn("description","text").addColumn("tool_selection_strategy","text").addColumn("status","text",(t)=>t.notNull().defaultTo("active")).addColumn("is_default","integer",(t)=>t.notNull().defaultTo(0)).addColumn("created_at","text",(t)=>t.notNull().defaultTo(G0i`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(t)=>t.notNull().defaultTo(G0i`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(t)=>t.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await i.schema.createTable("gateway_connections").addColumn("id","text",(t)=>t.primaryKey()).addColumn("gateway_id","text",(t)=>t.notNull().references("gateways.id").onDelete("cascade")).addColumn("connection_id","text",(t)=>t.notNull().references("connections.id").onDelete("cascade")).addColumn("selected_tools","text").addColumn("created_at","text",(t)=>t.notNull().defaultTo(G0i`CURRENT_TIMESTAMP`)).execute(),await i.schema.createIndex("idx_gateways_org").on("gateways").columns(["organization_id"]).execute(),await i.schema.createIndex("idx_gateways_org_status").on("gateways").columns(["organization_id","status"]).execute(),await G0i`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(i),await i.schema.createIndex("idx_gateway_connections_gateway").on("gateway_connections").columns(["gateway_id"]).execute(),await i.schema.createIndex("idx_gateway_connections_connection").on("gateway_connections").columns(["connection_id"]).execute(),await i.schema.createIndex("idx_gateway_connections_unique").on("gateway_connections").columns(["gateway_id","connection_id"]).unique().execute()}async function tUl(i){await i.schema.dropIndex("idx_gateway_connections_unique").execute(),await i.schema.dropIndex("idx_gateway_connections_connection").execute(),await i.schema.dropIndex("idx_gateway_connections_gateway").execute(),await i.schema.dropIndex("idx_gateways_default_per_org").execute(),await i.schema.dropIndex("idx_gateways_org_status").execute(),await i.schema.dropIndex("idx_gateways_org").execute(),await i.schema.dropTable("gateway_connections").execute(),await i.schema.dropTable("gateways").execute()}var jHt=()=>{};var MWi={};Gi(MWi,{up:()=>uUl,down:()=>lUl});async function uUl(i){await i.schema.alterTable("gateways").addColumn("icon","text").execute()}async function lUl(i){await i.schema.alterTable("gateways").dropColumn("icon").execute()}var qWi={};Gi(qWi,{up:()=>nUl,down:()=>fUl});import{sql as W0i}from"kysely";async function nUl(i){await i.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(t)=>t.notNull().defaultTo("inclusion")).execute(),await W0i`
|
|
104400
104400
|
UPDATE gateways
|
|
104401
104401
|
SET tool_selection_mode = CASE
|
|
@@ -107725,7 +107725,7 @@ Respond with a JSON object containing the title.`,UTu=(i)=>/[\p{L}\p{N}]/u.test(
|
|
|
107725
107725
|
`),images:t.localImages,...u.length>0?{warnings:u}:{}}}function qOi({message:i,code:t,exitCode:u,stderr:l,promptExcerpt:n,provider:f="exec",isRetryable:c=!1}){return new xm({message:i,isRetryable:c,url:f==="app-server"?"codex-cli://app-server":"codex-cli://exec",requestBodyValues:n?{prompt:n}:void 0,data:{code:t,exitCode:u,stderr:l,promptExcerpt:n}})}function VF0(i){return new bOi({message:i||"Authentication failed. Ensure Codex CLI is logged in (codex login)."})}function mOi(){return{inputTokens:{total:void 0,noCache:void 0,cacheRead:void 0,cacheWrite:void 0},outputTokens:{total:void 0,text:void 0,reasoning:void 0},raw:void 0}}function mF0(i){switch(i){case"stop":case"end_turn":case void 0:return{unified:"stop",raw:i};case"length":case"max_tokens":return{unified:"length",raw:i};case"content_filter":return{unified:"content-filter",raw:i};case"tool_calls":return{unified:"tool-calls",raw:i};case"error":return{unified:"error",raw:i};default:return{unified:"other",raw:i}}}function aF0(i){return typeof i==="object"&&i!==null&&!Array.isArray(i)&&Object.prototype.toString.call(i)==="[object Object]"}function Qm(i){if(typeof i!=="object"||i===null)return i;if(Array.isArray(i))return i.map((l)=>Qm(l));let t=i,u={};for(let[l,n]of Object.entries(t)){if(l==="properties"&&typeof n==="object"&&n!==null&&!Array.isArray(n)){let f=n,c={};for(let[$,d]of Object.entries(f))c[$]=Qm(d);u[l]=c;continue}if(l==="$schema"||l==="$id"||l==="$ref"||l==="$defs"||l==="definitions"||l==="title"||l==="examples"||l==="default"||l==="format"||l==="pattern")continue;u[l]=Qm(n)}return u}function gZu(i){if(typeof i==="string")return i;try{return JSON.stringify(i)}catch{return String(i)}}function _lt(i,t){if(t!==void 0){if(Object.keys(t).length===0)return{};return{...i??{},...t}}if(i)return{...i};return}function hZu(i,t){if(!i||i.transport!==t.transport)return{...t};if(t.transport==="stdio"){let $=i;return{transport:"stdio",command:t.command,args:t.args??$.args,env:_lt($.env,t.env),cwd:t.cwd??$.cwd,enabled:t.enabled??i.enabled,startupTimeoutSec:t.startupTimeoutSec??i.startupTimeoutSec,toolTimeoutSec:t.toolTimeoutSec??i.toolTimeoutSec,enabledTools:t.enabledTools??i.enabledTools,disabledTools:t.disabledTools??i.disabledTools}}let u=i,l=t.bearerToken!==void 0||t.bearerTokenEnvVar!==void 0,n=l?t.bearerToken:u.bearerToken,f=l?t.bearerTokenEnvVar:u.bearerTokenEnvVar;return{transport:"http",url:t.url,bearerToken:n,bearerTokenEnvVar:f,httpHeaders:_lt(u.httpHeaders,t.httpHeaders),envHttpHeaders:_lt(u.envHttpHeaders,t.envHttpHeaders),enabled:t.enabled??i.enabled,startupTimeoutSec:t.startupTimeoutSec??i.startupTimeoutSec,toolTimeoutSec:t.toolTimeoutSec??i.toolTimeoutSec,enabledTools:t.enabledTools??i.enabledTools,disabledTools:t.disabledTools??i.disabledTools}}function oF0(i,t){if(!i&&!t)return;let u={};for(let[n,f]of Object.entries(i??{})){let c=sb(n);u[c]=f}if(!t)return u;let l={...u};for(let[n,f]of Object.entries(t)){let c=sb(n),$=l[c];l[c]=hZu($,f)}return l}function EZu(i){let t=[],u=(l,n)=>{if(l!==void 0)t.push({type:"unsupported",feature:n,details:`Codex CLI does not support ${n}; it will be ignored.`})};return u(i.temperature,"temperature"),u(i.topP,"topP"),u(i.topK,"topK"),u(i.maxOutputTokens,"maxOutputTokens"),u(i.presencePenalty,"presencePenalty"),u(i.frequencyPenalty,"frequencyPenalty"),u(i.stopSequences?.length?i.stopSequences:void 0,"stopSequences"),u(i.seed,"seed"),u(i.tools,"tools"),u(i.toolChoice,"toolChoice"),t}function sF0(i,t){let u={},l=(n,f)=>{VTu(n),u[n]=f};if(t!==void 0)l("features.rmcp_client",t);if(!i)return u;for(let[n,f]of Object.entries(i)){let $=`mcp_servers.${sb(n)}`;if(f.enabled!==void 0)l(`${$}.enabled`,f.enabled);if(f.startupTimeoutSec!==void 0)l(`${$}.startup_timeout_sec`,f.startupTimeoutSec);if(f.toolTimeoutSec!==void 0)l(`${$}.tool_timeout_sec`,f.toolTimeoutSec);if(f.enabledTools!==void 0)l(`${$}.enabled_tools`,f.enabledTools);if(f.disabledTools!==void 0)l(`${$}.disabled_tools`,f.disabledTools);if(f.transport==="stdio"){if(l(`${$}.command`,f.command),f.args!==void 0)l(`${$}.args`,f.args);if(f.env!==void 0)l(`${$}.env`,f.env);if(f.cwd)l(`${$}.cwd`,f.cwd)}else{if(l(`${$}.url`,f.url),f.bearerToken!==void 0)l(`${$}.bearer_token`,f.bearerToken);if(f.bearerTokenEnvVar!==void 0)l(`${$}.bearer_token_env_var`,f.bearerTokenEnvVar);if(f.httpHeaders!==void 0)l(`${$}.http_headers`,f.httpHeaders);if(f.envHttpHeaders!==void 0)l(`${$}.env_http_headers`,f.envHttpHeaders)}}return u}function iU0(i,t){if(i){let u=i.toLowerCase();if(u.endsWith(".js")||u.endsWith(".mjs")||u.endsWith(".cjs"))return{cmd:"node",args:[i]};return{cmd:i,args:[]}}try{return{cmd:"node",args:[eTu(import.meta.url).resolve("@openai/codex/package.json").replace(/package\.json$/,"")+"bin/codex.js"]}}catch{if(t)return{cmd:"npx",args:["-y","@openai/codex"]};return{cmd:"codex",args:[]}}}function uU0(i={}){let t=Fm(i.defaultSettings?.logger);if(i.defaultSettings){let n=YTu(i.defaultSettings);if(!n.valid)throw Error(`Invalid default settings: ${n.errors.join(", ")}`);for(let f of n.warnings)t.warn(`Codex CLI Provider: ${f}`)}let u=(n,f={})=>{let c={...i.defaultSettings,...f},$=YTu(c);if(!$.valid)throw Error(`Invalid settings: ${$.errors.join(", ")}`);for(let d of $.warnings)t.warn(`Codex CLI: ${d}`);return new tU0({id:n,settings:c})},l=Object.assign(function(n,f){if(new.target)throw Error("The Codex CLI provider function cannot be called with new.");return u(n,f)},{specificationVersion:"v3"});return l.languageModel=u,l.chat=u,l.embeddingModel=(n)=>{throw new K6({modelId:n,modelType:"embeddingModel"})},l.imageModel=(n)=>{throw new K6({modelId:n,modelType:"imageModel"})},l}function lU0(i){switch(i.type){case"text":return{type:"text",text:i.text,text_elements:[]};case"image":return{type:"image",url:i.imageUrl,imageUrl:i.imageUrl};case"localImage":return{type:"localImage",path:i.path};default:throw Error(`Unsupported input type: ${String(i)}`)}}function vZu(i){return i.toLowerCase()}function WTu(i){let t=vZu(i.type);if(t==="commandexecution")return{toolName:"exec"};if(t==="filechange")return{toolName:"patch"};if(t==="mcptoolcall"){let u=typeof i.server==="string"?i.server||"server":"server",l=typeof i.tool==="string"?i.tool||"tool":"tool";return{toolName:`mcp__${u}__${l}`,dynamic:!0}}if(t==="websearch")return{toolName:"web_search"};return}function cU0(i){let t=(n)=>(f)=>{if(!i.isSameTurn(f)||typeof f.delta!=="string")return;let c=typeof f.itemId==="string"?f.itemId:Tn();i.reasoningItemIdsWithDelta.add(c),i.emitter.emitReasoningDelta(f.delta,n,c)},u=(n)=>{if(!i.isSameTurn(n))return;if(!n.item||typeof n.item!=="object")return;let f=n.item,c=vZu(f.type);if(c==="agentmessage"){let g=typeof f.id==="string"?f.id:Tn(),h=f.text;if(!i.textItemIdsWithDelta.has(g)&&typeof h==="string"&&h.length>0)i.emitter.emitTextDelta(h,g);return}if(c==="reasoning"){let g=typeof f.id==="string"?f.id:Tn();if(!i.reasoningItemIdsWithDelta.has(g)){let{summary:h,content:E}=f;if(Array.isArray(h)&&h.length>0)i.emitter.emitReasoningDelta(h.join(`
|
|
107726
107726
|
`),!0,g);if(typeof h==="string"&&h.length>0)i.emitter.emitReasoningDelta(h,!0,g);if(Array.isArray(E)&&E.length>0)i.emitter.emitReasoningDelta(E.join(`
|
|
107727
107727
|
`),!1,g);if(typeof E==="string"&&E.length>0)i.emitter.emitReasoningDelta(E,!1,g)}return}let $=WTu(f);if(!$)return;let d=typeof f.id==="string"?f.id:Tn(),_=i.toolTracker.complete(d,$,typeof f.durationMs==="number"?f.durationMs:void 0);i.emitter.emitToolResult(d,_.toolName,f,_.dynamic,f.status==="failed")},l=(n)=>(f)=>{if(!i.isSameTurn(f)||typeof f.delta!=="string")return;let c=typeof f.itemId==="string"?f.itemId:Tn(),$=i.toolTracker.get(c);i.emitter.emitToolOutputDelta(c,$?.toolName??n,f.delta)};return{"item/agentMessage/delta":(n)=>{if(!i.isSameTurn(n)||typeof n.delta!=="string")return;let f=typeof n.itemId==="string"?n.itemId:Tn();i.textItemIdsWithDelta.add(f),i.emitter.emitTextDelta(n.delta,f)},reasoningTextDelta:t(!1),"item/reasoning/textDelta":t(!1),reasoningSummaryTextDelta:t(!0),"item/reasoning/summaryTextDelta":t(!0),"item/started":(n)=>{if(!i.isSameTurn(n))return;if(!n.item||typeof n.item!=="object")return;let f=n.item,c=WTu(f);if(!c)return;let $=typeof f.id==="string"?f.id:Tn();i.toolTracker.start($,c),i.emitter.emitToolCall($,c.toolName,gZu(f),c.dynamic)},"item/completed":u,"item/commandExecution/outputDelta":l("exec"),"item/fileChange/outputDelta":l("patch"),"thread/tokenUsage/updated":(n)=>{if(!i.isSameTurn(n))return;let c=n.tokenUsage?.last;if(!c)return;i.onUsage({inputTokens:{total:c.inputTokens,noCache:Math.max(0,c.inputTokens-c.cachedInputTokens),cacheRead:c.cachedInputTokens,cacheWrite:0},outputTokens:{total:c.outputTokens,text:void 0,reasoning:c.reasoningOutputTokens},raw:c??void 0})},"turn/completed":(n)=>{if(!n.turn||typeof n.turn!=="object")return;let f=n.turn,c=i.getBoundTurnId();if(c&&f.id!==c)return;i.onTurnCompleted(f)},error:(n)=>{if(!i.isSameTurn(n))return;if(n.willRetry===!0)return;let f=n.error;if(f&&typeof f==="object"&&typeof f.message==="string")i.onError(Error(f.message))}}}function $U0(i){return{"item/commandExecution/requestApproval":(t)=>{if(!i.isSameTurn(t))return;let u=typeof t.itemId==="string"?t.itemId:Tn();i.emitter.emitApprovalRequest(u)},"item/fileChange/requestApproval":(t)=>{if(!i.isSameTurn(t))return;let u=typeof t.itemId==="string"?t.itemId:Tn();i.emitter.emitApprovalRequest(u)}}}function hU0(i,t){return new Promise((u)=>{let l=!1,n=setTimeout(()=>{if(l)return;l=!0,u(void 0)},t);i.then((f)=>{if(l)return;l=!0,clearTimeout(n),u(f)}).catch(()=>{if(l)return;l=!0,clearTimeout(n),u(void 0)})})}function EU0(i){let t=String(i?.message??i);return/thread.*not found/i.test(t)}function vU0(i){return Error(`Thread '${i}' not found after server restart. Create a new thread by omitting threadId.`)}function rU0(i){switch(i.status){case"completed":return{unified:"stop",raw:"completed"};case"interrupted":return{unified:"stop",raw:"interrupted"};case"failed":{let t=i.error?.codexErrorInfo;if(t==="contextWindowExceeded")return{unified:"length",raw:"context_window_exceeded"};if(t==="usageLimitExceeded")return{unified:"length",raw:"usage_limit_exceeded"};return{unified:"error",raw:i.error?.message??"failed"}}default:return{unified:"other",raw:i.status}}}function xU0(i){return{threadId:i.threadId,input:i.input,cwd:i.settings.cwd,approvalPolicy:i.settings.approvalPolicy,sandboxPolicy:i.settings.sandboxPolicy,model:i.modelId,effort:i.settings.effort,summary:i.settings.summary,personality:i.settings.personality,...i.responseFormat?.type==="json"&&i.responseFormat.schema?{outputSchema:Qm(i.responseFormat.schema)}:{}}}function aOi(i){let t=typeof i==="object"&&i!==null?i[DU0]:void 0;return typeof i==="object"&&i!==null&&t===!0&&typeof i._start==="function"&&typeof i._stop==="function"}function yU0(i){let t=String(i?.message??i);return/thread.*not found/i.test(t)}function OU0(i){return Error(`Thread '${i}' not found after server restart. Create a new thread by omitting threadId.`)}function kTu(i){let t=i.sandboxPolicy;if(!t)return;if(typeof t==="string")return t;if(t.type==="readOnly")return"read-only";if(t.type==="workspaceWrite")return"workspace-write";if(t.type==="dangerFullAccess")return"danger-full-access";return}function jTu(i){let t=i.sandboxPolicy;if(!t)return;if(typeof t!=="string")return t;if(t==="read-only")return{type:"readOnly"};if(t==="workspace-write")return{type:"workspaceWrite"};if(t==="danger-full-access")return{type:"dangerFullAccess"};return}function COi(i){return i.approvalPolicy}function XU0(i,t){if(!i&&!t)return;return{...i??{},...t??{}}}function NU0(i,t){if(!i&&!t)return;let u={};for(let[l,n]of Object.entries(i??{})){let f=sb(l);u[f]=n}if(!t)return u;for(let[l,n]of Object.entries(t)){let f=sb(l),c=u[f];if(!c||aOi(c)||aOi(n)){u[f]=n;continue}if(c.transport===n.transport)u[f]=hZu(c,n);else u[f]=n}return u}function $T0(i){if(i){let t=i.toLowerCase();if(t.endsWith(".js")||t.endsWith(".mjs")||t.endsWith(".cjs"))return{cmd:"node",args:[i]};return{cmd:i,args:[]}}try{let u=eTu(import.meta.url).resolve("@openai/codex/package.json"),l=ITu.dirname(u);return{cmd:"node",args:[ITu.join(l,"bin","codex.js")]}}catch{return{cmd:"codex",args:[]}}}function dT0(i){return i.match(/(\d+\.\d+\.\d+(?:-[A-Za-z0-9.-]+)?)/)?.[1]}function HTu(i){let t=i.match(/^(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z.-]+))?$/);if(!t)return;return{major:Number(t[1]),minor:Number(t[2]),patch:Number(t[3]),prerelease:t[4]?t[4].split("."):[]}}function _T0(i,t){let u=/^\d+$/.test(i),l=/^\d+$/.test(t);if(u&&l){let n=Number(i),f=Number(t);if(n>f)return 1;if(n<f)return-1;return 0}if(u&&!l)return-1;if(!u&&l)return 1;return i.localeCompare(t)}function gT0(i,t){let u=HTu(i),l=HTu(t);if(!u||!l)return;if(u.major!==l.major)return u.major>l.major?1:-1;if(u.minor!==l.minor)return u.minor>l.minor?1:-1;if(u.patch!==l.patch)return u.patch>l.patch?1:-1;let n=u.prerelease,f=l.prerelease;if(n.length===0&&f.length===0)return 0;if(n.length===0)return 1;if(f.length===0)return-1;let c=Math.max(n.length,f.length);for(let $=0;$<c;$++){let d=n[$],_=f[$];if(d===void 0)return-1;if(_===void 0)return 1;let g=_T0(d,_);if(g!==0)return g}return 0}function ET0(i){return{codexPath:i.codexPath,cwd:i.cwd,env:i.env,logger:i.logger,connectionTimeoutMs:i.connectionTimeoutMs,requestTimeoutMs:i.requestTimeoutMs,idleTimeoutMs:i.idleTimeoutMs,minCodexVersion:i.minCodexVersion}}function vT0(i,t){let u=i.env&&Object.keys(i.env).length>0?Object.entries(i.env).sort(([l],[n])=>l.localeCompare(n)):void 0;return JSON.stringify({codexPath:i.codexPath??null,cwd:i.cwd??null,connectionTimeoutMs:i.connectionTimeoutMs??null,requestTimeoutMs:i.requestTimeoutMs??null,idleTimeoutMs:i.idleTimeoutMs??null,minCodexVersion:i.minCodexVersion??null,env:u??null,logger:t.loggerIdentity(i.logger)})}function rT0(i){let t=new Map;return{getOrCreate(u){let l=ET0(u),n=vT0(l,i),f=t.get(n);if(f)return f;let c=new hT0({settings:l,logger:l.logger});return t.set(n,c),c},async closeAll(){await Promise.allSettled(Array.from(t.values()).map(async(u)=>{await u.close()})),t.clear()}}}function wT0(i){let t=Object.getPrototypeOf(i);return t===Object.prototype||t===null}function xT0(i){let t=(u,l=new WeakSet)=>{if(u===null||u===void 0||typeof u==="string"||typeof u==="number"||typeof u==="boolean")return u;if(typeof u==="bigint")return{__bigint:u.toString()};if(typeof u==="symbol")return{__symbol:String(u)};if(typeof u==="function")return{__functionIdentity:i.functionIdentity(u)};if(Array.isArray(u))return u.map((n)=>t(n,l));if(typeof u==="object"){if(l.has(u))return{__objectRef:i.objectIdentity(u)};if(l.add(u),aOi(u)){if(u.cacheKey)return{__sdkMcpServerCacheKey:u.cacheKey};let f=u.tools.map((c)=>({name:c.name,description:c.description,inputSchema:t(c.inputSchema,l),execute:t(c.execute,l)})).sort((c,$)=>c.name.localeCompare($.name));return{__sdkMcpServer:{name:u.name,tools:f}}}if(!wT0(u))return{__objectIdentity:i.objectIdentity(u)};let n={};for(let f of Object.keys(u).sort((c,$)=>c.localeCompare($)))n[f]=t(u[f],l);return n}return String(u)};return{createPersistentModelKey(u,l){let n={...l,logger:l.logger===!1?!1:l.logger?{__loggerIdentity:i.loggerIdentity(l.logger)}:void 0};return JSON.stringify({modelId:u,settings:t(n)})}}}function DT0(){let i=new Map;return{get(t){return i.get(t)},set(t,u){i.set(t,u)},clear(){i.clear()}}}function yT0(i){let t=new Set,u=new Set,l=new Map;return{markUsed(n,f){if(t.add(n),f==="provider"){u.add(n);return}let c=l.get(n)??0;l.set(n,c+1)},releaseRequestScoped(n){let f=l.get(n);if(f===void 0)return;if(f>1){l.set(n,f-1);return}if(l.delete(n),u.has(n))return;n._stop().then(()=>{if(!u.has(n)&&!l.has(n))t.delete(n)}).catch((c)=>{i.warn(`[codex-app-server] Failed to stop request-scoped SDK MCP server: ${String(c)}`)})},async closeAll(){await Promise.allSettled(Array.from(t).map(async(n)=>{await n._stop()})),t.clear(),u.clear(),l.clear()}}}function OT0(){let i=new WeakMap,t=new WeakMap,u=new WeakMap,l=1,n=1;return{loggerIdentity(f){if(f===!1)return"logger:false";if(!f)return"logger:default";let c=i.get(f);if(c!==void 0)return`logger:${c}`;let $=l++;return i.set(f,$),`logger:${$}`},functionIdentity(f){let c=t.get(f);if(c!==void 0)return`fn:${c}`;let $=n++;return t.set(f,$),`fn:${$}`},objectIdentity(f){let c=u.get(f);if(c!==void 0)return`obj:${c}`;let $=n++;return u.set(f,$),`obj:${$}`}}}function Nlt(i={}){let t=Fm(i.defaultSettings?.logger);if(i.defaultSettings){let _=PTu(i.defaultSettings);if(!_.valid)throw Error(`Invalid default settings: ${_.errors.join(", ")}`);for(let g of _.warnings)t.warn(`Codex App Server Provider: ${g}`)}let u=OT0(),l=xT0(u),n=rT0(u),f=DT0(),c=yT0(t),$=(_,g={})=>{let h={...i.defaultSettings,...g,configOverrides:{...i.defaultSettings?.configOverrides??{},...g.configOverrides??{}}},E=PTu(h);if(!E.valid)throw Error(`Invalid settings: ${E.errors.join(", ")}`);for(let O of E.warnings)t.warn(`Codex App Server: ${O}`);let v=()=>new JU0({id:_,settings:h,client:n.getOrCreate(h),onSdkMcpServerUsed:(O,X)=>{c.markUsed(O,X)},onSdkMcpServerReleased:(O)=>{c.releaseRequestScoped(O)}});if((h.threadMode??"stateless")!=="persistent")return v();let r=l.createPersistentModelKey(_,h),x=f.get(r);if(x)return x;let D=v();return f.set(r,D),D},d=Object.assign(function(_,g){if(new.target)throw Error("The Codex app-server provider function cannot be called with new.");return $(_,g)},{specificationVersion:"v3"});return d.languageModel=$,d.chat=$,d.embeddingModel=(_)=>{throw new K6({modelId:_,modelType:"embeddingModel"})},d.imageModel=(_)=>{throw new K6({modelId:_,modelType:"imageModel"})},d.close=async()=>{await c.closeAll(),await n.closeAll(),f.clear()},d.dispose=d.close,d.listModels=async(_)=>{let h=await n.getOrCreate(i.defaultSettings??{}).modelList({modelProviders:_??null}),E=h.data??[];return{models:E,defaultModel:E.find((v)=>v.isDefault===!0),nextCursor:h.nextCursor}},d}var XF0,NF0,JF0,QF0,mTu,aTu,FF0,UF0,oTu,xlt,sTu,TF0,pTu,ZF0,Dlt,BF0,IF0,iZu,tZu,uZu,YF0,PF0,GTu,pF0,tU0=class{specificationVersion="v3";provider="codex-cli";defaultObjectGenerationMode="json";supportsImageUrls=!1;supportedUrls={};supportsStructuredOutputs=!0;modelId;settings;logger;sessionId;constructor(i){this.modelId=i.id,this.settings=i.settings??{};let t=Fm(this.settings.logger);if(this.logger=MTu(t,this.settings.verbose??!1),!this.modelId||this.modelId.trim()==="")throw new K6({modelId:this.modelId,modelType:"languageModel"});let u=AF0(this.modelId);if(u)this.logger.warn(`Codex CLI model: ${u}`)}mergeSettings(i){if(!i)return this.settings;let t=i.configOverrides||this.settings.configOverrides?{...this.settings.configOverrides??{},...i.configOverrides??{}}:void 0,u=i.addDirs||this.settings.addDirs?[...this.settings.addDirs??[],...i.addDirs??[]]:void 0,l=oF0(this.settings.mcpServers,i.mcpServers);return{...this.settings,reasoningEffort:i.reasoningEffort??this.settings.reasoningEffort,reasoningSummary:i.reasoningSummary??this.settings.reasoningSummary,reasoningSummaryFormat:i.reasoningSummaryFormat??this.settings.reasoningSummaryFormat,modelVerbosity:i.textVerbosity??this.settings.modelVerbosity,configOverrides:t,addDirs:u,mcpServers:l,rmcpClient:i.rmcpClient??this.settings.rmcpClient}}getItemType(i){if(!i)return;let t=i,u=typeof t.item_type==="string"?t.item_type:void 0,l=typeof t.type==="string"?t.type:void 0;return u??l}buildArgs(i=[],t,u=this.settings){let l=iU0(u.codexPath,u.allowNpx),n=[...l.args,"exec","--experimental-json"];if(u.fullAuto)n.push("--full-auto");else if(u.dangerouslyBypassApprovalsAndSandbox)n.push("--dangerously-bypass-approvals-and-sandbox");else{let g=u.approvalMode??"on-failure";n.push("-c",`approval_policy=${g}`);let h=u.sandboxMode??"workspace-write";n.push("-c",`sandbox_mode=${h}`)}if(u.skipGitRepoCheck!==!1)n.push("--skip-git-repo-check");if(u.reasoningEffort)n.push("-c",`model_reasoning_effort=${u.reasoningEffort}`);if(u.reasoningSummary)n.push("-c",`model_reasoning_summary=${u.reasoningSummary}`);if(u.reasoningSummaryFormat)n.push("-c",`model_reasoning_summary_format=${u.reasoningSummaryFormat}`);if(u.modelVerbosity)n.push("-c",`model_verbosity=${u.modelVerbosity}`);if(u.profile)n.push("--profile",u.profile);if(u.oss)n.push("--oss");if(u.webSearch)n.push("-c","tools.web_search=true");if(this.applyMcpSettings(n,u),u.color)n.push("--color",u.color);if(this.modelId)n.push("-m",this.modelId);if(u.addDirs?.length){for(let g of u.addDirs)if(typeof g==="string"&&g.trim().length>0)n.push("--add-dir",g)}if(u.configOverrides)for(let[g,h]of Object.entries(u.configOverrides))this.addConfigOverride(n,g,h);let f;if(t?.type==="json"&&t.schema){let g=typeof t.schema==="object"?t.schema:{},h=Qm(g);if(Object.keys(h).length>0){let v=glt(ob(hlt(),"codex-schema-"));f=ob(v,"schema.json");let r={...h,additionalProperties:!1};CTu(f,JSON.stringify(r,null,2)),n.push("--output-schema",f)}}let c=[];for(let g of i)try{let h=fZu(g);c.push(h),n.push("--image",h)}catch(h){this.logger.warn(`[codex-cli] Failed to write image to temp file: ${String(h)}`)}let $={...process.env,...u.env||{},RUST_LOG:process.env.RUST_LOG||"error"},d=u.outputLastMessageFile,_=!1;if(!d){let g=glt(ob(hlt(),"codex-cli-"));d=ob(g,"last-message.txt"),_=!0}if(n.push("--output-last-message",d),c.length>0)n.push("--");return n.push("-"),{cmd:l.cmd,args:n,env:$,cwd:u.cwd,lastMessagePath:d,lastMessageIsTemp:_,schemaPath:f,tempImagePaths:c.length>0?c:void 0}}applyMcpSettings(i,t){if(t.rmcpClient)this.addConfigOverride(i,"features.rmcp_client",!0);if(!t.mcpServers)return;for(let[u,l]of Object.entries(t.mcpServers)){let f=`mcp_servers.${sb(u)}`;if(l.enabled!==void 0)this.addConfigOverride(i,`${f}.enabled`,l.enabled);if(l.startupTimeoutSec!==void 0)this.addConfigOverride(i,`${f}.startup_timeout_sec`,l.startupTimeoutSec);if(l.toolTimeoutSec!==void 0)this.addConfigOverride(i,`${f}.tool_timeout_sec`,l.toolTimeoutSec);if(l.enabledTools!==void 0)this.addConfigOverride(i,`${f}.enabled_tools`,l.enabledTools);if(l.disabledTools!==void 0)this.addConfigOverride(i,`${f}.disabled_tools`,l.disabledTools);if(l.transport==="stdio"){if(this.addConfigOverride(i,`${f}.command`,l.command),l.args!==void 0)this.addConfigOverride(i,`${f}.args`,l.args);if(l.env!==void 0)this.addConfigOverride(i,`${f}.env`,l.env);if(l.cwd)this.addConfigOverride(i,`${f}.cwd`,l.cwd)}else{if(this.addConfigOverride(i,`${f}.url`,l.url),l.bearerToken!==void 0)this.addConfigOverride(i,`${f}.bearer_token`,l.bearerToken);if(l.bearerTokenEnvVar)this.addConfigOverride(i,`${f}.bearer_token_env_var`,l.bearerTokenEnvVar);if(l.httpHeaders!==void 0)this.addConfigOverride(i,`${f}.http_headers`,l.httpHeaders);if(l.envHttpHeaders!==void 0)this.addConfigOverride(i,`${f}.env_http_headers`,l.envHttpHeaders)}}}addConfigOverride(i,t,u){if(VTu(t),aF0(u)){let n=Object.entries(u);if(n.length===0){i.push("-c",`${t}={}`);return}for(let[f,c]of n)this.addConfigOverride(i,`${t}.${f}`,c);return}let l=this.serializeConfigValue(u);i.push("-c",`${t}=${l}`)}serializeConfigValue(i){if(typeof i==="string")return i;if(typeof i==="number"||typeof i==="boolean")return String(i);if(Array.isArray(i))try{return JSON.stringify(i)}catch{return String(i)}if(i&&typeof i==="object")try{return JSON.stringify(i)}catch{return String(i)}return String(i)}parseExperimentalJsonEvent(i){try{return JSON.parse(i)}catch{return}}extractUsage(i){let t=i.usage;if(!t)return;let u=t.input_tokens??0,l=t.output_tokens??0,n=t.cached_input_tokens??0;return{inputTokens:{total:u,noCache:u-n,cacheRead:n,cacheWrite:0},outputTokens:{total:l,text:void 0,reasoning:void 0},raw:t}}getToolName(i){if(!i)return;switch(this.getItemType(i)){case"command_execution":return"exec";case"file_change":return"patch";case"mcp_tool_call":{let u=i.tool;if(typeof u==="string"&&u.length>0)return u;return"mcp_tool"}case"web_search":return"web_search";default:return}}buildToolInputPayload(i){if(!i)return;let t=i;switch(this.getItemType(i)){case"command_execution":{let u={};if(typeof t.command==="string")u.command=t.command;if(typeof t.status==="string")u.status=t.status;if(typeof t.cwd==="string")u.cwd=t.cwd;return Object.keys(u).length?u:void 0}case"file_change":{let u={};if(Array.isArray(t.changes))u.changes=t.changes;if(typeof t.status==="string")u.status=t.status;return Object.keys(u).length?u:void 0}case"mcp_tool_call":{let u={};if(typeof t.server==="string")u.server=t.server;if(typeof t.tool==="string")u.tool=t.tool;if(typeof t.status==="string")u.status=t.status;if(t.arguments!==void 0)u.arguments=t.arguments;return Object.keys(u).length?u:void 0}case"web_search":{let u={};if(typeof t.query==="string")u.query=t.query;return Object.keys(u).length?u:void 0}default:return}}buildToolResultPayload(i){if(!i)return{result:{}};let t=i,u={},l=this.getItemType(i);if(typeof l==="string")u.itemType=l;if(typeof i.id==="string")u.itemId=i.id;if(typeof t.status==="string")u.status=t.status;let n=(f)=>({result:f,metadata:Object.keys(u).length?u:void 0});switch(l){case"command_execution":{let f={};if(typeof t.command==="string")f.command=t.command;if(typeof t.aggregated_output==="string")f.aggregatedOutput=t.aggregated_output;if(typeof t.exit_code==="number")f.exitCode=t.exit_code;if(typeof t.status==="string")f.status=t.status;return n(f)}case"file_change":{let f={};if(Array.isArray(t.changes))f.changes=t.changes;if(typeof t.status==="string")f.status=t.status;return n(f)}case"mcp_tool_call":{let f={};if(typeof t.server==="string")f.server=t.server,u.server=t.server;if(typeof t.tool==="string")f.tool=t.tool;if(typeof t.status==="string")f.status=t.status;if(t.result!==void 0)f.result=t.result;if(t.error!==void 0)f.error=t.error;return n(f)}case"web_search":{let f={};if(typeof t.query==="string")f.query=t.query;if(typeof t.status==="string")f.status=t.status;return n(f)}default:{let f={...t};return n(f)}}}emitToolInvocation(i,t,u,l){let n=gZu(l);if(i.enqueue({type:"tool-input-start",id:t,toolName:u}),n)i.enqueue({type:"tool-input-delta",id:t,delta:n});i.enqueue({type:"tool-input-end",id:t}),i.enqueue({type:"tool-call",toolCallId:t,toolName:u,input:n,providerExecuted:!0})}emitToolResult(i,t,u,l,n,f){let c={...f??{}},$=this.getItemType(l);if($&&c.itemType===void 0)c.itemType=$;if(l.id&&c.itemId===void 0)c.itemId=l.id;let d;if($==="command_execution"){let _=l,g=typeof _.exit_code==="number"?_.exit_code:void 0,h=typeof _.status==="string"?_.status:void 0;if(g!==void 0&&g!==0||h==="failed")d=!0}i.enqueue({type:"tool-result",toolCallId:t,toolName:u,result:n??{},...d?{isError:!0}:{},...Object.keys(c).length?{providerMetadata:{"codex-cli":c}}:{}})}handleSpawnError(i,t){let u=i&&typeof i==="object"?i:void 0,l=String((u?.message??i)||"Failed to run Codex CLI");if(/login|auth|unauthorized|not\s+logged/i.test(l))throw VF0(l);throw qOi({message:l,code:typeof u?.code==="string"?u.code:void 0,exitCode:typeof u?.exitCode==="number"?u.exitCode:void 0,stderr:typeof u?.stderr==="string"?u.stderr:void 0,promptExcerpt:t})}async doGenerate(i){this.logger.debug(`[codex-cli] Starting doGenerate request with model: ${this.modelId}`);let{stream:t,request:u}=await this.doStream(i),l=[],n=new Map,f=new Map,c,$,d={id:Tn(),timestamp:new Date,modelId:this.modelId},_=mOi(),g={unified:"other",raw:void 0},h=[],E,v=(X,N)=>{let J=n.get(X);if(J){if(N)J.providerMetadata=N;return J}let Q={type:"text",text:"",...N?{providerMetadata:N}:{}};return n.set(X,Q),l.push(Q),Q},r=(X,N)=>{let J=f.get(X);if(J){if(N)J.providerMetadata=N;return J}let Q={type:"reasoning",text:"",...N?{providerMetadata:N}:{}};return f.set(X,Q),l.push(Q),Q},x=(X)=>{l.push(X)};for await(let X of t){if(X.type==="stream-start"){h=X.warnings;continue}if(X.type==="response-metadata"){d={id:X.id,timestamp:X.timestamp,modelId:X.modelId};continue}if(X.type==="text-start"){c=X.id,v(X.id,X.providerMetadata);continue}if(X.type==="text-delta"){let N=typeof X.id==="string"?X.id:c??"__default_text_block__";c=N;let J=v(N,X.providerMetadata);J.text=`${J.text}${X.delta}`;continue}if(X.type==="text-end"){let N=typeof X.id==="string"?X.id:c;if(N){let J=v(N,X.providerMetadata);if(X.providerMetadata)J.providerMetadata=X.providerMetadata}if(c===N)c=void 0;continue}if(X.type==="reasoning-start"){$=X.id,r(X.id,X.providerMetadata);continue}if(X.type==="reasoning-delta"){let N=typeof X.id==="string"?X.id:$??"__default_reasoning_block__";$=N;let J=r(N,X.providerMetadata);J.text=`${J.text}${X.delta}`;continue}if(X.type==="reasoning-end"){let N=typeof X.id==="string"?X.id:$;if(N){let J=r(N,X.providerMetadata);if(X.providerMetadata)J.providerMetadata=X.providerMetadata}if($===N)$=void 0;continue}if(X.type==="file"){x(X);continue}if(X.type==="source"){x(X);continue}if(X.type==="tool-approval-request"){x(X);continue}if(X.type==="tool-call"){x(X);continue}if(X.type==="tool-result"){x(X);continue}if(X.type==="finish")_=X.usage,g=X.finishReason,E=X.providerMetadata}let D=l.filter((X)=>{if(X.type==="text")return X.text.trim().length>0;if(X.type==="reasoning")return X.text.trim().length>0;return!0}),O=E&&typeof E==="object"?{...E}:{};if(this.sessionId){let X=O["codex-cli"],N=X&&typeof X==="object"&&!Array.isArray(X)?X:{};O["codex-cli"]={...N,sessionId:this.sessionId}}return{content:D,usage:_,finishReason:g,warnings:h,response:d,request:u,...Object.keys(O).length>0?{providerMetadata:O}:{}}}async doStream(i){this.logger.debug(`[codex-cli] Starting doStream request with model: ${this.modelId}`);let{promptText:t,images:u,warnings:l}=qF0(i.prompt),n=t.slice(0,200),f=[...EZu({temperature:i.temperature,topP:i.topP,topK:i.topK,maxOutputTokens:i.maxOutputTokens,presencePenalty:i.presencePenalty,frequencyPenalty:i.frequencyPenalty,stopSequences:i.stopSequences,seed:i.seed,tools:i.tools,toolChoice:i.toolChoice}),...l??[]];this.logger.debug(`[codex-cli] Converted ${i.prompt.length} messages (${u.length} images) for streaming, response format: ${i.responseFormat?.type??"none"}`);let c=await sut({provider:this.provider,providerOptions:i.providerOptions,schema:pF0}),$=this.mergeSettings(c),d=i.responseFormat?.type==="json"?{type:"json",schema:i.responseFormat.schema}:void 0,{cmd:_,args:g,env:h,cwd:E,lastMessagePath:v,lastMessageIsTemp:r,schemaPath:x,tempImagePaths:D}=this.buildArgs(u,d,$);return this.logger.debug(`[codex-cli] Executing Codex CLI for streaming: ${_} with ${g.length} arguments`),{stream:new ReadableStream({start:(X)=>{let N=Date.now(),J=RTu(_,g,{env:h,cwd:E,stdio:["pipe","pipe","pipe"]});J.stdin.write(t),J.stdin.end(),X.enqueue({type:"stream-start",warnings:f});let Q="",U="",I=new Map,B=!1,P,z,W=()=>{if(x)try{let ti=DF0(x);VOi(ti,{recursive:!0,force:!0})}catch{}if(D?.length)vlt(D)},k=(ti={})=>{X.enqueue({type:"response-metadata",id:$lt(),timestamp:new Date,modelId:this.modelId,...Object.keys(ti).length?{providerMetadata:{"codex-cli":ti}}:{}})},p=(ti)=>{let ii=ti.item;if(!ii)return;if(ti.type==="item.completed"&&this.getItemType(ii)==="assistant_message"&&typeof ii.text==="string"){U=ii.text,this.logger.debug(`[codex-cli] Received assistant message, length: ${ii.text.length}`);return}let $i=this.getToolName(ii);if(!$i)return;this.logger.debug(`[codex-cli] Tool detected: ${$i}, item type: ${this.getItemType(ii)}`);let C=typeof ii.id==="string"&&ii.id.length>0?ii.id:$lt(),ci=I.get(C),s=this.buildToolInputPayload(ii);if(!ci)ci={toolCallId:C,toolName:$i,inputPayload:s,hasEmittedCall:!1},I.set(C,ci);else if(ci.toolName=$i,s!==void 0)ci.inputPayload=s;if(!ci.hasEmittedCall)this.logger.debug(`[codex-cli] Emitting tool invocation: ${ci.toolName}`),this.emitToolInvocation(X,ci.toolCallId,ci.toolName,ci.inputPayload),ci.hasEmittedCall=!0;if(ti.type==="item.completed"){let{result:_i,metadata:di}=this.buildToolResultPayload(ii);this.logger.debug(`[codex-cli] Tool completed: ${ci.toolName}`),this.emitToolResult(X,ci.toolCallId,ci.toolName,ii,_i,di),I.delete(C)}},j=()=>{J.kill("SIGTERM")};if(i.abortSignal){if(i.abortSignal.aborted){J.kill("SIGTERM"),W(),X.error(i.abortSignal.reason??Error("Request aborted"));return}i.abortSignal.addEventListener("abort",j,{once:!0})}let M=(ti)=>{let ii=Date.now()-N;if(ti!==0){this.logger.error(`[codex-cli] Stream process exited with code ${ti} after ${ii}ms`),X.error(qOi({message:`Codex CLI exited with code ${ti}`,exitCode:ti??void 0,stderr:Q,promptExcerpt:n}));return}if(z){this.logger.error(`[codex-cli] Stream failed: ${z}`),X.error(qOi({message:z,stderr:Q,promptExcerpt:n}));return}let $i=U;if(!$i&&v){try{let s=xF0(v,"utf8");if(s)$i=s.trim()}catch{}if(r)try{VOi(v,{force:!0})}catch{}}if($i){let s=$lt();X.enqueue({type:"text-start",id:s}),X.enqueue({type:"text-delta",id:s,delta:$i}),X.enqueue({type:"text-end",id:s})}let C=P??mOi(),ci=(C.inputTokens.total??0)+(C.outputTokens.total??0);this.logger.info(`[codex-cli] Stream completed - Session: ${this.sessionId??"N/A"}, Duration: ${ii}ms, Tokens: ${ci}`),this.logger.debug(`[codex-cli] Token usage - Input: ${C.inputTokens.total??0}, Output: ${C.outputTokens.total??0}, Total: ${ci}`),X.enqueue({type:"finish",finishReason:mF0(void 0),usage:C}),X.close()};J.stderr.on("data",(ti)=>Q+=String(ti)),J.stdout.setEncoding("utf8"),J.stdout.on("data",(ti)=>{let ii=ti.split(/\r?\n/).filter(Boolean);for(let $i of ii){let C=this.parseExperimentalJsonEvent($i);if(!C)continue;if(this.logger.debug(`[codex-cli] Stream event: ${C.type??"unknown"}`),C.type==="thread.started"&&typeof C.thread_id==="string"){if(this.sessionId=C.thread_id,this.logger.debug(`[codex-cli] Stream session started: ${this.sessionId}`),!B)B=!0,k();continue}if(C.type==="session.created"&&typeof C.session_id==="string"){if(this.sessionId=C.session_id,this.logger.debug(`[codex-cli] Stream session created: ${this.sessionId}`),!B)B=!0,k();continue}if(C.type==="turn.completed"){let ci=this.extractUsage(C);if(ci)P=ci;continue}if(C.type==="turn.failed"){z=(C.error&&typeof C.error.message==="string"&&C.error.message||(typeof C.message==="string"?C.message:void 0))??z??"Codex turn failed",this.logger.error(`[codex-cli] Stream turn failed: ${z}`),k({error:z});continue}if(C.type==="error"){let s=(typeof C.message==="string"?C.message:void 0)??"Codex error";z=z??s,this.logger.error(`[codex-cli] Stream error event: ${s}`),k({error:s});continue}if(C.type&&C.type.startsWith("item."))p(C)}}),J.on("error",(ti)=>{if(this.logger.error(`[codex-cli] Stream spawn error: ${String(ti)}`),i.abortSignal)i.abortSignal.removeEventListener("abort",j);W(),X.error(this.handleSpawnError(ti,n))}),J.on("close",(ti)=>{if(i.abortSignal)i.abortSignal.removeEventListener("abort",j);W(),setImmediate(()=>M(ti))})},cancel:()=>{}}),request:{body:t}}}},$B1,nU0=class{threadId;modelId;client;defaultTurnParams;requestHandlers;autoApprove;currentTurnId=null;active=!1;constructor(i){this.threadId=i.threadId,this.modelId=i.modelId,this.client=i.client,this.defaultTurnParams=i.defaultTurnParams??{},this.requestHandlers=i.requestHandlers??{},this.autoApprove=i.autoApprove}get turnId(){return this.currentTurnId}isTurnCompleted(i){return this.client.hasTurnCompleted?.(i)??!1}refreshActiveState(){if(!this.active||!this.currentTurnId)return;if(this.isTurnCompleted(this.currentTurnId))this.active=!1}isActive(){return this.refreshActiveState(),this.active}setTurnId(i){this.currentTurnId=i,this.active=!this.isTurnCompleted(i)}setInactive(i){if(i&&this.currentTurnId&&i!==this.currentTurnId)return;this.active=!1}async injectMessage(i){let t=typeof i==="string"?[{type:"text",text:i}]:i;if(t.length===0)return;let u=t.map(lU0),l=await this.client.withThreadLock(this.threadId,async()=>{let c=this.client.registerRequestContext(this.threadId,{handlers:this.requestHandlers,autoApprove:this.autoApprove});try{let $=await this.client.turnStart({threadId:this.threadId,input:u,model:this.modelId,...this.defaultTurnParams});return this.client.bindRequestContext(c,String($.turn.id)),$}catch($){throw this.client.clearRequestContext(c),$}}),n=String(l.turn.id),f=this.isTurnCompleted(n);this.currentTurnId=n,this.active=!f}async interrupt(){if(this.refreshActiveState(),!this.active||!this.currentTurnId)return;let i=this.currentTurnId;if(await this.client.turnInterrupt({threadId:this.threadId,turnId:i}),this.currentTurnId===i)this.active=!1}},fU0=class{activeToolNames=new Map;activeToolStarts=new Map;stats={totalCalls:0,totalDurationMs:0,byType:{exec:0,patch:0,mcp:0,web_search:0,other:0}};start(i,t){this.activeToolNames.set(i,t),this.activeToolStarts.set(i,Date.now())}get(i){return this.activeToolNames.get(i)}resolve(i,t){return this.activeToolNames.get(i)??t}complete(i,t,u){let l=this.resolve(i,t),n=this.activeToolStarts.get(i),f=n!==void 0?Math.max(0,Date.now()-n):void 0;return this.recordCompletion(l.toolName,u??f),this.activeToolNames.delete(i),this.activeToolStarts.delete(i),l}getStats(){return{totalCalls:this.stats.totalCalls,totalDurationMs:this.stats.totalDurationMs,byType:{...this.stats.byType}}}toolTypeFromName(i){if(i==="exec")return"exec";if(i==="patch")return"patch";if(i==="web_search")return"web_search";if(i.startsWith("mcp__"))return"mcp";return"other"}recordCompletion(i,t){if(this.stats.totalCalls+=1,this.stats.byType[this.toolTypeFromName(i)]+=1,typeof t==="number"&&Number.isFinite(t)&&t>=0)this.stats.totalDurationMs+=t}},dU0=class{client;emitter;threadId;onUsage;onThreadTurnCompleted;onTurnCompleted;onError;turnId;bufferedTurnScopedEvents=[];toolTracker=new fU0;textItemIdsWithDelta=new Set;reasoningItemIdsWithDelta=new Set;notificationHandlers;serverRequestHandlers;notificationListener;serverRequestListener;constructor(i){this.client=i.client,this.emitter=i.emitter,this.threadId=i.threadId,this.onUsage=i.onUsage,this.onThreadTurnCompleted=i.onThreadTurnCompleted,this.onTurnCompleted=i.onTurnCompleted,this.onError=i.onError,this.notificationHandlers=cU0({emitter:this.emitter,toolTracker:this.toolTracker,textItemIdsWithDelta:this.textItemIdsWithDelta,reasoningItemIdsWithDelta:this.reasoningItemIdsWithDelta,onUsage:this.onUsage,onTurnCompleted:this.onTurnCompleted,onError:this.onError,isSameTurn:(t)=>this.isSameTurn(t),getBoundTurnId:()=>this.turnId}),this.serverRequestHandlers=$U0({emitter:this.emitter,isSameTurn:(t)=>this.isSameTurn(t)})}setTurnId(i){this.turnId=i,this.flushBufferedTurnScopedEvents()}getToolExecutionStats(){return this.toolTracker.getStats()}subscribe(){return this.notificationListener=(i,t)=>{if(!this.isSameThread(t))return;if(i==="turn/completed"&&t.turn&&typeof t.turn==="object")this.onThreadTurnCompleted?.(t.turn);if(this.bufferTurnScopedEventBeforeBinding({kind:"notification",method:i,params:t}))return;this.emitter.emitRaw(i,t),this.handleNotification(i,t)},this.client.on("notification",this.notificationListener),this.serverRequestListener=(i,t,u)=>{if(!this.isSameThread(t))return;if(this.bufferTurnScopedEventBeforeBinding({kind:"server-request",method:i,params:t,id:u}))return;this.emitter.emitRaw(i,t,u),this.handleServerRequest(i,t)},this.client.on("server-request",this.serverRequestListener),()=>this.unsubscribe()}unsubscribe(){if(this.notificationListener)this.client.off("notification",this.notificationListener),this.notificationListener=void 0;if(this.serverRequestListener)this.client.off("server-request",this.serverRequestListener),this.serverRequestListener=void 0;this.bufferedTurnScopedEvents=[]}isSameThread(i){return(typeof i.threadId==="string"?i.threadId:void 0)===this.threadId}getTurnIdFromParams(i){let t=i.turn&&typeof i.turn==="object"?i.turn:void 0;return typeof i.turnId==="string"?i.turnId:typeof t?.id==="string"?t.id:void 0}bufferTurnScopedEventBeforeBinding(i){if(this.turnId)return!1;if(this.getTurnIdFromParams(i.params)===void 0)return!1;return this.bufferedTurnScopedEvents.push(i),!0}flushBufferedTurnScopedEvents(){if(!this.turnId||this.bufferedTurnScopedEvents.length===0)return;let i=this.bufferedTurnScopedEvents;this.bufferedTurnScopedEvents=[];for(let t of i){if(!this.isSameThread(t.params))continue;if(this.getTurnIdFromParams(t.params)!==this.turnId)continue;if(t.kind==="notification")this.emitter.emitRaw(t.method,t.params),this.handleNotification(t.method,t.params);else this.emitter.emitRaw(t.method,t.params,t.id),this.handleServerRequest(t.method,t.params)}}isSameTurn(i){let t=this.getTurnIdFromParams(i);if(!this.turnId)return t===void 0;return t===void 0||t===this.turnId}handleNotification(i,t){if(!this.isSameThread(t))return;let u=this.notificationHandlers[i];if(!u)return;u(t)}handleServerRequest(i,t){if(!this.isSameThread(t))return;let u=this.serverRequestHandlers[i];if(!u)return;u(t)}},_U0=class{constructor(i,t){this.controller=i,this.options=t,this.jsonModeLastTextBlockOnly=Boolean(t.jsonModeLastTextBlockOnly)}textId;reasoningId;jsonModeLastTextBlockOnly;bufferedCurrentJsonText="";lastCompletedJsonTextId;lastCompletedJsonText="";closed=!1;safeEnqueue(i){if(this.closed)return;try{this.controller.enqueue(i)}catch{this.closed=!0}}emitStreamStart(i){this.safeEnqueue({type:"stream-start",warnings:i})}emitResponseMetadata(){this.safeEnqueue({type:"response-metadata",id:Tn(),timestamp:new Date,modelId:this.options.modelId})}emitRaw(i,t,u){if(!this.options.includeRawChunks)return;this.safeEnqueue({type:"raw",rawValue:{method:i,params:t,id:u}})}emitTextDelta(i,t){if(this.jsonModeLastTextBlockOnly){let l=t??this.textId??Tn();if(this.textId&&this.textId!==l)this.lastCompletedJsonTextId=this.textId,this.lastCompletedJsonText=this.bufferedCurrentJsonText,this.textId=void 0,this.bufferedCurrentJsonText="";if(!this.textId)this.textId=l,this.bufferedCurrentJsonText="";this.bufferedCurrentJsonText=`${this.bufferedCurrentJsonText}${i}`;return}let u=t??this.textId??Tn();if(this.textId&&this.textId!==u)this.safeEnqueue({type:"text-end",id:this.textId}),this.textId=void 0;if(!this.textId)this.textId=u,this.safeEnqueue({type:"text-start",id:this.textId});this.safeEnqueue({type:"text-delta",id:this.textId,delta:i})}emitReasoningDelta(i,t=!1,u){let l=u??this.reasoningId??Tn();if(this.reasoningId&&this.reasoningId!==l)this.safeEnqueue({type:"reasoning-end",id:this.reasoningId}),this.reasoningId=void 0;if(!this.reasoningId)this.reasoningId=l,this.safeEnqueue({type:"reasoning-start",id:this.reasoningId});this.safeEnqueue({type:"reasoning-delta",id:this.reasoningId,delta:i,...t?{providerMetadata:{"codex-app-server":{isSummary:!0}}}:{}})}emitToolCall(i,t,u,l){if(this.safeEnqueue({type:"tool-input-start",id:i,toolName:t,providerExecuted:!0,...l?{dynamic:!0}:{}}),u)this.safeEnqueue({type:"tool-input-delta",id:i,delta:u});this.safeEnqueue({type:"tool-input-end",id:i}),this.safeEnqueue({type:"tool-call",toolCallId:i,toolName:t,input:u,providerExecuted:!0,...l?{dynamic:!0}:{}})}emitToolOutputDelta(i,t,u){this.safeEnqueue({type:"tool-result",toolCallId:i,toolName:t,preliminary:!0,result:{type:"output-delta",delta:u}})}emitToolResult(i,t,u,l,n){this.safeEnqueue({type:"tool-result",toolCallId:i,toolName:t,result:u??{},...l?{dynamic:!0}:{},...n?{isError:!0}:{}})}emitApprovalRequest(i){this.safeEnqueue({type:"tool-approval-request",approvalId:i,toolCallId:i})}emitFinish(i,t,u){if(this.jsonModeLastTextBlockOnly){if(this.textId)this.lastCompletedJsonTextId=this.textId,this.lastCompletedJsonText=this.bufferedCurrentJsonText,this.textId=void 0,this.bufferedCurrentJsonText="";let l=this.lastCompletedJsonTextId;if(l){let n=this.lastCompletedJsonText;if(this.safeEnqueue({type:"text-start",id:l}),n.length>0)this.safeEnqueue({type:"text-delta",id:l,delta:n});this.safeEnqueue({type:"text-end",id:l})}this.lastCompletedJsonTextId=void 0,this.lastCompletedJsonText=""}else if(this.textId)this.safeEnqueue({type:"text-end",id:this.textId});if(this.reasoningId)this.safeEnqueue({type:"reasoning-end",id:this.reasoningId});this.safeEnqueue({type:"finish",finishReason:i,usage:t,...u?{providerMetadata:u}:{}})}close(){if(this.closed)return;this.closed=!0;try{this.controller.close()}catch{}}error(i){if(this.closed)return;this.closed=!0;try{this.controller.error(i)}catch{}}},gU0=5000,wU0=class{constructor(i){this.options=i}state="created";usage=mOi();turnId;requestContextId;cleanedUp=!1;pendingCancelReason;cancelBeforeTurnId=!1;pendingAbortReason;interruptWaitPromise;cancelWaitPromise;settleTurn;turnCompletionPromise=new Promise(()=>{return});emitter;router;unsubscribeRouter;onAbort;isTerminalState(){return this.state==="closed"||this.state==="errored"||this.state==="finishing"}isClosedState(){return this.state==="closed"}async start(i){if(this.state!=="created")return;if(this.state="starting",this.turnCompletionPromise=new Promise((t,u)=>{this.settleTurn={resolve:t,reject:u}}),this.emitter=new _U0(i,{modelId:this.options.modelId,threadId:this.options.threadId,includeRawChunks:this.options.includeRawChunks,jsonModeLastTextBlockOnly:this.options.jsonModeLastTextBlockOnly}),this.emitter.emitStreamStart(this.options.warnings),this.emitter.emitResponseMetadata(),this.router=new dU0({client:this.options.client,emitter:this.emitter,threadId:this.options.threadId,onUsage:(t)=>{this.usage=t},onThreadTurnCompleted:(t)=>{this.options.session?.setInactive(t.id)},onTurnCompleted:(t)=>{this.settleTurn?.resolve(t)},onError:(t)=>{this.settleTurn?.reject(t)}}),this.unsubscribeRouter=this.router.subscribe(),this.attachAbortSignal(),this.pendingCancelReason!==void 0){if(await this.requestCancel(this.pendingCancelReason),this.isClosedState())return}if(this.pendingAbortReason!==void 0){await this.failWithError(this.pendingAbortReason);return}try{this.state="awaiting_turn_id";let t=this.options.shouldSerializeTurnStart?await this.options.client.withThreadLock(this.options.threadId,async()=>await this.startTurnWithContext()):await this.startTurnWithContext();if(this.turnId=t.turn.id,this.router.setTurnId(this.turnId),this.options.session?.setTurnId(this.turnId),this.isClosedState()){if(this.pendingCancelReason!==void 0&&this.cancelBeforeTurnId)await this.requestCancel(this.pendingCancelReason);return}if(this.state="running",this.pendingCancelReason!==void 0){await this.requestCancel(this.pendingCancelReason);return}if(this.pendingAbortReason!==void 0)throw await this.interruptAndAwaitCompletion(),this.pendingAbortReason;let u=await this.turnCompletionPromise;if(this.pendingCancelReason!==void 0){this.finishSilently();return}if(this.pendingAbortReason!==void 0)throw this.pendingAbortReason;if(this.isTerminalState())return;this.state="finishing";let l=this.router.getToolExecutionStats();this.emitter.emitFinish(rU0(u),this.usage,{"codex-app-server":{threadId:this.options.threadId,...this.turnId?{turnId:this.turnId}:{},toolExecutionStats:l}}),this.emitter.close(),this.cleanup(),this.state="closed"}catch(t){if(this.pendingCancelReason!==void 0){if(this.turnId)await this.requestCancel(this.pendingCancelReason);else this.finishSilently();return}if(this.options.hadInitialThreadId&&EU0(t)){if(this.options.threadResolution.persistent&&!this.options.threadResolution.explicit)this.options.clearPersistentThreadState(this.options.threadId);await this.failWithError(vU0(this.options.threadId));return}if(this.pendingAbortReason!==void 0&&this.turnId)await this.interruptAndAwaitCompletion();await this.failWithError(t)}}async cancel(i){switch(this.pendingCancelReason=i??this.pendingCancelReason??Error("Stream canceled"),this.state){case"closed":case"errored":case"finishing":return;case"interrupting":await this.cancelWaitPromise;return;default:await this.requestCancel(i)}}async startTurnWithContext(){this.requestContextId=this.options.client.registerRequestContext(this.options.threadId,{handlers:this.options.requestHandlers??{},autoApprove:this.options.autoApprove});try{let i=await this.options.client.turnStart(this.options.turnStartParams);return this.options.client.bindRequestContext(this.requestContextId,i.turn.id),i}catch(i){if(this.requestContextId)this.options.client.clearRequestContext(this.requestContextId),this.requestContextId=void 0;throw i}}attachAbortSignal(){let i=this.options.abortSignal;if(!i)return;if(i.aborted){this.pendingAbortReason=i.reason??Error("Request aborted");return}this.onAbort=()=>{if(this.pendingAbortReason=i.reason??Error("Request aborted"),!this.turnId)return;(async()=>{await this.interruptAndAwaitCompletion(),await this.failWithError(this.pendingAbortReason)})()},i.addEventListener("abort",this.onAbort,{once:!0})}async requestCancel(i){if(this.pendingCancelReason=i??this.pendingCancelReason??Error("Stream canceled"),!this.turnId){this.cancelBeforeTurnId=this.state==="starting"||this.state==="awaiting_turn_id",this.finishSilently();return}if(this.isTerminalState()&&!this.cancelBeforeTurnId)return;if(!this.cancelWaitPromise)this.cancelWaitPromise=(async()=>{if(this.state="interrupting",this.cancelBeforeTurnId)await this.options.client.turnInterrupt({threadId:this.options.threadId,turnId:this.turnId}).catch(()=>{return}),this.cancelBeforeTurnId=!1;else await this.interruptAndAwaitCompletion();this.finishSilently()})();await this.cancelWaitPromise}async interruptAndAwaitCompletion(){if(!this.turnId)return;if(!this.interruptWaitPromise)this.interruptWaitPromise=(async()=>{await this.options.client.turnInterrupt({threadId:this.options.threadId,turnId:this.turnId}).catch(()=>{return}),await hU0(this.turnCompletionPromise.then(()=>{return}),gU0)})();await this.interruptWaitPromise}async failWithError(i){if(this.isTerminalState())return;this.state="errored",this.emitter?.error(i),this.cleanup()}finishSilently(){if(this.isTerminalState())return;this.cleanup(),this.state="closed"}cleanup(){if(this.cleanedUp)return;if(this.cleanedUp=!0,this.unsubscribeRouter?.(),this.unsubscribeRouter=void 0,this.turnId)this.options.client.clearRequestContextForTurn(this.turnId);if(this.requestContextId)this.options.client.clearRequestContext(this.requestContextId),this.requestContextId=void 0;if(this.options.abortSignal&&this.onAbort)this.options.abortSignal.removeEventListener("abort",this.onAbort);this.onAbort=void 0,this.options.releaseResources()}},DU0,JU0=class{specificationVersion="v3";provider="codex-app-server";defaultObjectGenerationMode="json";supportsImageUrls=!0;supportedUrls={};supportsStructuredOutputs=!0;modelId;settings;client;logger;onSdkMcpServerUsed;onSdkMcpServerReleased;persistentThreadId;persistentThreadRawEventsEnabled;persistentSession;persistentBootstrapLock=Promise.resolve();constructor(i){this.modelId=i.id,this.settings=i.settings??{},this.client=i.client,this.onSdkMcpServerUsed=i.onSdkMcpServerUsed,this.onSdkMcpServerReleased=i.onSdkMcpServerReleased;let t=Fm(this.settings.logger);if(this.logger=MTu(t,this.settings.verbose??!1),!this.modelId||this.modelId.trim()==="")throw new K6({modelId:this.modelId,modelType:"languageModel"})}mergeSettings(i){if(!i)return this.settings;let t={...this.settings,personality:i.personality??this.settings.personality,effort:i.effort??this.settings.effort,summary:i.summary??this.settings.summary,approvalPolicy:i.approvalPolicy??this.settings.approvalPolicy,sandboxPolicy:i.sandboxPolicy??this.settings.sandboxPolicy,baseInstructions:i.baseInstructions??this.settings.baseInstructions,developerInstructions:i.developerInstructions??this.settings.developerInstructions,autoApprove:i.autoApprove??this.settings.autoApprove,persistExtendedHistory:i.persistExtendedHistory??this.settings.persistExtendedHistory,threadMode:i.threadMode??this.settings.threadMode,resume:i.resume??this.settings.resume,includeRawChunks:i.includeRawChunks??this.settings.includeRawChunks,rmcpClient:i.rmcpClient??this.settings.rmcpClient,configOverrides:{...this.settings.configOverrides??{},...i.configOverrides??{}},serverRequests:XU0(this.settings.serverRequests,i.serverRequests),onSessionCreated:i.onSessionCreated??this.settings.onSessionCreated};return t.mcpServers=NU0(this.settings.mcpServers,i.mcpServers),t}resolveThreadMode(i,t){return t?.threadMode??i.threadMode??"stateless"}resolveTargetThreadId(i,t){let u=this.resolveThreadMode(i,t),l=t?.threadId??t?.resume??i.resume;if(l)return{threadId:l,explicit:!0,persistent:u==="persistent"};if(u==="persistent"&&this.persistentThreadId)return{threadId:this.persistentThreadId,explicit:!1,persistent:!0};return{threadId:void 0,explicit:!1,persistent:u==="persistent"}}resolveIncludeRawChunks(i,t,u){return(i??u?.includeRawChunks??t.includeRawChunks)===!0}async resolveConfig(i,t){let u={},l=[];try{for(let[c,$]of Object.entries(i.mcpServers??{})){if(aOi($)){let d=await $._start();this.onSdkMcpServerUsed?.($,t),l.push($),u[c]=d;continue}u[c]=$}}catch(c){if(t==="request")for(let $ of l)this.onSdkMcpServerReleased?.($);throw c}let f={...sF0(Object.keys(u).length>0?u:void 0,i.rmcpClient),...i.configOverrides??{}};return{configOverrides:Object.keys(f).length>0?f:void 0,usedSdkMcpServers:l}}async buildUserInput(i,t){let u=[],l=[];if(i.trim().length>0)u.push({type:"text",text:i,text_elements:[]});for(let n of t){if(n.type==="remote"){u.push({type:"image",url:n.url,imageUrl:n.url});continue}try{let f=fZu(n.data);l.push(f),u.push({type:"localImage",path:f})}catch(f){this.logger.warn(`[codex-app-server] Failed to write image to temp file: ${String(f)}`)}}return{input:u,tempImagePaths:l}}async startOrResumeThread(i){let{settings:t,providerOptions:u,configOverrides:l,developerInstructions:n,includeRawChunks:f}=i,c=this.resolveTargetThreadId(t,u),$=async(_)=>{return(await this.client.threadStart({model:this.modelId,cwd:t.cwd,approvalPolicy:COi(t),sandbox:kTu(t),config:l,baseInstructions:t.baseInstructions,developerInstructions:n,personality:t.personality,ephemeral:_,experimentalRawEvents:f,persistExtendedHistory:t.persistExtendedHistory??!1})).thread.id},d=async()=>{let _=async(g)=>{try{await this.client.threadResume({threadId:g.threadId,model:this.modelId,cwd:t.cwd,approvalPolicy:COi(t),sandbox:kTu(t),config:l,baseInstructions:t.baseInstructions,developerInstructions:n,personality:t.personality,persistExtendedHistory:t.persistExtendedHistory??!1});let h=g.persistent&&this.persistentThreadId===g.threadId?this.persistentThreadRawEventsEnabled:void 0;if(g.persistent){if(this.persistentThreadId=g.threadId,g.explicit)this.persistentThreadRawEventsEnabled=void 0}return{threadId:g.threadId,persistent:g.persistent,explicit:g.explicit,resumed:!0,rawEventsNegotiated:h}}catch(h){if(!yU0(h))throw h;if(g.persistent&&!g.explicit)this.clearPersistentThreadState(g.threadId);throw OU0(g.threadId)}};if(!c.threadId&&c.persistent){if(this.persistentThreadId)return await _({threadId:this.persistentThreadId,persistent:!0,explicit:!1});let g=await $(!1);return this.persistentThreadId=g,this.persistentThreadRawEventsEnabled=f,{threadId:g,persistent:!0,explicit:!1,resumed:!1,rawEventsNegotiated:f}}if(!c.threadId){let g=await $(!c.persistent);if(c.persistent)this.persistentThreadId=g,this.persistentThreadRawEventsEnabled=f;return{threadId:g,persistent:c.persistent,explicit:!1,resumed:!1,rawEventsNegotiated:f}}return await _({threadId:c.threadId,persistent:c.persistent,explicit:c.explicit})};if(c.persistent&&!c.explicit)return await this.withPersistentBootstrapLock(d);return await d()}async withPersistentBootstrapLock(i){let t=this.persistentBootstrapLock,u,l=new Promise((f)=>{u=f}),n=t.then(()=>l);this.persistentBootstrapLock=n,await t;try{return await i()}finally{if(u?.(),this.persistentBootstrapLock===n)this.persistentBootstrapLock=Promise.resolve()}}clearPersistentThreadState(i){if(i&&this.persistentThreadId&&this.persistentThreadId!==i)return;if(this.persistentThreadId=void 0,this.persistentThreadRawEventsEnabled=void 0,!i||this.persistentSession?.threadId===i)this.persistentSession=void 0}async createOrReuseSession(i){let{threadId:t,settings:u,providerOptions:l}=i,n=l?.onSessionCreated??u.onSessionCreated;if(!n)return;let f=this.resolveThreadMode(u,l)==="persistent";if(f&&this.persistentSession&&this.persistentSession.threadId===t)return this.persistentSession;let c=new nU0({threadId:t,modelId:this.modelId,client:this.client,defaultTurnParams:{cwd:u.cwd,approvalPolicy:COi(u),sandboxPolicy:jTu(u),effort:u.effort,summary:u.summary,personality:u.personality},requestHandlers:u.serverRequests??{},autoApprove:u.autoApprove});if(await n(c),f)this.persistentSession=c;return c}preparePrompt(i,t){let u=_Zu({prompt:i,mode:t?"persistent":"stateless"});return{promptText:u.text,images:[...u.localImages.map((l)=>({type:"local",data:l})),...u.remoteImageUrls.map((l)=>({type:"remote",url:l}))],warnings:u.warnings.map((l)=>l.type==="unsupported"?{type:"unsupported",feature:l.feature,details:l.details}:{type:"other",message:l.message}),systemInstruction:u.systemInstruction}}async doGenerate(i){let{stream:t,request:u}=await this.doStream(i),l=[],n=new Map,f=new Map,c,$,d={id:Tn(),timestamp:new Date,modelId:this.modelId},_=mOi(),g={unified:"other",raw:void 0},h=[],E,v=(O,X)=>{let N=n.get(O);if(N){if(X)N.providerMetadata=X;return N}let J={type:"text",text:"",...X?{providerMetadata:X}:{}};return n.set(O,J),l.push(J),J},r=(O,X)=>{let N=f.get(O);if(N){if(X)N.providerMetadata=X;return N}let J={type:"reasoning",text:"",...X?{providerMetadata:X}:{}};return f.set(O,J),l.push(J),J},x=(O)=>{l.push(O)};for await(let O of t){if(O.type==="stream-start"){h=O.warnings;continue}if(O.type==="response-metadata"){d={id:O.id,timestamp:O.timestamp,modelId:O.modelId};continue}if(O.type==="text-start"){c=O.id,v(O.id,O.providerMetadata);continue}if(O.type==="text-delta"){let X=typeof O.id==="string"?O.id:c??"__default_text_block__";c=X;let N=v(X,O.providerMetadata);N.text=`${N.text}${O.delta}`;continue}if(O.type==="text-end"){let X=typeof O.id==="string"?O.id:c;if(X){let N=v(X,O.providerMetadata);if(O.providerMetadata)N.providerMetadata=O.providerMetadata}if(c===X)c=void 0;continue}if(O.type==="reasoning-start"){$=O.id,r(O.id,O.providerMetadata);continue}if(O.type==="reasoning-delta"){let X=typeof O.id==="string"?O.id:$??"__default_reasoning_block__";$=X;let N=r(X,O.providerMetadata);N.text=`${N.text}${O.delta}`;continue}if(O.type==="reasoning-end"){let X=typeof O.id==="string"?O.id:$;if(X){let N=r(X,O.providerMetadata);if(O.providerMetadata)N.providerMetadata=O.providerMetadata}if($===X)$=void 0;continue}if(O.type==="file"){x(O);continue}if(O.type==="source"){x(O);continue}if(O.type==="tool-approval-request"){x(O);continue}if(O.type==="tool-call"){x(O);continue}if(O.type==="tool-result"){x(O);continue}if(O.type==="finish")_=O.usage,g=O.finishReason,E=O.providerMetadata}return{content:l.filter((O)=>{if(O.type==="text")return O.text.trim().length>0;if(O.type==="reasoning")return O.text.trim().length>0;return!0}),usage:_,finishReason:g,warnings:h,response:d,request:u,...E?{providerMetadata:E}:{}}}async doStream(i){let t=await sut({provider:this.provider,providerOptions:i.providerOptions,schema:PF0}),u=this.mergeSettings(t),l=this.resolveThreadMode(u,t)==="persistent"?"provider":"request",n=this.resolveIncludeRawChunks(i.includeRawChunks,u,t),f=[...EZu({temperature:i.temperature,topP:i.topP,topK:i.topK,maxOutputTokens:i.maxOutputTokens,presencePenalty:i.presencePenalty,frequencyPenalty:i.frequencyPenalty,stopSequences:i.stopSequences,seed:i.seed,tools:i.tools,toolChoice:i.toolChoice})],c=t?.developerInstructions??u.developerInstructions,$=this.resolveTargetThreadId(u,t),d=this.preparePrompt(i.prompt,Boolean($.threadId));f.push(...d.warnings);let _=c??(!$.threadId?d.systemInstruction:void 0),g=await this.resolveConfig(u,l),h=!1,E=()=>{if(h||l!=="request")return;h=!0;for(let Q of g.usedSdkMcpServers)this.onSdkMcpServerReleased?.(Q)},v;try{v=await this.startOrResumeThread({settings:u,providerOptions:t,configOverrides:g.configOverrides,developerInstructions:_,includeRawChunks:n})}catch(Q){throw E(),Q}let r=v.threadId;if(n&&v.resumed&&v.rawEventsNegotiated!==!0)f.push({type:"other",message:"includeRawChunks was requested while resuming an existing thread that may not emit raw events. Start a new thread to guarantee raw chunk events."});let x=[],D=[],O;try{let Q=await this.buildUserInput(d.promptText,d.images);x=Q.input,D=Q.tempImagePaths,O=await this.createOrReuseSession({threadId:r,settings:u,providerOptions:t})}catch(Q){throw vlt(D),E(),Q}let X=xU0({threadId:r,modelId:this.modelId,input:x,settings:{cwd:u.cwd,approvalPolicy:COi(u),sandboxPolicy:jTu(u),effort:u.effort,summary:u.summary,personality:u.personality},responseFormat:i.responseFormat}),N=new wU0({client:this.client,modelId:this.modelId,threadId:r,warnings:f,includeRawChunks:n,jsonModeLastTextBlockOnly:i.responseFormat?.type==="json",turnStartParams:X,requestHandlers:u.serverRequests,autoApprove:u.autoApprove,session:O,abortSignal:i.abortSignal,shouldSerializeTurnStart:v.persistent||v.explicit,hadInitialThreadId:Boolean($.threadId),threadResolution:{persistent:v.persistent,explicit:v.explicit},releaseResources:()=>{vlt(D),E()},clearPersistentThreadState:(Q)=>{this.clearPersistentThreadState(Q)}});return{stream:new ReadableStream({start:async(Q)=>{await N.start(Q)},cancel:async(Q)=>{await N.cancel(Q)}}),request:{body:d.promptText}}}},W3,QU0,FU0,UU0,TU0,ZU0,BU0,IU0,YU0,PU0,SU0,AU0,GU0,WU0,kU0,jU0,bU0,zU0,KU0,HU0,LU0,RU0,eU0,CU0,Xlt,MOi,rZu,wZu,MU0,qU0,VU0,mU0,aU0,oU0,bTu,zTu,sU0,pU0,KTu,iT0,tT0,xZu,DZu,yZu,OZu,XZu,NZu,uT0,lT0,nT0,fT0=30000,cT0=1024,LTu,hT0,dB1;var JZu=w(()=>{u2();put();XF0={debug:(i)=>console.debug(`[DEBUG] ${i}`),info:(i)=>console.info(`[INFO] ${i}`),warn:(i)=>console.warn(`[WARN] ${i}`),error:(i)=>console.error(`[ERROR] ${i}`)},NF0={debug:()=>{},info:()=>{},warn:()=>{},error:()=>{}};JF0=/^[A-Za-z0-9_-]+$/,QF0=/^[A-Za-z0-9_-]+(?:\.[A-Za-z0-9_-]+)*$/;mTu=H.object({debug:H.any().refine((i)=>typeof i==="function",{message:"debug must be a function"}),info:H.any().refine((i)=>typeof i==="function",{message:"info must be a function"}),warn:H.any().refine((i)=>typeof i==="function",{message:"warn must be a function"}),error:H.any().refine((i)=>typeof i==="function",{message:"error must be a function"})}),aTu=H.object({enabled:H.boolean().optional(),startupTimeoutSec:H.number().int().positive().optional(),toolTimeoutSec:H.number().int().positive().optional(),enabledTools:H.array(H.string()).optional(),disabledTools:H.array(H.string()).optional()}),FF0=aTu.extend({transport:H.literal("stdio"),command:H.string().min(1),args:H.array(H.string()).optional(),env:H.record(H.string(),H.string()).optional(),cwd:H.string().optional()}),UF0=aTu.extend({transport:H.literal("http"),url:H.string().min(1),bearerToken:H.string().optional(),bearerTokenEnvVar:H.string().optional(),httpHeaders:H.record(H.string(),H.string()).optional(),envHttpHeaders:H.record(H.string(),H.string()).optional()}),oTu=H.discriminatedUnion("transport",[FF0,UF0]),xlt=H.string().min(1).refine((i)=>qTu(i),{message:"MCP server names must match /^[A-Za-z0-9_-]+$/."}),sTu=H.record(xlt,oTu),TF0=H.object({name:xlt,_start:H.any().refine((i)=>typeof i==="function",{message:"_start must be a function"}),_stop:H.any().refine((i)=>typeof i==="function",{message:"_stop must be a function"})}).passthrough(),pTu=H.record(xlt,H.union([oTu,TF0])),ZF0=H.string().min(1).refine((i)=>wlt(i),{message:"configOverrides keys must match /^[A-Za-z0-9_-]+(?:\\.[A-Za-z0-9_-]+)*$/."}),Dlt=H.record(ZF0,H.union([H.string(),H.number(),H.boolean(),H.object({}).passthrough(),H.array(H.any())])).optional(),BF0=H.object({cwd:H.string().optional(),approvalMode:H.enum(["untrusted","on-failure","on-request","never"]).optional(),sandboxMode:H.enum(["read-only","workspace-write","danger-full-access"]).optional(),env:H.record(H.string(),H.string()).optional(),verbose:H.boolean().optional(),logger:H.union([H.literal(!1),mTu]).optional(),reasoningEffort:H.enum(["none","minimal","low","medium","high","xhigh"]).optional(),reasoningSummary:H.enum(["auto","detailed"]).optional(),reasoningSummaryFormat:H.enum(["none","experimental"]).optional(),modelVerbosity:H.enum(["low","medium","high"]).optional(),mcpServers:sTu.optional(),rmcpClient:H.boolean().optional(),configOverrides:Dlt}).strict(),IF0=BF0.extend({codexPath:H.string().optional(),addDirs:H.array(H.string().min(1)).optional(),fullAuto:H.boolean().optional(),dangerouslyBypassApprovalsAndSandbox:H.boolean().optional(),skipGitRepoCheck:H.boolean().optional(),color:H.enum(["always","never","auto"]).optional(),allowNpx:H.boolean().optional(),outputLastMessageFile:H.string().optional(),profile:H.string().optional(),oss:H.boolean().optional(),webSearch:H.boolean().optional()}).strict(),iZu=H.object({reject:H.object({sandbox_approval:H.boolean(),rules:H.boolean(),mcp_elicitations:H.boolean()})}),tZu=H.union([H.enum(["read-only","workspace-write","danger-full-access"]),H.object({type:H.string()}).passthrough()]),uZu=H.object({onCommandExecutionApproval:H.any().refine((i)=>i===void 0||typeof i==="function",{message:"onCommandExecutionApproval must be a function"}).optional(),onFileChangeApproval:H.any().refine((i)=>i===void 0||typeof i==="function",{message:"onFileChangeApproval must be a function"}).optional(),onSkillApproval:H.any().refine((i)=>i===void 0||typeof i==="function",{message:"onSkillApproval must be a function"}).optional(),onToolRequestUserInput:H.any().refine((i)=>i===void 0||typeof i==="function",{message:"onToolRequestUserInput must be a function"}).optional(),onDynamicToolCall:H.any().refine((i)=>i===void 0||typeof i==="function",{message:"onDynamicToolCall must be a function"}).optional(),onAuthRefresh:H.any().refine((i)=>i===void 0||typeof i==="function",{message:"onAuthRefresh must be a function"}).optional(),onUnhandled:H.any().refine((i)=>i===void 0||typeof i==="function",{message:"onUnhandled must be a function"}).optional()}).strict().optional(),YF0=H.object({codexPath:H.string().optional(),cwd:H.string().optional(),env:H.record(H.string(),H.string()).optional(),verbose:H.boolean().optional(),logger:H.union([H.literal(!1),mTu]).optional(),personality:H.enum(["none","friendly","pragmatic"]).optional(),effort:H.enum(["none","minimal","low","medium","high","xhigh"]).optional(),summary:H.enum(["auto","concise","detailed","none"]).optional(),approvalPolicy:H.union([H.enum(["untrusted","on-failure","on-request","never"]),iZu]).optional(),sandboxPolicy:tZu.optional(),baseInstructions:H.string().optional(),developerInstructions:H.string().optional(),mcpServers:pTu.optional(),rmcpClient:H.boolean().optional(),configOverrides:Dlt,autoApprove:H.boolean().optional(),persistExtendedHistory:H.boolean().optional(),connectionTimeoutMs:H.number().int().positive().optional(),requestTimeoutMs:H.number().int().positive().optional(),idleTimeoutMs:H.number().int().positive().optional(),minCodexVersion:H.string().regex(/^\d+\.\d+\.\d+(-[A-Za-z0-9.-]+)?$/,"minCodexVersion must be a semver string").optional(),threadMode:H.enum(["stateless","persistent"]).optional(),resume:H.string().optional(),includeRawChunks:H.boolean().optional(),serverRequests:uZu,onSessionCreated:H.any().refine((i)=>i===void 0||typeof i==="function",{message:"onSessionCreated must be a function"}).optional()}).strict(),PF0=H.object({threadId:H.string().optional(),resume:H.string().optional(),threadMode:H.enum(["stateless","persistent"]).optional(),includeRawChunks:H.boolean().optional(),personality:H.enum(["none","friendly","pragmatic"]).optional(),effort:H.enum(["none","minimal","low","medium","high","xhigh"]).optional(),summary:H.enum(["auto","concise","detailed","none"]).optional(),approvalPolicy:H.union([H.enum(["untrusted","on-failure","on-request","never"]),iZu]).optional(),sandboxPolicy:tZu.optional(),baseInstructions:H.string().optional(),developerInstructions:H.string().optional(),mcpServers:pTu.optional(),rmcpClient:H.boolean().optional(),configOverrides:Dlt,autoApprove:H.boolean().optional(),persistExtendedHistory:H.boolean().optional(),serverRequests:uZu,onSessionCreated:H.any().refine((i)=>i===void 0||typeof i==="function",{message:"onSessionCreated must be a function"}).optional()}).strict();GTu=class extends aUu{feature;minCodexVersion;serverVersion;constructor({feature:i,minCodexVersion:t,serverVersion:u,message:l}){let n=l??`Feature '${i}' is not supported by this codex app-server`+(u?` (detected ${u})`:"")+(t?`. Requires codex CLI >= ${t}.`:".");super({functionality:i,message:n});this.name="UnsupportedFeatureError",this.feature=i,this.minCodexVersion=t,this.serverVersion=u}};pF0=H.object({reasoningEffort:H.enum(["none","minimal","low","medium","high","xhigh"]).optional(),reasoningSummary:H.enum(["auto","detailed"]).optional(),reasoningSummaryFormat:H.enum(["none","experimental"]).optional(),textVerbosity:H.enum(["low","medium","high"]).optional(),addDirs:H.array(H.string().min(1)).optional(),configOverrides:H.record(H.string().refine((i)=>wlt(i),{message:"configOverrides keys must match /^[A-Za-z0-9_-]+(?:\\.[A-Za-z0-9_-]+)*$/."}),H.union([H.string(),H.number(),H.boolean(),H.object({}).passthrough(),H.array(H.any())])).optional(),mcpServers:sTu.optional(),rmcpClient:H.boolean().optional()}).strict();$B1=uU0();DU0=Symbol.for("ai-sdk-provider-codex-cli.sdkMcpServer");W3=H.union([H.number(),H.string()]),QU0=H.object({id:W3,method:H.string().min(1),params:H.record(H.string(),H.unknown()).optional()}).passthrough(),FU0=H.object({id:W3,result:H.unknown()}).refine((i)=>Object.prototype.hasOwnProperty.call(i,"result"),{message:"result field is required"}).passthrough(),UU0=H.object({id:H.union([W3,H.null()]),error:H.object({code:H.number(),message:H.string(),data:H.unknown().optional()}).passthrough()}).passthrough(),TU0=H.object({method:H.string().min(1),params:H.record(H.string(),H.unknown()).optional()}).passthrough(),ZU0=H.object({type:H.literal("text"),text:H.string(),text_elements:H.array(H.unknown())}).passthrough(),BU0=H.object({type:H.literal("image"),url:H.string().optional(),imageUrl:H.string().optional()}).refine((i)=>typeof i.url==="string"||typeof i.imageUrl==="string",{message:"image input must provide url or imageUrl"}).passthrough(),IU0=H.object({type:H.literal("localImage"),path:H.string()}).passthrough(),YU0=H.object({type:H.literal("skill"),name:H.string(),path:H.string()}).passthrough(),PU0=H.object({type:H.literal("mention"),name:H.string(),path:H.string()}).passthrough(),SU0=H.discriminatedUnion("type",[ZU0,BU0,IU0,YU0,PU0]),AU0=H.object({type:H.literal("userMessage"),id:H.string(),content:H.array(SU0)}).passthrough(),GU0=H.object({type:H.literal("agentMessage"),id:H.string(),text:H.string(),phase:H.string().nullable()}).passthrough(),WU0=H.object({type:H.literal("plan"),id:H.string(),text:H.string()}).passthrough(),kU0=H.object({type:H.literal("reasoning"),id:H.string(),summary:H.array(H.string()),content:H.array(H.string())}).passthrough(),jU0=H.object({type:H.literal("commandExecution"),id:H.string(),command:H.string(),cwd:H.string(),processId:H.string().nullable(),status:H.string(),commandActions:H.array(H.unknown()),aggregatedOutput:H.string().nullable(),exitCode:H.number().nullable(),durationMs:H.number().nullable()}).passthrough(),bU0=H.object({type:H.literal("fileChange"),id:H.string(),changes:H.array(H.unknown()),status:H.string()}).passthrough(),zU0=H.object({type:H.literal("mcpToolCall"),id:H.string(),server:H.string(),tool:H.string(),status:H.string(),arguments:H.unknown(),result:H.unknown().nullable(),error:H.unknown().nullable(),durationMs:H.number().nullable()}).passthrough(),KU0=H.object({type:H.literal("collabAgentToolCall"),id:H.string(),tool:H.string(),status:H.string(),senderThreadId:H.string(),receiverThreadIds:H.array(H.string()),prompt:H.string().nullable(),agentsStates:H.record(H.string(),H.unknown())}).passthrough(),HU0=H.object({type:H.literal("webSearch"),id:H.string(),query:H.string(),action:H.unknown().nullable()}).passthrough(),LU0=H.object({type:H.literal("imageView"),id:H.string(),path:H.string()}).passthrough(),RU0=H.object({type:H.literal("enteredReviewMode"),id:H.string(),review:H.string()}).passthrough(),eU0=H.object({type:H.literal("exitedReviewMode"),id:H.string(),review:H.string()}).passthrough(),CU0=H.object({type:H.literal("contextCompaction"),id:H.string()}).passthrough(),Xlt=H.discriminatedUnion("type",[AU0,GU0,WU0,kU0,jU0,bU0,zU0,KU0,HU0,LU0,RU0,eU0,CU0]),MOi=H.object({httpStatusCode:H.number().nullable()}).passthrough(),rZu=H.union([H.enum(["contextWindowExceeded","usageLimitExceeded","serverOverloaded","internalServerError","unauthorized","badRequest","threadRollbackFailed","sandboxError","other"]),H.object({httpConnectionFailed:MOi}).passthrough(),H.object({responseStreamConnectionFailed:MOi}).passthrough(),H.object({responseStreamDisconnected:MOi}).passthrough(),H.object({responseTooManyFailedAttempts:MOi}).passthrough()]),wZu=H.object({id:H.string(),items:H.array(Xlt),status:H.enum(["completed","interrupted","failed","inProgress"]),error:H.object({message:H.string(),codexErrorInfo:rZu.nullable(),additionalDetails:H.string().nullable()}).nullable()}).passthrough(),MU0=H.object({thread:H.object({id:H.string()}).passthrough()}).passthrough(),qU0=H.object({threadId:H.string(),turn:wZu}).passthrough(),VU0=H.object({threadId:H.string(),turn:wZu}).passthrough(),mU0=H.object({item:Xlt,threadId:H.string(),turnId:H.string()}).passthrough(),aU0=H.object({item:Xlt,threadId:H.string(),turnId:H.string()}).passthrough(),oU0=H.object({threadId:H.string(),turnId:H.string(),itemId:H.string(),delta:H.string()}).passthrough(),bTu=H.object({threadId:H.string(),turnId:H.string(),itemId:H.string(),delta:H.string()}).passthrough(),zTu=H.object({threadId:H.string(),turnId:H.string(),itemId:H.string(),delta:H.string()}).passthrough(),sU0=H.object({threadId:H.string(),turnId:H.string(),itemId:H.string(),delta:H.string()}).passthrough(),pU0=H.object({threadId:H.string(),turnId:H.string(),itemId:H.string(),delta:H.string()}).passthrough(),KTu=H.object({totalTokens:H.number(),inputTokens:H.number(),cachedInputTokens:H.number(),outputTokens:H.number(),reasoningOutputTokens:H.number()}).passthrough(),iT0=H.object({threadId:H.string(),turnId:H.string(),tokenUsage:H.object({total:KTu,last:KTu,modelContextWindow:H.number().nullable()}).passthrough()}).passthrough(),tT0=H.object({error:H.object({message:H.string(),codexErrorInfo:rZu.nullable(),additionalDetails:H.string().nullable()}).passthrough(),willRetry:H.boolean(),threadId:H.string(),turnId:H.string()}).passthrough(),xZu=H.object({threadId:H.string(),turnId:H.string(),itemId:H.string(),approvalId:H.string().nullable().optional(),reason:H.string().nullable().optional(),networkApprovalContext:H.unknown().nullable().optional(),command:H.string().nullable().optional(),cwd:H.string().nullable().optional(),commandActions:H.array(H.unknown()).nullable().optional(),proposedExecpolicyAmendment:H.unknown().nullable().optional()}).passthrough(),DZu=H.object({threadId:H.string(),turnId:H.string(),itemId:H.string(),reason:H.string().nullable().optional(),grantRoot:H.string().nullable().optional()}).passthrough(),yZu=H.object({threadId:H.string(),turnId:H.string(),itemId:H.string(),questions:H.array(H.unknown())}).passthrough(),OZu=H.object({itemId:H.string(),skillName:H.string()}).passthrough(),XZu=H.object({threadId:H.string(),turnId:H.string(),callId:H.string(),tool:H.string(),arguments:H.unknown()}).passthrough(),NZu=H.object({reason:H.string(),previousAccountId:H.string().nullable().optional()}).passthrough(),uT0={"item/commandExecution/requestApproval":xZu,"item/fileChange/requestApproval":DZu,"item/tool/requestUserInput":yZu,"skill/requestApproval":OZu,"item/tool/call":XZu,"account/chatgptAuthTokens/refresh":NZu};H.enum(Object.keys(uT0));lT0=H.discriminatedUnion("method",[H.object({id:W3,method:H.literal("item/commandExecution/requestApproval"),params:xZu}).passthrough(),H.object({id:W3,method:H.literal("item/fileChange/requestApproval"),params:DZu}).passthrough(),H.object({id:W3,method:H.literal("item/tool/requestUserInput"),params:yZu}).passthrough(),H.object({id:W3,method:H.literal("skill/requestApproval"),params:OZu}).passthrough(),H.object({id:W3,method:H.literal("item/tool/call"),params:XZu}).passthrough(),H.object({id:W3,method:H.literal("account/chatgptAuthTokens/refresh"),params:NZu}).passthrough()]),nT0={"thread/started":MU0,"turn/started":qU0,"turn/completed":VU0,"item/started":mU0,"item/completed":aU0,"item/agentMessage/delta":oU0,reasoningTextDelta:bTu,reasoningSummaryTextDelta:zTu,"item/reasoning/textDelta":bTu,"item/reasoning/summaryTextDelta":zTu,"item/commandExecution/outputDelta":sU0,"item/fileChange/outputDelta":pU0,"thread/tokenUsage/updated":iT0,error:tT0};LTu=class extends Error{code;constructor(i,t){super(`JSON-RPC error ${i}: ${t}`);this.name="JsonRpcRequestError",this.code=i}},hT0=class extends yF0{settings;logger;requestTimeoutMs;clientVersion;child;stdoutReader;state="idle";initPromise;nextId=1;nextRequestContextId=1;pending=new Map;threadLocks=new Map;pendingRequestContexts=new Map;pendingRequestContextIdsByThread=new Map;activeRequestContextsByTurn=new Map;completedTurnIds=new Set;lastStderr="";idleTimer;serverCapabilities;expectedExitSignal;writeQueue=Promise.resolve();serverVersion;constructor(i={}){super();this.settings=i.settings??{},this.logger=Fm(i.logger??this.settings.logger),this.requestTimeoutMs=i.requestTimeoutMs??this.settings.requestTimeoutMs??fT0,this.clientVersion=i.clientVersion??"0.0.0"}async ensureReady(){if(this.state==="ready")return;if(this.state==="closed")throw Error("AppServerRpcClient is closed");if(this.initPromise){await this.initPromise;return}let i=this.state==="error";this.state="starting",this.initPromise=this.startAndInitialize().then(()=>{if(this.state="ready",i)this.emit("reconnected")}).catch((t)=>{throw this.cleanupAfterInitializationFailure(t),t}).finally(()=>{this.initPromise=void 0}),await this.initPromise,this.touchActivity()}async request(i,t,u){return await this.ensureReady(),this.touchActivity(),await this.requestInternal(i,t,u)}async requestInternal(i,t,u){let l=this.nextId++,n={id:l,method:i,...t?{params:t}:{}};return await new Promise((f,c)=>{let $=setTimeout(()=>{this.pending.delete(l),c(Error(`Request timed out for method '${i}'`))},u??this.requestTimeoutMs);this.pending.set(l,{resolve:(d)=>f(d),reject:c,timer:$}),this.writeMessage(n).catch((d)=>{let _=this.pending.get(l);if(!_)return;clearTimeout(_.timer),this.pending.delete(l),_.reject(d)})})}notify(i,t){if(this.state!=="ready")throw Error(`Cannot send notification '${i}' while client is not ready`);this.writeMessage({method:i,...t?{params:t}:{}}).catch((u)=>{this.logger.warn(`[codex-app-server] Failed to send notification '${i}': ${String(u)}`)})}async threadStart(i){return await this.request("thread/start",i)}async threadResume(i){return await this.request("thread/resume",i)}async turnStart(i){return await this.request("turn/start",i)}async turnInterrupt(i){return await this.request("turn/interrupt",i)}async modelList(i){if(await this.ensureReady(),this.touchActivity(),this.serverCapabilities?.modelList===!1)throw new GTu({feature:"model/list",minCodexVersion:this.settings.minCodexVersion??"0.105.0",serverVersion:this.serverVersion});try{return await this.requestInternal("model/list",i)}catch(t){if(t instanceof LTu&&t.code===-32601)throw new GTu({feature:"model/list",minCodexVersion:this.settings.minCodexVersion??"0.105.0",serverVersion:this.serverVersion});throw t}}registerRequestContext(i,t){let u=`ctx_${this.nextRequestContextId++}`;this.pendingRequestContexts.set(u,{threadId:i,context:{handlers:t.handlers,autoApprove:t.autoApprove}});let l=this.pendingRequestContextIdsByThread.get(i)??new Set;return l.add(u),this.pendingRequestContextIdsByThread.set(i,l),u}bindRequestContext(i,t){let u=this.pendingRequestContexts.get(i);if(!u)return;if(this.completedTurnIds.has(t)){this.clearRequestContext(i);return}this.activeRequestContextsByTurn.set(t,{handlers:u.context.handlers,autoApprove:u.context.autoApprove}),this.clearRequestContext(i)}clearRequestContext(i){let t=this.pendingRequestContexts.get(i);if(!t)return;this.pendingRequestContexts.delete(i);let u=this.pendingRequestContextIdsByThread.get(t.threadId);if(!u)return;if(u.delete(i),u.size===0)this.pendingRequestContextIdsByThread.delete(t.threadId)}clearRequestContextForTurn(i){this.activeRequestContextsByTurn.delete(i)}hasTurnCompleted(i){return this.completedTurnIds.has(i)}async withThreadLock(i,t){let u=this.threadLocks.get(i)??Promise.resolve(),l,n=new Promise((c)=>{l=c}),f=u.then(()=>n);this.threadLocks.set(i,f),await u;try{return await t()}finally{if(l?.(),this.threadLocks.get(i)===f)this.threadLocks.delete(i)}}async close(){this.state="closed",this.clearIdleTimer(),this.stdoutReader?.close(),this.stdoutReader=void 0;for(let[i,t]of this.pending.entries())clearTimeout(t.timer),t.reject(Error(`Client closed while request ${String(i)} was in flight`));if(this.pending.clear(),this.threadLocks.clear(),this.pendingRequestContexts.clear(),this.pendingRequestContextIdsByThread.clear(),this.activeRequestContextsByTurn.clear(),this.completedTurnIds.clear(),this.serverCapabilities=void 0,this.child)this.expectedExitSignal="SIGTERM",this.child.kill("SIGTERM"),this.child=void 0;this.writeQueue=Promise.resolve()}async dispose(){await this.close()}async startAndInitialize(){let i=$T0(this.settings.codexPath),t=[...i.args,"app-server","--listen","stdio://"];this.lastStderr="",this.expectedExitSignal=void 0,this.child=RTu(i.cmd,t,{stdio:["pipe","pipe","pipe"],env:{...process.env,...this.settings.env??{},RUST_LOG:process.env.RUST_LOG||"error"},cwd:this.settings.cwd}),this.child.stderr.setEncoding("utf8"),this.child.stderr.on("data",(n)=>{if(this.lastStderr+=String(n),this.lastStderr.length>4000)this.lastStderr=this.lastStderr.slice(-4000)}),this.child.on("error",(n)=>{this.logger.error(`[codex-app-server] process error: ${String(n)}`),this.handleCrash(n)}),this.child.on("exit",(n,f)=>{let c=`codex app-server exited (code=${String(n)}, signal=${String(f)})`,$=this.state==="closed"||f!==null&&f===this.expectedExitSignal;if(this.expectedExitSignal=void 0,$){this.logger.info(`[codex-app-server] ${c}`);return}this.logger.warn(`[codex-app-server] ${c}`),this.handleCrash(Error(c))}),this.stdoutReader=OF0.createInterface({input:this.child.stdout,crlfDelay:1/0}),this.stdoutReader.on("line",(n)=>this.handleLine(n));let u={clientInfo:{name:"ai-sdk-provider-codex-cli",version:this.clientVersion},capabilities:{experimentalApi:!0,optOutNotificationMethods:null}},l;try{l=await this.requestInternal("initialize",u,this.settings.connectionTimeoutMs??this.requestTimeoutMs)}catch(n){let f=String(n?.message??n);if(f.includes("ENOENT")||f.includes("unknown subcommand"))throw Error("codex app-server requires codex CLI >= 0.105.0. Run 'codex --version' to check.");throw qOi({message:`Failed to initialize codex app-server: ${f}`,stderr:this.lastStderr,provider:"app-server"})}await this.writeMessage({method:"initialized"}),this.checkVersion(l.userAgent),this.serverCapabilities=l.capabilities??null}checkVersion(i){let t=dT0(i);if(!t){this.logger.warn(`[codex-app-server] Could not parse server version from userAgent: ${i}`);return}this.serverVersion=t;let u=this.settings.minCodexVersion??"0.105.0",l=gT0(t,u);if(l===void 0){this.logger.warn(`[codex-app-server] Could not semver-compare '${t}' against '${u}'.`);return}if(l<0)throw Error(`codex app-server version '${t}' is below required minimum '${u}'.`)}cleanupAfterInitializationFailure(i){if(this.state==="closed")return;this.state="error",this.clearIdleTimer(),this.stdoutReader?.close(),this.stdoutReader=void 0;for(let[t,u]of this.pending.entries())clearTimeout(u.timer),u.reject(Error(`Request ${String(t)} failed during app-server initialization: ${String(i)}`));if(this.pending.clear(),this.threadLocks.clear(),this.pendingRequestContexts.clear(),this.pendingRequestContextIdsByThread.clear(),this.activeRequestContextsByTurn.clear(),this.completedTurnIds.clear(),this.serverCapabilities=void 0,this.child)this.expectedExitSignal="SIGTERM",this.child.kill("SIGTERM"),this.child=void 0;this.writeQueue=Promise.resolve()}handleCrash(i){if(this.state==="closed")return;if(this.state="error",this.clearIdleTimer(),this.stdoutReader?.close(),this.stdoutReader=void 0,this.child)this.expectedExitSignal="SIGTERM",this.child.kill("SIGTERM"),this.child=void 0;for(let[t,u]of this.pending.entries())clearTimeout(u.timer),u.reject(Error(`Request ${String(t)} failed after app-server crash: ${String(i)}`));this.pending.clear(),this.threadLocks.clear(),this.pendingRequestContexts.clear(),this.pendingRequestContextIdsByThread.clear(),this.activeRequestContextsByTurn.clear(),this.completedTurnIds.clear(),this.serverCapabilities=void 0,this.writeQueue=Promise.resolve()}handleLine(i){let t=i.trim();if(!t)return;this.touchActivity();let u;try{u=JSON.parse(t)}catch{this.logger.warn(`[codex-app-server] Ignoring non-JSON line: ${t.slice(0,200)}`);return}let l=FU0.safeParse(u);if(l.success){this.handleResponse(l.data);return}let n=UU0.safeParse(u);if(n.success){this.handleErrorResponse(n.data.id,n.data.error);return}let f=QU0.safeParse(u);if(f.success){let $=f.data;this.handleServerRequest($.id,$.method,$.params??{}).catch((d)=>{this.logger.warn(`[codex-app-server] Failed to handle server request '${$.method}': ${String(d)}`)});return}let c=TU0.safeParse(u);if(c.success){let $=c.data,d=nT0[$.method];if(d){if(!d.safeParse($.params??{}).success){this.logger.warn(`[codex-app-server] Notification '${$.method}' failed schema validation; dropping.`);return}}if($.method==="turn/completed"){let _=$.params,g=typeof _?.turn?.id==="string"?_.turn.id:void 0;if(g)this.clearRequestContextForTurn(g),this.rememberCompletedTurn(g)}this.emit("notification",$.method,$.params??{});return}this.logger.warn("[codex-app-server] Received unrecognized JSON-RPC message")}handleResponse(i){this.touchActivity();let t=this.pending.get(i.id);if(!t)return;clearTimeout(t.timer),this.pending.delete(i.id),t.resolve(i.result)}handleErrorResponse(i,t){if(this.touchActivity(),i===null){this.logger.error(`[codex-app-server] JSON-RPC error: ${t.message}`);return}let u=this.pending.get(i);if(!u)return;clearTimeout(u.timer),this.pending.delete(i),u.reject(new LTu(t.code,t.message))}getThreadIdFromServerRequest(i){return typeof i.threadId==="string"?i.threadId:void 0}getTurnIdFromServerRequest(i){return typeof i.turnId==="string"?i.turnId:void 0}getPendingContextsForThread(i){let t=this.pendingRequestContextIdsByThread.get(i);if(!t||t.size===0)return[];let u=[];for(let l of t){let n=this.pendingRequestContexts.get(l);if(n)u.push(n.context)}return u}getContextForRequest(i){let t=this.getTurnIdFromServerRequest(i);if(t){let f=this.activeRequestContextsByTurn.get(t);if(f)return f}let u=this.getThreadIdFromServerRequest(i);if(u){let f=this.getPendingContextsForThread(u);if(f.length===1)return f[0];if(f.length>1)this.logger.debug(`[codex-app-server] Received server request for thread '${u}' before turn binding with multiple pending contexts; using settings-level handlers.`);return}let l=this.activeRequestContextsByTurn.size,n=this.pendingRequestContexts.size;if(l+n===1){if(l===1)return this.activeRequestContextsByTurn.values().next().value;return this.pendingRequestContexts.values().next().value?.context}if(l+n>1)this.logger.debug("[codex-app-server] Received threadless server request while multiple request contexts are active; using settings-level handlers.");return}async handleServerRequest(i,t,u){let l=lT0.safeParse({id:i,method:t,params:u}),n=l.success?l.data:{id:i,method:t,params:u},f=async(h)=>{try{await this.writeMessage({id:n.id,result:h})}catch(E){this.logger.warn(`[codex-app-server] Failed to send server request result for '${n.method}': ${String(E)}`)}},c=async(h,E)=>{try{await this.writeMessage({id:n.id,error:{code:h,message:E}})}catch(v){this.logger.warn(`[codex-app-server] Failed to send server request error for '${n.method}': ${String(v)}`)}},$=this.getContextForRequest(n.params),d=$?.handlers??this.settings.serverRequests??{},_=$?.autoApprove??this.settings.autoApprove??!1;this.emit("server-request",n.method,n.params,n.id);let g=async(h)=>{if(!h)return;try{let E=h();if(!E)return;return await E}catch(E){this.logger.warn(`[codex-app-server] request handler failed for '${n.method}': ${String(E)}`);return}};switch(n.method){case"item/commandExecution/requestApproval":{let h=await g(()=>d.onCommandExecutionApproval?.(n));if(h!==void 0){await f(h);return}await f({decision:_?"accept":"decline"});return}case"item/fileChange/requestApproval":{let h=await g(()=>d.onFileChangeApproval?.(n));if(h!==void 0){await f(h);return}await f({decision:_?"accept":"decline"});return}case"skill/requestApproval":{let h=await g(()=>d.onSkillApproval?.(n));if(h!==void 0){await f(h);return}await f({decision:_?"approve":"decline"});return}case"item/tool/requestUserInput":{let h=await g(()=>d.onToolRequestUserInput?.(n));if(h!==void 0){await f(h);return}await f({answers:{}});return}case"item/tool/call":{let h=await g(()=>d.onDynamicToolCall?.(n));if(h!==void 0){await f(h);return}await f({contentItems:[],success:!1});return}case"account/chatgptAuthTokens/refresh":{let h=await g(()=>d.onAuthRefresh?.(n));if(h!==void 0){await f(h);return}await c(-32603,"Auth token refresh not supported by this client");return}default:{let h=await g(()=>d.onUnhandled?.(n));if(h!==void 0){await f(h);return}}await c(-32601,"Method not supported")}}async writeMessage(i){let t=`${JSON.stringify(i)}
|
|
107728
|
-
`,u=async()=>{if(!this.child?.stdin.writable)throw Error("codex app-server stdin is not writable");let n=this.child.stdin;if(!n.write(t))await new Promise((c,$)=>{let d=()=>{h(),c()},_=(E)=>{h(),$(E)},g=()=>{h(),$(Error("codex app-server stdin closed before drain"))},h=()=>{n.off("drain",d),n.off("error",_),n.off("close",g)};n.once("drain",d),n.once("error",_),n.once("close",g)});this.touchActivity()},l=this.writeQueue.then(u,u);this.writeQueue=l.catch(()=>{return}),await l}rememberCompletedTurn(i){if(this.completedTurnIds.add(i),this.completedTurnIds.size<=cT0)return;let t=this.completedTurnIds.values().next().value;if(typeof t==="string")this.completedTurnIds.delete(t)}clearIdleTimer(){if(this.idleTimer)clearTimeout(this.idleTimer),this.idleTimer=void 0}touchActivity(){let i=this.settings.idleTimeoutMs;if(!i||i<=0||this.state!=="ready")return;this.clearIdleTimer(),this.idleTimer=setTimeout(()=>{if(this.state!=="ready")return;if(this.pending.size>0||this.activeRequestContextsByTurn.size>0||this.pendingRequestContexts.size>0){this.touchActivity();return}if(this.child)this.logger.info(`[codex-app-server] Closing idle app-server process after ${i}ms inactivity.`),this.expectedExitSignal="SIGTERM",this.child.kill("SIGTERM"),this.child=void 0;this.stdoutReader?.close(),this.stdoutReader=void 0,this.state="idle",this.threadLocks.clear(),this.pendingRequestContexts.clear(),this.pendingRequestContextIdsByThread.clear(),this.activeRequestContextsByTurn.clear(),this.completedTurnIds.clear(),this.serverCapabilities=void 0,this.writeQueue=Promise.resolve(),this.emit("idle-timeout")},i)}};dB1=Nlt()});function Jlt(i,t){let u=t?.mcpServers?Object.fromEntries(Object.entries(t.mcpServers).map(([f,c])=>[f,{transport:c.transport,url:c.url,httpHeaders:c.headers}])):void 0,l;if(t?.isPlanMode||t?.toolApprovalLevel==="readonly")l="on-failure";else l="never";let n=Nlt({defaultSettings:{mcpServers:u,approvalPolicy:l,cwd:t?.cwd??process.cwd(),rmcpClient:!0,sandboxPolicy:"workspace-write",connectionTimeoutMs:30000,requestTimeoutMs:300000,idleTimeoutMs:60000}});return{model:n(i),provider:n}}function Qlt(i){let t=XT0[i];if(!t)throw Error(`Unknown Codex model ID: ${i}`);return t}var XT0;var QZu=w(()=>{JZu();XT0={"codex:gpt-5.5":"gpt-5.5","codex:gpt-5.4":"gpt-5.4","codex:gpt-5.4-mini":"gpt-5.4-mini","codex:gpt-5.3-codex-spark":"gpt-5.3-codex-spark"}});async function*NT0(i,t){let u=i[Symbol.asyncIterator](),l=!1,n=!1,f=u.next().then(($)=>({kind:"main",value:$})),c=t.promise.then(($)=>({kind:"title",value:$?MP($):null})).catch(($)=>{return console.warn("[codex:title] title generation failed",I$($)),{kind:"title",value:null}});try{while(!l||!n){let $=[];if(!l)$.push(f);if(!n)$.push(c);let d=await Promise.race($);if(d.kind==="main"){if(d.value.done){if(l=!0,!n)t.finish();continue}yield d.value.value,f=u.next().then((_)=>({kind:"main",value:_}));continue}if(n=!0,d.value)yield d.value}}finally{if(!n)t.finish()}}var FZu;var UZu=w(()=>{ln();QZu();clt();ym();Xm();FZu={id:"codex",create(i){return{id:"codex",async*stream(t){let u=Qlt(t.models.thinking.id),l=await LOi(t);console.log(`[codex] stream start model=${u} cwd=${l??"(default)"} mcpUrl=${t.mcp.url} mode=${t.mode}`);let{model:n,provider:f}=Jlt(u,{mcpServers:{cms:{transport:"http",url:t.mcp.url,headers:t.mcp.headers}},toolApprovalLevel:t.toolApprovalLevel,isPlanMode:t.mode==="plan",cwd:l});try{let c=await ROi(t.messages),{model:$,provider:d}=Jlt(Qlt("codex:gpt-5.4-mini"),{toolApprovalLevel:"readonly",isPlanMode:!0,cwd:l}),_=qP({abortSignal:t.signal,model:$,userMessage:eOi(c)}),g=_.promise.finally(()=>d.close().catch(()=>{})),h=kd({model:n,messages:c,abortSignal:t.signal,allowSystemInMessages:!0}),E=VP(),v,r=h.toUIMessageStream({messageMetadata:({part:x})=>{if(x.type==="start")return{agent:{id:t.agent.id??null},models:{credentialId:t.models.credentialId,thinking:{...t.models.thinking,title:t.models.thinking.title??t.models.thinking.id,provider:t.models.thinking.provider??void 0}},created_at:new Date,thread_id:t.threadId};if(x.type==="finish-step"){let D=x.providerMetadata?.["codex-app-server"];if(D?.threadId)v=D.threadId;return E.addStep(x.usage,x.providerMetadata),{usage:E.buildStepUsage()}}if(x.type==="finish"){let D=E.buildFinalUsage({totalUsage:x.totalUsage,providerKey:t.models.thinking.provider});return{...D&&{usage:D},...v&&{codingAgentSessionId:v,codingAgentProvider:"codex"}}}return}});try{for await(let x of NT0(r,_))yield x}finally{_.finish(),await g.catch(()=>{});let x=E.totalTokens();t.processLocal?.onUsageAggregated(x)}}finally{await f.close().catch(()=>{})}}}}}});function QT0(i,t,u){if(!u)return i;let l=new Set;for(let[n,f]of t)if(u.has(n)||u.has(f))l.add(f);return Object.fromEntries(Object.entries(i).filter(([n])=>l.has(n)))}function FT0(i,t){if(!t)return i;return Object.fromEntries(Object.entries(i).filter(([u])=>JT0.has(u)||t.has(u)))}async function TZu(i,t,u){let l=t.organization,n=i.mode==="plan",f=i.toolAllowlist&&i.toolAllowlist.length>0?new Set(i.toolAllowlist):null,c=await d3(i.virtualMcp,t,"passthrough",!0,{listTimeoutMs:1000});try{let{tools:$,nameMap:d}=await NOi(c,u.toolOutputMap,u.writer,i.toolApprovalLevel,{ctx:t,isPlanMode:n}),_=QT0($,d,f),h=!i.virtualMcp.metadata.githubRepo,E=i.user.id?{virtualMcpId:i.agent.id,branch:h?"ephemeral":i.branch??`thread:${u.threadId}`,userId:i.user.id,threadId:u.threadId}:null,v=await IQu(u.writer,{provider:u.provider,imageProvider:u.imageProvider,deepResearchProvider:u.deepResearchProvider,organization:l,models:i.models,toolApprovalLevel:i.toolApprovalLevel,isPlanMode:n,toolOutputMap:u.toolOutputMap,pendingImages:u.pendingImages,passthroughClient:c,vmContext:E,htmlPageBuffer:u.htmlPageBuffer,taskId:u.threadId,agentId:i.agent.id},t),r=FT0(v,f),x=(await c.listTools()).tools,D=[],O=new Map;for(let Q of x){let U=d.get(Q.name);if(!U)continue;if(f&&!f.has(Q.name)&&!f.has(U))continue;let I=typeof Q._meta?.gatewayClientId==="string"?Q._meta.gatewayClientId:"unknown";if(D.push({rawName:Q.name,safeName:U,connectionId:I}),n)O.set(U,{readOnlyHint:Q.annotations?.readOnlyHint})}let X=c.getConnectionTitleMap(),N=c.getInstructions();return{tools:{..._,...r},nameMap:d,passthroughTools:_,builtInTools:r,passthroughToolList:x,connectionsBlockTools:D,toolAnnotations:O,vmContext:E,connectionTitleMap:X,serverInstructions:N,passthroughClient:c,close:async()=>{await c.close().catch(()=>{})}}}catch($){throw await c.close().catch(()=>{}),$}}var JT0;var ZZu=w(()=>{tb();xut();dm();JT0=new Set(["read_tool_output","
|
|
107728
|
+
`,u=async()=>{if(!this.child?.stdin.writable)throw Error("codex app-server stdin is not writable");let n=this.child.stdin;if(!n.write(t))await new Promise((c,$)=>{let d=()=>{h(),c()},_=(E)=>{h(),$(E)},g=()=>{h(),$(Error("codex app-server stdin closed before drain"))},h=()=>{n.off("drain",d),n.off("error",_),n.off("close",g)};n.once("drain",d),n.once("error",_),n.once("close",g)});this.touchActivity()},l=this.writeQueue.then(u,u);this.writeQueue=l.catch(()=>{return}),await l}rememberCompletedTurn(i){if(this.completedTurnIds.add(i),this.completedTurnIds.size<=cT0)return;let t=this.completedTurnIds.values().next().value;if(typeof t==="string")this.completedTurnIds.delete(t)}clearIdleTimer(){if(this.idleTimer)clearTimeout(this.idleTimer),this.idleTimer=void 0}touchActivity(){let i=this.settings.idleTimeoutMs;if(!i||i<=0||this.state!=="ready")return;this.clearIdleTimer(),this.idleTimer=setTimeout(()=>{if(this.state!=="ready")return;if(this.pending.size>0||this.activeRequestContextsByTurn.size>0||this.pendingRequestContexts.size>0){this.touchActivity();return}if(this.child)this.logger.info(`[codex-app-server] Closing idle app-server process after ${i}ms inactivity.`),this.expectedExitSignal="SIGTERM",this.child.kill("SIGTERM"),this.child=void 0;this.stdoutReader?.close(),this.stdoutReader=void 0,this.state="idle",this.threadLocks.clear(),this.pendingRequestContexts.clear(),this.pendingRequestContextIdsByThread.clear(),this.activeRequestContextsByTurn.clear(),this.completedTurnIds.clear(),this.serverCapabilities=void 0,this.writeQueue=Promise.resolve(),this.emit("idle-timeout")},i)}};dB1=Nlt()});function Jlt(i,t){let u=t?.mcpServers?Object.fromEntries(Object.entries(t.mcpServers).map(([f,c])=>[f,{transport:c.transport,url:c.url,httpHeaders:c.headers}])):void 0,l;if(t?.isPlanMode||t?.toolApprovalLevel==="readonly")l="on-failure";else l="never";let n=Nlt({defaultSettings:{mcpServers:u,approvalPolicy:l,cwd:t?.cwd??process.cwd(),rmcpClient:!0,sandboxPolicy:"workspace-write",connectionTimeoutMs:30000,requestTimeoutMs:300000,idleTimeoutMs:60000}});return{model:n(i),provider:n}}function Qlt(i){let t=XT0[i];if(!t)throw Error(`Unknown Codex model ID: ${i}`);return t}var XT0;var QZu=w(()=>{JZu();XT0={"codex:gpt-5.5":"gpt-5.5","codex:gpt-5.4":"gpt-5.4","codex:gpt-5.4-mini":"gpt-5.4-mini","codex:gpt-5.3-codex-spark":"gpt-5.3-codex-spark"}});async function*NT0(i,t){let u=i[Symbol.asyncIterator](),l=!1,n=!1,f=u.next().then(($)=>({kind:"main",value:$})),c=t.promise.then(($)=>({kind:"title",value:$?MP($):null})).catch(($)=>{return console.warn("[codex:title] title generation failed",I$($)),{kind:"title",value:null}});try{while(!l||!n){let $=[];if(!l)$.push(f);if(!n)$.push(c);let d=await Promise.race($);if(d.kind==="main"){if(d.value.done){if(l=!0,!n)t.finish();continue}yield d.value.value,f=u.next().then((_)=>({kind:"main",value:_}));continue}if(n=!0,d.value)yield d.value}}finally{if(!n)t.finish()}}var FZu;var UZu=w(()=>{ln();QZu();clt();ym();Xm();FZu={id:"codex",create(i){return{id:"codex",async*stream(t){let u=Qlt(t.models.thinking.id),l=await LOi(t);console.log(`[codex] stream start model=${u} cwd=${l??"(default)"} mcpUrl=${t.mcp.url} mode=${t.mode}`);let{model:n,provider:f}=Jlt(u,{mcpServers:{cms:{transport:"http",url:t.mcp.url,headers:t.mcp.headers}},toolApprovalLevel:t.toolApprovalLevel,isPlanMode:t.mode==="plan",cwd:l});try{let c=await ROi(t.messages),{model:$,provider:d}=Jlt(Qlt("codex:gpt-5.4-mini"),{toolApprovalLevel:"readonly",isPlanMode:!0,cwd:l}),_=qP({abortSignal:t.signal,model:$,userMessage:eOi(c)}),g=_.promise.finally(()=>d.close().catch(()=>{})),h=kd({model:n,messages:c,abortSignal:t.signal,allowSystemInMessages:!0}),E=VP(),v,r=h.toUIMessageStream({messageMetadata:({part:x})=>{if(x.type==="start")return{agent:{id:t.agent.id??null},models:{credentialId:t.models.credentialId,thinking:{...t.models.thinking,title:t.models.thinking.title??t.models.thinking.id,provider:t.models.thinking.provider??void 0}},created_at:new Date,thread_id:t.threadId};if(x.type==="finish-step"){let D=x.providerMetadata?.["codex-app-server"];if(D?.threadId)v=D.threadId;return E.addStep(x.usage,x.providerMetadata),{usage:E.buildStepUsage()}}if(x.type==="finish"){let D=E.buildFinalUsage({totalUsage:x.totalUsage,providerKey:t.models.thinking.provider});return{...D&&{usage:D},...v&&{codingAgentSessionId:v,codingAgentProvider:"codex"}}}return}});try{for await(let x of NT0(r,_))yield x}finally{_.finish(),await g.catch(()=>{});let x=E.totalTokens();t.processLocal?.onUsageAggregated(x)}}finally{await f.close().catch(()=>{})}}}}}});function QT0(i,t,u){if(!u)return i;let l=new Set;for(let[n,f]of t)if(u.has(n)||u.has(f))l.add(f);return Object.fromEntries(Object.entries(i).filter(([n])=>l.has(n)))}function FT0(i,t){if(!t)return i;return Object.fromEntries(Object.entries(i).filter(([u])=>JT0.has(u)||t.has(u)))}async function TZu(i,t,u){let l=t.organization,n=i.mode==="plan",f=i.toolAllowlist&&i.toolAllowlist.length>0?new Set(i.toolAllowlist):null,c=await d3(i.virtualMcp,t,"passthrough",!0,{listTimeoutMs:1000});try{let{tools:$,nameMap:d}=await NOi(c,u.toolOutputMap,u.writer,i.toolApprovalLevel,{ctx:t,isPlanMode:n}),_=QT0($,d,f),h=!i.virtualMcp.metadata.githubRepo,E=i.user.id?{virtualMcpId:i.agent.id,branch:h?"ephemeral":i.branch??`thread:${u.threadId}`,userId:i.user.id,threadId:u.threadId}:null,v=await IQu(u.writer,{provider:u.provider,imageProvider:u.imageProvider,deepResearchProvider:u.deepResearchProvider,organization:l,models:i.models,toolApprovalLevel:i.toolApprovalLevel,isPlanMode:n,toolOutputMap:u.toolOutputMap,pendingImages:u.pendingImages,passthroughClient:c,vmContext:E,htmlPageBuffer:u.htmlPageBuffer,taskId:u.threadId,agentId:i.agent.id},t),r=FT0(v,f),x=(await c.listTools()).tools,D=[],O=new Map;for(let Q of x){let U=d.get(Q.name);if(!U)continue;if(f&&!f.has(Q.name)&&!f.has(U))continue;let I=typeof Q._meta?.gatewayClientId==="string"?Q._meta.gatewayClientId:"unknown";if(D.push({rawName:Q.name,safeName:U,connectionId:I}),n)O.set(U,{readOnlyHint:Q.annotations?.readOnlyHint})}let X=c.getConnectionTitleMap(),N=c.getInstructions();return{tools:{..._,...r},nameMap:d,passthroughTools:_,builtInTools:r,passthroughToolList:x,connectionsBlockTools:D,toolAnnotations:O,vmContext:E,connectionTitleMap:X,serverInstructions:N,passthroughClient:c,close:async()=>{await c.close().catch(()=>{})}}}catch($){throw await c.close().catch(()=>{}),$}}var JT0;var ZZu=w(()=>{tb();xut();dm();JT0=new Set(["read_tool_output","enable_tool","open_in_agent","todo_write","update_interests"])});import{context as UT0,trace as TT0}from"@opentelemetry/api";function oOi(i){ZT0({...i,tracer:i.ctx.tracer})}function ZT0(i){try{if(!i.organizationId)return;let t=i.tracer.startSpan(KPi),u=TT0.setSpan(UT0.active(),t),l=i.totalUsage??i.usage;iV({type:sA,organizationId:i.organizationId,connectionId:yui,toolName:i.modelId,toolArguments:{model:i.modelId,credentialId:i.credentialId,threadId:i.taskId,...i.request?.body!==void 0?{requestBody:i.request.body}:{}},result:{...i.usage??{},...i.totalUsage?{totalUsage:i.totalUsage}:{},...i.cost!==void 0?{cost:i.cost}:{},...i.finishReason?{finishReason:i.finishReason}:{},...i.response?{responseId:i.response.id,responseModelId:i.response.modelId,responseTimestamp:i.response.timestamp,messages:i.response.messages}:{},logType:sA},duration:i.durationMs,isError:i.isError,errorMessage:i.errorMessage??null,userId:i.userId,requestId:i.requestId,userAgent:i.userAgent??null,virtualMcpId:i.agentId??null,properties:{model_title:i.modelTitle,credential_id:i.credentialId,thread_id:i.taskId,log_type:sA,...i.response?{response_id:i.response.id}:{},...l?{input_tokens:String(l.inputTokens),output_tokens:String(l.outputTokens),total_tokens:String(l.totalTokens)}:{},...i.cost!==void 0?{cost:String(i.cost)}:{}}},u),t.end()}catch{}}var BZu=w(()=>{Ydi();T_()});function sOi(i){let{ctx:t,organizationId:u,modelId:l,durationMs:n,isError:f,inputTokens:c,outputTokens:$,cacheReadTokens:d,cacheWriteTokens:_}=i;if(!u||!l)return;let g={"connection.id":yui,"tool.name":l,"organization.id":u,status:f?"error":"success","error.type":f?i.errorType||"Error":""};if(t.meter.createHistogram("tool.execution.duration",{description:"Duration of tool executions in milliseconds",unit:"ms"}).record(n,g),t.meter.createCounter("tool.execution.count",{description:"Number of tool executions"}).add(1,g),c!=null||$!=null)t.meter.createCounter("tool.execution.tokens",{description:"Number of tokens used by LLM calls"}).add((c??0)+($??0),g);if((d??0)>0)t.meter.createCounter("tool.execution.cache_tokens",{description:"LLM cache tokens by kind (read/write)"}).add(d,{...g,kind:"read"});if((_??0)>0)t.meter.createCounter("tool.execution.cache_tokens",{description:"LLM cache tokens by kind (read/write)"}).add(_,{...g,kind:"write"})}var IZu=w(()=>{T_()});import{z as Flt}from"zod";function Ult(i,t,u){return $l({description:`Enable tools from the current agent's catalog so they can be called in subsequent steps. Pass tool names exactly as listed in <available-connections>.
|
|
107729
107729
|
|
|
107730
107730
|
Usage notes:
|
|
107731
107731
|
- Built-in tools (user_ask, subtask, read_tool_output, read_prompt, read_resource, sandbox) are always available and do not need enabling.`,inputSchema:BT0,execute:async({tools:l})=>{let n=[],f=[],c=[];for(let $ of l){if(!t.has($)){f.push($);continue}if(u?.isPlanMode){if(u.toolAnnotations?.get($)?.readOnlyHint!==!0){c.push($);continue}}i.add($),n.push($)}return{enabled:n,...f.length>0&&{not_found:f},...c.length>0&&{blocked:c,blocked_reason:"These tools cannot be enabled in plan mode \u2014 they have side effects."}}}})}var BT0;var Tlt=w(()=>{ln();BT0=Flt.object({tools:Flt.array(Flt.string()).min(1).describe("Tool ids to enable, taken verbatim from <available-connections>.")})});function IT0(i,t){let u=new Set;for(let l of i){if(l.role!=="assistant")continue;for(let n of l.parts)if("toolName"in n&&(n.toolName==="enable_tool"||n.toolName==="enable_tools")&&"result"in n&&n.result){let f=n.result;if(Array.isArray(f.enabled))for(let c of f.enabled){let $=c.replace(/[^a-zA-Z0-9_]/g,"_");if(t.has($))u.add($);else if(t.has(c))u.add(c)}}}return u}function YT0(){let i=[],t=!1,u=null;return{push(l){if(t)return;if(u){let n=u;u=null,n({done:!1,value:l})}else i.push(l)},next(){if(i.length>0){let l=i.shift();return Promise.resolve({done:!1,value:l})}if(t)return Promise.resolve({done:!0});return new Promise((l)=>{u=l})},close(){if(t=!0,u){let l=u;u=null,l({done:!0})}}}}async function*YZu(i,t,u,l,n){let{provider:f,titleProvider:c,titleModel:$,registrySignal:d,processedSystemMessages:_,processedMessages:g,originalMessages:h,threadId:E,writer:v}=n,r=Cb(i.mode,{isCliAgent:!1}),x,D=!1,O=YT0(),X=JSON.stringify(g[0]?.content??""),N=qP({abortSignal:d,model:vOi(c??f,$??i.models.fast??i.models.thinking),userMessage:X}),J=N.promise.then((di)=>{return di?MP(di):null}).catch((di)=>{return console.warn("[decopilot:title] title generation failed",I$(di)),null}),Q=null,U=VP();x=Date.now();let I=new Set(Object.keys(u.passthroughTools)),B=Object.keys(u.builtInTools),P=IT0(h,I),z={...u.tools,...u.connectionsBlockTools.length>0?{enable_tool:Ult(P,I,{isPlanMode:r.isPlanMode,toolAnnotations:u.toolAnnotations})}:{}},W=(()=>{let di=r.forcedFirstStepTool&&r.forcedFirstStepTool in z?r.forcedFirstStepTool:null,hi=0;return(Hi)=>{let Zi=Hi.messages,Fi=hi===0;hi++;let Bi=Zi,Ki=n.pendingImages;if(Ki.length>0){let Si=Ki.splice(0,Ki.length),Ii=[];for(let rt of Si)if(Ii.push({type:"text",text:rt.label??(rt.pageUrl?`[Screenshot of ${rt.pageUrl}]`:"[Image]")}),rt.url.startsWith("data:")){let _t=rt.url.match(/^data:([^;]+);base64,(.+)$/s);if(_t)Ii.push({type:"image",image:_t[2],mimeType:_t[1]})}else Ii.push({type:"image",image:new URL(rt.url)});Bi=[...Zi,{role:"user",content:Ii}]}let V=Bi,ui=u.connectionsBlockTools.length>0,m=[...B,...ui?["enable_tool"]:[],...P];if(r.isPlanMode)m=m.filter((Si)=>{if(B.includes(Si)||ui&&Si==="enable_tool")return!0;return u.toolAnnotations.get(Si)?.readOnlyHint===!0});let a=di&&Fi?di:null;return{activeTools:m,messages:V,...a&&{toolChoice:{type:"tool",toolName:a}}}}})(),k=P.size>0?{role:"system",content:`<currently-enabled-tools>
|