decocms 3.18.5 → 3.18.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/assets/{AlertCircle-CslgXeHr.js → AlertCircle-CFR8yUWR.js} +1 -1
- package/dist/client/assets/{ArrowUpRight-D_DImXhK.js → ArrowUpRight-CrbV7ou8.js} +1 -1
- package/dist/client/assets/{Check-C4hca_-Y.js → Check-B9hfWsRx.js} +1 -1
- package/dist/client/assets/{CheckCircle-HpSNY8ij.js → CheckCircle-CfP6WFYZ.js} +1 -1
- package/dist/client/assets/{ChevronDown-Dxt-1uCb.js → ChevronDown-DYNS9bwS.js} +1 -1
- package/dist/client/assets/{ChevronLeft-B5zdF1BR.js → ChevronLeft-rD5M2ZRF.js} +1 -1
- package/dist/client/assets/{ChevronRight-CyvrXAe0.js → ChevronRight-C5EQU2rb.js} +1 -1
- package/dist/client/assets/{ChevronUp-aKq1AYju.js → ChevronUp-CyZ3QaHa.js} +1 -1
- package/dist/client/assets/{Container-DXqMOloC.js → Container-CNNo1Nks.js} +1 -1
- package/dist/client/assets/{DotsVertical-Bo9Tm-x1.js → DotsVertical-BWGsv_FX.js} +1 -1
- package/dist/client/assets/{Eye-CBgMpWUe.js → Eye-Bu0Ufapt.js} +1 -1
- package/dist/client/assets/{FilterLines-CWMZctUn.js → FilterLines-DnGixxOc.js} +1 -1
- package/dist/client/assets/{Globe01-BgNeS-t5.js → Globe01-Dn-7lt6y.js} +1 -1
- package/dist/client/assets/{HardDrive-skQdR31x.js → HardDrive-DJI6GUQN.js} +1 -1
- package/dist/client/assets/{Key01-CxukwP00.js → Key01-MCYKKSfj.js} +1 -1
- package/dist/client/assets/{LayoutLeft-CmXWN8pg.js → LayoutLeft-abYqzLTU.js} +1 -1
- package/dist/client/assets/{LinkExternal01-l_9oMYRN.js → LinkExternal01-C4y2ImGq.js} +1 -1
- package/dist/client/assets/{Monitor01-DIoPLr7l.js → Monitor01-W3GTE_xd.js} +1 -1
- package/dist/client/assets/{Palette-BTCzP1Gm.js → Palette-BXIs0-8F.js} +1 -1
- package/dist/client/assets/{Play-DSJB4Nw2.js → Play-C5v-iUhy.js} +1 -1
- package/dist/client/assets/{Plus-BUBMXRTd.js → Plus-C8tm3Xca.js} +1 -1
- package/dist/client/assets/{RefreshCcw01-JqGzzm_-.js → RefreshCcw01-DoZ6SFXF.js} +1 -1
- package/dist/client/assets/{SearchMd-CGISNeet.js → SearchMd-D_aIpwNH.js} +1 -1
- package/dist/client/assets/{Settings02-C4ziU-d4.js → Settings02-BVvz8SBR.js} +1 -1
- package/dist/client/assets/{Shield01-IwIv25Jp.js → Shield01-BGbN_ZpD.js} +1 -1
- package/dist/client/assets/{Star01-J_T9yrd1.js → Star01-B37pyPSw.js} +1 -1
- package/dist/client/assets/{Stars01-BjgHV0Ah.js → Stars01-CCz6h1EF.js} +1 -1
- package/dist/client/assets/{Stars02-CUXVM8eC.js → Stars02-BYOghE4k.js} +1 -1
- package/dist/client/assets/{Sun-BzriIyyb.js → Sun-dXEAEgi_.js} +1 -1
- package/dist/client/assets/{SwitchHorizontal01-CxiFSSn6.js → SwitchHorizontal01-07Capu2l.js} +1 -1
- package/dist/client/assets/{Tool01-BO2C1HmC.js → Tool01-Br0Ztm5O.js} +1 -1
- package/dist/client/assets/{Trash01-DeyjRbcU.js → Trash01-DjVPjypU.js} +1 -1
- package/dist/client/assets/{Upload01-C4K5hWSL.js → Upload01-B2OX8x5z.js} +1 -1
- package/dist/client/assets/{User01-CyAUnciz.js → User01-CKftXs9E.js} +1 -1
- package/dist/client/assets/{Users01-CCUr4Yur.js → Users01-pexT5CAb.js} +1 -1
- package/dist/client/assets/{Users03-Cwd2CyYY.js → Users03-DwZKdQjy.js} +1 -1
- package/dist/client/assets/{X-BoM0MLQn.js → X-CGB-Sljd.js} +1 -1
- package/dist/client/assets/{XCircle-DZ20_zb3.js → XCircle-D396Uh8b.js} +1 -1
- package/dist/client/assets/{XClose-BLi9vIRd.js → XClose-CU-N-nf4.js} +1 -1
- package/dist/client/assets/{Zap-CrVhQ07E.js → Zap-BVJoCQ65.js} +1 -1
- package/dist/client/assets/{ZapSquare-CqyHqTSv.js → ZapSquare-gKVsVjsm.js} +1 -1
- package/dist/client/assets/{ZoomOut-D1C0CDzK.js → ZoomOut-v8u1i9bA.js} +1 -1
- package/dist/client/assets/{access-gate-rgO__BFd.js → access-gate-CIARCHrH.js} +1 -1
- package/dist/client/assets/{accordion-CAJ4g4RV.js → accordion-BGMg7q4u.js} +1 -1
- package/dist/client/assets/{add-section-modal-fGEm5qce.js → add-section-modal-PKbhb9V5.js} +1 -1
- package/dist/client/assets/{agent-capabilities-Dl7XXwpG.js → agent-capabilities-BmaI2kRr.js} +1 -1
- package/dist/client/assets/{agent-icon-C7paq9nL.js → agent-icon-BWjIr0jC.js} +1 -1
- package/dist/client/assets/{agent-icons-hJ9xtdfo.js → agent-icons-Bb4xoV1J.js} +1 -1
- package/dist/client/assets/{agents-list-BuXi88Zq.js → agents-list-CH-rX6lo.js} +1 -1
- package/dist/client/assets/{ai-providers-C_J38hfO.js → ai-providers-CERsKWm8.js} +1 -1
- package/dist/client/assets/{alert-1jxJJFv9.js → alert-BlXV4W1T.js} +1 -1
- package/dist/client/assets/{alert-dialog-DOf1CDFG.js → alert-dialog-BdR_e0yA.js} +1 -1
- package/dist/client/assets/app-editor-Bt-pin6U.js +1 -0
- package/dist/client/assets/{auth-catchall-CAKyNWmQ.js → auth-catchall-i8UWGg_6.js} +1 -1
- package/dist/client/assets/{auth-split-layout-DDzFkzzL.js → auth-split-layout-TBFJthLS.js} +1 -1
- package/dist/client/assets/{automation-list-row-D730hoTt.js → automation-list-row-BIi_rsBV.js} +1 -1
- package/dist/client/assets/{automation-runs-BeoB4dd9.js → automation-runs-DvU8o3Xf.js} +1 -1
- package/dist/client/assets/{automations-3aEV0B6i.js → automations-CL9gaTTQ.js} +1 -1
- package/dist/client/assets/{avatar-BOZs09SE.js → avatar-7trj7GoD.js} +1 -1
- package/dist/client/assets/{badge-Cf9p2KiH.js → badge-DANKrOoZ.js} +1 -1
- package/dist/client/assets/{brand-context-70H_l0C5.js → brand-context-C_bcrFVw.js} +1 -1
- package/dist/client/assets/{buckets-AML8oaPV.js → buckets-So5pSPsk.js} +1 -1
- package/dist/client/assets/{calendar-BO9tcRYu.js → calendar-BIdArY5z.js} +1 -1
- package/dist/client/assets/{capability-load-error-atGCCjOU.js → capability-load-error-C-iuUVr7.js} +1 -1
- package/dist/client/assets/{card-wIb7H0Z4.js → card-B-Dm5nez.js} +1 -1
- package/dist/client/assets/{chat-context-D4Cm-d6A.js → chat-context-Bgf1-hOl.js} +1 -1
- package/dist/client/assets/{checkbox-BwSTMmic.js → checkbox-DrL1UUx3.js} +1 -1
- package/dist/client/assets/{cli-auth-success-CCe8_B5U.js → cli-auth-success-6DoLxMmf.js} +1 -1
- package/dist/client/assets/{collection-detail-DS8OFm3e.js → collection-detail-D3TZYHTO.js} +1 -1
- package/dist/client/assets/{collection-display-button-DUh8mQez.js → collection-display-button-Cy4QeOkL.js} +1 -1
- package/dist/client/assets/{collection-search-CUV3pFhw.js → collection-search-BR1gqxz_.js} +1 -1
- package/dist/client/assets/{collection-table-wrapper-afuL1hQ0.js → collection-table-wrapper-BiGSiy2I.js} +1 -1
- package/dist/client/assets/{collection-tabs-CGllLoge.js → collection-tabs-CTyOGjGP.js} +1 -1
- package/dist/client/assets/{collections-D8RfaH_g.js → collections-DcrwOl55.js} +1 -1
- package/dist/client/assets/{command-C-yJHbpu.js → command-DbKWEekc.js} +1 -1
- package/dist/client/assets/{connect-desktop-dialog-hVZb8AY9.js → connect-desktop-dialog-3t8GXV2K.js} +1 -1
- package/dist/client/assets/{connection-card-vgtnONDT.js → connection-card-C6L-1Dt9.js} +1 -1
- package/dist/client/assets/{connection-detail-3pdA1O-Y.js → connection-detail-CrPqTSWg.js} +1 -1
- package/dist/client/assets/{connection-form-helpers-oCzpRzHj.js → connection-form-helpers-C24n-KRp.js} +1 -1
- package/dist/client/assets/{connections-kCOJLbco.js → connections-BkGValv7.js} +1 -1
- package/dist/client/assets/{constants-CnOnAK7r.js → constants-BpU7QaRR.js} +1 -1
- package/dist/client/assets/{decopilot-sse-pool-Bdv0H274.js → decopilot-sse-pool-BS4aL56C.js} +1 -1
- package/dist/client/assets/{dialog-CvEIov2R.js → dialog-Cr6AICtN.js} +1 -1
- package/dist/client/assets/{domain-settings-DOArz2KT.js → domain-settings-DBoxusra.js} +1 -1
- package/dist/client/assets/{drawer-B_9l3ZhB.js → drawer-DhC5GUfP.js} +1 -1
- package/dist/client/assets/{dropdown-menu-BGgFPqgI.js → dropdown-menu-xxrkWTrU.js} +1 -1
- package/dist/client/assets/{dynamic-plugin-layout-Bx-gzGnq.js → dynamic-plugin-layout-CUXnWXrk.js} +1 -1
- package/dist/client/assets/{empty-state-Db1HVS3F.js → empty-state-B5DOepvp.js} +1 -1
- package/dist/client/assets/{empty-state-BWGtqxUL.js → empty-state-c1WpU61C.js} +1 -1
- package/dist/client/assets/{extract-connection-data-CaeplLEr.js → extract-connection-data-D0n_qfP0.js} +1 -1
- package/dist/client/assets/{features-PxgwX_yM.js → features-FNcdQED0.js} +1 -1
- package/dist/client/assets/{file-explorer-D4X9mNUX.js → file-explorer-CH4JsLE7.js} +1 -1
- package/dist/client/assets/{file-type-icon-CUYwtPob.js → file-type-icon-mQqy375a.js} +1 -1
- package/dist/client/assets/{files-BrehNRKw.js → files-CYh8EDna.js} +1 -1
- package/dist/client/assets/{form-BRW-mO5v.js → form-nBkrnKYT.js} +1 -1
- package/dist/client/assets/{general-BZO56fxW.js → general-Qjl6AIoa.js} +1 -1
- package/dist/client/assets/{generate-id-CdTqgONK.js → generate-id-BxqIDlP-.js} +1 -1
- package/dist/client/assets/{github-repo-picker-hw4e_RVO.js → github-repo-picker-CAlIuMsf.js} +1 -1
- package/dist/client/assets/{header-tab-button-IP2RhXhm.js → header-tab-button-DuxrFMNC.js} +1 -1
- package/dist/client/assets/{hover-card-BMrhboDz.js → hover-card-BDQQtfoR.js} +1 -1
- package/dist/client/assets/{image-field-BhWuARh_.js → image-field-BvPUDpE_.js} +1 -1
- package/dist/client/assets/{index-BHdQPz7N.js → index-3tzKBgE3.js} +1 -1
- package/dist/client/assets/{index-Cueugb-e.js → index-B1HONnQz.js} +1 -1
- package/dist/client/assets/{index-CcJv2Spi.js → index-B4yTB-08.js} +1 -1
- package/dist/client/assets/{index-b-XqjXTb.js → index-BQQLPj89.js} +1 -1
- package/dist/client/assets/{index-BvZc_M4M.js → index-Bg4PlNAz.js} +4 -4
- package/dist/client/assets/{index-C9Lj6Jk-.js → index-Bjsbxruw.js} +1 -1
- package/dist/client/assets/{index-CLjpFTJZ.js → index-CD3ErgKH.js} +1 -1
- package/dist/client/assets/{index-D6_5HAZl.js → index-CYTMmI4-.js} +3 -3
- package/dist/client/assets/{index-Bn8JFywe.js → index-Cc5RAl27.js} +1 -1
- package/dist/client/assets/{index-37PxaG4U.js → index-CgPh_9v0.js} +1 -1
- package/dist/client/assets/{index-t0gLDn-a.js → index-CiGFPef-.js} +1 -1
- package/dist/client/assets/{index-z0IJb09y.js → index-D0X6SE5D.js} +1 -1
- package/dist/client/assets/{index-CNQY6k_W.js → index-D1Xu8IIg.js} +1 -1
- package/dist/client/assets/{index-XuzNc7bG.js → index-DhmxSoe_.js} +1 -1
- package/dist/client/assets/{index-BuKZbcmU.js → index-_efubzEt.js} +1 -1
- package/dist/client/assets/{index-redirect-CG43pYY_.js → index-redirect-CKD7qahx.js} +1 -1
- package/dist/client/assets/{infiniteQueryObserver-Bc9cuK8G.js → infiniteQueryObserver-_kJzwhhc.js} +1 -1
- package/dist/client/assets/{input-CL16zv3M.js → input-D-pcUk2R.js} +1 -1
- package/dist/client/assets/{integration-icon-CQ-NchIr.js → integration-icon-8s47TlHj.js} +1 -1
- package/dist/client/assets/{label-DjHnY7oD.js → label-C4YFSGkh.js} +1 -1
- package/dist/client/assets/{layout-R7JZk0N_.js → layout-BKPlHc-n.js} +1 -1
- package/dist/client/assets/{login-vs48ss5Y.js → login-Byecph1O.js} +1 -1
- package/dist/client/assets/{members-CR6tIRQQ.js → members-DuBRhg0r.js} +1 -1
- package/dist/client/assets/{monaco-editor-DDa2PYLr.js → monaco-editor-D6OkCytp.js} +1 -1
- package/dist/client/assets/{monitoring-stats-row-B5tYqizL.js → monitoring-stats-row-CY6Ha1LI.js} +1 -1
- package/dist/client/assets/{oauth-callback-By_kYLzt.js → oauth-callback-Df7qssiK.js} +1 -1
- package/dist/client/assets/{oauth-callback-ai-provider-rjNwAMeL.js → oauth-callback-ai-provider-BDaua880.js} +1 -1
- package/dist/client/assets/{onboarding-Cp47PQJL.js → onboarding-r1YacWa9.js} +1 -1
- package/dist/client/assets/{org-install-J4BxDvcP.js → org-install-Cs8QTj6u.js} +1 -1
- package/dist/client/assets/{org-layout-Uzn1aBLq.js → org-layout-BVmcHE-4.js} +1 -1
- package/dist/client/assets/{org-plugin-layout-DgjfQM0j.js → org-plugin-layout-CX1r-5I2.js} +1 -1
- package/dist/client/assets/{page-seo-form-bcXUoU_e.js → page-seo-form-V-0EDccq.js} +1 -1
- package/dist/client/assets/page-seo-sheet-8s7JYrnX.js +1 -0
- package/dist/client/assets/{pair-CBFiuxUB.js → pair-h8K88KOt.js} +1 -1
- package/dist/client/assets/{plugin-empty-state-C3zoexBS.js → plugin-empty-state-CONMWhg0.js} +1 -1
- package/dist/client/assets/{plugin-header-GIzvijnl.js → plugin-header-CE6MNNms.js} +1 -1
- package/dist/client/assets/{plugin-layout-Dqb60rkf.js → plugin-layout-CYoGuAyj.js} +1 -1
- package/dist/client/assets/{popover-CS_iXBnY.js → popover-BANf8yLu.js} +1 -1
- package/dist/client/assets/{post-editor-CkT9Hn5n.js → post-editor-CnSiz5fI.js} +1 -1
- package/dist/client/assets/{primitives-CA9Kk0m9.js → primitives-NmZthmgC.js} +1 -1
- package/dist/client/assets/{profile-Cl9Tf5eQ.js → profile-DJjVDv6i.js} +1 -1
- package/dist/client/assets/project-app-view-VznrqGg3.js +1 -0
- package/dist/client/assets/record-editor-DxeRhFbO.js +1 -0
- package/dist/client/assets/registry-XgmAouDD.js +2 -0
- package/dist/client/assets/{registry-layout-DMqbdOK4.js → registry-layout-CXazhpEp.js} +1 -1
- package/dist/client/assets/{require-capability-Ca6ka1Sn.js → require-capability-CGpm8UPV.js} +1 -1
- package/dist/client/assets/{required-auth-layout-aQSUe2N_.js → required-auth-layout-Bf5N9rDJ.js} +1 -1
- package/dist/client/assets/{reset-password-BT-2N_qd.js → reset-password-mBE2iIHp.js} +1 -1
- package/dist/client/assets/{resizable-B-Kg7sz_.js → resizable-Ddg3V5j3.js} +1 -1
- package/dist/client/assets/{roles-BJ71aLLv.js → roles-DK4-rW17.js} +1 -1
- package/dist/client/assets/{save-status-CGb2Biez.js → save-status-fods1xc4.js} +1 -1
- package/dist/client/assets/{schema-form-BRIUengr.js → schema-form-CAjqu2uG.js} +1 -1
- package/dist/client/assets/{scroll-area-CpcNn-v-.js → scroll-area-DmGYPK35.js} +1 -1
- package/dist/client/assets/{search-input-BmjJ0rJ1.js → search-input-BXTV_9VX.js} +1 -1
- package/dist/client/assets/{secrets-hp_Tfdyj.js → secrets-CZ-9G3RB.js} +1 -1
- package/dist/client/assets/{sections-editor-DabUHooM.js → sections-editor-7rAnT9_M.js} +1 -1
- package/dist/client/assets/{select-C81zuvtp.js → select-jsp5fXY0.js} +1 -1
- package/dist/client/assets/{select-model-CzLBWXoY.js → select-model-D3JQV1A5.js} +1 -1
- package/dist/client/assets/{seo-editor-BU2d4emZ.js → seo-editor-Cx8n8-fk.js} +1 -1
- package/dist/client/assets/{settings-layout-Ck0n7ap9.js → settings-layout-B7r6IIZc.js} +1 -1
- package/dist/client/assets/{settings-section-B7fIZ_m0.js → settings-section-DEvjEXH5.js} +1 -1
- package/dist/client/assets/{sheet-D9O2scBf.js → sheet-CCiL9Rx1.js} +1 -1
- package/dist/client/assets/{shell-controls-B1uFpggl.js → shell-controls-CNRpV1G8.js} +1 -1
- package/dist/client/assets/{shell-layout-B5mx8HCW.js → shell-layout-4Otqvn6V.js} +1 -1
- package/dist/client/assets/{shell-route-loading-Nvrm4NyQ.js → shell-route-loading-VEHPoypz.js} +1 -1
- package/dist/client/assets/{sidebar-DELjK07K.js → sidebar-D4QGN150.js} +1 -1
- package/dist/client/assets/{skeleton-CGcndXpH.js → skeleton-C860DLXd.js} +1 -1
- package/dist/client/assets/{sortable.esm-Cc5wE8Md.js → sortable.esm-eUvRX07P.js} +1 -1
- package/dist/client/assets/{spinner-DPcimsxj.js → spinner-SoAzBRu5.js} +1 -1
- package/dist/client/assets/{sso-CgUG1GPv.js → sso-Bfk_g0TL.js} +1 -1
- package/dist/client/assets/{store-DQ2V7yio.js → store-BJosTGmr.js} +1 -1
- package/dist/client/assets/store-registry-BTGGC-wt.js +2 -0
- package/dist/client/assets/{switch-D26GKac4.js → switch-B6FYx2Zc.js} +1 -1
- package/dist/client/assets/{tab-id-B_7JAjTL.js → tab-id-Drq1ub6-.js} +1 -1
- package/dist/client/assets/{table-DP9s7KR8.js → table-DFMJ-eRM.js} +1 -1
- package/dist/client/assets/{tabs-Jop0evx4.js → tabs-SJVibadV.js} +1 -1
- package/dist/client/assets/{task-status-VzGHvxK_.js → task-status-BF-wuRit.js} +1 -1
- package/dist/client/assets/{textarea-C_ciKAYv.js → textarea-BAchOqVk.js} +1 -1
- package/dist/client/assets/{toggle-group-CQHGgo0W.js → toggle-group-BTjGOuTM.js} +1 -1
- package/dist/client/assets/{toolbar-CO7J3Qlp.js → toolbar-CmdfhWYZ.js} +1 -1
- package/dist/client/assets/{tools-list-CNevt541.js → tools-list-BszIUu0D.js} +1 -1
- package/dist/client/assets/{tooltip-DjK_xTiM.js → tooltip-MvQf34cR.js} +1 -1
- package/dist/client/assets/{types-BRYvxHV0.js → types-zx3VQt0A.js} +1 -1
- package/dist/client/assets/{use-ai-providers-CfNPOGmz.js → use-ai-providers-RBWsRBul.js} +1 -1
- package/dist/client/assets/{use-automations-_NxkdQLG.js → use-automations-4DuoVFF-.js} +1 -1
- package/dist/client/assets/{use-capability-CGr-3r92.js → use-capability-GY56Aq-U.js} +1 -1
- package/dist/client/assets/{use-collections-ClKr7eLP.js → use-collections-CHOLHlaO.js} +1 -1
- package/dist/client/assets/{use-connection-QL9Osw0s.js → use-connection-DCL84j8p.js} +1 -1
- package/dist/client/assets/{use-copy-DR1yGhlv.js → use-copy-CZCcde_V.js} +1 -1
- package/dist/client/assets/{use-create-virtual-mcp-B7FzzrhS.js → use-create-virtual-mcp-Bp8QWS-J.js} +1 -1
- package/dist/client/assets/{use-debounced-autosave-StOJyK5k.js → use-debounced-autosave-BUUhL3Q8.js} +1 -1
- package/dist/client/assets/{use-delete-connection-ka_zCpHH.js → use-delete-connection-DLZuwRwA.js} +1 -1
- package/dist/client/assets/{use-file-configs-bSRypY4D.js → use-file-configs-VVFmuRUF.js} +1 -1
- package/dist/client/assets/{use-infinite-scroll-D369zKBP.js → use-infinite-scroll-C00mr_R7.js} +1 -1
- package/dist/client/assets/{use-list-state-BFEd8KAZ.js → use-list-state-DjU1Jd9c.js} +1 -1
- package/dist/client/assets/{use-mcp-prompts-BthLsr-5.js → use-mcp-prompts-DjqQzz4_.js} +1 -1
- package/dist/client/assets/{use-mcp-tools-DKqH2jvx.js → use-mcp-tools-CwhhtPJ2.js} +1 -1
- package/dist/client/assets/{use-members-CARBs-BO.js → use-members-B0bsMTWp.js} +1 -1
- package/dist/client/assets/{use-navigate-to-agent-bL0bZjvs.js → use-navigate-to-agent-Bd17cKel.js} +1 -1
- package/dist/client/assets/{use-org-auth-client-B-7f7gTM.js → use-org-auth-client-DRAyyigI.js} +1 -1
- package/dist/client/assets/{use-org-sso-CQo4DX7V.js → use-org-sso-Gf8w8-Af.js} +1 -1
- package/dist/client/assets/{use-organization-roles-D1jilN1C.js → use-organization-roles-CA3vvLOp.js} +1 -1
- package/dist/client/assets/{use-organization-settings-Ba_pVlZU.js → use-organization-settings-VH1dAaB-.js} +1 -1
- package/dist/client/assets/{use-registry-connections-GFs4i1bK.js → use-registry-connections-CEd66d0J.js} +1 -1
- package/dist/client/assets/{use-secrets-ChWP1SbP.js → use-secrets-CSPUKnZh.js} +1 -1
- package/dist/client/assets/{use-status-sounds-BecbYKFZ.js → use-status-sounds-Fe3fNMtV.js} +1 -1
- package/dist/client/assets/{use-view-mode-BC-pIybW.js → use-view-mode-CSrEI-mI.js} +1 -1
- package/dist/client/assets/{use-virtual-mcp-B_JQogr5.js → use-virtual-mcp-CKbigJu_.js} +1 -1
- package/dist/client/assets/useInfiniteQuery-lOvdtYux.js +1 -0
- package/dist/client/assets/{useRouterState-VRTDPwLh.js → useRouterState-Correpna.js} +1 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-BLxJD7-u.js +1 -0
- package/dist/client/assets/{user-DFXkwuvu.js → user-NCExnpy2.js} +1 -1
- package/dist/client/assets/{view-mode-toggle-B2R8JuP1.js → view-mode-toggle-BHRZLbR0.js} +1 -1
- package/dist/client/assets/{workflow-ChJtcD9q.js → workflow-FAsin0ib.js} +1 -1
- package/dist/client/assets/workflow-detail-B1_R5HgL.js +1 -0
- package/dist/client/index.html +1 -1
- package/dist/server/cli.js +3 -3
- package/dist/server/server.js +1 -1
- package/package.json +1 -1
- package/dist/client/assets/app-editor-B9HEmwg1.js +0 -1
- package/dist/client/assets/page-seo-sheet-Ds2n8BSC.js +0 -1
- package/dist/client/assets/project-app-view-QqyHF6pe.js +0 -1
- package/dist/client/assets/record-editor-CuWJY7pj.js +0 -1
- package/dist/client/assets/registry-BfO0HF8o.js +0 -2
- package/dist/client/assets/store-registry-6BuBNha1.js +0 -2
- package/dist/client/assets/useInfiniteQuery-BdAfpOZ8.js +0 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-BNJvF6Td.js +0 -1
- package/dist/client/assets/workflow-detail-soUgf3vg.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 Le,G as mt,a as pt,K as Fe,ea as Ke,dx as ut}from"./index-D6_5HAZl.js";import{u as qe,S as Ve}from"./constants-CnOnAK7r.js";import{B as ft,g as Me}from"./generate-id-CdTqgONK.js";import{C as Ge}from"./collection-display-button-DUh8mQez.js";import{C as ht}from"./collection-search-CUV3pFhw.js";import{C as gt}from"./card-wIb7H0Z4.js";import{I as Qe}from"./integration-icon-CQ-NchIr.js";import{D as He,a as Je,b as Ye,c as O}from"./dropdown-menu-BGgFPqgI.js";import{s as Xe,a as Ze}from"./Eye-CBgMpWUe.js";import{i as et}from"./DotsVertical-Bo9Tm-x1.js";import{i as tt}from"./Tool01-BO2C1HmC.js";import{s as st}from"./Trash01-DeyjRbcU.js";import{C as xt}from"./collection-table-wrapper-afuL1hQ0.js";import{E as Ue}from"./empty-state-BWGtqxUL.js";import{n as We}from"./Stars02-CUXVM8eC.js";import{U as jt}from"./user-DFXkwuvu.js";import{E as it}from"./empty-state-Db1HVS3F.js";import{u as Ct}from"./use-list-state-BFEd8KAZ.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-DOf1CDFG.js";import{a as It,b as At}from"./use-collections-ClKr7eLP.js";import{a as Tt}from"./use-connection-QL9Osw0s.js";import{s as Et}from"./Plus-BUBMXRTd.js";import{a as Ot}from"./layout-R7JZk0N_.js";import{P as je}from"./index-CNQY6k_W.js";import"./collections-D8RfaH_g.js";import"./SwitchHorizontal01-CxiFSSn6.js";import"./Check-C4hca_-Y.js";import"./tooltip-DjK_xTiM.js";import"./view-mode-toggle-B2R8JuP1.js";import"./badge-Cf9p2KiH.js";import"./SearchMd-CGISNeet.js";import"./Container-DXqMOloC.js";import"./agent-icon-C7paq9nL.js";import"./AlertCircle-CslgXeHr.js";import"./RefreshCcw01-JqGzzm_-.js";import"./XCircle-DZ20_zb3.js";import"./ArrowUpRight-D_DImXhK.js";import"./ZapSquare-CqyHqTSv.js";import"./Users03-Cwd2CyYY.js";import"./CheckCircle-HpSNY8ij.js";import"./ChevronDown-Dxt-1uCb.js";import"./ChevronLeft-B5zdF1BR.js";import"./ChevronRight-CyvrXAe0.js";import"./ChevronUp-aKq1AYju.js";import"./ZoomOut-D1C0CDzK.js";import"./Globe01-BgNeS-t5.js";import"./FilterLines-CWMZctUn.js";import"./Star01-J_T9yrd1.js";import"./Palette-BTCzP1Gm.js";import"./HardDrive-skQdR31x.js";import"./Key01-CxukwP00.js";import"./LayoutLeft-CmXWN8pg.js";import"./LinkExternal01-l_9oMYRN.js";import"./Monitor01-DIoPLr7l.js";import"./Sun-BzriIyyb.js";import"./Play-DSJB4Nw2.js";import"./Settings02-C4ziU-d4.js";import"./Shield01-IwIv25Jp.js";import"./Stars01-BjgHV0Ah.js";import"./Upload01-C4K5hWSL.js";import"./User01-CyAUnciz.js";import"./Users01-CCUr4Yur.js";import"./XClose-BLi9vIRd.js";import"./X-BoM0MLQn.js";import"./Zap-CrVhQ07E.js";import"./table-DP9s7KR8.js";import"./avatar-BOZs09SE.js";import"./use-view-mode-BC-pIybW.js";import"./sidebar-DELjK07K.js";import"./sheet-D9O2scBf.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,u=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 p;e[5]!==r||e[6]!==s.title?(p=t.jsx(Qe,{icon:r,name:s.title,size:"md",className:"shrink-0 shadow-sm"}),e[5]=r,e[6]=s.title,e[7]=p):p=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=u||"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]!==p||e[16]!==v?(y=t.jsxs("div",{className:"flex flex-col gap-4 p-6 flex-1",children:[p,v]}),e[15]=p,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:Ft,children:t.jsxs(He,{children:[t.jsx(Je,{asChild:!0,children:t.jsx(Ce,{variant:"ghost",size:"icon",className:"h-8 w-8",onClick:Lt,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 Lt(i){return i.stopPropagation()}function Ft(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:u,onSort:d,actions:o,onItemClick:p,headerActions:m,emptyState:f,readOnly:a,columns:v,hideToolbar:y,sortableFields:b}=i,x=u===void 0?"asc":u,g=d===void 0?Vt:d;let $;e[0]!==o?($=o===void 0?{}:o,e[0]=o,e[1]=$):$=e[1];const h=$,T=p===void 0?qt:p,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(Ge,{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 Gt(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 Qt(i,e){const s=i.properties||{},l=Object.keys(s).filter(o=>{const p=s[o];return p&&nt(p)}),n=Ut(s),c=[],r=new Set;n&&l.includes(n)&&(c.push(n),r.add(n));const u=["title","description","updated_at","updated_by"];for(const o of u)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,p)=>o.localeCompare(p));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 p=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(Qe,{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]"}:p?.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||Qt(e,s);return n.some(u=>u.id==="actions")?n:Object.keys(l).length>0?[...n,Gt(l)]:n}function Jt(i){const e=oe.c(119),{connectionId:s,org:l,activeCollection:n,onItemClick:c}=i,r=n.name,u=n.schema??ft,d=n.hasCreateTool,o=n.hasUpdateTool,p=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&&!p;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 L=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,[F,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]!==L||e[25]!==o?(K=o&&{edit:L},e[24]=L,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]!==p?(U=p&&{delete:rt},e[30]=p,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]!==F?(ce=async()=>{F&&(await h.delete.mutateAsync(F.id),ve(null))},e[36]=h.delete,e[37]=F,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){Le.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]!==u?(me=ot(u),e[47]=u,e[48]=me):me=e[48];const Se=me,lt=(I?.length??0)>0,at=d&&!lt&&!N;let pe;e[49]!==h.create||e[50]!==we||e[51]!==d?(pe=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]=pe):pe=e[52];const ue=pe,Pe=D;let W;e[53]!==S||e[54]!==w||e[55]!==Se||e[56]!==Pe?(W=t.jsx(Ot,{children:t.jsx(Ge,{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]!==ue||e[66]!==d?(q=d&&t.jsx("div",{className:"pr-3",children:ue}),e[65]=ue,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 G;e[71]!==I?(G=I??[],e[71]=I,e[72]=G):G=e[72];const De=D;let Q;e[73]!==L?(Q=C=>L(C),e[73]=L,e[74]=Q):Q=e[74];const Ie="No items found",Ae=N?"Try adjusting your search terms":"This collection doesn't have any items yet.",Te=at?ue: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]!==u||e[83]!==N||e[84]!==j||e[85]!==P||e[86]!==w||e[87]!==G||e[88]!==De||e[89]!==Q||e[90]!==H||e[91]!==z?(J=t.jsx("div",{className:"flex-1 overflow-auto",children:t.jsx(Wt,{hideToolbar:!0,data:G,schema:u,viewMode:z,onViewModeChange:P,search:N,onSearchChange:j,sortKey:De,sortDirection:w,onSort:S,actions:ye,onItemClick:Q,readOnly:A,emptyState:H})}),e[79]=S,e[80]=A,e[81]=ye,e[82]=u,e[83]=N,e[84]=j,e[85]=P,e[86]=w,e[87]=G,e[88]=De,e[89]=Q,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=!!F;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=F?.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 p=>{const m=s.enabledPlugins??[];if(m.includes(p))return;const f=[...m,p],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 u;i[6]!==e.id||i[7]!==s||i[8]!==l?(u=()=>{l.invalidateQueries({queryKey:Fe.project(e.id,s.slug)}),l.invalidateQueries({queryKey:Fe.projects(e.id)})},i[6]=e.id,i[7]=s,i[8]=l,i[9]=u):u=i[9];let d;return i[10]!==r||i[11]!==u?(d={mutationFn:r,onSuccess:u,onError:Xt},i[10]=r,i[11]=u,i[12]=d):d=i[12],pt(d)}function Xt(i){Le.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 u;e[0]!==r||e[1]!==s?(u=async()=>{try{await r.mutateAsync(s),Le.success("Plugin enabled!")}catch{}},e[0]=r,e[1]=s,e[2]=u):u=e[2];const d=u,o=c??null,p=r.isPending?"Enabling…":"Enable plugin";let m;e[3]!==r.isPending||e[4]!==d||e[5]!==p?(m=t.jsx(Ce,{onClick:d,disabled:r.isPending,children:p}),e[3]=r.isPending,e[4]=d,e[5]=p,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 Ci(){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(ut,{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{Ci 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 Le,G as mt,a as pt,K as Fe,ea as Ke,dx as ut}from"./index-CYTMmI4-.js";import{u as qe,S as Ve}from"./constants-BpU7QaRR.js";import{B as ft,g as Me}from"./generate-id-BxqIDlP-.js";import{C as Ge}from"./collection-display-button-Cy4QeOkL.js";import{C as ht}from"./collection-search-BR1gqxz_.js";import{C as gt}from"./card-B-Dm5nez.js";import{I as Qe}from"./integration-icon-8s47TlHj.js";import{D as He,a as Je,b as Ye,c as O}from"./dropdown-menu-xxrkWTrU.js";import{s as Xe,a as Ze}from"./Eye-Bu0Ufapt.js";import{i as et}from"./DotsVertical-BWGsv_FX.js";import{i as tt}from"./Tool01-Br0Ztm5O.js";import{s as st}from"./Trash01-DjVPjypU.js";import{C as xt}from"./collection-table-wrapper-BiGSiy2I.js";import{E as Ue}from"./empty-state-c1WpU61C.js";import{n as We}from"./Stars02-BYOghE4k.js";import{U as jt}from"./user-NCExnpy2.js";import{E as it}from"./empty-state-B5DOepvp.js";import{u as Ct}from"./use-list-state-DjU1Jd9c.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-BdR_e0yA.js";import{a as It,b as At}from"./use-collections-CHOLHlaO.js";import{a as Tt}from"./use-connection-DCL84j8p.js";import{s as Et}from"./Plus-C8tm3Xca.js";import{a as Ot}from"./layout-BKPlHc-n.js";import{P as je}from"./index-D1Xu8IIg.js";import"./collections-DcrwOl55.js";import"./SwitchHorizontal01-07Capu2l.js";import"./Check-B9hfWsRx.js";import"./tooltip-MvQf34cR.js";import"./view-mode-toggle-BHRZLbR0.js";import"./badge-DANKrOoZ.js";import"./SearchMd-D_aIpwNH.js";import"./Container-CNNo1Nks.js";import"./agent-icon-BWjIr0jC.js";import"./AlertCircle-CFR8yUWR.js";import"./RefreshCcw01-DoZ6SFXF.js";import"./XCircle-D396Uh8b.js";import"./ArrowUpRight-CrbV7ou8.js";import"./ZapSquare-gKVsVjsm.js";import"./Users03-DwZKdQjy.js";import"./CheckCircle-CfP6WFYZ.js";import"./ChevronDown-DYNS9bwS.js";import"./ChevronLeft-rD5M2ZRF.js";import"./ChevronRight-C5EQU2rb.js";import"./ChevronUp-CyZ3QaHa.js";import"./ZoomOut-v8u1i9bA.js";import"./Globe01-Dn-7lt6y.js";import"./FilterLines-DnGixxOc.js";import"./Star01-B37pyPSw.js";import"./Palette-BXIs0-8F.js";import"./HardDrive-DJI6GUQN.js";import"./Key01-MCYKKSfj.js";import"./LayoutLeft-abYqzLTU.js";import"./LinkExternal01-C4y2ImGq.js";import"./Monitor01-W3GTE_xd.js";import"./Sun-dXEAEgi_.js";import"./Play-C5v-iUhy.js";import"./Settings02-BVvz8SBR.js";import"./Shield01-BGbN_ZpD.js";import"./Stars01-CCz6h1EF.js";import"./Upload01-B2OX8x5z.js";import"./User01-CKftXs9E.js";import"./Users01-pexT5CAb.js";import"./XClose-CU-N-nf4.js";import"./X-CGB-Sljd.js";import"./Zap-BVJoCQ65.js";import"./table-DFMJ-eRM.js";import"./avatar-7trj7GoD.js";import"./use-view-mode-CSrEI-mI.js";import"./sidebar-D4QGN150.js";import"./sheet-CCiL9Rx1.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,u=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 p;e[5]!==r||e[6]!==s.title?(p=t.jsx(Qe,{icon:r,name:s.title,size:"md",className:"shrink-0 shadow-sm"}),e[5]=r,e[6]=s.title,e[7]=p):p=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=u||"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]!==p||e[16]!==v?(y=t.jsxs("div",{className:"flex flex-col gap-4 p-6 flex-1",children:[p,v]}),e[15]=p,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:Ft,children:t.jsxs(He,{children:[t.jsx(Je,{asChild:!0,children:t.jsx(Ce,{variant:"ghost",size:"icon",className:"h-8 w-8",onClick:Lt,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 Lt(i){return i.stopPropagation()}function Ft(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:u,onSort:d,actions:o,onItemClick:p,headerActions:m,emptyState:f,readOnly:a,columns:v,hideToolbar:y,sortableFields:b}=i,x=u===void 0?"asc":u,g=d===void 0?Vt:d;let $;e[0]!==o?($=o===void 0?{}:o,e[0]=o,e[1]=$):$=e[1];const h=$,T=p===void 0?qt:p,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(Ge,{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 Gt(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 Qt(i,e){const s=i.properties||{},l=Object.keys(s).filter(o=>{const p=s[o];return p&&nt(p)}),n=Ut(s),c=[],r=new Set;n&&l.includes(n)&&(c.push(n),r.add(n));const u=["title","description","updated_at","updated_by"];for(const o of u)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,p)=>o.localeCompare(p));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 p=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(Qe,{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]"}:p?.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||Qt(e,s);return n.some(u=>u.id==="actions")?n:Object.keys(l).length>0?[...n,Gt(l)]:n}function Jt(i){const e=oe.c(119),{connectionId:s,org:l,activeCollection:n,onItemClick:c}=i,r=n.name,u=n.schema??ft,d=n.hasCreateTool,o=n.hasUpdateTool,p=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&&!p;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 L=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,[F,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]!==L||e[25]!==o?(K=o&&{edit:L},e[24]=L,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]!==p?(U=p&&{delete:rt},e[30]=p,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]!==F?(ce=async()=>{F&&(await h.delete.mutateAsync(F.id),ve(null))},e[36]=h.delete,e[37]=F,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){Le.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]!==u?(me=ot(u),e[47]=u,e[48]=me):me=e[48];const Se=me,lt=(I?.length??0)>0,at=d&&!lt&&!N;let pe;e[49]!==h.create||e[50]!==we||e[51]!==d?(pe=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]=pe):pe=e[52];const ue=pe,Pe=D;let W;e[53]!==S||e[54]!==w||e[55]!==Se||e[56]!==Pe?(W=t.jsx(Ot,{children:t.jsx(Ge,{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]!==ue||e[66]!==d?(q=d&&t.jsx("div",{className:"pr-3",children:ue}),e[65]=ue,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 G;e[71]!==I?(G=I??[],e[71]=I,e[72]=G):G=e[72];const De=D;let Q;e[73]!==L?(Q=C=>L(C),e[73]=L,e[74]=Q):Q=e[74];const Ie="No items found",Ae=N?"Try adjusting your search terms":"This collection doesn't have any items yet.",Te=at?ue: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]!==u||e[83]!==N||e[84]!==j||e[85]!==P||e[86]!==w||e[87]!==G||e[88]!==De||e[89]!==Q||e[90]!==H||e[91]!==z?(J=t.jsx("div",{className:"flex-1 overflow-auto",children:t.jsx(Wt,{hideToolbar:!0,data:G,schema:u,viewMode:z,onViewModeChange:P,search:N,onSearchChange:j,sortKey:De,sortDirection:w,onSort:S,actions:ye,onItemClick:Q,readOnly:A,emptyState:H})}),e[79]=S,e[80]=A,e[81]=ye,e[82]=u,e[83]=N,e[84]=j,e[85]=P,e[86]=w,e[87]=G,e[88]=De,e[89]=Q,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=!!F;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=F?.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 p=>{const m=s.enabledPlugins??[];if(m.includes(p))return;const f=[...m,p],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 u;i[6]!==e.id||i[7]!==s||i[8]!==l?(u=()=>{l.invalidateQueries({queryKey:Fe.project(e.id,s.slug)}),l.invalidateQueries({queryKey:Fe.projects(e.id)})},i[6]=e.id,i[7]=s,i[8]=l,i[9]=u):u=i[9];let d;return i[10]!==r||i[11]!==u?(d={mutationFn:r,onSuccess:u,onError:Xt},i[10]=r,i[11]=u,i[12]=d):d=i[12],pt(d)}function Xt(i){Le.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 u;e[0]!==r||e[1]!==s?(u=async()=>{try{await r.mutateAsync(s),Le.success("Plugin enabled!")}catch{}},e[0]=r,e[1]=s,e[2]=u):u=e[2];const d=u,o=c??null,p=r.isPending?"Enabling…":"Enable plugin";let m;e[3]!==r.isPending||e[4]!==d||e[5]!==p?(m=t.jsx(Ce,{onClick:d,disabled:r.isPending,children:p}),e[3]=r.isPending,e[4]=d,e[5]=p,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 Ci(){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(ut,{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{Ci as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{e as s,g as l,j as o,l as a,E as n,r as c}from"./index-CYTMmI4-.js";import{a as f}from"./index-B1HONnQz.js";import"./index-_efubzEt.js";import"./constants-BpU7QaRR.js";import"./collections-DcrwOl55.js";import"./index-CD3ErgKH.js";import"./use-virtual-mcp-CKbigJu_.js";import"./use-collections-CHOLHlaO.js";import"./monaco-editor-D6OkCytp.js";import"./index-CgPh_9v0.js";import"./spinner-SoAzBRu5.js";import"./resizable-Ddg3V5j3.js";import"./ZoomOut-v8u1i9bA.js";import"./badge-DANKrOoZ.js";import"./select-jsp5fXY0.js";import"./tooltip-MvQf34cR.js";import"./Check-B9hfWsRx.js";import"./ChevronDown-DYNS9bwS.js";import"./ChevronUp-CyZ3QaHa.js";import"./view-mode-toggle-BHRZLbR0.js";import"./agent-icon-BWjIr0jC.js";import"./AlertCircle-CFR8yUWR.js";import"./Tool01-Br0Ztm5O.js";import"./SwitchHorizontal01-07Capu2l.js";import"./RefreshCcw01-DoZ6SFXF.js";import"./XCircle-D396Uh8b.js";import"./ArrowUpRight-CrbV7ou8.js";import"./ZapSquare-gKVsVjsm.js";import"./Users03-DwZKdQjy.js";import"./CheckCircle-CfP6WFYZ.js";import"./ChevronLeft-rD5M2ZRF.js";import"./ChevronRight-C5EQU2rb.js";import"./DotsVertical-BWGsv_FX.js";import"./Container-CNNo1Nks.js";import"./Eye-Bu0Ufapt.js";import"./Globe01-Dn-7lt6y.js";import"./FilterLines-DnGixxOc.js";import"./Star01-B37pyPSw.js";import"./Palette-BXIs0-8F.js";import"./HardDrive-DJI6GUQN.js";import"./Stars02-BYOghE4k.js";import"./Key01-MCYKKSfj.js";import"./LayoutLeft-abYqzLTU.js";import"./LinkExternal01-C4y2ImGq.js";import"./Monitor01-W3GTE_xd.js";import"./Sun-dXEAEgi_.js";import"./Play-C5v-iUhy.js";import"./Plus-C8tm3Xca.js";import"./SearchMd-D_aIpwNH.js";import"./Settings02-BVvz8SBR.js";import"./Shield01-BGbN_ZpD.js";import"./Stars01-CCz6h1EF.js";import"./Trash01-DjVPjypU.js";import"./Upload01-B2OX8x5z.js";import"./User01-CKftXs9E.js";import"./Users01-pexT5CAb.js";import"./XClose-CU-N-nf4.js";import"./X-CGB-Sljd.js";import"./Zap-BVJoCQ65.js";import"./layout-BKPlHc-n.js";import"./index-D1Xu8IIg.js";import"./sidebar-D4QGN150.js";import"./sheet-CCiL9Rx1.js";import"./use-connection-DCL84j8p.js";import"./use-mcp-tools-CwhhtPJ2.js";import"./dialog-Cr6AICtN.js";import"./scroll-area-DmGYPK35.js";import"./index-Cc5RAl27.js";import"./hover-card-BDQQtfoR.js";import"./dropdown-menu-xxrkWTrU.js";import"./integration-icon-8s47TlHj.js";import"./accordion-BGMg7q4u.js";import"./index-D0X6SE5D.js";import"./empty-state-c1WpU61C.js";import"./create-sse-subscription-BS5983N4.js";import"./input-D-pcUk2R.js";function Bt(){const t=s.c(4);let r;t[0]===Symbol.for("react.memo_cache_sentinel")?(r={from:"/shell/$org/settings/workflows/$itemId"},t[0]=r):r=t[0];const{itemId:e}=l(r);let i;t[1]===Symbol.for("react.memo_cache_sentinel")?(i=o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(a,{size:32,className:"animate-spin text-muted-foreground"})}),t[1]=i):i=t[1];const p=decodeURIComponent(e);let m;return t[2]!==p?(m=o.jsx(n,{children:o.jsx(c.Suspense,{fallback:i,children:o.jsx(f,{itemId:p})})}),t[2]=p,t[3]=m):m=t[3],m}export{Bt 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-CYTMmI4-.js"></script>
|
|
47
47
|
<link rel="stylesheet" crossorigin href="/assets/index-BgFgIfs8.css">
|
|
48
48
|
</head>
|
|
49
49
|
<body>
|
package/dist/server/cli.js
CHANGED
|
@@ -67404,7 +67404,7 @@ function createClaudeCodeModel(modelId, options) {
|
|
|
67404
67404
|
}
|
|
67405
67405
|
var CLAUDE_CODE_SDK_MODELS = {
|
|
67406
67406
|
"claude-code:opus": "opus",
|
|
67407
|
-
"claude-code:opus-1m": "
|
|
67407
|
+
"claude-code:opus-1m": "opus[1m]",
|
|
67408
67408
|
"claude-code:sonnet": "sonnet",
|
|
67409
67409
|
"claude-code:haiku": "haiku",
|
|
67410
67410
|
"claude-code:fable": "claude-fable-5"
|
|
@@ -104807,7 +104807,7 @@ ${c.stack}`;f.reject(d)}else f.resolve(_)}});return $.requestSubject=i,this.prot
|
|
|
104807
104807
|
`);if(g===-1)return;let h=$.subarray(0,g).toString("utf8"),E=$.subarray(g+4),v=h.split(`\r
|
|
104808
104808
|
`,1)[0]??"";if(!/^HTTP\/1\.[01] 101(?:\s|$)/.test(v)){M8(i,1011,t.upstreamErrorReason);try{c.end()}catch{}return}d=!0,i.data.upstream=c;let r=S9l((x,O)=>{try{if(x===1)i.send(O.toString("utf8"));else if(x===2)i.send(O);else if(x===8){let{code:y,reason:X}=j9l(O);M8(i,y,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(Oki(x,!0))}catch{}i.data.pending.length=0})}function k9l(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
|
|
104809
104809
|
`)}function M8(i,t,u){try{if(t!==void 0)i.close(t,u??"");else i.close()}catch{}}function Oki(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);let _=t?4:0,g=Buffer.allocUnsafe($.length+_+c),h=0;for(let E=0;E<$.length;E++)g[h++]=$[E];if(t){let E=XSt(4);g[h++]=E[0],g[h++]=E[1],g[h++]=E[2],g[h++]=E[3];for(let v=0;v<c;v++)g[h++]=l[v]^E[v&3]}else l.copy(g,h);return g}function j9l(i){if(i.length<2)return{code:1000,reason:""};return{code:i.readUInt16BE(0),reason:i.subarray(2).toString("utf8")}}function S9l(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 G9l=256;var FSt=w(()=>{ySt()});function TSt(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 ISt(i){let t=USt({maxPendingFrames:i.maxPendingWsFrames??z9l,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=TSt(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(b9l,{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:JSt({port:$,pathQuery:`${h.pathname}${h.search}`,protocols:NSt(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 z9l=256,b9l='<!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 ZSt=w(()=>{FSt()});async function yki(i=C9l){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}function H9l(i){return K9l.filter((t)=>!i.includes(t))}function R9l(i,t){let u=t.filter((l)=>!i.includes(l));return i.push(...u),u}function BSt(i,t={}){let u=t.detect??(()=>yki()),l=setInterval(()=>{if(H9l(i).length===0)return;u().then((n)=>{let f=R9l(i,n);if(f.length>0)t.onChange?.(f)}).catch(()=>{})},t.intervalMs??60000);return l.unref?.(),()=>clearInterval(l)}async function L9l(){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 e9l(){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 K9l,C9l;var QSt=w(()=>{K9l=["claude-code","codex"];C9l={detectClaudeCode:L9l,detectCodex:e9l}});import{randomBytes as M9l}from"crypto";import{mkdir as q9l,readFile as V9l,writeFile as a9l}from"fs/promises";import{dirname as m9l,join as o9l}from"path";function s9l(i){return o9l(i,"machine-id")}async function PSt(i){let t=s9l(i);try{let n=(await V9l(t,"utf8")).trim();if(n)return n}catch{}let u=M9l(16).toString("hex");return await q9l(m9l(t),{recursive:!0}),await a9l(t,u),u}var YSt=()=>{};import{randomBytes as p9l}from"crypto";import{mkdir as iNl}from"fs/promises";import{createServer as tNl}from"net";import{join as uNl}from"path";function ASt(i,t){return Error(`sandbox failed to start: ${i}`,{cause:t})}function lNl(i){if(!(i instanceof Error))return!1;return i.name==="TimeoutError"||/timed out|timeout|operation was aborted|aborted/i.test(i.message)}function nNl(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 GSt(i){let t=i.maxSandboxes??20,u=new Map,l=i.pickPort??fNl,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=uNl(i.dataDir,"sandboxes",E.handle);await iNl(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=p9l(24).toString("hex"),[x,O]=await Promise.all([l(),l()]);console.log(`[user-desktop] spawn handle=${E.handle} port=${x} devPort=${O} workdir=${v}`);let y=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(J){throw ASt("the sandbox didn't come online in time",J)}console.log(`[user-desktop] healthy handle=${E.handle} port=${x} \u2014 posting config`);try{await i.postConfig(x,O,{repo:E.repo,workload:E.workload,operator:E.operator},r)}catch(J){throw ASt(lNl(J)?"configuration timed out":"the sandbox rejected its configuration",J)}}catch(J){console.error(`[user-desktop] sandbox bring-up failed handle=${E.handle} port=${x} (killing daemon):`,J);try{y.kill("SIGKILL")}catch{}throw c({handle:E.handle,phase:"failed",error:nNl(J)}),J}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 U={handle:E.handle,port:x,process:y,sandboxApiUrl:X,previewUrl:N,lastUsedAt:Date.now(),activeDispatchCount:0,daemonToken:r};if(u.set(E.handle,U),c({handle:E.handle,phase:"ready",port:x,previewUrl:N}),y.exited)y.exited.then(()=>{if(u.get(E.handle)===U)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 fNl(){return new Promise((i,t)=>{let u=tNl();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 WSt=()=>{};import{randomUUID as cNl}from"crypto";import{hostname as $Nl}from"os";async function kSt(i){let t=$Nl()||void 0;i.monitor?.onMachine?.(t??"this machine");let u=mYt(i.dataDir,{outFd:i.logFd,perSandboxLog:i.perSandboxLogs,hotReload:i.hotReload}),l=0,n=GSt({dataDir:i.dataDir,resolvePreviewUrl:(N,U)=>l>0?`http://${N}.localhost:${l}`:`http://127.0.0.1:${U}`,spawnDaemon:async(N)=>{let U={DAEMON_BOOT_ID:cNl(),APP_ROOT:N.workdir,PROXY_PORT:String(N.port),DAEMON_TOKEN:N.daemonToken,OFFLOAD_ALLOWED_HOSTS:N.offloadAllowedHosts.join(","),...N.offloadAllowSameHostDev?{OFFLOAD_ALLOW_SAME_HOST_DEV:"1"}:{}};if(N.orgFsConfigJson){let F=await iAt(i.dataDir);if(F)U.ORGFS_CONFIG=N.orgFsConfigJson,U.ORGFS_RCLONE_PATH=F}let J=await u({workdir:N.workdir,env:U,daemonPort:N.port});return{port:N.port,kill:(F)=>J.kill(F),exited:J.exited.then(()=>{return})}},postConfig:async(N,U,J,F)=>{let Q={port:U};if(J.workload)Q.runtime=J.workload.runtime,Q.packageManager={name:J.workload.packageManager,...J.workload.packageManagerPath?{path:J.workload.packageManagerPath}:{}};let B={application:Q},Y=p6(J.operator??null);if(Y)B.operator=Y;if(J.repo)B.git={repository:{cloneUrl:J.repo.cloneUrl,branch:J.repo.branch},...J.repo.userName&&J.repo.userEmail?{identity:{userName:J.repo.userName,userEmail:J.repo.userEmail}}:{}};await B8(`http://127.0.0.1:${N}`,F,B)},waitForHealth:async(N)=>{await uli(`http://127.0.0.1:${N}`)},maxSandboxes:20,onEvent:i.monitor?.onEvent}),f=await ISt({port:i.port,lookupSandboxPort:(N)=>n.proxyPort(N)});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=uAt({provider:n}),$=async()=>{let N=await Sw({dataDir:i.dataDir,target:i.clusterBaseUrl});if(!N)throw Object.assign(Error(`Session for ${i.clusterBaseUrl} is no longer valid \u2014 run \`deco auth login --target ${i.clusterBaseUrl}\` and restart \`deco link\`.`),{fatal:!0});return N.accessToken};console.log(`[link-daemon] transport=pull cluster=${i.clusterBaseUrl}`);let d=await PSt(i.dataDir),_=process.env.npm_package_version??"0.0.0",g=await yki(),h=BSt(g,{onChange:(N)=>{console.log(`[link-daemon] capabilities detected: +${N.join(",")} (now: ${g.join(",")})`)}}),E=wki({path:`${i.dataDir}/link/outbox.sqlite`}),v=()=>{},r=await rSt({clusterBaseUrl:i.clusterBaseUrl,getAccessToken:$,provider:n,outbox:E,controlHandler:c,capabilities:g,machineId:d,cliVersion:_,previewPort:f.port,onConnected:()=>{i.monitor?.onCluster?.("linked"),console.log(`Linked to ${i.clusterBaseUrl} (pull transport)`)},onShutdown:()=>v()}),x,O=new Promise((N)=>{x=N}),y=!1,X=async()=>{if(y)return;y=!0,console.log(`
|
|
104810
|
-
Shutting down\u2026`),h();try{await r.close()}catch{}try{await f.stop()}catch{}try{await n.shutdown()}catch{}try{E.close()}catch{}x(0)};return process.on("SIGINT",()=>void X()),process.on("SIGTERM",()=>void X()),v=()=>{console.log("Disconnect requested from the Studio web UI \u2014 shutting down. Run `bunx decocms link` to reconnect."),X()},r.closed.then(()=>{if(i.monitor?.onCluster?.("closed"),!y)console.error("Cluster connection closed permanently; exiting."),X()}),{stopped:O,stop:X}}var jSt=w(()=>{vGi();RH();oYt();tAt();lAt();wSt();xki();ZSt();QSt();YSt();HH();WSt()});function Xki(i){return i.map((t)=>typeof t==="string"?t:String(t)).join(" ")}var r0i;var Nki=w(()=>{r0i={name:"decocms",version:"3.18.5",description:"Deco CMS \u2014 Self-hostable MCP Gateway for managing AI connections and tools",author:"Deco team",repository:{type:"git",url:"git+https://github.com/decocms/studio.git",directory:"apps/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","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/harness":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/mesh-sdk":"workspace:*","@decocms/runtime":"workspace:*","@decocms/sandbox":"workspace:*","@decocms/std":"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 vR={};Gi(vR,{printBanner:()=>gNl,bannerLines:()=>SSt,BANNER_LINES:()=>w0i,BANNER_GRADIENT:()=>x0i});function _Nl(i){let t=Number.parseInt(i.slice(1),16);return[t>>16&255,t>>8&255,t&255]}function SSt(i){let t=w0i.map((u,l)=>{let[n,f,c]=_Nl(x0i[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 gNl(i){console.log("");for(let t of SSt(i))console.log(t);console.log("")}var w0i,x0i;var ZW=w(()=>{w0i=[" \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 "],x0i=["#00ff64","#00ee5e","#00dc56","#00c84e","#00b444","#00a03c","#008832","#006e28"]});import{Box as hNl,Text as zSt}from"ink";import{jsx as ENl,jsxs as bSt}from"react/jsx-runtime";function D0i({version:i}){return bSt(hNl,{flexDirection:"column",marginTop:1,children:[w0i.map((t,u)=>ENl(zSt,{color:x0i[u],children:t},u)),bSt(zSt,{dimColor:!0,children:[" v",i]})]})}var Jki=w(()=>{ZW()});var HSt={};Gi(HSt,{subscribeLinkState:()=>Tki,setMachine:()=>xNl,setLogPath:()=>ONl,setIngress:()=>wNl,setDaemonError:()=>DNl,setClusterUrl:()=>rNl,setCluster:()=>vNl,pushSandboxEvent:()=>yNl,getLinkState:()=>Fki,applySandboxEvent:()=>KSt});function KSt(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 q8(){for(let i of Uki)i()}function Fki(){return i$}function Tki(i){return Uki.add(i),()=>Uki.delete(i)}function vNl(i){i$={...i$,cluster:i},q8()}function rNl(i){i$={...i$,clusterUrl:i},q8()}function wNl(i,t){i$={...i$,ingressPort:i,ingressUrl:t},q8()}function xNl(i){i$={...i$,machine:i},q8()}function DNl(i){i$={...i$,daemonError:i},q8()}function ONl(i){i$={...i$,logPath:i},q8()}function yNl(i){i$={...i$,sandboxes:KSt(i$.sandboxes,i)},q8()}var i$,Uki;var Iki=w(()=>{i$={cluster:"connecting",clusterUrl:null,ingressUrl:null,ingressPort:null,machine:null,cap:20,sandboxes:new Map,daemonError:null,logPath:null},Uki=new Set});var RSt={};Gi(RSt,{LinkApp:()=>JNl});import{Box as t$,Text as u$}from"ink";import{useSyncExternalStore as XNl}from"react";import{jsx as c1,jsxs as RE}from"react/jsx-runtime";function NNl(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 JNl(){let i=XNl(Tki,Fki),t=[...i.sandboxes.values()].sort((u,l)=>u.handle.localeCompare(l.handle));return RE(t$,{flexDirection:"column",children:[c1(D0i,{version:r0i.version}),c1(t$,{marginBottom:1,children:c1(u$,{dimColor:!0,children:"\u2500".repeat(80)})}),c1(t$,{children:i.cluster==="linked"?RE(u$,{color:"green",children:["\u2713 Connected to ",i.clusterUrl??"deco"]}):i.cluster==="connecting"?RE(u$,{color:"yellow",children:["\u25CC Connecting to ",i.clusterUrl??"deco","\u2026"]}):RE(u$,{color:"red",children:["\u2717 Disconnected from ",i.clusterUrl??"deco"]})}),c1(t$,{children:i.ingressUrl?RE(u$,{color:"green",children:["\u2713 Serving at ",i.ingressUrl]}):c1(u$,{dimColor:!0,children:"\u25CC Starting local server\u2026"})}),c1(t$,{marginBottom:1,children:c1(u$,{dimColor:!0,children:`${"Computer".padEnd(16)}${i.machine??"this computer"} \xB7 ${t.length} of ${i.cap} previews`})}),t.length===0?c1(u$,{dimColor:!0,children:"No previews running yet."}):RE(t$,{flexDirection:"column",children:[RE(t$,{children:[c1(t$,{width:O0i.project,flexShrink:0,marginRight:1,children:c1(u$,{dimColor:!0,wrap:"truncate-end",children:"PROJECT"})}),c1(t$,{width:O0i.status,flexShrink:0,marginRight:1,children:c1(u$,{dimColor:!0,wrap:"truncate-end",children:"STATUS"})}),c1(t$,{flexGrow:1,children:c1(u$,{dimColor:!0,wrap:"truncate-end",children:"PREVIEW URL"})})]}),t.map((u)=>{let l=NNl(u);return RE(t$,{children:[c1(t$,{width:O0i.project,flexShrink:0,marginRight:1,children:c1(u$,{wrap:"truncate-end",children:u.handle})}),c1(t$,{width:O0i.status,flexShrink:0,marginRight:1,children:c1(u$,{color:l.color,wrap:"truncate-end",children:l.text})}),c1(t$,{flexGrow:1,children:c1(u$,{dimColor:!0,wrap:"truncate-end",children:u.previewUrl??"\u2014"})})]},u.handle)})]}),i.daemonError?c1(t$,{marginTop:1,children:RE(u$,{color:"red",children:["\u26A0 ",i.daemonError]})}):null,i.logPath?c1(t$,{marginTop:1,children:RE(u$,{dimColor:!0,children:["Logs: ",i.logPath]})}):null]})}var O0i;var LSt=w(()=>{Nki();Jki();Iki();O0i={project:18,status:14}});var CSt={};Gi(CSt,{runLinkCommand:()=>PNl});import{closeSync as UNl,mkdirSync as FNl,openSync as TNl,writeSync as INl}from"fs";import{homedir as ZNl}from"os";import{join as eSt}from"path";function BNl(i,t){let u={log:console.log,warn:console.warn,error:console.error},l=(n)=>{if(t===void 0)return;try{INl(t,`${Xki(n)}
|
|
104810
|
+
Shutting down\u2026`),h();try{await r.close()}catch{}try{await f.stop()}catch{}try{await n.shutdown()}catch{}try{E.close()}catch{}x(0)};return process.on("SIGINT",()=>void X()),process.on("SIGTERM",()=>void X()),v=()=>{console.log("Disconnect requested from the Studio web UI \u2014 shutting down. Run `bunx decocms link` to reconnect."),X()},r.closed.then(()=>{if(i.monitor?.onCluster?.("closed"),!y)console.error("Cluster connection closed permanently; exiting."),X()}),{stopped:O,stop:X}}var jSt=w(()=>{vGi();RH();oYt();tAt();lAt();wSt();xki();ZSt();QSt();YSt();HH();WSt()});function Xki(i){return i.map((t)=>typeof t==="string"?t:String(t)).join(" ")}var r0i;var Nki=w(()=>{r0i={name:"decocms",version:"3.18.6",description:"Deco CMS \u2014 Self-hostable MCP Gateway for managing AI connections and tools",author:"Deco team",repository:{type:"git",url:"git+https://github.com/decocms/studio.git",directory:"apps/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","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/harness":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/mesh-sdk":"workspace:*","@decocms/runtime":"workspace:*","@decocms/sandbox":"workspace:*","@decocms/std":"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 vR={};Gi(vR,{printBanner:()=>gNl,bannerLines:()=>SSt,BANNER_LINES:()=>w0i,BANNER_GRADIENT:()=>x0i});function _Nl(i){let t=Number.parseInt(i.slice(1),16);return[t>>16&255,t>>8&255,t&255]}function SSt(i){let t=w0i.map((u,l)=>{let[n,f,c]=_Nl(x0i[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 gNl(i){console.log("");for(let t of SSt(i))console.log(t);console.log("")}var w0i,x0i;var ZW=w(()=>{w0i=[" \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 "],x0i=["#00ff64","#00ee5e","#00dc56","#00c84e","#00b444","#00a03c","#008832","#006e28"]});import{Box as hNl,Text as zSt}from"ink";import{jsx as ENl,jsxs as bSt}from"react/jsx-runtime";function D0i({version:i}){return bSt(hNl,{flexDirection:"column",marginTop:1,children:[w0i.map((t,u)=>ENl(zSt,{color:x0i[u],children:t},u)),bSt(zSt,{dimColor:!0,children:[" v",i]})]})}var Jki=w(()=>{ZW()});var HSt={};Gi(HSt,{subscribeLinkState:()=>Tki,setMachine:()=>xNl,setLogPath:()=>ONl,setIngress:()=>wNl,setDaemonError:()=>DNl,setClusterUrl:()=>rNl,setCluster:()=>vNl,pushSandboxEvent:()=>yNl,getLinkState:()=>Fki,applySandboxEvent:()=>KSt});function KSt(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 q8(){for(let i of Uki)i()}function Fki(){return i$}function Tki(i){return Uki.add(i),()=>Uki.delete(i)}function vNl(i){i$={...i$,cluster:i},q8()}function rNl(i){i$={...i$,clusterUrl:i},q8()}function wNl(i,t){i$={...i$,ingressPort:i,ingressUrl:t},q8()}function xNl(i){i$={...i$,machine:i},q8()}function DNl(i){i$={...i$,daemonError:i},q8()}function ONl(i){i$={...i$,logPath:i},q8()}function yNl(i){i$={...i$,sandboxes:KSt(i$.sandboxes,i)},q8()}var i$,Uki;var Iki=w(()=>{i$={cluster:"connecting",clusterUrl:null,ingressUrl:null,ingressPort:null,machine:null,cap:20,sandboxes:new Map,daemonError:null,logPath:null},Uki=new Set});var RSt={};Gi(RSt,{LinkApp:()=>JNl});import{Box as t$,Text as u$}from"ink";import{useSyncExternalStore as XNl}from"react";import{jsx as c1,jsxs as RE}from"react/jsx-runtime";function NNl(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 JNl(){let i=XNl(Tki,Fki),t=[...i.sandboxes.values()].sort((u,l)=>u.handle.localeCompare(l.handle));return RE(t$,{flexDirection:"column",children:[c1(D0i,{version:r0i.version}),c1(t$,{marginBottom:1,children:c1(u$,{dimColor:!0,children:"\u2500".repeat(80)})}),c1(t$,{children:i.cluster==="linked"?RE(u$,{color:"green",children:["\u2713 Connected to ",i.clusterUrl??"deco"]}):i.cluster==="connecting"?RE(u$,{color:"yellow",children:["\u25CC Connecting to ",i.clusterUrl??"deco","\u2026"]}):RE(u$,{color:"red",children:["\u2717 Disconnected from ",i.clusterUrl??"deco"]})}),c1(t$,{children:i.ingressUrl?RE(u$,{color:"green",children:["\u2713 Serving at ",i.ingressUrl]}):c1(u$,{dimColor:!0,children:"\u25CC Starting local server\u2026"})}),c1(t$,{marginBottom:1,children:c1(u$,{dimColor:!0,children:`${"Computer".padEnd(16)}${i.machine??"this computer"} \xB7 ${t.length} of ${i.cap} previews`})}),t.length===0?c1(u$,{dimColor:!0,children:"No previews running yet."}):RE(t$,{flexDirection:"column",children:[RE(t$,{children:[c1(t$,{width:O0i.project,flexShrink:0,marginRight:1,children:c1(u$,{dimColor:!0,wrap:"truncate-end",children:"PROJECT"})}),c1(t$,{width:O0i.status,flexShrink:0,marginRight:1,children:c1(u$,{dimColor:!0,wrap:"truncate-end",children:"STATUS"})}),c1(t$,{flexGrow:1,children:c1(u$,{dimColor:!0,wrap:"truncate-end",children:"PREVIEW URL"})})]}),t.map((u)=>{let l=NNl(u);return RE(t$,{children:[c1(t$,{width:O0i.project,flexShrink:0,marginRight:1,children:c1(u$,{wrap:"truncate-end",children:u.handle})}),c1(t$,{width:O0i.status,flexShrink:0,marginRight:1,children:c1(u$,{color:l.color,wrap:"truncate-end",children:l.text})}),c1(t$,{flexGrow:1,children:c1(u$,{dimColor:!0,wrap:"truncate-end",children:u.previewUrl??"\u2014"})})]},u.handle)})]}),i.daemonError?c1(t$,{marginTop:1,children:RE(u$,{color:"red",children:["\u26A0 ",i.daemonError]})}):null,i.logPath?c1(t$,{marginTop:1,children:RE(u$,{dimColor:!0,children:["Logs: ",i.logPath]})}):null]})}var O0i;var LSt=w(()=>{Nki();Jki();Iki();O0i={project:18,status:14}});var CSt={};Gi(CSt,{runLinkCommand:()=>PNl});import{closeSync as UNl,mkdirSync as FNl,openSync as TNl,writeSync as INl}from"fs";import{homedir as ZNl}from"os";import{join as eSt}from"path";function BNl(i,t){let u={log:console.log,warn:console.warn,error:console.error},l=(n)=>{if(t===void 0)return;try{INl(t,`${Xki(n)}
|
|
104811
104811
|
`)}catch{}};return console.log=(...n)=>l(n),console.warn=(...n)=>l(n),console.error=(...n)=>{l(n),i(Xki(n))},()=>{console.log=u.log,console.warn=u.warn,console.error=u.error}}async function QNl(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 PNl(i={}){let t=i.port??5174,u=i.dataDir??process.env.DATA_DIR??process.env.DECOCMS_HOME??eSt(ZNl(),"deco"),l=i.clusterBaseUrl??process.env.MESH_CLUSTER_URL??"https://studio.decocms.com",n,f;try{let c=await sui({dataDir:u,intent:"Link",target:l});if(process.env.DECOCMS_LINK_MANAGED!=="1")await QNl(l,c.accessToken);let $;if(i.tui){let{render:g}=await import("ink"),{createElement:h}=await import("react"),{LinkApp:E}=await Promise.resolve().then(() => (LSt(),RSt)),{pushSandboxEvent:v,setCluster:r,setClusterUrl:x,setDaemonError:O,setIngress:y,setLogPath:X,setMachine:N}=await Promise.resolve().then(() => (Iki(),HSt));FNl(u,{recursive:!0});let U=eSt(u,"link.log");f=TNl(U,"w"),X(U),x(l),r("connecting"),$={onEvent:(J)=>v(J),onIngress:(J)=>y(J,`http://127.0.0.1:${J}`),onCluster:(J)=>r(J),onMachine:(J)=>N(J)},n=BNl(O,f),g(h(E),{patchConsole:!1})}else if(i.banner!==!1){let{printBanner:g}=await Promise.resolve().then(() => (ZW(),vR));g(i.version??"0.0.0")}let d=process.env.DECOCMS_LINK_MANAGED!=="1";return await(await kSt({port:t,clusterBaseUrl:l,dataDir:u,session:c,monitor:$,logFd:f,perSandboxLogs:d,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{UNl(f)}catch{}}}var MSt=w(()=>{EGi();jSt()});var Aki={};Gi(Aki,{resolveDevLinkClusterUrl:()=>WNl,populateDevLinkToxiProxy:()=>sSt,isDevLinkToxiProxyEnabled:()=>GNl,ensureDevLinkToxiProxy:()=>bNl,buildDevLinkToxiProxyConfig:()=>mSt,DEV_LINK_TOXIPROXY_SERVICE_NAME:()=>VSt,DEV_LINK_TOXIPROXY_PROXY_NAME:()=>aSt});function GNl(i=process.env){return i.DECO_DEV_LINK_TOXIPROXY==="1"}function Zki(i,t){if(!Number.isInteger(i)||i<1||i>65535)throw Error(`${t} must be an integer port in 1..65535`);return i}function mSt(i){let t=new URL(i.serverUrl);if(t.protocol!=="http:")throw Error("DECO_DEV_LINK_TOXIPROXY only supports http local Studio URLs");let u=Zki(i.apiPort,"apiPort"),l=Zki(i.listenPort,"listenPort");if(t.port.length===0)throw Error("serverUrl must include an explicit valid port");let n=Zki(Number.parseInt(t.port,10),"upstreamPort"),f=`http://127.0.0.1:${n}`,c=`http://127.0.0.1:${l}`;return{serviceName:VSt,proxyName:aSt,apiUrl:`http://127.0.0.1:${u}`,listen:`0.0.0.0:${l}`,upstream:`host.docker.internal:${n}`,publicTargetUrl:f,clusterUrl:c,logLine:`[dev-link-toxiproxy] ready: ${c} -> ${f}`}}function WNl(i){return i.toxiproxy?.clusterUrl??i.serverUrl}async function Bki(i,t,u){if(i.ok)return;let l=await i.text();throw Error(`ToxiProxy ${t} failed for ${u}: status=${i.status} statusText=${i.statusText} body=${l}`)}function Yki(i){if(i instanceof Error)return i.name==="Error"?i.message:`${i.name}: ${i.message}`;return String(i)}function oSt(i){if(!(i instanceof Error))return!1;if(i.name==="TimeoutError")return!0;return oSt(i.cause)}async function Qki(i,t,u,l){try{return await i(u,l)}catch(n){throw Error(`ToxiProxy ${t} failed for ${u}: ${Yki(n)}`,{cause:n})}}async function sSt(i,t=fetch){let u=`${i.apiUrl}/reset`,l=await Qki(t,"reset",u,{method:"POST"});await Bki(l,"reset",u);let n=`${i.apiUrl}/populate`,f=await Qki(t,"populate",n,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify([{name:i.proxyName,listen:i.listen,upstream:i.upstream,enabled:!0}])});await Bki(f,"populate",n)}async function kNl(i,t){let u=`${i.apiUrl}/version`;try{await Ur(async()=>{let l=await Qki(t,"readiness check",u,{method:"GET",signal:AbortSignal.timeout(ANl)});await Bki(l,"readiness check",u)},{maxAttempts:YNl,minTimeout:qSt,maxTimeout:qSt,multiplier:1,jitter:0,isRetriable:(l)=>!oSt(l)})}catch(l){let n=l instanceof Tg?l.cause:l;throw Error(`ToxiProxy API did not become ready at ${u}: ${Yki(n)}`,{cause:n})}}async function jNl(i){if(i===null)return"";return await new Response(i).text()}async function Pki(i,t={}){let u=["docker",...i].join(" "),l=(()=>{try{return Bun.spawn(["docker",...i],{stdout:"ignore",stderr:"pipe"})}catch($){throw Error(`Docker command failed to start (${u}): ${Yki($)}`,{cause:$})}})(),[n,f]=await Promise.all([l.exited,jNl(l.stderr)]);if(n===0||t.ignoreFailure===!0)return;let c=f.trim().length>0?`: ${f.trim()}`:"";throw Error(`Docker command failed (${u}) with exit ${n}${c}`)}async function SNl(i,t){let u=`deco-dev-link-toxiproxy-${i}`;await Pki(["rm","-f",u],{ignoreFailure:!0}),await Pki(["run","--rm","-d","--name",u,"-p",`127.0.0.1:${i}:8474`,"-p",`127.0.0.1:${t}:${t}`,"ghcr.io/shopify/toxiproxy:2.12.0","-host=0.0.0.0"])}async function zNl(i,t){let u=`deco-dev-link-toxiproxy-${i}`;await Pki(["rm","-f",u],{ignoreFailure:!0})}async function bNl(i){let t=mSt(i),u=i.startDaemon??SNl,l=i.stopDaemon??(i.startDaemon===void 0?zNl:void 0);await u(i.apiPort,i.listenPort);let n=i.fetchImpl??fetch;try{await kNl(t,n),await sSt(t,n)}catch(f){if(l!==void 0)try{await l(i.apiPort,i.listenPort)}catch{}throw f}return{config:t,stop:async()=>{if(l!==void 0)await l(i.apiPort,i.listenPort)}}}var VSt="ToxiProxy",aSt="dev_link_studio",YNl=20,qSt=100,ANl=100;var Gki=w(()=>{Rf()});var pSt={};Gi(pSt,{migrateBetterAuth:()=>Wki});import{getMigrations as KNl}from"better-auth/db";import{sso as HNl}from"@better-auth/sso";import{organization as RNl}from"@decocms/better-auth/plugins";import{admin as LNl,apiKey as eNl,jwt as CNl,magicLink as MNl,mcp as qNl,openAPI as VNl}from"better-auth/plugins";import{emailOTP as aNl}from"better-auth/plugins/email-otp";async function Wki(i){let u={database:jH(i||Gw()),plugins:[RNl({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),LNl(),eNl(),CNl(),VNl(),qNl({loginPage:"/login"}),HNl(),MNl({sendMagicLink:async()=>{}}),aNl({sendVerificationOTP:async()=>{}})]},{toBeAdded:l,toBeCreated:n,runMigrations:f}=await KNl(u);if(!l.length&&!n.length)return"up to date";return await f(),`${n.length+l.length} table(s) migrated`}var kki=w(()=>{j$()});var jki={};Gi(jki,{up:()=>mNl,down:()=>oNl});import{sql as LE}from"kysely";async function mNl(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(LE`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(t)=>t.notNull().defaultTo(LE`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(LE`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(t)=>t.notNull().defaultTo(LE`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(LE`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(LE`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(LE`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(LE`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(LE`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(t)=>t.notNull().defaultTo(LE`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 oNl(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 izt=()=>{};var Ski={};Gi(Ski,{up:()=>sNl,down:()=>pNl});import{sql as tzt}from"kysely";async function sNl(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(tzt`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(t)=>t.notNull().defaultTo(tzt`CURRENT_TIMESTAMP`)).execute()}async function pNl(i){await i.schema.dropTable("organization_settings").execute()}var uzt=()=>{};var zki={};Gi(zki,{up:()=>iJl,down:()=>tJl});async function iJl(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 tJl(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 bki={};Gi(bki,{up:()=>uJl,down:()=>lJl});async function uJl(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 lJl(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 Kki={};Gi(Kki,{up:()=>nJl,down:()=>fJl});async function nJl(i){await i.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await i.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function fJl(i){await i.schema.alterTable("connections").dropColumn("configuration_state").execute(),await i.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var Hki={};Gi(Hki,{up:()=>$Jl,down:()=>dJl});import{sql as cJl}from"kysely";async function $Jl(i){await i.schema.alterTable("organization_settings").addColumn("sidebar_items",cJl`text`).execute()}async function dJl(i){await i.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var lzt=()=>{};var Rki={};Gi(Rki,{up:()=>_Jl,down:()=>gJl});async function _Jl(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 gJl(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 Lki={};Gi(Lki,{up:()=>hJl,down:()=>EJl});import{sql as rR}from"kysely";async function hJl(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(rR`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(t)=>t.notNull().defaultTo(rR`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(rR`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(t)=>t.notNull().defaultTo(rR`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(rR`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 EJl(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 nzt=()=>{};var eki={};Gi(eki,{up:()=>rJl,down:()=>wJl});import{sql as vJl}from"kysely";async function rJl(i){await i.schema.dropTable("audit_logs").ifExists().execute()}async function wJl(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(vJl`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 fzt=()=>{};var Cki={};Gi(Cki,{up:()=>xJl,down:()=>DJl});import{sql as y0i}from"kysely";async function xJl(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(y0i`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(t)=>t.notNull().defaultTo(y0i`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(y0i`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 y0i`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 DJl(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 czt=()=>{};var Mki={};Gi(Mki,{up:()=>OJl,down:()=>yJl});async function OJl(i){await i.schema.alterTable("gateways").addColumn("icon","text").execute()}async function yJl(i){await i.schema.alterTable("gateways").dropColumn("icon").execute()}var qki={};Gi(qki,{up:()=>XJl,down:()=>NJl});import{sql as X0i}from"kysely";async function XJl(i){await i.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(t)=>t.notNull().defaultTo("inclusion")).execute(),await X0i`
|
|
104812
104812
|
UPDATE gateways
|
|
104813
104813
|
SET tool_selection_mode = CASE
|
|
@@ -107941,7 +107941,7 @@ ${X}`;if(f.has(y))x(),E(y)}),x()}return{messagesPrompt:_,systemPrompt:l,...u.len
|
|
|
107941
107941
|
...[truncated ${i.length-t} chars]`}if(typeof i!=="object"||i===null)return i;if(Array.isArray(i)){let f=-1,c=0;for(let $=0;$<i.length;$++){let d=i[$];if(typeof d==="string"&&d.length>c)f=$,c=d.length}if(f>=0&&c>t){let $=i[f].slice(0,t)+`
|
|
107942
107942
|
...[truncated ${c-t} chars]`,d=[...i];return d[f]=$,d}return i}let u=i,l=null,n=0;for(let[f,c]of Object.entries(u))if(typeof c==="string"&&c.length>n)l=f,n=c.length;if(l&&n>t){let f=u[l].slice(0,t)+`
|
|
107943
107943
|
...[truncated ${n-t} chars]`;return{...u,[l]:f}}return i}function t0t(i={}){let t=AZu(i.defaultSettings?.logger);if(i.defaultSettings){let n=UZu(i.defaultSettings);if(!n.valid)throw Error(`Invalid default settings: ${n.errors.join(", ")}`);if(n.warnings.length>0)n.warnings.forEach((f)=>t.warn(`Claude Code Provider: ${f}`))}let u=(n,f={})=>{let c={...i.defaultSettings,...f},$=UZu(c);if(!$.valid)throw Error(`Invalid settings: ${$.errors.join(", ")}`);return new yZ0({id:n,settings:c,settingsValidationWarnings:$.warnings})},l=function(n,f){if(new.target)throw Error("The Claude Code model function cannot be called with the new keyword.");return u(n,f)};return l.languageModel=u,l.chat=u,l.specificationVersion="v3",l.embeddingModel=(n)=>{throw new j6({modelId:n,modelType:"embeddingModel"})},l.imageModel=(n)=>{throw new j6({modelId:n,modelType:"imageModel"})},l}var CI0="Image URLs are not supported by this provider; supply base64/data URLs.",fr="Unable to convert image content; supply base64/data URLs.",lZ0,nZ0,dZ0,_Z0,TZu="Claude Code SDK output ended unexpectedly; returning truncated response from buffered text. Await upstream fix to avoid data loss.",hZ0=512,EZ0,vZ0,ZZu="Claude Agent SDK features (hooks/MCP/images) require streaming input. Set `streamingInput: 'always'` or provide `canUseTool` (auto streams only when canUseTool is set).",wZ0,DZ0,OZ0=1e4,yZ0=class i{specificationVersion="v3";defaultObjectGenerationMode="json";supportsImageUrls=!1;supportedUrls={};supportsStructuredOutputs=!0;static UNKNOWN_TOOL_NAME="unknown-tool";static MAX_TOOL_INPUT_SIZE=1048576;static MAX_TOOL_INPUT_WARN=102400;static MAX_DELTA_CALC_SIZE=1e4;modelId;settings;sessionId;modelValidationWarning;settingsValidationWarnings;logger;constructor(t){this.modelId=t.id,this.settings=t.settings??{},this.settingsValidationWarnings=t.settingsValidationWarnings??[];let u=AZu(this.settings.logger);if(this.logger=gZ0(u,this.settings.verbose??!1),!this.modelId||typeof this.modelId!=="string"||this.modelId.trim()==="")throw new j6({modelId:this.modelId,modelType:"languageModel"});if(this.modelValidationWarning=fZ0(this.modelId),this.modelValidationWarning)this.logger.warn(`Claude Code Model: ${this.modelValidationWarning}`)}get provider(){return"claude-code"}getModel(){return DZ0[this.modelId]??this.modelId}getSanitizedSdkOptions(){if(!this.settings.sdkOptions||typeof this.settings.sdkOptions!=="object")return;let t={...this.settings.sdkOptions},u=Array.from(wZ0).filter((l)=>(l in t));if(u.length>0)this.logger.warn(`[claude-code] sdkOptions includes provider-managed fields (${u.join(", ")}); these will be ignored.`),u.forEach((l)=>delete t[l]);return t}getEffectiveResume(t){return t?.resume??this.settings.resume??this.sessionId}extractTextAndThinking(t){if(!Array.isArray(t))return{text:"",thinking:[]};let u="",l=[];for(let n of t){if(!GZu(n))continue;if(n.type==="text"&&typeof n.text==="string")u+=n.text;else if(n.type==="thinking"&&typeof n.thinking==="string")l.push(n.thinking)}if(u.length>0&&typeof u!=="string")throw Error("extractTextAndThinking: accumulated text must be a string");if(l.some((n)=>typeof n!=="string"))throw Error("extractTextAndThinking: all thinking entries must be strings");return{text:u,thinking:l}}extractToolUses(t){return plt(t,"tool_use").map((u)=>{let{id:l,name:n,input:f,parent_tool_use_id:c}=u;return{id:typeof l==="string"&&l.length>0?l:In(),name:typeof n==="string"&&n.length>0?n:i.UNKNOWN_TOOL_NAME,input:f,parentToolUseId:typeof c==="string"?c:null}})}extractToolResults(t){return plt(t,"tool_result").map((u)=>{let{tool_use_id:l,content:n,is_error:f,name:c}=u;return{id:typeof l==="string"&&l.length>0?l:In(),name:typeof c==="string"&&c.length>0?c:void 0,result:n,isError:Boolean(f)}})}extractToolErrors(t){return plt(t,"tool_error").map((u)=>{let{tool_use_id:l,error:n,name:f}=u;return{id:typeof l==="string"&&l.length>0?l:In(),name:typeof f==="string"&&f.length>0?f:void 0,error:n}})}serializeToolInput(t){if(typeof t==="string")return this.checkInputSize(t);if(t===void 0)return"";try{let u=JSON.stringify(t);return this.checkInputSize(u)}catch{let u=String(t);return this.checkInputSize(u)}}checkInputSize(t){let u=t.length;if(u>i.MAX_TOOL_INPUT_SIZE)throw Error(`Tool input exceeds maximum size of ${i.MAX_TOOL_INPUT_SIZE} bytes (got ${u} bytes). This may indicate a malformed request or an attempt to process excessively large data.`);if(u>i.MAX_TOOL_INPUT_WARN)this.logger.warn(`[claude-code] Large tool input detected: ${u} bytes. Performance may be impacted. Consider chunking or reducing input size.`);return t}normalizeToolResult(t){if(typeof t==="string")try{return JSON.parse(t)}catch{return t}if(Array.isArray(t)&&t.length>0){let u=t.filter((n)=>n?.type==="text"&&typeof n.text==="string").map((n)=>n.text);if(u.length!==t.length)return t;if(u.length===1)try{return JSON.parse(u[0])}catch{return u[0]}let l=u.join(`
|
|
107944
|
-
`);try{return JSON.parse(l)}catch{return l}}return t}generateAllWarnings(t,u){let l=[],n=[];if(t.temperature!==void 0)n.push("temperature");if(t.topP!==void 0)n.push("topP");if(t.topK!==void 0)n.push("topK");if(t.presencePenalty!==void 0)n.push("presencePenalty");if(t.frequencyPenalty!==void 0)n.push("frequencyPenalty");if(t.stopSequences!==void 0&&t.stopSequences.length>0)n.push("stopSequences");if(t.seed!==void 0)n.push("seed");if(n.length>0)for(let c of n)l.push({type:"unsupported",feature:c,details:`Claude Code SDK does not support the ${c} parameter. It will be ignored.`});if(this.modelValidationWarning)l.push({type:"other",message:this.modelValidationWarning});if(this.settingsValidationWarnings.forEach((c)=>{l.push({type:"other",message:c})}),t.responseFormat?.type==="json"&&!t.responseFormat.schema)l.push({type:"unsupported",feature:"responseFormat",details:"JSON response format requires a schema for the Claude Code provider. The JSON responseFormat is ignored and the call is treated as plain text."});let f=cZ0(u);if(f)l.push({type:"other",message:f});return l}createQueryOptions(t,u,l,n,f){let c={model:this.getModel(),abortController:t,resume:f??this.settings.resume??this.sessionId,pathToClaudeCodeExecutable:this.settings.pathToClaudeCodeExecutable,maxTurns:this.settings.maxTurns,maxThinkingTokens:this.settings.maxThinkingTokens,thinking:this.settings.thinking,effort:this.settings.effort,promptSuggestions:this.settings.promptSuggestions,cwd:this.settings.cwd,executable:this.settings.executable,executableArgs:this.settings.executableArgs,permissionMode:this.settings.permissionMode,permissionPromptToolName:this.settings.permissionPromptToolName,continue:this.settings.continue,allowedTools:this.settings.allowedTools,disallowedTools:this.settings.disallowedTools,betas:this.settings.betas,allowDangerouslySkipPermissions:this.settings.allowDangerouslySkipPermissions,enableFileCheckpointing:this.settings.enableFileCheckpointing,maxBudgetUsd:this.settings.maxBudgetUsd,plugins:this.settings.plugins,resumeSessionAt:this.settings.resumeSessionAt,sandbox:this.settings.sandbox,tools:this.settings.tools,mcpServers:this.settings.mcpServers,canUseTool:this.settings.canUseTool};if(this.settings.systemPrompt!==void 0)c.systemPrompt=this.settings.systemPrompt;else if(this.settings.customSystemPrompt!==void 0)this.logger.warn("[claude-code] 'customSystemPrompt' is deprecated and will be removed in a future major release. Please use 'systemPrompt' instead (string or { type: 'preset', preset: 'claude_code', append? })."),c.systemPrompt=this.settings.customSystemPrompt;else if(this.settings.appendSystemPrompt!==void 0)this.logger.warn("[claude-code] 'appendSystemPrompt' is deprecated and will be removed in a future major release. Please use 'systemPrompt: { type: 'preset', preset: 'claude_code', append: <text> }' instead."),c.systemPrompt={type:"preset",preset:"claude_code",append:this.settings.appendSystemPrompt};if(this.settings.settingSources!==void 0)c.settingSources=this.settings.settingSources;if(this.settings.additionalDirectories!==void 0)c.additionalDirectories=this.settings.additionalDirectories;if(this.settings.agents!==void 0)c.agents=this.settings.agents;if(this.settings.includePartialMessages!==void 0)c.includePartialMessages=this.settings.includePartialMessages;if(this.settings.fallbackModel!==void 0)c.fallbackModel=this.settings.fallbackModel;if(this.settings.forkSession!==void 0)c.forkSession=this.settings.forkSession;if(this.settings.strictMcpConfig!==void 0)c.strictMcpConfig=this.settings.strictMcpConfig;if(this.settings.extraArgs!==void 0)c.extraArgs=this.settings.extraArgs;if(this.settings.persistSession!==void 0)c.persistSession=this.settings.persistSession;if(this.settings.spawnClaudeCodeProcess!==void 0)c.spawnClaudeCodeProcess=this.settings.spawnClaudeCodeProcess;if(this.settings.hooks)c.hooks=this.settings.hooks;if(this.settings.sessionId!==void 0)c.sessionId=this.settings.sessionId;if(this.settings.debug!==void 0)c.debug=this.settings.debug;if(this.settings.debugFile!==void 0)c.debugFile=this.settings.debugFile;let $=n?n:void 0,d=$&&typeof $.env==="object"&&$.env!==null?$.env:void 0,_=$&&typeof $.stderr==="function"?$.stderr:void 0;if($){let h={...$};delete h.env,delete h.stderr,Object.assign(c,h)}let g=_??this.settings.stderr;if(l||g)c.stderr=(h)=>{if(l)l(h);if(g)g(h)};if(this.settings.env!==void 0||d!==void 0){let h=rZ0();c.env={...h,...this.settings.env,...d}}if(u?.type==="json"&&u.schema)c.outputFormat={type:"json_schema",schema:u.schema};return c}handleClaudeCodeError(t,u,l){if(slt(t))throw t;let n=(r)=>{return typeof r==="object"&&r!==null&&"message"in r},f=(r)=>{return typeof r==="object"&&r!==null},c=["not logged in","authentication","unauthorized","auth failed","please login","claude login","claude auth login","/login","invalid api key"],$=n(t)&&t.message?t.message.toLowerCase():"",d=f(t)&&typeof t.exitCode==="number"?t.exitCode:void 0;if(c.some((r)=>$.includes(r))||d===401)return iZ0({message:n(t)&&t.message?t.message:"Authentication failed. Please ensure Claude Code SDK is properly authenticated."});let g=f(t)&&typeof t.code==="string"?t.code:"";if(g==="ETIMEDOUT"||$.includes("timeout"))return tZ0({message:n(t)&&t.message?t.message:"Request timed out",promptExcerpt:u.substring(0,200)});let h=g==="ENOENT"||g==="ECONNREFUSED"||g==="ETIMEDOUT"||g==="ECONNRESET",v=(f(t)&&typeof t.stderr==="string"?t.stderr:void 0)||l||void 0;return pI0({message:n(t)&&t.message?t.message:"Claude Code SDK error",code:g||void 0,exitCode:d,stderr:v,promptExcerpt:u.substring(0,200),isRetryable:h})}setSessionId(t){this.sessionId=t;let u=$Z0(t);if(u)this.logger.warn(`Claude Code Session: ${u}`)}logMcpConnectionIssues(t){if(!Array.isArray(t)||t.length===0)return;let u=t.filter((n)=>{let f=typeof n.status==="string"?n.status.toLowerCase():"";return f==="failed"||f==="needs-auth"});if(u.length===0)return;let l=u.map((n)=>{let f=typeof n.name==="string"&&n.name.trim().length>0?n.name:"<unknown>",c=typeof n.status==="string"&&n.status.trim().length>0?n.status:"unknown",$=typeof n.error==="string"&&n.error.trim().length>0?` (${n.error})`:"";return`${f}:${c}${$}`}).join(", ");this.logger.warn(`[claude-code] MCP servers not connected: ${l}`)}async doGenerate(t){this.logger.debug(`[claude-code] Starting doGenerate request with model: ${this.modelId}`),this.logger.debug(`[claude-code] Response format: ${t.responseFormat?.type??"none"}`);let{messagesPrompt:u,warnings:l,streamingContentParts:n,hasImageParts:f}=NZu(t.prompt);this.logger.debug(`[claude-code] Converted ${t.prompt.length} messages, hasImageParts: ${f}`);let c=new AbortController,$;if(t.abortSignal?.aborted)c.abort(t.abortSignal.reason);else if(t.abortSignal)$=()=>c.abort(t.abortSignal?.reason),t.abortSignal.addEventListener("abort",$,{once:!0});let d="",_=(z)=>{d+=z},g=this.getSanitizedSdkOptions(),h=this.getEffectiveResume(g),E=this.createQueryOptions(c,t.responseFormat,_,g,h),v="",r=[],x,O=BZu(),y={unified:"stop",raw:void 0},X=!1,N,U,J,F=this.generateAllWarnings(t,u);if(l)l.forEach((z)=>{F.push({type:"other",message:z})});let Q=this.settings.streamingInput??"auto",B=g?.canUseTool??this.settings.canUseTool,Y=g?.permissionPromptToolName??this.settings.permissionPromptToolName,H=Q==="always"||Q==="auto"&&!!B;if(!H&&f)F.push({type:"other",message:ZZu});let j=()=>{},k=new Promise((z)=>{j=()=>z(void 0)});try{if(B&&Y)throw Error("canUseTool requires streamingInput mode ('auto' or 'always') and cannot be used with permissionPromptToolName (SDK constraint). Set streamingInput: 'auto' (or 'always') and remove permissionPromptToolName, or remove canUseTool.");let z=H?PZu(u,k,h,n,this.settings.onStreamStart):u;this.logger.debug(`[claude-code] Executing query with streamingInput: ${H}, session: ${h??"new"}`);let M=FZu({prompt:z,options:E});this.settings.onQueryCreated?.(M);for await(let p of M)if(this.logger.debug(`[claude-code] Received message type: ${p.type}`),p.type==="assistant"){let{text:s,thinking:$i}=this.extractTextAndThinking(p.message.content);v+=s,r.push(...$i)}else if(p.type==="result"){if(j(),this.setSessionId(p.session_id),N=p.total_cost_usd,U=p.duration_ms,J=p.modelUsage,"is_error"in p&&p.is_error===!0){let $i="result"in p&&typeof p.result==="string"?p.result:"Claude Code CLI returned an error";throw Object.assign(Error($i),{exitCode:1})}if(p.subtype==="error_max_structured_output_retries")throw Error("Failed to generate valid structured output after maximum retries. The model could not produce a response matching the required schema.");if("structured_output"in p&&p.structured_output!==void 0)x=p.structured_output,this.logger.debug("[claude-code] Received structured output from SDK");if(this.logger.info(`[claude-code] Request completed - Session: ${p.session_id}, Cost: $${N?.toFixed(4)??"N/A"}, Duration: ${U??"N/A"}ms`),"usage"in p)O=QZu(p.usage),this.logger.debug(`[claude-code] Token usage - Input: ${O.inputTokens.total}, Output: ${O.outputTokens.total}`);let s="stop_reason"in p?p.stop_reason:void 0;y=JZu(p.subtype,s),this.logger.debug(`[claude-code] Finish reason: ${y.unified}`)}else if(p.type==="system"&&p.subtype==="init")this.logMcpConnectionIssues(p.mcp_servers),this.setSessionId(p.session_id),this.logger.info(`[claude-code] Session initialized: ${p.session_id}`)}catch(z){if(j(),this.logger.debug(`[claude-code] Error during doGenerate: ${z instanceof Error?z.message:String(z)}`),slt(z))throw this.logger.debug("[claude-code] Request aborted by user"),t.abortSignal?.aborted?t.abortSignal.reason:z;if(IZu(z,v))this.logger.warn(`[claude-code] Detected truncated response, returning ${v.length} characters of buffered text`),X=!0,y={unified:"length",raw:"truncation"},F.push({type:"other",message:TZu});else throw this.handleClaudeCodeError(z,u,d)}finally{if(t.abortSignal&&$)t.abortSignal.removeEventListener("abort",$)}let a=x!==void 0?JSON.stringify(x):v;return{content:[...r.map((z)=>({type:"reasoning",text:z})),{type:"text",text:a}],usage:O,finishReason:y,warnings:F,response:{id:In(),timestamp:new Date,modelId:this.modelId},request:{body:u},providerMetadata:{"claude-code":{...this.sessionId!==void 0&&{sessionId:this.sessionId},...N!==void 0&&{costUsd:N},...U!==void 0&&{durationMs:U},...J!==void 0&&{modelUsage:J},...X&&{truncated:!0},...r.length>0&&{thinkingTraces:r}}}}}async doStream(t){this.logger.debug(`[claude-code] Starting doStream request with model: ${this.modelId}`),this.logger.debug(`[claude-code] Response format: ${t.responseFormat?.type??"none"}`);let{messagesPrompt:u,warnings:l,streamingContentParts:n,hasImageParts:f}=NZu(t.prompt);this.logger.debug(`[claude-code] Converted ${t.prompt.length} messages for streaming, hasImageParts: ${f}`);let c=new AbortController,$;if(t.abortSignal?.aborted)c.abort(t.abortSignal.reason);else if(t.abortSignal)$=()=>c.abort(t.abortSignal?.reason),t.abortSignal.addEventListener("abort",$,{once:!0});let d="",_=(N)=>{d+=N},g=this.getSanitizedSdkOptions(),h=this.getEffectiveResume(g),E=this.createQueryOptions(c,t.responseFormat,_,g,h);if(E.includePartialMessages===void 0)E.includePartialMessages=!0;let v=this.generateAllWarnings(t,u);if(l)l.forEach((N)=>{v.push({type:"other",message:N})});let r=this.settings.streamingInput??"auto",x=g?.canUseTool??this.settings.canUseTool,O=g?.permissionPromptToolName??this.settings.permissionPromptToolName,y=r==="always"||r==="auto"&&!!x;if(!y&&f)v.push({type:"other",message:ZZu});return{stream:new ReadableStream({start:async(N)=>{let U=()=>{},J=new Promise((Mi)=>{U=()=>Mi(void 0)}),F=new Map,Q=new Map,B=()=>{if(Q.size===1)return Q.keys().next().value??null;return null},Y=[],H=(Mi,Pi)=>{if(!Pi.inputClosed&&Pi.inputStarted)N.enqueue({type:"tool-input-end",id:Mi}),Pi.inputClosed=!0},j=(Mi,Pi)=>{if(Pi.callEmitted)return;H(Mi,Pi),N.enqueue({type:"tool-call",toolCallId:Mi,toolName:Pi.name,input:Pi.lastSerializedInput??"",providerExecuted:!0,dynamic:!0,providerMetadata:{"claude-code":{rawInput:Pi.lastSerializedInput??"",parentToolCallId:Pi.parentToolCallId??null}}}),Pi.callEmitted=!0},k=()=>{for(let[Mi,Pi]of F)j(Mi,Pi);F.clear()},a=BZu(),z="",M,p=0,s=!1,$i=!1,C=new Map,fi=new Map,m=new Map,di=!1,Xi=new Map,xi;try{if(N.enqueue({type:"stream-start",warnings:v}),x&&O)throw Error("canUseTool requires streamingInput mode ('auto' or 'always') and cannot be used with permissionPromptToolName (SDK constraint). Set streamingInput: 'auto' (or 'always') and remove permissionPromptToolName, or remove canUseTool.");let Mi=y?PZu(u,J,h,n,this.settings.onStreamStart):u;this.logger.debug(`[claude-code] Starting stream query with streamingInput: ${y}, session: ${h??"new"}`);let Pi=FZu({prompt:Mi,options:E});this.settings.onQueryCreated?.(Pi);for await(let Fi of Pi){if(this.logger.debug(`[claude-code] Stream received message type: ${Fi.type}`),Fi.type==="stream_event"){let Vi=Fi.event;if(Vi.type==="content_block_delta"&&Vi.delta.type==="text_delta"&&"text"in Vi.delta&&Vi.delta.text){let ui=Vi.delta.text;if(s=!0,t.responseFormat?.type==="json"){z+=ui,p+=ui.length;continue}if(!M)M=In(),N.enqueue({type:"text-start",id:M});N.enqueue({type:"text-delta",id:M,delta:ui}),z+=ui,p+=ui.length}if(Vi.type==="content_block_delta"&&Vi.delta.type==="input_json_delta"&&"partial_json"in Vi.delta&&Vi.delta.partial_json){let ui=Vi.delta.partial_json;s=!0;let ci="index"in Vi?Vi.index:-1;if(t.responseFormat?.type==="json"){if(!M)M=In(),N.enqueue({type:"text-start",id:M});N.enqueue({type:"text-delta",id:M,delta:ui}),z+=ui,p+=ui.length,$i=!0;continue}let ii=C.get(ci);if(ii){let o=(fi.get(ii)??"")+ui;fi.set(ii,o),N.enqueue({type:"tool-input-delta",id:ii,delta:ui});continue}}if(Vi.type==="content_block_start"&&"content_block"in Vi&&Vi.content_block?.type==="tool_use"){let ui="index"in Vi?Vi.index:-1,ci=Vi.content_block,ii=typeof ci.id==="string"&&ci.id.length>0?ci.id:In(),o=typeof ci.name==="string"&&ci.name.length>0?ci.name:i.UNKNOWN_TOOL_NAME;if(s=!0,M){let wi=M;N.enqueue({type:"text-end",id:wi}),M=void 0;for(let[Et,nt]of m)if(nt===wi){m.delete(Et);break}}C.set(ui,ii),fi.set(ii,"");let zi=F.get(ii);if(!zi){let wi=o==="Task"?null:B();zi={name:o,inputStarted:!1,inputClosed:!1,callEmitted:!1,parentToolCallId:wi},F.set(ii,zi)}if(!zi.inputStarted){if(this.logger.debug(`[claude-code] Tool input started (content_block) - Tool: ${o}, ID: ${ii}, parent: ${zi.parentToolCallId}`),N.enqueue({type:"tool-input-start",id:ii,toolName:o,providerExecuted:!0,dynamic:!0,providerMetadata:{"claude-code":{parentToolCallId:zi.parentToolCallId??null}}}),o==="Task")Q.set(ii,{startTime:Date.now()});zi.inputStarted=!0}continue}if(Vi.type==="content_block_start"&&"content_block"in Vi&&Vi.content_block?.type==="text"){let ui="index"in Vi?Vi.index:-1;s=!0;let ci=In();m.set(ui,ci),M=ci,this.logger.debug(`[claude-code] Text content block started - Index: ${ui}, ID: ${ci}`),N.enqueue({type:"text-start",id:ci}),di=!0;continue}if(Vi.type==="content_block_start"&&"content_block"in Vi&&Vi.content_block?.type==="thinking"){let ui="index"in Vi?Vi.index:-1;if(s=!0,M){let ii=M;N.enqueue({type:"text-end",id:ii}),M=void 0;for(let[o,zi]of m)if(zi===ii){m.delete(o);break}}let ci=In();Xi.set(ui,ci),xi=ci,this.logger.debug(`[claude-code] Reasoning started (content_block) - ID: ${ci}`),N.enqueue({type:"reasoning-start",id:ci});continue}if(Vi.type==="content_block_delta"&&Vi.delta.type==="thinking_delta"&&"thinking"in Vi.delta&&Vi.delta.thinking){let ui="index"in Vi?Vi.index:-1,ci=Xi.get(ui)??xi;if(s=!0,ci)N.enqueue({type:"reasoning-delta",id:ci,delta:Vi.delta.thinking});continue}if(Vi.type==="content_block_stop"){let ui="index"in Vi?Vi.index:-1;s=!0;let ci=C.get(ui);if(ci){let zi=F.get(ci);if(zi&&!zi.inputClosed){let wi=fi.get(ci)??"";this.logger.debug(`[claude-code] Tool content block stopped - Index: ${ui}, Tool: ${zi.name}, ID: ${ci}`),N.enqueue({type:"tool-input-end",id:ci}),zi.inputClosed=!0;let Et=wi||zi.lastSerializedInput||"";if(zi.lastSerializedInput=Et,!zi.callEmitted)N.enqueue({type:"tool-call",toolCallId:ci,toolName:zi.name,input:Et,providerExecuted:!0,dynamic:!0,providerMetadata:{"claude-code":{rawInput:Et,parentToolCallId:zi.parentToolCallId??null}}}),zi.callEmitted=!0}C.delete(ui),fi.delete(ci);continue}let ii=m.get(ui);if(ii){if(this.logger.debug(`[claude-code] Text content block stopped - Index: ${ui}, ID: ${ii}`),N.enqueue({type:"text-end",id:ii}),m.delete(ui),M===ii)M=void 0;continue}let o=Xi.get(ui);if(o){if(this.logger.debug(`[claude-code] Reasoning ended (content_block) - ID: ${o}`),N.enqueue({type:"reasoning-end",id:o}),Xi.delete(ui),xi===o)xi=void 0;continue}}continue}if(Fi.type==="assistant"){if(!Fi.message?.content){this.logger.warn(`[claude-code] Unexpected assistant message structure: missing content field. Message type: ${Fi.type}. This may indicate an SDK protocol violation.`);continue}let Qi=Fi.parent_tool_use_id,Vi=Fi.message.content,ui=this.extractToolUses(Vi);if(M&&ui.length>0){let ii=M;N.enqueue({type:"text-end",id:ii}),M=void 0;for(let[o,zi]of m)if(zi===ii){m.delete(o);break}}for(let ii of ui){let o=ii.id,zi=F.get(o);if(!zi){let Et=ii.name==="Task"?null:Qi??ii.parentToolUseId??B();zi={name:ii.name,inputStarted:!1,inputClosed:!1,callEmitted:!1,parentToolCallId:Et},F.set(o,zi),this.logger.debug(`[claude-code] New tool use detected - Tool: ${ii.name}, ID: ${o}, SDK parent: ${Qi}, resolved parent: ${Et}`)}else if(!zi.parentToolCallId&&Qi&&ii.name!=="Task")zi.parentToolCallId=Qi,this.logger.debug(`[claude-code] Retroactive parent context - Tool: ${ii.name}, ID: ${o}, parent: ${Qi}`);if(zi.name=ii.name,!zi.inputStarted){if(this.logger.debug(`[claude-code] Tool input started - Tool: ${ii.name}, ID: ${o}`),N.enqueue({type:"tool-input-start",id:o,toolName:ii.name,providerExecuted:!0,dynamic:!0,providerMetadata:{"claude-code":{parentToolCallId:zi.parentToolCallId??null}}}),ii.name==="Task")Q.set(o,{startTime:Date.now()});zi.inputStarted=!0}let wi=this.serializeToolInput(ii.input);if(wi){let Et="";if(zi.lastSerializedInput===void 0){if(wi.length<=i.MAX_DELTA_CALC_SIZE)Et=wi}else if(wi.length<=i.MAX_DELTA_CALC_SIZE&&zi.lastSerializedInput.length<=i.MAX_DELTA_CALC_SIZE&&wi.startsWith(zi.lastSerializedInput))Et=wi.slice(zi.lastSerializedInput.length);else if(wi!==zi.lastSerializedInput)Et="";if(Et)N.enqueue({type:"tool-input-delta",id:o,delta:Et});zi.lastSerializedInput=wi}}let ci=Vi.map((ii)=>ii.type==="text"?ii.text:"").join("");if(ci){if(s){let ii=p,o=ci.length>ii?ci.slice(ii):"";if(z=ci,t.responseFormat?.type!=="json"&&o){if(!M)M=In(),N.enqueue({type:"text-start",id:M});N.enqueue({type:"text-delta",id:M,delta:o})}p=ci.length}else if(z+=ci,t.responseFormat?.type!=="json"){if(!M)M=In(),N.enqueue({type:"text-start",id:M});N.enqueue({type:"text-delta",id:M,delta:ci})}}}else if(Fi.type==="user"){if(!Fi.message?.content){this.logger.warn(`[claude-code] Unexpected user message structure: missing content field. Message type: ${Fi.type}. This may indicate an SDK protocol violation.`);continue}if(M){let ui=M;N.enqueue({type:"text-end",id:ui}),M=void 0;for(let[ci,ii]of m)if(ii===ui){m.delete(ci);break}z="",p=0,this.logger.debug("[claude-code] Closed text part due to user message")}let Qi=Fi.parent_tool_use_id,Vi=Fi.message.content;for(let ui of this.extractToolResults(Vi)){let ci=F.get(ui.id),ii=ui.name??ci?.name??i.UNKNOWN_TOOL_NAME;if(this.logger.debug(`[claude-code] Tool result received - Tool: ${ii}, ID: ${ui.id}`),!ci){this.logger.warn(`[claude-code] Received tool result for unknown tool ID: ${ui.id}`);let lt=ii==="Task"?null:Qi??B();if(ci={name:ii,inputStarted:!1,inputClosed:!1,callEmitted:!1,parentToolCallId:lt},F.set(ui.id,ci),!ci.inputStarted)N.enqueue({type:"tool-input-start",id:ui.id,toolName:ii,providerExecuted:!0,dynamic:!0,providerMetadata:{"claude-code":{parentToolCallId:ci.parentToolCallId??null}}}),ci.inputStarted=!0;if(!ci.inputClosed)N.enqueue({type:"tool-input-end",id:ui.id}),ci.inputClosed=!0}ci.name=ii;let o=this.normalizeToolResult(ui.result),zi=typeof ui.result==="string"?ui.result:(()=>{try{return JSON.stringify(ui.result)}catch{return String(ui.result)}})(),wi=this.settings.maxToolResultSize,Et=YZu(o,wi),nt=YZu(zi,wi),Bi=nt!==zi;if(j(ui.id,ci),ii==="Task")Q.delete(ui.id);N.enqueue({type:"tool-result",toolCallId:ui.id,toolName:ii,result:Et,isError:ui.isError,providerExecuted:!0,dynamic:!0,providerMetadata:{"claude-code":{rawResult:nt,rawResultTruncated:Bi,parentToolCallId:ci.parentToolCallId??null}}})}for(let ui of this.extractToolErrors(Vi)){let ci=F.get(ui.id),ii=ui.name??ci?.name??i.UNKNOWN_TOOL_NAME;if(this.logger.debug(`[claude-code] Tool error received - Tool: ${ii}, ID: ${ui.id}`),!ci){this.logger.warn(`[claude-code] Received tool error for unknown tool ID: ${ui.id}`);let zi=ii==="Task"?null:Qi??B();ci={name:ii,inputStarted:!0,inputClosed:!0,callEmitted:!1,parentToolCallId:zi},F.set(ui.id,ci)}if(j(ui.id,ci),ii==="Task")Q.delete(ui.id);let o=typeof ui.error==="string"?ui.error:typeof ui.error==="object"&&ui.error!==null?(()=>{try{return JSON.stringify(ui.error)}catch{return String(ui.error)}})():String(ui.error);N.enqueue({type:"tool-error",toolCallId:ui.id,toolName:ii,error:o,providerExecuted:!0,dynamic:!0,providerMetadata:{"claude-code":{rawError:o,parentToolCallId:ci.parentToolCallId??null}}})}}else if(Fi.type==="result"){if(U(),"is_error"in Fi&&Fi.is_error===!0){let o="result"in Fi&&typeof Fi.result==="string"?Fi.result:"Claude Code CLI returned an error";throw Object.assign(Error(o),{exitCode:1})}if(Fi.subtype==="error_max_structured_output_retries")throw Error("Failed to generate valid structured output after maximum retries. The model could not produce a response matching the required schema.");if(this.logger.info(`[claude-code] Stream completed - Session: ${Fi.session_id}, Cost: $${Fi.total_cost_usd?.toFixed(4)??"N/A"}, Duration: ${Fi.duration_ms??"N/A"}ms`),"usage"in Fi)a=QZu(Fi.usage),this.logger.debug(`[claude-code] Stream token usage - Input: ${a.inputTokens.total}, Output: ${a.outputTokens.total}`);let Qi="stop_reason"in Fi?Fi.stop_reason:void 0,Vi=JZu(Fi.subtype,Qi);this.logger.debug(`[claude-code] Stream finish reason: ${Vi.unified}`),this.setSessionId(Fi.session_id);let ui="structured_output"in Fi?Fi.structured_output:void 0;if($i&&t.responseFormat?.type==="json"&&s){if(M)N.enqueue({type:"text-end",id:M})}else if(ui!==void 0){let o=In(),zi=JSON.stringify(ui);N.enqueue({type:"text-start",id:o}),N.enqueue({type:"text-delta",id:o,delta:zi}),N.enqueue({type:"text-end",id:o})}else if(M)N.enqueue({type:"text-end",id:M});else if(z&&!di){let o=In();N.enqueue({type:"text-start",id:o}),N.enqueue({type:"text-delta",id:o,delta:z}),N.enqueue({type:"text-end",id:o})}k();let ii=this.serializeWarningsForMetadata(Y);N.enqueue({type:"finish",finishReason:Vi,usage:a,providerMetadata:{"claude-code":{sessionId:Fi.session_id,...Fi.total_cost_usd!==void 0&&{costUsd:Fi.total_cost_usd},...Fi.duration_ms!==void 0&&{durationMs:Fi.duration_ms},...Fi.modelUsage!==void 0&&{modelUsage:Fi.modelUsage},...Y.length>0&&{warnings:ii}}}}),N.close();return}else if(Fi.type==="system"&&Fi.subtype==="init")this.logMcpConnectionIssues(Fi.mcp_servers),this.setSessionId(Fi.session_id),this.logger.info(`[claude-code] Stream session initialized: ${Fi.session_id}`),N.enqueue({type:"response-metadata",id:Fi.session_id,timestamp:new Date,modelId:this.modelId})}k(),this.logger.debug("[claude-code] Stream finalized, closing stream"),N.close()}catch(Mi){if(U(),this.logger.debug(`[claude-code] Error during doStream: ${Mi instanceof Error?Mi.message:String(Mi)}`),IZu(Mi,z)){this.logger.warn(`[claude-code] Detected truncated stream response, returning ${z.length} characters of buffered text`);let Fi={type:"other",message:TZu};if(Y.push(Fi),M)N.enqueue({type:"text-end",id:M});else if(z&&!di){let Vi=In();N.enqueue({type:"text-start",id:Vi}),N.enqueue({type:"text-delta",id:Vi,delta:z}),N.enqueue({type:"text-end",id:Vi})}k();let Qi=this.serializeWarningsForMetadata(Y);N.enqueue({type:"finish",finishReason:{unified:"length",raw:"truncation"},usage:a,providerMetadata:{"claude-code":{...this.sessionId!==void 0&&{sessionId:this.sessionId},truncated:!0,...Y.length>0&&{warnings:Qi}}}}),N.close();return}k();let Pi;if(slt(Mi))Pi=t.abortSignal?.aborted?t.abortSignal.reason:Mi;else Pi=this.handleClaudeCodeError(Mi,u,d);N.enqueue({type:"error",error:Pi}),N.close()}finally{if(t.abortSignal&&$)t.abortSignal.removeEventListener("abort",$)}},cancel:()=>{if(t.abortSignal&&$)t.abortSignal.removeEventListener("abort",$)}}),request:{body:u}}}serializeWarningsForMetadata(t){return t.map((l)=>{let n={type:l.type};if("message"in l){let f=l.message;if(f!==void 0)n.message=String(f)}if(l.type==="unsupported"||l.type==="compatibility"){let f=l.feature;if(f!==void 0)n.feature=String(f);if("details"in l){let c=l.details;if(c!==void 0)n.details=String(c)}}return n})}},rY1;var WZu=w(()=>{nr();nr();olt();nr();lZ0=Hi.object({debug:Hi.any().refine((i)=>typeof i==="function",{message:"debug must be a function"}),info:Hi.any().refine((i)=>typeof i==="function",{message:"info must be a function"}),warn:Hi.any().refine((i)=>typeof i==="function",{message:"warn must be a function"}),error:Hi.any().refine((i)=>typeof i==="function",{message:"error must be a function"})}),nZ0=Hi.object({pathToClaudeCodeExecutable:Hi.string().optional(),customSystemPrompt:Hi.string().optional(),appendSystemPrompt:Hi.string().optional(),systemPrompt:Hi.union([Hi.string(),Hi.object({type:Hi.literal("preset"),preset:Hi.literal("claude_code"),append:Hi.string().optional()})]).optional(),maxTurns:Hi.number().int().min(1).max(100).optional(),maxThinkingTokens:Hi.number().int().positive().max(1e5).optional(),thinking:Hi.union([Hi.object({type:Hi.literal("adaptive")}).strict(),Hi.object({type:Hi.literal("enabled"),budgetTokens:Hi.number().int().positive().optional()}).strict(),Hi.object({type:Hi.literal("disabled")}).strict()]).optional(),effort:Hi.enum(["low","medium","high","max"]).optional(),promptSuggestions:Hi.boolean().optional(),cwd:Hi.string().refine((i)=>{if(typeof process>"u"||!process.versions?.node)return!0;return!i||uZ0(i)},{message:"Working directory must exist"}).optional(),executable:Hi.enum(["bun","deno","node"]).optional(),executableArgs:Hi.array(Hi.string()).optional(),permissionMode:Hi.enum(["default","acceptEdits","bypassPermissions","plan","delegate","dontAsk"]).optional(),permissionPromptToolName:Hi.string().optional(),continue:Hi.boolean().optional(),resume:Hi.string().optional(),sessionId:Hi.string().optional(),allowedTools:Hi.array(Hi.string()).optional(),disallowedTools:Hi.array(Hi.string()).optional(),betas:Hi.array(Hi.string()).optional(),allowDangerouslySkipPermissions:Hi.boolean().optional(),enableFileCheckpointing:Hi.boolean().optional(),maxBudgetUsd:Hi.number().min(0).optional(),plugins:Hi.array(Hi.object({type:Hi.string(),path:Hi.string()}).passthrough()).optional(),resumeSessionAt:Hi.string().optional(),sandbox:Hi.any().refine((i)=>i===void 0||typeof i==="object",{message:"sandbox must be an object"}).optional(),tools:Hi.union([Hi.array(Hi.string()),Hi.object({type:Hi.literal("preset"),preset:Hi.literal("claude_code")})]).optional(),settingSources:Hi.array(Hi.enum(["user","project","local"])).optional(),streamingInput:Hi.enum(["auto","always","off"]).optional(),canUseTool:Hi.any().refine((i)=>i===void 0||typeof i==="function",{message:"canUseTool must be a function"}).optional(),hooks:Hi.record(Hi.string(),Hi.array(Hi.object({matcher:Hi.string().optional(),hooks:Hi.array(Hi.any()).nonempty()}))).optional(),mcpServers:Hi.record(Hi.string(),Hi.union([Hi.object({type:Hi.literal("stdio").optional(),command:Hi.string(),args:Hi.array(Hi.string()).optional(),env:Hi.record(Hi.string(),Hi.string()).optional()}),Hi.object({type:Hi.literal("sse"),url:Hi.string(),headers:Hi.record(Hi.string(),Hi.string()).optional()}),Hi.object({type:Hi.literal("http"),url:Hi.string(),headers:Hi.record(Hi.string(),Hi.string()).optional()}),Hi.object({type:Hi.literal("sdk"),name:Hi.string(),instance:Hi.any()})])).optional(),verbose:Hi.boolean().optional(),debug:Hi.boolean().optional(),debugFile:Hi.string().optional(),logger:Hi.union([Hi.literal(!1),lZ0]).optional(),env:Hi.record(Hi.string(),Hi.string().optional()).optional(),additionalDirectories:Hi.array(Hi.string()).optional(),agents:Hi.record(Hi.string(),Hi.object({description:Hi.string(),tools:Hi.array(Hi.string()).optional(),disallowedTools:Hi.array(Hi.string()).optional(),prompt:Hi.string(),model:Hi.enum(["sonnet","opus","haiku","inherit"]).optional(),mcpServers:Hi.array(Hi.union([Hi.string(),Hi.record(Hi.string(),Hi.any())])).optional(),criticalSystemReminder_EXPERIMENTAL:Hi.string().optional()}).passthrough()).optional(),includePartialMessages:Hi.boolean().optional(),fallbackModel:Hi.string().optional(),forkSession:Hi.boolean().optional(),stderr:Hi.any().refine((i)=>i===void 0||typeof i==="function",{message:"stderr must be a function"}).optional(),strictMcpConfig:Hi.boolean().optional(),extraArgs:Hi.record(Hi.string(),Hi.union([Hi.string(),Hi.null()])).optional(),persistSession:Hi.boolean().optional(),spawnClaudeCodeProcess:Hi.any().refine((i)=>i===void 0||typeof i==="function",{message:"spawnClaudeCodeProcess must be a function"}).optional(),sdkOptions:Hi.record(Hi.string(),Hi.any()).optional(),maxToolResultSize:Hi.number().int().min(100).max(1e6).optional(),onQueryCreated:Hi.any().refine((i)=>i===void 0||typeof i==="function",{message:"onQueryCreated must be a function"}).optional(),onStreamStart:Hi.any().refine((i)=>i===void 0||typeof i==="function",{message:"onStreamStart must be a function"}).optional()}).strict();dZ0={debug:(i)=>console.debug(`[DEBUG] ${i}`),info:(i)=>console.info(`[INFO] ${i}`),warn:(i)=>console.warn(`[WARN] ${i}`),error:(i)=>console.error(`[ERROR] ${i}`)},_Z0={debug:()=>{},info:()=>{},warn:()=>{},error:()=>{}};EZ0=process.platform==="win32"?["APPDATA","HOMEDRIVE","HOMEPATH","LOCALAPPDATA","PATH","PATHEXT","SYSTEMDRIVE","SYSTEMROOT","TEMP","TMP","USERNAME","USERPROFILE","WINDIR"]:["HOME","LOGNAME","PATH","SHELL","TERM","USER","LANG","LC_ALL","TMPDIR"],vZ0=["CLAUDE_CONFIG_DIR"];wZ0=new Set(["model","abortController","prompt","outputFormat"]);DZ0={opus:"opus",sonnet:"sonnet",haiku:"haiku"};rY1=t0t()});function u0t(i,t){let u=["AskUserQuestion","ExitPlanMode","EnterWorktree","ExitWorktree","Config"],l={mcpServers:t?.mcpServers,cwd:t?.cwd??process.cwd()};if(t?.isPlanMode||t?.toolApprovalLevel==="readonly")l.permissionMode="bypassPermissions",l.disallowedTools=[...u,"Write","Edit","Bash","NotebookEdit"];else l.permissionMode="bypassPermissions",l.disallowedTools=[...u];if(t?.resume)l.resume=t.resume;return t0t({defaultSettings:l})(i)}function l0t(i){return XZ0[i]??i}var XZ0;var kZu=w(()=>{WZu();XZ0={"claude-code:opus":"opus","claude-code:opus-1m":"claude-opus-4.8-1m","claude-code:sonnet":"sonnet","claude-code:haiku":"haiku","claude-code:fable":"claude-fable-5"}});function u7i(i){return i==="default"?void 0:i}var jZu="default",SZu="/repo";function l7i(i){return r7(i,{ignoreIncompleteToolCalls:!0})}function n7i(i){for(let t=i.length-1;t>=0;t--){let u=i[t];if(!u||u.role!=="user")continue;if(typeof u.content==="string")return u.content;if(Array.isArray(u.content))return u.content.filter((n)=>typeof n==="object"&&n!==null&&n.type==="text").map((n)=>n.text).join(`
|
|
107944
|
+
`);try{return JSON.parse(l)}catch{return l}}return t}generateAllWarnings(t,u){let l=[],n=[];if(t.temperature!==void 0)n.push("temperature");if(t.topP!==void 0)n.push("topP");if(t.topK!==void 0)n.push("topK");if(t.presencePenalty!==void 0)n.push("presencePenalty");if(t.frequencyPenalty!==void 0)n.push("frequencyPenalty");if(t.stopSequences!==void 0&&t.stopSequences.length>0)n.push("stopSequences");if(t.seed!==void 0)n.push("seed");if(n.length>0)for(let c of n)l.push({type:"unsupported",feature:c,details:`Claude Code SDK does not support the ${c} parameter. It will be ignored.`});if(this.modelValidationWarning)l.push({type:"other",message:this.modelValidationWarning});if(this.settingsValidationWarnings.forEach((c)=>{l.push({type:"other",message:c})}),t.responseFormat?.type==="json"&&!t.responseFormat.schema)l.push({type:"unsupported",feature:"responseFormat",details:"JSON response format requires a schema for the Claude Code provider. The JSON responseFormat is ignored and the call is treated as plain text."});let f=cZ0(u);if(f)l.push({type:"other",message:f});return l}createQueryOptions(t,u,l,n,f){let c={model:this.getModel(),abortController:t,resume:f??this.settings.resume??this.sessionId,pathToClaudeCodeExecutable:this.settings.pathToClaudeCodeExecutable,maxTurns:this.settings.maxTurns,maxThinkingTokens:this.settings.maxThinkingTokens,thinking:this.settings.thinking,effort:this.settings.effort,promptSuggestions:this.settings.promptSuggestions,cwd:this.settings.cwd,executable:this.settings.executable,executableArgs:this.settings.executableArgs,permissionMode:this.settings.permissionMode,permissionPromptToolName:this.settings.permissionPromptToolName,continue:this.settings.continue,allowedTools:this.settings.allowedTools,disallowedTools:this.settings.disallowedTools,betas:this.settings.betas,allowDangerouslySkipPermissions:this.settings.allowDangerouslySkipPermissions,enableFileCheckpointing:this.settings.enableFileCheckpointing,maxBudgetUsd:this.settings.maxBudgetUsd,plugins:this.settings.plugins,resumeSessionAt:this.settings.resumeSessionAt,sandbox:this.settings.sandbox,tools:this.settings.tools,mcpServers:this.settings.mcpServers,canUseTool:this.settings.canUseTool};if(this.settings.systemPrompt!==void 0)c.systemPrompt=this.settings.systemPrompt;else if(this.settings.customSystemPrompt!==void 0)this.logger.warn("[claude-code] 'customSystemPrompt' is deprecated and will be removed in a future major release. Please use 'systemPrompt' instead (string or { type: 'preset', preset: 'claude_code', append? })."),c.systemPrompt=this.settings.customSystemPrompt;else if(this.settings.appendSystemPrompt!==void 0)this.logger.warn("[claude-code] 'appendSystemPrompt' is deprecated and will be removed in a future major release. Please use 'systemPrompt: { type: 'preset', preset: 'claude_code', append: <text> }' instead."),c.systemPrompt={type:"preset",preset:"claude_code",append:this.settings.appendSystemPrompt};if(this.settings.settingSources!==void 0)c.settingSources=this.settings.settingSources;if(this.settings.additionalDirectories!==void 0)c.additionalDirectories=this.settings.additionalDirectories;if(this.settings.agents!==void 0)c.agents=this.settings.agents;if(this.settings.includePartialMessages!==void 0)c.includePartialMessages=this.settings.includePartialMessages;if(this.settings.fallbackModel!==void 0)c.fallbackModel=this.settings.fallbackModel;if(this.settings.forkSession!==void 0)c.forkSession=this.settings.forkSession;if(this.settings.strictMcpConfig!==void 0)c.strictMcpConfig=this.settings.strictMcpConfig;if(this.settings.extraArgs!==void 0)c.extraArgs=this.settings.extraArgs;if(this.settings.persistSession!==void 0)c.persistSession=this.settings.persistSession;if(this.settings.spawnClaudeCodeProcess!==void 0)c.spawnClaudeCodeProcess=this.settings.spawnClaudeCodeProcess;if(this.settings.hooks)c.hooks=this.settings.hooks;if(this.settings.sessionId!==void 0)c.sessionId=this.settings.sessionId;if(this.settings.debug!==void 0)c.debug=this.settings.debug;if(this.settings.debugFile!==void 0)c.debugFile=this.settings.debugFile;let $=n?n:void 0,d=$&&typeof $.env==="object"&&$.env!==null?$.env:void 0,_=$&&typeof $.stderr==="function"?$.stderr:void 0;if($){let h={...$};delete h.env,delete h.stderr,Object.assign(c,h)}let g=_??this.settings.stderr;if(l||g)c.stderr=(h)=>{if(l)l(h);if(g)g(h)};if(this.settings.env!==void 0||d!==void 0){let h=rZ0();c.env={...h,...this.settings.env,...d}}if(u?.type==="json"&&u.schema)c.outputFormat={type:"json_schema",schema:u.schema};return c}handleClaudeCodeError(t,u,l){if(slt(t))throw t;let n=(r)=>{return typeof r==="object"&&r!==null&&"message"in r},f=(r)=>{return typeof r==="object"&&r!==null},c=["not logged in","authentication","unauthorized","auth failed","please login","claude login","claude auth login","/login","invalid api key"],$=n(t)&&t.message?t.message.toLowerCase():"",d=f(t)&&typeof t.exitCode==="number"?t.exitCode:void 0;if(c.some((r)=>$.includes(r))||d===401)return iZ0({message:n(t)&&t.message?t.message:"Authentication failed. Please ensure Claude Code SDK is properly authenticated."});let g=f(t)&&typeof t.code==="string"?t.code:"";if(g==="ETIMEDOUT"||$.includes("timeout"))return tZ0({message:n(t)&&t.message?t.message:"Request timed out",promptExcerpt:u.substring(0,200)});let h=g==="ENOENT"||g==="ECONNREFUSED"||g==="ETIMEDOUT"||g==="ECONNRESET",v=(f(t)&&typeof t.stderr==="string"?t.stderr:void 0)||l||void 0;return pI0({message:n(t)&&t.message?t.message:"Claude Code SDK error",code:g||void 0,exitCode:d,stderr:v,promptExcerpt:u.substring(0,200),isRetryable:h})}setSessionId(t){this.sessionId=t;let u=$Z0(t);if(u)this.logger.warn(`Claude Code Session: ${u}`)}logMcpConnectionIssues(t){if(!Array.isArray(t)||t.length===0)return;let u=t.filter((n)=>{let f=typeof n.status==="string"?n.status.toLowerCase():"";return f==="failed"||f==="needs-auth"});if(u.length===0)return;let l=u.map((n)=>{let f=typeof n.name==="string"&&n.name.trim().length>0?n.name:"<unknown>",c=typeof n.status==="string"&&n.status.trim().length>0?n.status:"unknown",$=typeof n.error==="string"&&n.error.trim().length>0?` (${n.error})`:"";return`${f}:${c}${$}`}).join(", ");this.logger.warn(`[claude-code] MCP servers not connected: ${l}`)}async doGenerate(t){this.logger.debug(`[claude-code] Starting doGenerate request with model: ${this.modelId}`),this.logger.debug(`[claude-code] Response format: ${t.responseFormat?.type??"none"}`);let{messagesPrompt:u,warnings:l,streamingContentParts:n,hasImageParts:f}=NZu(t.prompt);this.logger.debug(`[claude-code] Converted ${t.prompt.length} messages, hasImageParts: ${f}`);let c=new AbortController,$;if(t.abortSignal?.aborted)c.abort(t.abortSignal.reason);else if(t.abortSignal)$=()=>c.abort(t.abortSignal?.reason),t.abortSignal.addEventListener("abort",$,{once:!0});let d="",_=(z)=>{d+=z},g=this.getSanitizedSdkOptions(),h=this.getEffectiveResume(g),E=this.createQueryOptions(c,t.responseFormat,_,g,h),v="",r=[],x,O=BZu(),y={unified:"stop",raw:void 0},X=!1,N,U,J,F=this.generateAllWarnings(t,u);if(l)l.forEach((z)=>{F.push({type:"other",message:z})});let Q=this.settings.streamingInput??"auto",B=g?.canUseTool??this.settings.canUseTool,Y=g?.permissionPromptToolName??this.settings.permissionPromptToolName,H=Q==="always"||Q==="auto"&&!!B;if(!H&&f)F.push({type:"other",message:ZZu});let j=()=>{},k=new Promise((z)=>{j=()=>z(void 0)});try{if(B&&Y)throw Error("canUseTool requires streamingInput mode ('auto' or 'always') and cannot be used with permissionPromptToolName (SDK constraint). Set streamingInput: 'auto' (or 'always') and remove permissionPromptToolName, or remove canUseTool.");let z=H?PZu(u,k,h,n,this.settings.onStreamStart):u;this.logger.debug(`[claude-code] Executing query with streamingInput: ${H}, session: ${h??"new"}`);let M=FZu({prompt:z,options:E});this.settings.onQueryCreated?.(M);for await(let p of M)if(this.logger.debug(`[claude-code] Received message type: ${p.type}`),p.type==="assistant"){let{text:s,thinking:$i}=this.extractTextAndThinking(p.message.content);v+=s,r.push(...$i)}else if(p.type==="result"){if(j(),this.setSessionId(p.session_id),N=p.total_cost_usd,U=p.duration_ms,J=p.modelUsage,"is_error"in p&&p.is_error===!0){let $i="result"in p&&typeof p.result==="string"?p.result:"Claude Code CLI returned an error";throw Object.assign(Error($i),{exitCode:1})}if(p.subtype==="error_max_structured_output_retries")throw Error("Failed to generate valid structured output after maximum retries. The model could not produce a response matching the required schema.");if("structured_output"in p&&p.structured_output!==void 0)x=p.structured_output,this.logger.debug("[claude-code] Received structured output from SDK");if(this.logger.info(`[claude-code] Request completed - Session: ${p.session_id}, Cost: $${N?.toFixed(4)??"N/A"}, Duration: ${U??"N/A"}ms`),"usage"in p)O=QZu(p.usage),this.logger.debug(`[claude-code] Token usage - Input: ${O.inputTokens.total}, Output: ${O.outputTokens.total}`);let s="stop_reason"in p?p.stop_reason:void 0;y=JZu(p.subtype,s),this.logger.debug(`[claude-code] Finish reason: ${y.unified}`)}else if(p.type==="system"&&p.subtype==="init")this.logMcpConnectionIssues(p.mcp_servers),this.setSessionId(p.session_id),this.logger.info(`[claude-code] Session initialized: ${p.session_id}`)}catch(z){if(j(),this.logger.debug(`[claude-code] Error during doGenerate: ${z instanceof Error?z.message:String(z)}`),slt(z))throw this.logger.debug("[claude-code] Request aborted by user"),t.abortSignal?.aborted?t.abortSignal.reason:z;if(IZu(z,v))this.logger.warn(`[claude-code] Detected truncated response, returning ${v.length} characters of buffered text`),X=!0,y={unified:"length",raw:"truncation"},F.push({type:"other",message:TZu});else throw this.handleClaudeCodeError(z,u,d)}finally{if(t.abortSignal&&$)t.abortSignal.removeEventListener("abort",$)}let a=x!==void 0?JSON.stringify(x):v;return{content:[...r.map((z)=>({type:"reasoning",text:z})),{type:"text",text:a}],usage:O,finishReason:y,warnings:F,response:{id:In(),timestamp:new Date,modelId:this.modelId},request:{body:u},providerMetadata:{"claude-code":{...this.sessionId!==void 0&&{sessionId:this.sessionId},...N!==void 0&&{costUsd:N},...U!==void 0&&{durationMs:U},...J!==void 0&&{modelUsage:J},...X&&{truncated:!0},...r.length>0&&{thinkingTraces:r}}}}}async doStream(t){this.logger.debug(`[claude-code] Starting doStream request with model: ${this.modelId}`),this.logger.debug(`[claude-code] Response format: ${t.responseFormat?.type??"none"}`);let{messagesPrompt:u,warnings:l,streamingContentParts:n,hasImageParts:f}=NZu(t.prompt);this.logger.debug(`[claude-code] Converted ${t.prompt.length} messages for streaming, hasImageParts: ${f}`);let c=new AbortController,$;if(t.abortSignal?.aborted)c.abort(t.abortSignal.reason);else if(t.abortSignal)$=()=>c.abort(t.abortSignal?.reason),t.abortSignal.addEventListener("abort",$,{once:!0});let d="",_=(N)=>{d+=N},g=this.getSanitizedSdkOptions(),h=this.getEffectiveResume(g),E=this.createQueryOptions(c,t.responseFormat,_,g,h);if(E.includePartialMessages===void 0)E.includePartialMessages=!0;let v=this.generateAllWarnings(t,u);if(l)l.forEach((N)=>{v.push({type:"other",message:N})});let r=this.settings.streamingInput??"auto",x=g?.canUseTool??this.settings.canUseTool,O=g?.permissionPromptToolName??this.settings.permissionPromptToolName,y=r==="always"||r==="auto"&&!!x;if(!y&&f)v.push({type:"other",message:ZZu});return{stream:new ReadableStream({start:async(N)=>{let U=()=>{},J=new Promise((Mi)=>{U=()=>Mi(void 0)}),F=new Map,Q=new Map,B=()=>{if(Q.size===1)return Q.keys().next().value??null;return null},Y=[],H=(Mi,Pi)=>{if(!Pi.inputClosed&&Pi.inputStarted)N.enqueue({type:"tool-input-end",id:Mi}),Pi.inputClosed=!0},j=(Mi,Pi)=>{if(Pi.callEmitted)return;H(Mi,Pi),N.enqueue({type:"tool-call",toolCallId:Mi,toolName:Pi.name,input:Pi.lastSerializedInput??"",providerExecuted:!0,dynamic:!0,providerMetadata:{"claude-code":{rawInput:Pi.lastSerializedInput??"",parentToolCallId:Pi.parentToolCallId??null}}}),Pi.callEmitted=!0},k=()=>{for(let[Mi,Pi]of F)j(Mi,Pi);F.clear()},a=BZu(),z="",M,p=0,s=!1,$i=!1,C=new Map,fi=new Map,m=new Map,di=!1,Xi=new Map,xi;try{if(N.enqueue({type:"stream-start",warnings:v}),x&&O)throw Error("canUseTool requires streamingInput mode ('auto' or 'always') and cannot be used with permissionPromptToolName (SDK constraint). Set streamingInput: 'auto' (or 'always') and remove permissionPromptToolName, or remove canUseTool.");let Mi=y?PZu(u,J,h,n,this.settings.onStreamStart):u;this.logger.debug(`[claude-code] Starting stream query with streamingInput: ${y}, session: ${h??"new"}`);let Pi=FZu({prompt:Mi,options:E});this.settings.onQueryCreated?.(Pi);for await(let Fi of Pi){if(this.logger.debug(`[claude-code] Stream received message type: ${Fi.type}`),Fi.type==="stream_event"){let Vi=Fi.event;if(Vi.type==="content_block_delta"&&Vi.delta.type==="text_delta"&&"text"in Vi.delta&&Vi.delta.text){let ui=Vi.delta.text;if(s=!0,t.responseFormat?.type==="json"){z+=ui,p+=ui.length;continue}if(!M)M=In(),N.enqueue({type:"text-start",id:M});N.enqueue({type:"text-delta",id:M,delta:ui}),z+=ui,p+=ui.length}if(Vi.type==="content_block_delta"&&Vi.delta.type==="input_json_delta"&&"partial_json"in Vi.delta&&Vi.delta.partial_json){let ui=Vi.delta.partial_json;s=!0;let ci="index"in Vi?Vi.index:-1;if(t.responseFormat?.type==="json"){if(!M)M=In(),N.enqueue({type:"text-start",id:M});N.enqueue({type:"text-delta",id:M,delta:ui}),z+=ui,p+=ui.length,$i=!0;continue}let ii=C.get(ci);if(ii){let o=(fi.get(ii)??"")+ui;fi.set(ii,o),N.enqueue({type:"tool-input-delta",id:ii,delta:ui});continue}}if(Vi.type==="content_block_start"&&"content_block"in Vi&&Vi.content_block?.type==="tool_use"){let ui="index"in Vi?Vi.index:-1,ci=Vi.content_block,ii=typeof ci.id==="string"&&ci.id.length>0?ci.id:In(),o=typeof ci.name==="string"&&ci.name.length>0?ci.name:i.UNKNOWN_TOOL_NAME;if(s=!0,M){let wi=M;N.enqueue({type:"text-end",id:wi}),M=void 0;for(let[Et,nt]of m)if(nt===wi){m.delete(Et);break}}C.set(ui,ii),fi.set(ii,"");let zi=F.get(ii);if(!zi){let wi=o==="Task"?null:B();zi={name:o,inputStarted:!1,inputClosed:!1,callEmitted:!1,parentToolCallId:wi},F.set(ii,zi)}if(!zi.inputStarted){if(this.logger.debug(`[claude-code] Tool input started (content_block) - Tool: ${o}, ID: ${ii}, parent: ${zi.parentToolCallId}`),N.enqueue({type:"tool-input-start",id:ii,toolName:o,providerExecuted:!0,dynamic:!0,providerMetadata:{"claude-code":{parentToolCallId:zi.parentToolCallId??null}}}),o==="Task")Q.set(ii,{startTime:Date.now()});zi.inputStarted=!0}continue}if(Vi.type==="content_block_start"&&"content_block"in Vi&&Vi.content_block?.type==="text"){let ui="index"in Vi?Vi.index:-1;s=!0;let ci=In();m.set(ui,ci),M=ci,this.logger.debug(`[claude-code] Text content block started - Index: ${ui}, ID: ${ci}`),N.enqueue({type:"text-start",id:ci}),di=!0;continue}if(Vi.type==="content_block_start"&&"content_block"in Vi&&Vi.content_block?.type==="thinking"){let ui="index"in Vi?Vi.index:-1;if(s=!0,M){let ii=M;N.enqueue({type:"text-end",id:ii}),M=void 0;for(let[o,zi]of m)if(zi===ii){m.delete(o);break}}let ci=In();Xi.set(ui,ci),xi=ci,this.logger.debug(`[claude-code] Reasoning started (content_block) - ID: ${ci}`),N.enqueue({type:"reasoning-start",id:ci});continue}if(Vi.type==="content_block_delta"&&Vi.delta.type==="thinking_delta"&&"thinking"in Vi.delta&&Vi.delta.thinking){let ui="index"in Vi?Vi.index:-1,ci=Xi.get(ui)??xi;if(s=!0,ci)N.enqueue({type:"reasoning-delta",id:ci,delta:Vi.delta.thinking});continue}if(Vi.type==="content_block_stop"){let ui="index"in Vi?Vi.index:-1;s=!0;let ci=C.get(ui);if(ci){let zi=F.get(ci);if(zi&&!zi.inputClosed){let wi=fi.get(ci)??"";this.logger.debug(`[claude-code] Tool content block stopped - Index: ${ui}, Tool: ${zi.name}, ID: ${ci}`),N.enqueue({type:"tool-input-end",id:ci}),zi.inputClosed=!0;let Et=wi||zi.lastSerializedInput||"";if(zi.lastSerializedInput=Et,!zi.callEmitted)N.enqueue({type:"tool-call",toolCallId:ci,toolName:zi.name,input:Et,providerExecuted:!0,dynamic:!0,providerMetadata:{"claude-code":{rawInput:Et,parentToolCallId:zi.parentToolCallId??null}}}),zi.callEmitted=!0}C.delete(ui),fi.delete(ci);continue}let ii=m.get(ui);if(ii){if(this.logger.debug(`[claude-code] Text content block stopped - Index: ${ui}, ID: ${ii}`),N.enqueue({type:"text-end",id:ii}),m.delete(ui),M===ii)M=void 0;continue}let o=Xi.get(ui);if(o){if(this.logger.debug(`[claude-code] Reasoning ended (content_block) - ID: ${o}`),N.enqueue({type:"reasoning-end",id:o}),Xi.delete(ui),xi===o)xi=void 0;continue}}continue}if(Fi.type==="assistant"){if(!Fi.message?.content){this.logger.warn(`[claude-code] Unexpected assistant message structure: missing content field. Message type: ${Fi.type}. This may indicate an SDK protocol violation.`);continue}let Qi=Fi.parent_tool_use_id,Vi=Fi.message.content,ui=this.extractToolUses(Vi);if(M&&ui.length>0){let ii=M;N.enqueue({type:"text-end",id:ii}),M=void 0;for(let[o,zi]of m)if(zi===ii){m.delete(o);break}}for(let ii of ui){let o=ii.id,zi=F.get(o);if(!zi){let Et=ii.name==="Task"?null:Qi??ii.parentToolUseId??B();zi={name:ii.name,inputStarted:!1,inputClosed:!1,callEmitted:!1,parentToolCallId:Et},F.set(o,zi),this.logger.debug(`[claude-code] New tool use detected - Tool: ${ii.name}, ID: ${o}, SDK parent: ${Qi}, resolved parent: ${Et}`)}else if(!zi.parentToolCallId&&Qi&&ii.name!=="Task")zi.parentToolCallId=Qi,this.logger.debug(`[claude-code] Retroactive parent context - Tool: ${ii.name}, ID: ${o}, parent: ${Qi}`);if(zi.name=ii.name,!zi.inputStarted){if(this.logger.debug(`[claude-code] Tool input started - Tool: ${ii.name}, ID: ${o}`),N.enqueue({type:"tool-input-start",id:o,toolName:ii.name,providerExecuted:!0,dynamic:!0,providerMetadata:{"claude-code":{parentToolCallId:zi.parentToolCallId??null}}}),ii.name==="Task")Q.set(o,{startTime:Date.now()});zi.inputStarted=!0}let wi=this.serializeToolInput(ii.input);if(wi){let Et="";if(zi.lastSerializedInput===void 0){if(wi.length<=i.MAX_DELTA_CALC_SIZE)Et=wi}else if(wi.length<=i.MAX_DELTA_CALC_SIZE&&zi.lastSerializedInput.length<=i.MAX_DELTA_CALC_SIZE&&wi.startsWith(zi.lastSerializedInput))Et=wi.slice(zi.lastSerializedInput.length);else if(wi!==zi.lastSerializedInput)Et="";if(Et)N.enqueue({type:"tool-input-delta",id:o,delta:Et});zi.lastSerializedInput=wi}}let ci=Vi.map((ii)=>ii.type==="text"?ii.text:"").join("");if(ci){if(s){let ii=p,o=ci.length>ii?ci.slice(ii):"";if(z=ci,t.responseFormat?.type!=="json"&&o){if(!M)M=In(),N.enqueue({type:"text-start",id:M});N.enqueue({type:"text-delta",id:M,delta:o})}p=ci.length}else if(z+=ci,t.responseFormat?.type!=="json"){if(!M)M=In(),N.enqueue({type:"text-start",id:M});N.enqueue({type:"text-delta",id:M,delta:ci})}}}else if(Fi.type==="user"){if(!Fi.message?.content){this.logger.warn(`[claude-code] Unexpected user message structure: missing content field. Message type: ${Fi.type}. This may indicate an SDK protocol violation.`);continue}if(M){let ui=M;N.enqueue({type:"text-end",id:ui}),M=void 0;for(let[ci,ii]of m)if(ii===ui){m.delete(ci);break}z="",p=0,this.logger.debug("[claude-code] Closed text part due to user message")}let Qi=Fi.parent_tool_use_id,Vi=Fi.message.content;for(let ui of this.extractToolResults(Vi)){let ci=F.get(ui.id),ii=ui.name??ci?.name??i.UNKNOWN_TOOL_NAME;if(this.logger.debug(`[claude-code] Tool result received - Tool: ${ii}, ID: ${ui.id}`),!ci){this.logger.warn(`[claude-code] Received tool result for unknown tool ID: ${ui.id}`);let lt=ii==="Task"?null:Qi??B();if(ci={name:ii,inputStarted:!1,inputClosed:!1,callEmitted:!1,parentToolCallId:lt},F.set(ui.id,ci),!ci.inputStarted)N.enqueue({type:"tool-input-start",id:ui.id,toolName:ii,providerExecuted:!0,dynamic:!0,providerMetadata:{"claude-code":{parentToolCallId:ci.parentToolCallId??null}}}),ci.inputStarted=!0;if(!ci.inputClosed)N.enqueue({type:"tool-input-end",id:ui.id}),ci.inputClosed=!0}ci.name=ii;let o=this.normalizeToolResult(ui.result),zi=typeof ui.result==="string"?ui.result:(()=>{try{return JSON.stringify(ui.result)}catch{return String(ui.result)}})(),wi=this.settings.maxToolResultSize,Et=YZu(o,wi),nt=YZu(zi,wi),Bi=nt!==zi;if(j(ui.id,ci),ii==="Task")Q.delete(ui.id);N.enqueue({type:"tool-result",toolCallId:ui.id,toolName:ii,result:Et,isError:ui.isError,providerExecuted:!0,dynamic:!0,providerMetadata:{"claude-code":{rawResult:nt,rawResultTruncated:Bi,parentToolCallId:ci.parentToolCallId??null}}})}for(let ui of this.extractToolErrors(Vi)){let ci=F.get(ui.id),ii=ui.name??ci?.name??i.UNKNOWN_TOOL_NAME;if(this.logger.debug(`[claude-code] Tool error received - Tool: ${ii}, ID: ${ui.id}`),!ci){this.logger.warn(`[claude-code] Received tool error for unknown tool ID: ${ui.id}`);let zi=ii==="Task"?null:Qi??B();ci={name:ii,inputStarted:!0,inputClosed:!0,callEmitted:!1,parentToolCallId:zi},F.set(ui.id,ci)}if(j(ui.id,ci),ii==="Task")Q.delete(ui.id);let o=typeof ui.error==="string"?ui.error:typeof ui.error==="object"&&ui.error!==null?(()=>{try{return JSON.stringify(ui.error)}catch{return String(ui.error)}})():String(ui.error);N.enqueue({type:"tool-error",toolCallId:ui.id,toolName:ii,error:o,providerExecuted:!0,dynamic:!0,providerMetadata:{"claude-code":{rawError:o,parentToolCallId:ci.parentToolCallId??null}}})}}else if(Fi.type==="result"){if(U(),"is_error"in Fi&&Fi.is_error===!0){let o="result"in Fi&&typeof Fi.result==="string"?Fi.result:"Claude Code CLI returned an error";throw Object.assign(Error(o),{exitCode:1})}if(Fi.subtype==="error_max_structured_output_retries")throw Error("Failed to generate valid structured output after maximum retries. The model could not produce a response matching the required schema.");if(this.logger.info(`[claude-code] Stream completed - Session: ${Fi.session_id}, Cost: $${Fi.total_cost_usd?.toFixed(4)??"N/A"}, Duration: ${Fi.duration_ms??"N/A"}ms`),"usage"in Fi)a=QZu(Fi.usage),this.logger.debug(`[claude-code] Stream token usage - Input: ${a.inputTokens.total}, Output: ${a.outputTokens.total}`);let Qi="stop_reason"in Fi?Fi.stop_reason:void 0,Vi=JZu(Fi.subtype,Qi);this.logger.debug(`[claude-code] Stream finish reason: ${Vi.unified}`),this.setSessionId(Fi.session_id);let ui="structured_output"in Fi?Fi.structured_output:void 0;if($i&&t.responseFormat?.type==="json"&&s){if(M)N.enqueue({type:"text-end",id:M})}else if(ui!==void 0){let o=In(),zi=JSON.stringify(ui);N.enqueue({type:"text-start",id:o}),N.enqueue({type:"text-delta",id:o,delta:zi}),N.enqueue({type:"text-end",id:o})}else if(M)N.enqueue({type:"text-end",id:M});else if(z&&!di){let o=In();N.enqueue({type:"text-start",id:o}),N.enqueue({type:"text-delta",id:o,delta:z}),N.enqueue({type:"text-end",id:o})}k();let ii=this.serializeWarningsForMetadata(Y);N.enqueue({type:"finish",finishReason:Vi,usage:a,providerMetadata:{"claude-code":{sessionId:Fi.session_id,...Fi.total_cost_usd!==void 0&&{costUsd:Fi.total_cost_usd},...Fi.duration_ms!==void 0&&{durationMs:Fi.duration_ms},...Fi.modelUsage!==void 0&&{modelUsage:Fi.modelUsage},...Y.length>0&&{warnings:ii}}}}),N.close();return}else if(Fi.type==="system"&&Fi.subtype==="init")this.logMcpConnectionIssues(Fi.mcp_servers),this.setSessionId(Fi.session_id),this.logger.info(`[claude-code] Stream session initialized: ${Fi.session_id}`),N.enqueue({type:"response-metadata",id:Fi.session_id,timestamp:new Date,modelId:this.modelId})}k(),this.logger.debug("[claude-code] Stream finalized, closing stream"),N.close()}catch(Mi){if(U(),this.logger.debug(`[claude-code] Error during doStream: ${Mi instanceof Error?Mi.message:String(Mi)}`),IZu(Mi,z)){this.logger.warn(`[claude-code] Detected truncated stream response, returning ${z.length} characters of buffered text`);let Fi={type:"other",message:TZu};if(Y.push(Fi),M)N.enqueue({type:"text-end",id:M});else if(z&&!di){let Vi=In();N.enqueue({type:"text-start",id:Vi}),N.enqueue({type:"text-delta",id:Vi,delta:z}),N.enqueue({type:"text-end",id:Vi})}k();let Qi=this.serializeWarningsForMetadata(Y);N.enqueue({type:"finish",finishReason:{unified:"length",raw:"truncation"},usage:a,providerMetadata:{"claude-code":{...this.sessionId!==void 0&&{sessionId:this.sessionId},truncated:!0,...Y.length>0&&{warnings:Qi}}}}),N.close();return}k();let Pi;if(slt(Mi))Pi=t.abortSignal?.aborted?t.abortSignal.reason:Mi;else Pi=this.handleClaudeCodeError(Mi,u,d);N.enqueue({type:"error",error:Pi}),N.close()}finally{if(t.abortSignal&&$)t.abortSignal.removeEventListener("abort",$)}},cancel:()=>{if(t.abortSignal&&$)t.abortSignal.removeEventListener("abort",$)}}),request:{body:u}}}serializeWarningsForMetadata(t){return t.map((l)=>{let n={type:l.type};if("message"in l){let f=l.message;if(f!==void 0)n.message=String(f)}if(l.type==="unsupported"||l.type==="compatibility"){let f=l.feature;if(f!==void 0)n.feature=String(f);if("details"in l){let c=l.details;if(c!==void 0)n.details=String(c)}}return n})}},rY1;var WZu=w(()=>{nr();nr();olt();nr();lZ0=Hi.object({debug:Hi.any().refine((i)=>typeof i==="function",{message:"debug must be a function"}),info:Hi.any().refine((i)=>typeof i==="function",{message:"info must be a function"}),warn:Hi.any().refine((i)=>typeof i==="function",{message:"warn must be a function"}),error:Hi.any().refine((i)=>typeof i==="function",{message:"error must be a function"})}),nZ0=Hi.object({pathToClaudeCodeExecutable:Hi.string().optional(),customSystemPrompt:Hi.string().optional(),appendSystemPrompt:Hi.string().optional(),systemPrompt:Hi.union([Hi.string(),Hi.object({type:Hi.literal("preset"),preset:Hi.literal("claude_code"),append:Hi.string().optional()})]).optional(),maxTurns:Hi.number().int().min(1).max(100).optional(),maxThinkingTokens:Hi.number().int().positive().max(1e5).optional(),thinking:Hi.union([Hi.object({type:Hi.literal("adaptive")}).strict(),Hi.object({type:Hi.literal("enabled"),budgetTokens:Hi.number().int().positive().optional()}).strict(),Hi.object({type:Hi.literal("disabled")}).strict()]).optional(),effort:Hi.enum(["low","medium","high","max"]).optional(),promptSuggestions:Hi.boolean().optional(),cwd:Hi.string().refine((i)=>{if(typeof process>"u"||!process.versions?.node)return!0;return!i||uZ0(i)},{message:"Working directory must exist"}).optional(),executable:Hi.enum(["bun","deno","node"]).optional(),executableArgs:Hi.array(Hi.string()).optional(),permissionMode:Hi.enum(["default","acceptEdits","bypassPermissions","plan","delegate","dontAsk"]).optional(),permissionPromptToolName:Hi.string().optional(),continue:Hi.boolean().optional(),resume:Hi.string().optional(),sessionId:Hi.string().optional(),allowedTools:Hi.array(Hi.string()).optional(),disallowedTools:Hi.array(Hi.string()).optional(),betas:Hi.array(Hi.string()).optional(),allowDangerouslySkipPermissions:Hi.boolean().optional(),enableFileCheckpointing:Hi.boolean().optional(),maxBudgetUsd:Hi.number().min(0).optional(),plugins:Hi.array(Hi.object({type:Hi.string(),path:Hi.string()}).passthrough()).optional(),resumeSessionAt:Hi.string().optional(),sandbox:Hi.any().refine((i)=>i===void 0||typeof i==="object",{message:"sandbox must be an object"}).optional(),tools:Hi.union([Hi.array(Hi.string()),Hi.object({type:Hi.literal("preset"),preset:Hi.literal("claude_code")})]).optional(),settingSources:Hi.array(Hi.enum(["user","project","local"])).optional(),streamingInput:Hi.enum(["auto","always","off"]).optional(),canUseTool:Hi.any().refine((i)=>i===void 0||typeof i==="function",{message:"canUseTool must be a function"}).optional(),hooks:Hi.record(Hi.string(),Hi.array(Hi.object({matcher:Hi.string().optional(),hooks:Hi.array(Hi.any()).nonempty()}))).optional(),mcpServers:Hi.record(Hi.string(),Hi.union([Hi.object({type:Hi.literal("stdio").optional(),command:Hi.string(),args:Hi.array(Hi.string()).optional(),env:Hi.record(Hi.string(),Hi.string()).optional()}),Hi.object({type:Hi.literal("sse"),url:Hi.string(),headers:Hi.record(Hi.string(),Hi.string()).optional()}),Hi.object({type:Hi.literal("http"),url:Hi.string(),headers:Hi.record(Hi.string(),Hi.string()).optional()}),Hi.object({type:Hi.literal("sdk"),name:Hi.string(),instance:Hi.any()})])).optional(),verbose:Hi.boolean().optional(),debug:Hi.boolean().optional(),debugFile:Hi.string().optional(),logger:Hi.union([Hi.literal(!1),lZ0]).optional(),env:Hi.record(Hi.string(),Hi.string().optional()).optional(),additionalDirectories:Hi.array(Hi.string()).optional(),agents:Hi.record(Hi.string(),Hi.object({description:Hi.string(),tools:Hi.array(Hi.string()).optional(),disallowedTools:Hi.array(Hi.string()).optional(),prompt:Hi.string(),model:Hi.enum(["sonnet","opus","haiku","inherit"]).optional(),mcpServers:Hi.array(Hi.union([Hi.string(),Hi.record(Hi.string(),Hi.any())])).optional(),criticalSystemReminder_EXPERIMENTAL:Hi.string().optional()}).passthrough()).optional(),includePartialMessages:Hi.boolean().optional(),fallbackModel:Hi.string().optional(),forkSession:Hi.boolean().optional(),stderr:Hi.any().refine((i)=>i===void 0||typeof i==="function",{message:"stderr must be a function"}).optional(),strictMcpConfig:Hi.boolean().optional(),extraArgs:Hi.record(Hi.string(),Hi.union([Hi.string(),Hi.null()])).optional(),persistSession:Hi.boolean().optional(),spawnClaudeCodeProcess:Hi.any().refine((i)=>i===void 0||typeof i==="function",{message:"spawnClaudeCodeProcess must be a function"}).optional(),sdkOptions:Hi.record(Hi.string(),Hi.any()).optional(),maxToolResultSize:Hi.number().int().min(100).max(1e6).optional(),onQueryCreated:Hi.any().refine((i)=>i===void 0||typeof i==="function",{message:"onQueryCreated must be a function"}).optional(),onStreamStart:Hi.any().refine((i)=>i===void 0||typeof i==="function",{message:"onStreamStart must be a function"}).optional()}).strict();dZ0={debug:(i)=>console.debug(`[DEBUG] ${i}`),info:(i)=>console.info(`[INFO] ${i}`),warn:(i)=>console.warn(`[WARN] ${i}`),error:(i)=>console.error(`[ERROR] ${i}`)},_Z0={debug:()=>{},info:()=>{},warn:()=>{},error:()=>{}};EZ0=process.platform==="win32"?["APPDATA","HOMEDRIVE","HOMEPATH","LOCALAPPDATA","PATH","PATHEXT","SYSTEMDRIVE","SYSTEMROOT","TEMP","TMP","USERNAME","USERPROFILE","WINDIR"]:["HOME","LOGNAME","PATH","SHELL","TERM","USER","LANG","LC_ALL","TMPDIR"],vZ0=["CLAUDE_CONFIG_DIR"];wZ0=new Set(["model","abortController","prompt","outputFormat"]);DZ0={opus:"opus",sonnet:"sonnet",haiku:"haiku"};rY1=t0t()});function u0t(i,t){let u=["AskUserQuestion","ExitPlanMode","EnterWorktree","ExitWorktree","Config"],l={mcpServers:t?.mcpServers,cwd:t?.cwd??process.cwd()};if(t?.isPlanMode||t?.toolApprovalLevel==="readonly")l.permissionMode="bypassPermissions",l.disallowedTools=[...u,"Write","Edit","Bash","NotebookEdit"];else l.permissionMode="bypassPermissions",l.disallowedTools=[...u];if(t?.resume)l.resume=t.resume;return t0t({defaultSettings:l})(i)}function l0t(i){return XZ0[i]??i}var XZ0;var kZu=w(()=>{WZu();XZ0={"claude-code:opus":"opus","claude-code:opus-1m":"opus[1m]","claude-code:sonnet":"sonnet","claude-code:haiku":"haiku","claude-code:fable":"claude-fable-5"}});function u7i(i){return i==="default"?void 0:i}var jZu="default",SZu="/repo";function l7i(i){return r7(i,{ignoreIncompleteToolCalls:!0})}function n7i(i){for(let t=i.length-1;t>=0;t--){let u=i[t];if(!u||u.role!=="user")continue;if(typeof u.content==="string")return u.content;if(Array.isArray(u.content))return u.content.filter((n)=>typeof n==="object"&&n!==null&&n.type==="text").map((n)=>n.text).join(`
|
|
107945
107945
|
`);return""}return""}var n0t=w(()=>{cn()});function NZ0(i,t){if(!t)return;i.read+=t.inputTokenDetails?.cacheReadTokens??0,i.write+=t.inputTokenDetails?.cacheWriteTokens??0,i.input+=t.inputTokens??0}function az(){let i={inputTokens:0,outputTokens:0,totalTokens:0},t={read:0,write:0,input:0},u={inputTokens:0,outputTokens:0,totalTokens:0},l=0,n,f=0;function c($){return $?.openrouter?.usage?.cost??0}return{addStep($,d){if(d!==void 0)n=d;return f=$?.inputTokens??0,i={inputTokens:i.inputTokens+($?.inputTokens??0),outputTokens:i.outputTokens+($?.outputTokens??0),totalTokens:i.totalTokens+($?.totalTokens??0)},NZ0(t,$),l+=c(d),{...i}},addExternal($){u.inputTokens+=$.inputTokens??0,u.outputTokens+=$.outputTokens??0,u.totalTokens+=$.totalTokens??0},buildStepUsage(){return{inputTokens:i.inputTokens,outputTokens:i.outputTokens,totalTokens:i.totalTokens,contextTokens:f,cachedInputTokens:t.read,inputTokenDetails:{cacheReadTokens:t.read,cacheWriteTokens:t.write,noCacheTokens:i.inputTokens-t.read-t.write},...l>0&&{providerMetadata:{openrouter:{usage:{cost:l}}}}}},buildFinalUsage({totalUsage:$,providerKey:d,fallbackProviderMetadata:_}){let g=n??_,h=l>0&&g?{...g,openrouter:{...g.openrouter??{},usage:{...g.openrouter?.usage??{},cost:l}}}:g,E=$&&(($.inputTokens??0)>0||($.outputTokens??0)>0)?$:i.totalTokens>0?i:$,v=u.inputTokens>0||u.outputTokens>0||u.totalTokens>0;if(!E&&!v)return;let r=E?.inputTokens??0,x=E?.outputTokens??0,O=E?.totalTokens??0;return{inputTokens:r+u.inputTokens,outputTokens:x+u.outputTokens,reasoningTokens:$?.reasoningTokens??void 0,totalTokens:O+u.totalTokens,contextTokens:f,cachedInputTokens:t.read,inputTokenDetails:{cacheReadTokens:t.read,cacheWriteTokens:t.write,noCacheTokens:r-t.read-t.write},providerMetadata:xL(d&&h?{...h,[d]:{...h[d]??{},reasoning_details:void 0}}:h)}},totalTokens(){return{...i}},cacheTotals(){return{...t}},cost(){return l}}}var f7i=w(()=>{kl()});function c7i(i){let{input:t}=i,u=az(),l;return({part:f})=>{if(f.type==="start")return{agent:{id:t.agent.id??null},models:{credentialId:t.models.thinking.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(f.type==="finish-step"){let c=f.providerMetadata,$=c?.[i.providerMetadataKey],d=i.extractSessionId($);if(d)l=d;return u.addStep(f.usage,c),{usage:u.buildStepUsage()}}if(f.type==="finish"){let c=u.buildFinalUsage({totalUsage:f.totalUsage,providerKey:t.models.thinking.provider});return{...c&&{usage:c},...l&&{codingAgentSessionId:l,codingAgentProvider:i.providerName}}}return}}var f0t=w(()=>{f7i()});function $7i(i){return{type:"data-title-result",data:{title:i},transient:!0}}function zZu(i){return i.type==="data-title-input"}function bZu(i){return i.type==="data-title-result"}function F$(i){if(i instanceof Error)return i.message;if(typeof i==="object"&&i!==null)try{return JSON.stringify(i)}catch{return"[unserializable object]"}return String(i)}function KZu(i){let u=i.split(/\.\s+/).filter((n)=>!/https?:\/\//i.test(n)&&!/openrouter/i.test(n));if(u.length===0)return i;let l=u.join(". ").trim();return l.endsWith(".")?l:`${l}.`}function mz(i){if(i instanceof Error&&i.name==="AbortError")return"aborted";let t=(i instanceof Error?i.message:F$(i)).toLowerCase();if(/insufficient|no credits|out of credits|balance|payment|quota exceeded|key limit|402/i.test(t))return"insufficient_funds";if(/rate.?limit|too many requests|429/i.test(t))return"rate_limit";if(/timeout|timed out|deadline/i.test(t))return"timeout";if(/unauthor|forbidden|401|403|invalid.*(key|token)/i.test(t))return"auth";if(/tool|mcp|connection/i.test(t))return"tool_error";if(/model|provider|anthropic|openai|gemini|claude/i.test(t))return"model_error";return"unknown"}function rD(i){if(i instanceof Error){let t=i.statusCode,u=i.message.toLowerCase();if(t===402||u.includes("credit")||u.includes("insufficient funds")||u.includes("insufficient balance")||u.includes("billing")||u.includes("quota exceeded")||u.includes("key limit")||u.includes("payment required"))return`[CREDITS] ${KZu(i.message)}`;return KZu(i.message)}return F$(i)}function oz(i){return i.kind!=="subtask"&&i.currentThreadTitle===Uy}async function*d7i(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:$?$7i($):null})).catch(($)=>{return console.warn("[harness:title] title generation failed",F$($)),{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 _7i=()=>{};import{z as HZu}from"zod";function sz(i){let{abortSignal:t,model:u,userMessage:l}=i,n=new AbortController,f=()=>n.abort();t?.addEventListener("abort",f,{once:!0});let c,$=()=>{c=setTimeout(()=>{n.abort()},FZ0)},d=(()=>{let g=l.slice(0,10).trim();return RZu(g)?g:"New chat"})();return{promise:(async()=>{try{let h=(await cit({model:u,schema:JZ0,system:UZ0,messages:[{role:"user",content:l}],temperature:0.2,abortSignal:n.signal})).object.title.replace(/[.!?]$/,"").slice(0,60).trim();if(!RZu(h))return d;return h}catch(g){let h=g;if(h.name==="AbortError")return console.warn("[decopilot:title] Title generation aborted (timeout or parent abort)"),null;return console.error("[decopilot:title] \u274C Failed to generate title:",h.message),d}finally{clearTimeout(c),t?.removeEventListener("abort",f)}})(),finish:$}}var JZ0,UZ0=`Generate a concise, sentence-case title (3-7 words) that captures the main topic or goal of this session. Use sentence case: capitalize only the first word and proper nouns.
|
|
107946
107946
|
|
|
107947
107947
|
Good examples:
|