decocms 3.21.1 → 3.21.2
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-Di-V3umI.js → AlertCircle-GyiOEtAj.js} +1 -1
- package/dist/client/assets/{ArrowUpRight-C-T2gJLi.js → ArrowUpRight-DlUPHWCe.js} +1 -1
- package/dist/client/assets/{Check-BNom5dOo.js → Check-COv5M0lh.js} +1 -1
- package/dist/client/assets/{CheckCircle-DrDyiPu_.js → CheckCircle-ChsHFiFQ.js} +1 -1
- package/dist/client/assets/{ChevronDown-B21_IsL3.js → ChevronDown-BdEaOOXp.js} +1 -1
- package/dist/client/assets/{ChevronLeft-Ctye75GL.js → ChevronLeft-B8kAn6JD.js} +1 -1
- package/dist/client/assets/{ChevronRight-GBMV5yJO.js → ChevronRight-o4nZK4mj.js} +1 -1
- package/dist/client/assets/{ChevronUp-CGGIgndb.js → ChevronUp-y4zusQsp.js} +1 -1
- package/dist/client/assets/{Container-BowdgJ62.js → Container-CqLkbSjr.js} +1 -1
- package/dist/client/assets/{DotsVertical-C1UpLbMK.js → DotsVertical-W4F6Fa4e.js} +1 -1
- package/dist/client/assets/{Eye-CCL1jvke.js → Eye-f801Ko_Z.js} +1 -1
- package/dist/client/assets/{FilterLines-CLU1cvnm.js → FilterLines-CdYz7NJH.js} +1 -1
- package/dist/client/assets/{Globe01-Ca2CDUqL.js → Globe01-BfG_Acce.js} +1 -1
- package/dist/client/assets/{HardDrive-BRJbxTgf.js → HardDrive-D9UXv7dX.js} +1 -1
- package/dist/client/assets/{Key01-B0KHYY9A.js → Key01-B5dV9ECL.js} +1 -1
- package/dist/client/assets/{LayoutLeft-DQjoJnlv.js → LayoutLeft-B60p8Um4.js} +1 -1
- package/dist/client/assets/{LinkExternal01-BmWxPEFc.js → LinkExternal01-6cFTncDa.js} +1 -1
- package/dist/client/assets/{Monitor01-CCpw9YsU.js → Monitor01-Cc4WDpkR.js} +1 -1
- package/dist/client/assets/{Palette-DljqRkOL.js → Palette--vnxJff4.js} +1 -1
- package/dist/client/assets/{Play-BWZ7aOd4.js → Play-C7HtzLaD.js} +1 -1
- package/dist/client/assets/{Plus-BW-TIinL.js → Plus-LwySGDxB.js} +1 -1
- package/dist/client/assets/{RefreshCcw01-DoQ2Q5nQ.js → RefreshCcw01-CqQ0_ss_.js} +1 -1
- package/dist/client/assets/{SearchMd-BrE4Lp2d.js → SearchMd-MshnFe0l.js} +1 -1
- package/dist/client/assets/{Settings02-CnuG-oH5.js → Settings02-StPTnFMx.js} +1 -1
- package/dist/client/assets/{Shield01-BAt9OJkk.js → Shield01-T0cQG3gR.js} +1 -1
- package/dist/client/assets/{Star01-f8rMlJ5U.js → Star01-DBs_rPC7.js} +1 -1
- package/dist/client/assets/{Stars01-GUKoSsGN.js → Stars01-DHlDpyBS.js} +1 -1
- package/dist/client/assets/{Stars02-DApbfWB6.js → Stars02-B2A2nE0X.js} +1 -1
- package/dist/client/assets/{Sun-BupjfBtR.js → Sun-Deye0C8A.js} +1 -1
- package/dist/client/assets/{SwitchHorizontal01-CBvA0yYX.js → SwitchHorizontal01-CXh2-ORd.js} +1 -1
- package/dist/client/assets/{Tool01-BGucVzDk.js → Tool01-nSGgZsVX.js} +1 -1
- package/dist/client/assets/{Trash01-DOwZGPnm.js → Trash01-DZfkybKU.js} +1 -1
- package/dist/client/assets/{Upload01-ypYRbiXm.js → Upload01-rVUdt3iJ.js} +1 -1
- package/dist/client/assets/{User01-iRKM2KTq.js → User01-NlAzTddi.js} +1 -1
- package/dist/client/assets/{Users01-CQjxMYXj.js → Users01-DaydqXQC.js} +1 -1
- package/dist/client/assets/{Users03-Gpc8Fhl9.js → Users03-BRSJ5vR7.js} +1 -1
- package/dist/client/assets/{X-D2-T6h59.js → X-BN3arG6T.js} +1 -1
- package/dist/client/assets/{XCircle-BD7UyEOF.js → XCircle-xmKSYZKr.js} +1 -1
- package/dist/client/assets/{XClose-qC7X4hjJ.js → XClose-1qd9ainB.js} +1 -1
- package/dist/client/assets/{Zap-BxPmO3d7.js → Zap-CYUIBMS-.js} +1 -1
- package/dist/client/assets/{ZapSquare-DMyX_8RQ.js → ZapSquare-DsZrIKGl.js} +1 -1
- package/dist/client/assets/{ZoomOut-CrNlxKNu.js → ZoomOut-CVKSaoni.js} +1 -1
- package/dist/client/assets/{access-gate-BxaFZysE.js → access-gate-CweS51cI.js} +1 -1
- package/dist/client/assets/{accordion-DBdAn4Yd.js → accordion-Bl7Yi6C4.js} +1 -1
- package/dist/client/assets/{add-section-modal-Cp9ANpKI.js → add-section-modal-uFfZJI5Z.js} +1 -1
- package/dist/client/assets/{agent-capabilities-DZnx6uxN.js → agent-capabilities-D2XTyDA4.js} +1 -1
- package/dist/client/assets/{agent-icon-DwlI421o.js → agent-icon-K7-2Vanq.js} +1 -1
- package/dist/client/assets/{agent-icons-BpY_PoEJ.js → agent-icons-CeKYocvB.js} +1 -1
- package/dist/client/assets/{agents-list-7MDTRjEP.js → agents-list-SW53IbcR.js} +1 -1
- package/dist/client/assets/{ai-providers-DCVu5rlW.js → ai-providers-CRMVj1sW.js} +1 -1
- package/dist/client/assets/{alert-9Uyq7_Yx.js → alert-CyRuR44t.js} +1 -1
- package/dist/client/assets/{alert-dialog-Di87pvaw.js → alert-dialog-CJQaL6p3.js} +1 -1
- package/dist/client/assets/app-editor-DrKlBV5m.js +1 -0
- package/dist/client/assets/{auth-catchall-6sVJF5kF.js → auth-catchall-C0LPYH9l.js} +1 -1
- package/dist/client/assets/{auth-split-layout-BB9gPhYr.js → auth-split-layout-B0BicaKX.js} +1 -1
- package/dist/client/assets/{automation-list-row-CeYc1MAT.js → automation-list-row-DO-WP7Ai.js} +1 -1
- package/dist/client/assets/{automation-runs-bcYQjbYn.js → automation-runs-eraj829k.js} +1 -1
- package/dist/client/assets/{automations-OmisaDZA.js → automations-BVY79yPk.js} +1 -1
- package/dist/client/assets/{avatar-DpEGkmVF.js → avatar-BdxyYnNK.js} +1 -1
- package/dist/client/assets/{badge-CRBv_-v0.js → badge-CS2sZUxN.js} +1 -1
- package/dist/client/assets/{brand-context-BHMKdNZS.js → brand-context-CjWlWxwt.js} +1 -1
- package/dist/client/assets/{buckets-DdExZ8vz.js → buckets-BGHRc7Um.js} +1 -1
- package/dist/client/assets/{calendar-04oidYi0.js → calendar-DczL_N_A.js} +1 -1
- package/dist/client/assets/{capability-load-error-DQKXVSLb.js → capability-load-error-DNJuBq-F.js} +1 -1
- package/dist/client/assets/{card-DjCUI9mK.js → card-Br94nOKg.js} +1 -1
- package/dist/client/assets/{chat-context-DCjkCe-V.js → chat-context-DA35HLXS.js} +1 -1
- package/dist/client/assets/{checkbox-C0J6d59Z.js → checkbox-CqOCOG6Q.js} +1 -1
- package/dist/client/assets/{cli-auth-success-GR8P7inl.js → cli-auth-success-BVqxZix5.js} +1 -1
- package/dist/client/assets/{collection-detail-BLTHo14O.js → collection-detail-CynKMc1R.js} +1 -1
- package/dist/client/assets/{collection-display-button-vdVt1x-Y.js → collection-display-button-Cv9SNAbw.js} +1 -1
- package/dist/client/assets/{collection-search-C9e8ytlm.js → collection-search-ChKSSxmH.js} +1 -1
- package/dist/client/assets/{collection-table-wrapper-Ci3rF5jl.js → collection-table-wrapper-DGk9I-x6.js} +1 -1
- package/dist/client/assets/{collection-tabs-DcsnhXJW.js → collection-tabs-C5s6I9ON.js} +1 -1
- package/dist/client/assets/{collections-CFguVIuY.js → collections-Dk6dLEYA.js} +1 -1
- package/dist/client/assets/{command-CHlhuzJ_.js → command-BS0mokMv.js} +1 -1
- package/dist/client/assets/{connect-desktop-dialog-BSK9XSHH.js → connect-desktop-dialog-DpF_sI6h.js} +1 -1
- package/dist/client/assets/{connection-card-DO9d3YRC.js → connection-card-CFu6MAht.js} +1 -1
- package/dist/client/assets/{connection-detail-SHOkB3xQ.js → connection-detail-Bavv4Ydp.js} +1 -1
- package/dist/client/assets/{connection-form-helpers-C3edNmoP.js → connection-form-helpers-C3EFMKqC.js} +1 -1
- package/dist/client/assets/{connections-qKkqyM04.js → connections-BTIddADu.js} +1 -1
- package/dist/client/assets/{decopilot-sse-pool-BN3Fz4g5.js → decopilot-sse-pool-CZFgZ3nE.js} +1 -1
- package/dist/client/assets/{dialog-fdhgLhBf.js → dialog-CL1BseA9.js} +1 -1
- package/dist/client/assets/{domain-settings-DGN8lQXh.js → domain-settings-BnveJoGD.js} +1 -1
- package/dist/client/assets/{drawer-nppIIpnE.js → drawer-C9J2FQkF.js} +1 -1
- package/dist/client/assets/{dropdown-menu-X3z-hQ2M.js → dropdown-menu-DVje-EoW.js} +1 -1
- package/dist/client/assets/{dynamic-plugin-layout-DIHhoFb_.js → dynamic-plugin-layout-WHfaSv1Y.js} +1 -1
- package/dist/client/assets/{empty-state-Bq6HhNrq.js → empty-state-Bv1Z9MXv.js} +1 -1
- package/dist/client/assets/{empty-state-CQXcLTIH.js → empty-state-DpAFEVjw.js} +1 -1
- package/dist/client/assets/{extract-connection-data-D6z7oijb.js → extract-connection-data-CrV9u96Z.js} +1 -1
- package/dist/client/assets/{features-G1sVG-es.js → features-BEAGHXsv.js} +1 -1
- package/dist/client/assets/{file-explorer-DXIRGCbx.js → file-explorer-BwsVi5Sn.js} +1 -1
- package/dist/client/assets/{file-type-icon-B0iXSarG.js → file-type-icon-DVYPih9c.js} +1 -1
- package/dist/client/assets/{files-BBuiWUw0.js → files-10ME_3JG.js} +1 -1
- package/dist/client/assets/{form-l2US6lAY.js → form-4UXcNbUg.js} +1 -1
- package/dist/client/assets/{general-Che5cJxu.js → general-CWwyMwhB.js} +1 -1
- package/dist/client/assets/{generate-id-RYRfDJEO.js → generate-id-CVdT0fIQ.js} +1 -1
- package/dist/client/assets/{github-repo-picker-Bt39LytD.js → github-repo-picker-DD8wItvg.js} +1 -1
- package/dist/client/assets/{header-tab-button-D5FVHg7C.js → header-tab-button-DgECRSSy.js} +1 -1
- package/dist/client/assets/{hover-card-CrD42WSD.js → hover-card-BA4UtY_2.js} +1 -1
- package/dist/client/assets/{image-field-DmZve0TW.js → image-field-U7AFL_og.js} +1 -1
- package/dist/client/assets/{index-BmZqEyVY.js → index-4cfzvyaB.js} +1 -1
- package/dist/client/assets/{index-DwykyBcY.js → index-BBFvsGUO.js} +1 -1
- package/dist/client/assets/{index-Cm05rD4S.js → index-BK7hwLt0.js} +1 -1
- package/dist/client/assets/{index-DeDtw-b1.js → index-BKKTxT9B.js} +1 -1
- package/dist/client/assets/{index-BOMHJPUn.js → index-BQ89iNpK.js} +1 -1
- package/dist/client/assets/{index-D-CqRT4O.js → index-BQoodOft.js} +1 -1
- package/dist/client/assets/{index-BUe0rEg1.js → index-CAfQQdyv.js} +1 -1
- package/dist/client/assets/{index-BYXBOiLY.js → index-COXkGBKF.js} +1 -1
- package/dist/client/assets/{index-Bu_CNCUZ.js → index-CuZbHxuM.js} +1 -1
- package/dist/client/assets/{index-D6idVW2n.js → index-DC5ykVbq.js} +3 -3
- package/dist/client/assets/{index-DWvdSxPM.js → index-DD8pNQTz.js} +1 -1
- package/dist/client/assets/{index-Doc3AWor.js → index-DYMkejmQ.js} +1 -1
- package/dist/client/assets/{index-CwDq8vs6.js → index-DinTmsRi.js} +4 -4
- package/dist/client/assets/{index-Cw0f814h.js → index-DsK69xEH.js} +1 -1
- package/dist/client/assets/{index-C5tgiUEv.js → index-_z9AfqD0.js} +1 -1
- package/dist/client/assets/{index-redirect-BqoA6RVo.js → index-redirect-BYXba1LQ.js} +1 -1
- package/dist/client/assets/{infiniteQueryObserver-VyVFnsqY.js → infiniteQueryObserver-BFBhoWbn.js} +1 -1
- package/dist/client/assets/{input-ChQ639sE.js → input-CmdQXS7m.js} +1 -1
- package/dist/client/assets/{integration-icon-b2Rlb-Sb.js → integration-icon-DubrPseB.js} +1 -1
- package/dist/client/assets/{label-rvaNBf1n.js → label-BeKFq4Z_.js} +1 -1
- package/dist/client/assets/{layout-DmZgycrJ.js → layout-8ZlqaeBv.js} +1 -1
- package/dist/client/assets/{login-DFkji89I.js → login-Xkc831VM.js} +1 -1
- package/dist/client/assets/{members-Bm9cIL-1.js → members-8soouHex.js} +1 -1
- package/dist/client/assets/{monaco-editor-B2W8v7r6.js → monaco-editor-B-nbM8Ue.js} +1 -1
- package/dist/client/assets/{monitoring-stats-row-DdYAhJ5V.js → monitoring-stats-row-pLl4ltj8.js} +1 -1
- package/dist/client/assets/{oauth-callback-ai-provider-CKDYX_RF.js → oauth-callback-ai-provider-DgTV983m.js} +1 -1
- package/dist/client/assets/{oauth-callback-C9xoFbd7.js → oauth-callback-m-HDC-da.js} +1 -1
- package/dist/client/assets/{onboarding-CzS2cVPB.js → onboarding-CJD62kRn.js} +1 -1
- package/dist/client/assets/{org-install-BaqJ9XwL.js → org-install-rd8eLbo7.js} +1 -1
- package/dist/client/assets/{org-layout-S59SENMd.js → org-layout-DeIWaN_p.js} +1 -1
- package/dist/client/assets/{org-plugin-layout-CqsI9Bed.js → org-plugin-layout-LtGGGoMB.js} +1 -1
- package/dist/client/assets/{page-seo-form-EuEyknEc.js → page-seo-form-BkwbUlnR.js} +1 -1
- package/dist/client/assets/page-seo-sheet-j1sLOOHG.js +1 -0
- package/dist/client/assets/{pair-Bt2SA9Qp.js → pair-DE0D0Wie.js} +1 -1
- package/dist/client/assets/{plugin-empty-state-DSQFLxwe.js → plugin-empty-state-CyD0C1Bf.js} +1 -1
- package/dist/client/assets/{plugin-header-DMRgUsQl.js → plugin-header-W1I2_V_j.js} +1 -1
- package/dist/client/assets/{plugin-layout-TXD29kdN.js → plugin-layout-B4yAz-3-.js} +1 -1
- package/dist/client/assets/{popover-Rt3fpbO3.js → popover-Dp3QS8N6.js} +1 -1
- package/dist/client/assets/{post-editor-Divs3dwJ.js → post-editor-DR83fZSH.js} +1 -1
- package/dist/client/assets/{primitives-XpLpFjB8.js → primitives-iMjdQad6.js} +1 -1
- package/dist/client/assets/{profile-CHjI4ygW.js → profile-eau3k4Po.js} +1 -1
- package/dist/client/assets/{project-app-view-DHaXTs5T.js → project-app-view-CRvOiu2b.js} +1 -1
- package/dist/client/assets/record-editor-B-ZWb752.js +1 -0
- package/dist/client/assets/registry-B8CD131L.js +2 -0
- package/dist/client/assets/{registry-layout-C7DwnK5e.js → registry-layout-BmSXJxoZ.js} +1 -1
- package/dist/client/assets/{require-capability-B4l3wBea.js → require-capability-bCqnmJfy.js} +1 -1
- package/dist/client/assets/{required-auth-layout-CfzfhqYN.js → required-auth-layout-D7jgv78c.js} +1 -1
- package/dist/client/assets/{reset-password-BZ5l6irC.js → reset-password-D28fxRQV.js} +1 -1
- package/dist/client/assets/{resizable-CA7mW65R.js → resizable-Cd48I16F.js} +1 -1
- package/dist/client/assets/{roles-6C_YTupk.js → roles-gGKNgLrN.js} +1 -1
- package/dist/client/assets/save-referenced-block-BX18LfXg.js +1 -0
- package/dist/client/assets/{save-status-KIo_EK3u.js → save-status-B5l1r2yt.js} +1 -1
- package/dist/client/assets/{schema-form-0q7FWymW.js → schema-form-DoBelrVG.js} +1 -1
- package/dist/client/assets/{scroll-area-S5xU4-3T.js → scroll-area-P07qVNiz.js} +1 -1
- package/dist/client/assets/{search-input-bjsIuW3e.js → search-input-BC00SFbU.js} +1 -1
- package/dist/client/assets/{secrets-oJC26E57.js → secrets-C14kJLTf.js} +1 -1
- package/dist/client/assets/{sections-editor-BJkalQrn.js → sections-editor-BXkiyOGf.js} +1 -1
- package/dist/client/assets/{select-model-BfrrA0rU.js → select-model-D5qi4yVr.js} +1 -1
- package/dist/client/assets/{select-D-XBS65u.js → select-n15H_mpn.js} +1 -1
- package/dist/client/assets/{seo-editor-DQqMio2v.js → seo-editor-D-F0mviD.js} +1 -1
- package/dist/client/assets/{settings-layout-mMyfgzSB.js → settings-layout-pqyPhxP-.js} +1 -1
- package/dist/client/assets/{settings-section-DOJ8w47S.js → settings-section-Tanq8jyR.js} +1 -1
- package/dist/client/assets/{sheet-BdF_K2dB.js → sheet-D4rfwRUO.js} +1 -1
- package/dist/client/assets/{shell-controls-BDGVwZm0.js → shell-controls-mDSWSVmf.js} +1 -1
- package/dist/client/assets/{shell-layout-652GQgyj.js → shell-layout-BwqpmibN.js} +1 -1
- package/dist/client/assets/{shell-route-loading-DWdfT9on.js → shell-route-loading-BcS4ogVM.js} +1 -1
- package/dist/client/assets/{sidebar-faIWOpU7.js → sidebar-BROkYxtG.js} +1 -1
- package/dist/client/assets/{skeleton-CrWdoD9s.js → skeleton-DWOWMile.js} +1 -1
- package/dist/client/assets/{sortable.esm-DaLbqREa.js → sortable.esm-QhdKIQMp.js} +1 -1
- package/dist/client/assets/{spinner-Ba6MQmcV.js → spinner-CtVtBijD.js} +1 -1
- package/dist/client/assets/{sso-BtgDVu5D.js → sso-iKeLtq8V.js} +1 -1
- package/dist/client/assets/{store-De54zr2A.js → store-D_M-OYO8.js} +1 -1
- package/dist/client/assets/store-registry-DrWHKBnR.js +2 -0
- package/dist/client/assets/{switch-Djy20jDK.js → switch-QoxQ4Dp8.js} +1 -1
- package/dist/client/assets/{tab-id-DKNFO22m.js → tab-id-CNkO3hVN.js} +1 -1
- package/dist/client/assets/{table-Cy6WVAuu.js → table-BsrEIQdy.js} +1 -1
- package/dist/client/assets/{tabs-DI8qnoXf.js → tabs-kJyWL6V1.js} +1 -1
- package/dist/client/assets/{task-status-qWqGiUC6.js → task-status-j0388nBE.js} +1 -1
- package/dist/client/assets/{textarea-FwxJbyLj.js → textarea-IFOxZRFP.js} +1 -1
- package/dist/client/assets/{toggle-group-DLxiboB7.js → toggle-group--w1kOZWe.js} +1 -1
- package/dist/client/assets/{toolbar-CMgp-9VS.js → toolbar-BBxreRsk.js} +1 -1
- package/dist/client/assets/{tools-list-C_1FwcZ2.js → tools-list-DJXjW2l9.js} +1 -1
- package/dist/client/assets/{tooltip-BwAS3LmD.js → tooltip-D7cmoHaE.js} +1 -1
- package/dist/client/assets/{types-DpLGHfBV.js → types-BmGja53h.js} +1 -1
- package/dist/client/assets/{use-ai-providers-D_70D2KF.js → use-ai-providers--CmHEwAc.js} +1 -1
- package/dist/client/assets/{use-automations-Bm_GDiS0.js → use-automations-BuOkYpgz.js} +1 -1
- package/dist/client/assets/{use-capability-BTcvzwTt.js → use-capability-CxysHd_P.js} +1 -1
- package/dist/client/assets/{use-collections-B1ftgmsC.js → use-collections-BOfrARHt.js} +1 -1
- package/dist/client/assets/{use-connection-f6XTkb53.js → use-connection-n0123jPK.js} +1 -1
- package/dist/client/assets/{use-copy-N9ijygLT.js → use-copy-B0vwFN4z.js} +1 -1
- package/dist/client/assets/{use-create-virtual-mcp-DmpPKskK.js → use-create-virtual-mcp-D-CNGeek.js} +1 -1
- package/dist/client/assets/{use-debounced-autosave-ChNaRP5S.js → use-debounced-autosave-D2Tk122B.js} +1 -1
- package/dist/client/assets/{use-delete-connection-BwrylBgL.js → use-delete-connection-C4A0wxBY.js} +1 -1
- package/dist/client/assets/{use-file-configs-Iu1ZGjUX.js → use-file-configs-CyyHbhaI.js} +1 -1
- package/dist/client/assets/{use-infinite-scroll-D4clS4iX.js → use-infinite-scroll-CdSYgiPG.js} +1 -1
- package/dist/client/assets/{use-list-state-BDMoY8GZ.js → use-list-state-eagOZcTM.js} +1 -1
- package/dist/client/assets/{use-mcp-client-Dutz6IKN.js → use-mcp-client-DyuH8eE6.js} +1 -1
- package/dist/client/assets/{use-mcp-prompts-DkrNbGZU.js → use-mcp-prompts-Bwn_S6iL.js} +1 -1
- package/dist/client/assets/{use-mcp-tools-Dk5wX_Q8.js → use-mcp-tools-DC6ktQK8.js} +1 -1
- package/dist/client/assets/{use-members-73l6yAni.js → use-members-BzP8QLPf.js} +1 -1
- package/dist/client/assets/{use-navigate-to-agent-QL4LtHJV.js → use-navigate-to-agent-B09CyGqp.js} +1 -1
- package/dist/client/assets/{use-org-auth-client-CAvzSle5.js → use-org-auth-client-DHC5iDX4.js} +1 -1
- package/dist/client/assets/{use-org-sso-C7T4CeXS.js → use-org-sso-qSbMZg_F.js} +1 -1
- package/dist/client/assets/{use-organization-roles-CzFjc3MW.js → use-organization-roles-SRzyOUnT.js} +1 -1
- package/dist/client/assets/{use-organization-settings-t-yCPHX9.js → use-organization-settings-B4dvDS7R.js} +1 -1
- package/dist/client/assets/{use-registry-connections-CZ4ax3LX.js → use-registry-connections-Bds9Ypgx.js} +1 -1
- package/dist/client/assets/{use-secrets-Dor672jC.js → use-secrets-CnpydoP_.js} +1 -1
- package/dist/client/assets/{use-status-sounds-J2lGW499.js → use-status-sounds-CK6N7rMv.js} +1 -1
- package/dist/client/assets/{use-view-mode-EyZ_szat.js → use-view-mode-RCfU_Ov_.js} +1 -1
- package/dist/client/assets/{use-virtual-mcp-BW5609Gn.js → use-virtual-mcp-Dey3T-Qn.js} +1 -1
- package/dist/client/assets/useInfiniteQuery-DMrx4YUI.js +1 -0
- package/dist/client/assets/{useRouterState-vIbEdlN4.js → useRouterState-Suijaaey.js} +1 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-BEThz4gg.js +1 -0
- package/dist/client/assets/{user-CkUI6Rtf.js → user-CZuNKuKE.js} +1 -1
- package/dist/client/assets/{view-mode-toggle-B0zSaOcF.js → view-mode-toggle-DB4LJ27d.js} +1 -1
- package/dist/client/assets/{workflow-CRNBsay_.js → workflow-DdHZO7TR.js} +1 -1
- package/dist/client/assets/workflow-detail-DelfG9w7.js +1 -0
- package/dist/client/index.html +1 -1
- package/dist/server/cli.js +15 -8
- package/dist/server/server.js +4 -4
- package/package.json +1 -1
- package/dist/client/assets/app-editor-BTJdqNFO.js +0 -1
- package/dist/client/assets/page-seo-sheet-IswGsmwS.js +0 -1
- package/dist/client/assets/record-editor-BVLo6guS.js +0 -1
- package/dist/client/assets/registry-BYK9j9rQ.js +0 -2
- package/dist/client/assets/save-referenced-block-DgXF7K9R.js +0 -1
- package/dist/client/assets/store-registry-BBl5JK8R.js +0 -2
- package/dist/client/assets/useInfiniteQuery-C4mxsTCl.js +0 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-B8vt_oPd.js +0 -1
- package/dist/client/assets/workflow-detail-DSkokxeb.js +0 -1
package/dist/server/server.js
CHANGED
|
@@ -2241,12 +2241,12 @@ ${F}`,matchCount:W.length,totalLines:J.length}}return{result:K,matchCount:W.leng
|
|
|
2241
2241
|
--- truncated (${X.length-Q-Y} more lines) ---
|
|
2242
2242
|
`,H=[...W,F,...K].join(`
|
|
2243
2243
|
`);if(sm1(H)<=am1)return H;Q=Math.floor(Q*0.6)}let J=am1*4;return $.slice(0,J)+`
|
|
2244
|
-
--- truncated ---`}function sm1($){if(!$)return 0;let Z=$.match(V84)?.length??0,G=$.length-Z;return Math.ceil(G/k84)+Math.ceil(Z*1.5)}function a9($){let Z=typeof $==="string"?$:JSON.stringify($);return sm1(Z)}var IO=32000,am1=400,k84=4,V84;var cW=D(()=>{r4();V84=/[\u3000-\u303f\u3040-\u309f\u30a0-\u30ff\u4e00-\u9fff\u3400-\u4dbf\uf900-\ufaff]/g});function dH1($,Z,G){if(G?.isPlanMode){if(Z===!0)return!1;return"hard-block"}if($==="auto")return!1;return Z!==!0}function C84($){let Z=$.replace(/[^a-zA-Z0-9_.\-:]/g,"_");if(Z.length===0||!/^[a-zA-Z_]/.test(Z))Z=`_${Z}`;if(Z.length>128)Z=Z.slice(0,128);return Z}function KY$($,Z){let X=`${Z.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"")}_`;return $.startsWith(X)?$.slice(X.length):$}function em1($){return C84($).replace(/-/g,"_")}function _84($){let Z=new Map;for(let Q of $){let Y=typeof Q._meta?.gatewayClientId==="string"?Q._meta.gatewayClientId:"",J=Y?KY$(Q.name,Y):Q.name,W=em1(J);Z.set(W,(Z.get(W)??0)+1)}let G=new Set,X=new Map;for(let Q of $){let Y=typeof Q._meta?.gatewayClientId==="string"?Q._meta.gatewayClientId:"",J=Y?KY$(Q.name,Y):Q.name,W=em1(J),U=(Z.get(W)??0)<=1?W:em1(`${Y}_${J}`);if(G.has(U)){let F=U.slice(0,124),H=2;while(G.has(`${F}_${H}`))H++;U=`${F}_${H}`}G.add(U),X.set(Q.name,U)}return X}function b84($){let G=$._meta?.ui?.visibility;if(G==null)return!0;if(typeof G==="string")return G==="model";if(Array.isArray(G))return G.includes("model");return!0}async function lf($,Z,G,X="auto",Q={}){let Y=!Q.disableOutputTruncation,
|
|
2244
|
+
--- truncated ---`}function sm1($){if(!$)return 0;let Z=$.match(V84)?.length??0,G=$.length-Z;return Math.ceil(G/k84)+Math.ceil(Z*1.5)}function a9($){let Z=typeof $==="string"?$:JSON.stringify($);return sm1(Z)}var IO=32000,am1=400,k84=4,V84;var cW=D(()=>{r4();V84=/[\u3000-\u303f\u3040-\u309f\u30a0-\u30ff\u4e00-\u9fff\u3400-\u4dbf\uf900-\ufaff]/g});function dH1($,Z,G){if(G?.isPlanMode){if(Z===!0)return!1;return"hard-block"}if($==="auto")return!1;return Z!==!0}function C84($){let Z=$.replace(/[^a-zA-Z0-9_.\-:]/g,"_");if(Z.length===0||!/^[a-zA-Z_]/.test(Z))Z=`_${Z}`;if(Z.length>128)Z=Z.slice(0,128);return Z}function KY$($,Z){let X=`${Z.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"")}_`;return $.startsWith(X)?$.slice(X.length):$}function em1($){return C84($).replace(/-/g,"_")}function _84($){let Z=new Map;for(let Q of $){let Y=typeof Q._meta?.gatewayClientId==="string"?Q._meta.gatewayClientId:"",J=Y?KY$(Q.name,Y):Q.name,W=em1(J);Z.set(W,(Z.get(W)??0)+1)}let G=new Set,X=new Map;for(let Q of $){let Y=typeof Q._meta?.gatewayClientId==="string"?Q._meta.gatewayClientId:"",J=Y?KY$(Q.name,Y):Q.name,W=em1(J),U=(Z.get(W)??0)<=1?W:em1(`${Y}_${J}`);if(G.has(U)){let F=U.slice(0,124),H=2;while(G.has(`${F}_${H}`))H++;U=`${F}_${H}`}G.add(U),X.set(Q.name,U)}return X}function b84($){let G=$._meta?.ui?.visibility;if(G==null)return!0;if(typeof G==="string")return G==="model";if(Array.isArray(G))return G.includes("model");return!0}async function lf($,Z,G,X="auto",Q={}){let Y=!Q.disableOutputTruncation,J=await $.listTools(),W=J.tools.filter((F)=>(Q.isToolVisible??b84)(F)),K=_84(W),U=W.map((F)=>{let{name:H,title:N,description:O,inputSchema:B,annotations:L,_meta:w}=F,z=K.get(H);return[z,F8({title:N??H,description:O,inputSchema:HQ(B),outputSchema:void 0,needsApproval:dH1(X,L?.readOnlyHint,{isPlanMode:Q.isPlanMode})!==!1,execute:async(j,P)=>{let R=performance.now(),A=!1,M;try{let S=Q.resolveArgs?await Q.resolveArgs(j):j,k=await $.callTool({name:F.name,arguments:S},M3,{signal:P.abortSignal,timeout:Q.timeoutMs??S84});A=Boolean(k?.isError);try{M=Buffer.byteLength(JSON.stringify(k),"utf8")}catch{M=void 0}return k}catch(S){throw A=!0,S}finally{let S=performance.now()-R;if(G)G.write({type:"data-tool-metadata",id:P.toolCallId,data:{_meta:w,annotations:L,latencyMs:S,outputBytes:M}});Q.onToolCalled?.({toolName:F.name,toolSafeName:z,annotations:L,latencyMs:S,isError:A})}},toModelOutput:async({output:j,toolCallId:P})=>{if(Y){let A=a9(j.structuredContent??j.content);if(A>IO){let M=j.structuredContent??j.content,S;try{S=JSON.stringify(M,null,2)}catch{S=String(M)}Z.set(P,S);let k=yG(S);return{type:"text",value:`Tool call ${P} output is too long to display (${A} tokens), use the read_tool_output tool.
|
|
2245
2245
|
|
|
2246
2246
|
Preview:
|
|
2247
2247
|
${k}`}}}if(j.isError)return{type:"error-text",value:j.content.map((M)=>M.type==="text"?M.text:null).filter(Boolean).join(`
|
|
2248
2248
|
`)||"Unknown error"};if("structuredContent"in j)return{type:"json",value:j.structuredContent};return{type:"text",value:j.content.map((A)=>{if(A.type==="text")return A.text;return JSON.stringify(A)}).join(`
|
|
2249
|
-
`)}}})]});return{tools:Object.fromEntries(U),nameMap:K}}var S84=120000;var Si=D(()=>{Q9();r4();cW()});function mH1($){let Z=$.get("meshContext").organization;if(!Z)throw Error("Organization context is required");if((Z.slug??Z.id)!==$.req.param("org"))throw Error("Organization mismatch");return Z}async function $i1($){let Z=$.get("meshContext"),G=Z.auth?.user?.id;if(!G)throw new t$(401,{message:"Unauthorized"});let X=mH1($),Q=$.req.param("threadId");if(!Q)throw new t$(400,{message:"Missing thread ID"});if(/[.*>\s]/.test(Q))throw new t$(400,{message:"Invalid thread ID"});let Y=await Z.storage.threads.get(Q);if(!Y)throw new t$(404,{message:"Thread not found"});return{ctx:Z,organization:X,thread:Y,taskId:Q,userId:G}}async function UY$($){let Z=await $i1($);if(Z.thread.created_by!==Z.userId)throw new t$(403,{message:"Not authorized"});return Z}var FY$=D(()=>{OJ()});import{z as e5}from"zod";var v84,f84,HY$;var NY$=D(()=>{hU();NL();v84=e5.looseObject({id:e5.string().optional(),role:e5.enum(["user","assistant","system"]),parts:e5.array(e5.record(e5.string(),e5.unknown())),metadata:e5.unknown().optional()}),f84=e5.object({windowSize:e5.number().default(AU),thread_id:e5.string()}),HY$=e5.object({messages:e5.array(v84).min(1).refine(($)=>$.filter((Z)=>Z.role!=="system").length===1,{message:"Expected exactly one non-system message"}),memory:f84.optional(),tier:Jo0.optional(),agent:e5.object({id:e5.string()}).loose(),stream:e5.boolean().optional(),temperature:e5.number().default(0.5),thread_id:e5.string().optional(),branch:e5.string().nullish(),toolApprovalLevel:e5.enum(["auto","readonly"]).default("auto"),sandboxProviderKind:e5.enum(["agent-sandbox","user-desktop","cluster"]).transform(($)=>$==="cluster"?"agent-sandbox":$).nullish().describe("Pinned on first message. Subsequent messages ignore this field (the thread row carries the pinned value)."),harnessId:e5.enum(["claude-code","codex","decopilot"]).nullish().describe("Pinned on first message. Subsequent messages ignore this field."),mode:e5.enum(["default","plan","web-search","gen-image"]).default("default")}).strict()});function iH1($){OY$.set($.id,$)}function BY$($){return OY$.get($)}var OY$;var Zi1=D(()=>{OY$=new Map});function Gi1($,Z,G){let X=BY$($);if(!X)throw Error(`No harness factory registered for id "${$}". Available ids must be registered in apps/mesh/src/harnesses/index.ts.`);return X.create(G).stream(Z)}var Xi1=D(()=>{Zi1()});class Qi1{ctx;harnessId;constructor($){this.ctx=$.ctx,this.harnessId=$.harnessId}dispatch($){return Gi1(this.harnessId,$,this.ctx)}}var DY$=D(()=>{Xi1()});function LY$($){return`link-dispatch/${$}`}function EY$($){return $>786432}async function wY$($){let Z=await crypto.subtle.digest("SHA-256",$);return Array.from(new Uint8Array(Z)).map((G)=>G.toString(16).padStart(2,"0")).join("")}var lW=786432;function df($,Z){return JO($,Z)}var nH1=D(()=>{IQ()});function sY$($){if($==null)return"unknown error";if(typeof $==="string")return $;if($ instanceof Error)return $.message;return JSON.stringify($)}var pY$="vercel.ai.error",x84,zY$,jY$,u6,tY$="AI_APICallError",oY$,y84,PY$,AY$,Ci,rY$="AI_EmptyResponseBodyError",aY$,g84,RY$,IY$,s89,eY$="AI_InvalidArgumentError",$J$,h84,TY$,qY$,pH1,ZJ$="AI_InvalidPromptError",GJ$,u84,MY$,kY$,e89,XJ$="AI_InvalidResponseDataError",QJ$,c84,VY$,SY$,$49,YJ$="AI_JSONParseError",JJ$,l84,CY$,_Y$,Z49,WJ$="AI_LoadAPIKeyError",KJ$,d84,bY$,vY$,tH1,UJ$="AI_LoadSettingError",FJ$,m84,fY$,xY$,G49,HJ$="AI_NoContentGeneratedError",NJ$,i84,yY$,gY$,X49,OJ$="AI_NoSuchModelError",BJ$,n84,hY$,uY$,uY,DJ$="AI_TooManyEmbeddingValuesForCallError",LJ$,p84,cY$,lY$,Q49,EJ$="AI_TypeValidationError",wJ$,t84,dY$,mY$,_i,zJ$="AI_UnsupportedFunctionalityError",jJ$,o84,iY$,nY$,PJ$;var dW=D(()=>{x84=Symbol.for(pY$),u6=class $ extends(jY$=Error,zY$=x84,jY$){constructor({name:Z,message:G,cause:X}){super(G);this[zY$]=!0,this.name=Z,this.cause=X}static isInstance(Z){return $.hasMarker(Z,pY$)}static hasMarker(Z,G){let X=Symbol.for(G);return Z!=null&&typeof Z==="object"&&X in Z&&typeof Z[X]==="boolean"&&Z[X]===!0}},oY$=`vercel.ai.error.${tY$}`,y84=Symbol.for(oY$),Ci=class extends(AY$=u6,PY$=y84,AY$){constructor({message:$,url:Z,requestBodyValues:G,statusCode:X,responseHeaders:Q,responseBody:Y,cause:J,isRetryable:W=X!=null&&(X===408||X===409||X===429||X>=500),data:K}){super({name:tY$,message:$,cause:J});this[PY$]=!0,this.url=Z,this.requestBodyValues=G,this.statusCode=X,this.responseHeaders=Q,this.responseBody=Y,this.isRetryable=W,this.data=K}static isInstance($){return u6.hasMarker($,oY$)}},aY$=`vercel.ai.error.${rY$}`,g84=Symbol.for(aY$),s89=class extends(IY$=u6,RY$=g84,IY$){constructor({message:$="Empty response body"}={}){super({name:rY$,message:$});this[RY$]=!0}static isInstance($){return u6.hasMarker($,aY$)}};$J$=`vercel.ai.error.${eY$}`,h84=Symbol.for($J$),pH1=class extends(qY$=u6,TY$=h84,qY$){constructor({message:$,cause:Z,argument:G}){super({name:eY$,message:$,cause:Z});this[TY$]=!0,this.argument=G}static isInstance($){return u6.hasMarker($,$J$)}},GJ$=`vercel.ai.error.${ZJ$}`,u84=Symbol.for(GJ$),e89=class extends(kY$=u6,MY$=u84,kY$){constructor({prompt:$,message:Z,cause:G}){super({name:ZJ$,message:`Invalid prompt: ${Z}`,cause:G});this[MY$]=!0,this.prompt=$}static isInstance($){return u6.hasMarker($,GJ$)}},QJ$=`vercel.ai.error.${XJ$}`,c84=Symbol.for(QJ$),$49=class extends(SY$=u6,VY$=c84,SY$){constructor({data:$,message:Z=`Invalid response data: ${JSON.stringify($)}.`}){super({name:XJ$,message:Z});this[VY$]=!0,this.data=$}static isInstance($){return u6.hasMarker($,QJ$)}},JJ$=`vercel.ai.error.${YJ$}`,l84=Symbol.for(JJ$),Z49=class extends(_Y$=u6,CY$=l84,_Y$){constructor({text:$,cause:Z}){super({name:YJ$,message:`JSON parsing failed: Text: ${$}.
|
|
2249
|
+
`)}}})]});return{tools:Object.fromEntries(U),nameMap:K,rawTools:J.tools}}var S84=120000;var Si=D(()=>{Q9();r4();cW()});function mH1($){let Z=$.get("meshContext").organization;if(!Z)throw Error("Organization context is required");if((Z.slug??Z.id)!==$.req.param("org"))throw Error("Organization mismatch");return Z}async function $i1($){let Z=$.get("meshContext"),G=Z.auth?.user?.id;if(!G)throw new t$(401,{message:"Unauthorized"});let X=mH1($),Q=$.req.param("threadId");if(!Q)throw new t$(400,{message:"Missing thread ID"});if(/[.*>\s]/.test(Q))throw new t$(400,{message:"Invalid thread ID"});let Y=await Z.storage.threads.get(Q);if(!Y)throw new t$(404,{message:"Thread not found"});return{ctx:Z,organization:X,thread:Y,taskId:Q,userId:G}}async function UY$($){let Z=await $i1($);if(Z.thread.created_by!==Z.userId)throw new t$(403,{message:"Not authorized"});return Z}var FY$=D(()=>{OJ()});import{z as e5}from"zod";var v84,f84,HY$;var NY$=D(()=>{hU();NL();v84=e5.looseObject({id:e5.string().optional(),role:e5.enum(["user","assistant","system"]),parts:e5.array(e5.record(e5.string(),e5.unknown())),metadata:e5.unknown().optional()}),f84=e5.object({windowSize:e5.number().default(AU),thread_id:e5.string()}),HY$=e5.object({messages:e5.array(v84).min(1).refine(($)=>$.filter((Z)=>Z.role!=="system").length===1,{message:"Expected exactly one non-system message"}),memory:f84.optional(),tier:Jo0.optional(),agent:e5.object({id:e5.string()}).loose(),stream:e5.boolean().optional(),temperature:e5.number().default(0.5),thread_id:e5.string().optional(),branch:e5.string().nullish(),toolApprovalLevel:e5.enum(["auto","readonly"]).default("auto"),sandboxProviderKind:e5.enum(["agent-sandbox","user-desktop","cluster"]).transform(($)=>$==="cluster"?"agent-sandbox":$).nullish().describe("Pinned on first message. Subsequent messages ignore this field (the thread row carries the pinned value)."),harnessId:e5.enum(["claude-code","codex","decopilot"]).nullish().describe("Pinned on first message. Subsequent messages ignore this field."),mode:e5.enum(["default","plan","web-search","gen-image"]).default("default")}).strict()});function iH1($){OY$.set($.id,$)}function BY$($){return OY$.get($)}var OY$;var Zi1=D(()=>{OY$=new Map});function Gi1($,Z,G){let X=BY$($);if(!X)throw Error(`No harness factory registered for id "${$}". Available ids must be registered in apps/mesh/src/harnesses/index.ts.`);return X.create(G).stream(Z)}var Xi1=D(()=>{Zi1()});class Qi1{ctx;harnessId;constructor($){this.ctx=$.ctx,this.harnessId=$.harnessId}dispatch($){return Gi1(this.harnessId,$,this.ctx)}}var DY$=D(()=>{Xi1()});function LY$($){return`link-dispatch/${$}`}function EY$($){return $>786432}async function wY$($){let Z=await crypto.subtle.digest("SHA-256",$);return Array.from(new Uint8Array(Z)).map((G)=>G.toString(16).padStart(2,"0")).join("")}var lW=786432;function df($,Z){return JO($,Z)}var nH1=D(()=>{IQ()});function sY$($){if($==null)return"unknown error";if(typeof $==="string")return $;if($ instanceof Error)return $.message;return JSON.stringify($)}var pY$="vercel.ai.error",x84,zY$,jY$,u6,tY$="AI_APICallError",oY$,y84,PY$,AY$,Ci,rY$="AI_EmptyResponseBodyError",aY$,g84,RY$,IY$,s89,eY$="AI_InvalidArgumentError",$J$,h84,TY$,qY$,pH1,ZJ$="AI_InvalidPromptError",GJ$,u84,MY$,kY$,e89,XJ$="AI_InvalidResponseDataError",QJ$,c84,VY$,SY$,$49,YJ$="AI_JSONParseError",JJ$,l84,CY$,_Y$,Z49,WJ$="AI_LoadAPIKeyError",KJ$,d84,bY$,vY$,tH1,UJ$="AI_LoadSettingError",FJ$,m84,fY$,xY$,G49,HJ$="AI_NoContentGeneratedError",NJ$,i84,yY$,gY$,X49,OJ$="AI_NoSuchModelError",BJ$,n84,hY$,uY$,uY,DJ$="AI_TooManyEmbeddingValuesForCallError",LJ$,p84,cY$,lY$,Q49,EJ$="AI_TypeValidationError",wJ$,t84,dY$,mY$,_i,zJ$="AI_UnsupportedFunctionalityError",jJ$,o84,iY$,nY$,PJ$;var dW=D(()=>{x84=Symbol.for(pY$),u6=class $ extends(jY$=Error,zY$=x84,jY$){constructor({name:Z,message:G,cause:X}){super(G);this[zY$]=!0,this.name=Z,this.cause=X}static isInstance(Z){return $.hasMarker(Z,pY$)}static hasMarker(Z,G){let X=Symbol.for(G);return Z!=null&&typeof Z==="object"&&X in Z&&typeof Z[X]==="boolean"&&Z[X]===!0}},oY$=`vercel.ai.error.${tY$}`,y84=Symbol.for(oY$),Ci=class extends(AY$=u6,PY$=y84,AY$){constructor({message:$,url:Z,requestBodyValues:G,statusCode:X,responseHeaders:Q,responseBody:Y,cause:J,isRetryable:W=X!=null&&(X===408||X===409||X===429||X>=500),data:K}){super({name:tY$,message:$,cause:J});this[PY$]=!0,this.url=Z,this.requestBodyValues=G,this.statusCode=X,this.responseHeaders=Q,this.responseBody=Y,this.isRetryable=W,this.data=K}static isInstance($){return u6.hasMarker($,oY$)}},aY$=`vercel.ai.error.${rY$}`,g84=Symbol.for(aY$),s89=class extends(IY$=u6,RY$=g84,IY$){constructor({message:$="Empty response body"}={}){super({name:rY$,message:$});this[RY$]=!0}static isInstance($){return u6.hasMarker($,aY$)}};$J$=`vercel.ai.error.${eY$}`,h84=Symbol.for($J$),pH1=class extends(qY$=u6,TY$=h84,qY$){constructor({message:$,cause:Z,argument:G}){super({name:eY$,message:$,cause:Z});this[TY$]=!0,this.argument=G}static isInstance($){return u6.hasMarker($,$J$)}},GJ$=`vercel.ai.error.${ZJ$}`,u84=Symbol.for(GJ$),e89=class extends(kY$=u6,MY$=u84,kY$){constructor({prompt:$,message:Z,cause:G}){super({name:ZJ$,message:`Invalid prompt: ${Z}`,cause:G});this[MY$]=!0,this.prompt=$}static isInstance($){return u6.hasMarker($,GJ$)}},QJ$=`vercel.ai.error.${XJ$}`,c84=Symbol.for(QJ$),$49=class extends(SY$=u6,VY$=c84,SY$){constructor({data:$,message:Z=`Invalid response data: ${JSON.stringify($)}.`}){super({name:XJ$,message:Z});this[VY$]=!0,this.data=$}static isInstance($){return u6.hasMarker($,QJ$)}},JJ$=`vercel.ai.error.${YJ$}`,l84=Symbol.for(JJ$),Z49=class extends(_Y$=u6,CY$=l84,_Y$){constructor({text:$,cause:Z}){super({name:YJ$,message:`JSON parsing failed: Text: ${$}.
|
|
2250
2250
|
Error message: ${sY$(Z)}`,cause:Z});this[CY$]=!0,this.text=$}static isInstance($){return u6.hasMarker($,JJ$)}},KJ$=`vercel.ai.error.${WJ$}`,d84=Symbol.for(KJ$),tH1=class extends(vY$=u6,bY$=d84,vY$){constructor({message:$}){super({name:WJ$,message:$});this[bY$]=!0}static isInstance($){return u6.hasMarker($,KJ$)}},FJ$=`vercel.ai.error.${UJ$}`,m84=Symbol.for(FJ$),G49=class extends(xY$=u6,fY$=m84,xY$){constructor({message:$}){super({name:UJ$,message:$});this[fY$]=!0}static isInstance($){return u6.hasMarker($,FJ$)}},NJ$=`vercel.ai.error.${HJ$}`,i84=Symbol.for(NJ$),X49=class extends(gY$=u6,yY$=i84,gY$){constructor({message:$="No content generated."}={}){super({name:HJ$,message:$});this[yY$]=!0}static isInstance($){return u6.hasMarker($,NJ$)}},BJ$=`vercel.ai.error.${OJ$}`,n84=Symbol.for(BJ$),uY=class extends(uY$=u6,hY$=n84,uY$){constructor({errorName:$=OJ$,modelId:Z,modelType:G,message:X=`No such ${G}: ${Z}`}){super({name:$,message:X});this[hY$]=!0,this.modelId=Z,this.modelType=G}static isInstance($){return u6.hasMarker($,BJ$)}},LJ$=`vercel.ai.error.${DJ$}`,p84=Symbol.for(LJ$),Q49=class extends(lY$=u6,cY$=p84,lY$){constructor($){super({name:DJ$,message:`Too many values for a single embedding call. The ${$.provider} model "${$.modelId}" can only embed up to ${$.maxEmbeddingsPerCall} values per call, but ${$.values.length} values were provided.`});this[cY$]=!0,this.provider=$.provider,this.modelId=$.modelId,this.maxEmbeddingsPerCall=$.maxEmbeddingsPerCall,this.values=$.values}static isInstance($){return u6.hasMarker($,LJ$)}},wJ$=`vercel.ai.error.${EJ$}`,t84=Symbol.for(wJ$),_i=class $ extends(mY$=u6,dY$=t84,mY$){constructor({value:Z,cause:G,context:X}){let Q="Type validation failed";if(X==null?void 0:X.field)Q+=` for ${X.field}`;if((X==null?void 0:X.entityName)||(X==null?void 0:X.entityId)){Q+=" (";let Y=[];if(X.entityName)Y.push(X.entityName);if(X.entityId)Y.push(`id: "${X.entityId}"`);Q+=Y.join(", "),Q+=")"}super({name:EJ$,message:`${Q}: Value: ${JSON.stringify(Z)}.
|
|
2251
2251
|
Error message: ${sY$(G)}`,cause:G});this[dY$]=!0,this.value=Z,this.context=X}static isInstance(Z){return u6.hasMarker(Z,wJ$)}static wrap({value:Z,cause:G,context:X}){var Q,Y,J;if($.isInstance(G)&&G.value===Z&&((Q=G.context)==null?void 0:Q.field)===(X==null?void 0:X.field)&&((Y=G.context)==null?void 0:Y.entityName)===(X==null?void 0:X.entityName)&&((J=G.context)==null?void 0:J.entityId)===(X==null?void 0:X.entityId))return G;return new $({value:Z,cause:G,context:X})}},jJ$=`vercel.ai.error.${zJ$}`,o84=Symbol.for(jJ$),PJ$=class extends(nY$=u6,iY$=o84,nY$){constructor({functionality:$,message:Z=`'${$}' functionality not supported.`}){super({name:zJ$,message:Z});this[iY$]=!0,this.functionality=$}static isInstance($){return u6.hasMarker($,jJ$)}}});import*as rH1 from"zod/v4";import{ZodFirstPartyTypeKind as A4}from"zod/v3";import{ZodFirstPartyTypeKind as $44}from"zod/v3";import{ZodFirstPartyTypeKind as oH1}from"zod/v3";function Ui1($){if($.type==="object"||Array.isArray($.type)&&$.type.includes("object")){$.additionalProperties=!1;let{properties:G}=$;if(G!=null)for(let X of Object.keys(G))G[X]=yV(G[X])}if($.items!=null)$.items=Array.isArray($.items)?$.items.map(yV):yV($.items);if($.anyOf!=null)$.anyOf=$.anyOf.map(yV);if($.allOf!=null)$.allOf=$.allOf.map(yV);if($.oneOf!=null)$.oneOf=$.oneOf.map(yV);let{definitions:Z}=$;if(Z!=null)for(let G of Object.keys(Z))Z[G]=yV(Z[G]);return $}function yV($){if(typeof $==="boolean")return $;return Ui1($)}function VQ(){return{}}function Z44($,Z){var G,X,Q;let Y={type:"array"};if(((G=$.type)==null?void 0:G._def)&&((Q=(X=$.type)==null?void 0:X._def)==null?void 0:Q.typeName)!==$44.ZodAny)Y.items=c6($.type._def,{...Z,currentPath:[...Z.currentPath,"items"]});if($.minLength)Y.minItems=$.minLength.value;if($.maxLength)Y.maxItems=$.maxLength.value;if($.exactLength)Y.minItems=$.exactLength.value,Y.maxItems=$.exactLength.value;return Y}function G44($){let Z={type:"integer",format:"int64"};if(!$.checks)return Z;for(let G of $.checks)switch(G.kind){case"min":if(G.inclusive)Z.minimum=G.value;else Z.exclusiveMinimum=G.value;break;case"max":if(G.inclusive)Z.maximum=G.value;else Z.exclusiveMaximum=G.value;break;case"multipleOf":Z.multipleOf=G.value;break}return Z}function X44(){return{type:"boolean"}}function kJ$($,Z){return c6($.type._def,Z)}function VJ$($,Z,G){let X=G!=null?G:Z.dateStrategy;if(Array.isArray(X))return{anyOf:X.map((Q,Y)=>VJ$($,Z,Q))};switch(X){case"string":case"format:date-time":return{type:"string",format:"date-time"};case"format:date":return{type:"string",format:"date"};case"integer":return Y44($)}}function J44($,Z){return{...c6($.innerType._def,Z),default:$.defaultValue()}}function W44($,Z){return Z.effectStrategy==="input"?c6($.schema._def,Z):VQ()}function K44($){return{type:"string",enum:Array.from($.values)}}function F44($,Z){let G=[c6($.left._def,{...Z,currentPath:[...Z.currentPath,"allOf","0"]}),c6($.right._def,{...Z,currentPath:[...Z.currentPath,"allOf","1"]})].filter((Q)=>!!Q),X=[];return G.forEach((Q)=>{if(U44(Q))X.push(...Q.allOf);else{let Y=Q;if("additionalProperties"in Q&&Q.additionalProperties===!1){let{additionalProperties:J,...W}=Q;Y=W}X.push(Y)}}),X.length?{allOf:X}:void 0}function H44($){let Z=typeof $.value;if(Z!=="bigint"&&Z!=="number"&&Z!=="boolean"&&Z!=="string")return{type:Array.isArray($.value)?"array":"object"};return{type:Z==="bigint"?"integer":Z,const:$.value}}function SJ$($,Z){let G={type:"string"};if($.checks)for(let X of $.checks)switch(X.kind){case"min":G.minLength=typeof G.minLength==="number"?Math.max(G.minLength,X.value):X.value;break;case"max":G.maxLength=typeof G.maxLength==="number"?Math.min(G.maxLength,X.value):X.value;break;case"email":switch(Z.emailStrategy){case"format:email":U3(G,"email",X.message,Z);break;case"format:idn-email":U3(G,"idn-email",X.message,Z);break;case"pattern:zod":gG(G,K3.email,X.message,Z);break}break;case"url":U3(G,"uri",X.message,Z);break;case"uuid":U3(G,"uuid",X.message,Z);break;case"regex":gG(G,X.regex,X.message,Z);break;case"cuid":gG(G,K3.cuid,X.message,Z);break;case"cuid2":gG(G,K3.cuid2,X.message,Z);break;case"startsWith":gG(G,RegExp(`^${Ji1(X.value,Z)}`),X.message,Z);break;case"endsWith":gG(G,RegExp(`${Ji1(X.value,Z)}$`),X.message,Z);break;case"datetime":U3(G,"date-time",X.message,Z);break;case"date":U3(G,"date",X.message,Z);break;case"time":U3(G,"time",X.message,Z);break;case"duration":U3(G,"duration",X.message,Z);break;case"length":G.minLength=typeof G.minLength==="number"?Math.max(G.minLength,X.value):X.value,G.maxLength=typeof G.maxLength==="number"?Math.min(G.maxLength,X.value):X.value;break;case"includes":{gG(G,RegExp(Ji1(X.value,Z)),X.message,Z);break}case"ip":{if(X.version!=="v6")U3(G,"ipv4",X.message,Z);if(X.version!=="v4")U3(G,"ipv6",X.message,Z);break}case"base64url":gG(G,K3.base64url,X.message,Z);break;case"jwt":gG(G,K3.jwt,X.message,Z);break;case"cidr":{if(X.version!=="v6")gG(G,K3.ipv4Cidr,X.message,Z);if(X.version!=="v4")gG(G,K3.ipv6Cidr,X.message,Z);break}case"emoji":gG(G,K3.emoji(),X.message,Z);break;case"ulid":{gG(G,K3.ulid,X.message,Z);break}case"base64":{switch(Z.base64Strategy){case"format:binary":{U3(G,"binary",X.message,Z);break}case"contentEncoding:base64":{G.contentEncoding="base64";break}case"pattern:zod":{gG(G,K3.base64,X.message,Z);break}}break}case"nanoid":gG(G,K3.nanoid,X.message,Z);case"toLowerCase":case"toUpperCase":case"trim":break;default:}return G}function Ji1($,Z){return Z.patternStrategy==="escape"?O44($):$}function O44($){let Z="";for(let G=0;G<$.length;G++){if(!N44.has($[G]))Z+="\\";Z+=$[G]}return Z}function U3($,Z,G,X){var Q;if($.format||((Q=$.anyOf)==null?void 0:Q.some((Y)=>Y.format))){if(!$.anyOf)$.anyOf=[];if($.format)$.anyOf.push({format:$.format}),delete $.format;$.anyOf.push({format:Z,...G&&X.errorMessages&&{errorMessage:{format:G}}})}else $.format=Z}function gG($,Z,G,X){var Q;if($.pattern||((Q=$.allOf)==null?void 0:Q.some((Y)=>Y.pattern))){if(!$.allOf)$.allOf=[];if($.pattern)$.allOf.push({pattern:$.pattern}),delete $.pattern;$.allOf.push({pattern:TJ$(Z,X),...G&&X.errorMessages&&{errorMessage:{pattern:G}}})}else $.pattern=TJ$(Z,X)}function TJ$($,Z){var G;if(!Z.applyRegexFlags||!$.flags)return $.source;let X={i:$.flags.includes("i"),m:$.flags.includes("m"),s:$.flags.includes("s")},Q=X.i?$.source.toLowerCase():$.source,Y="",J=!1,W=!1,K=!1;for(let U=0;U<Q.length;U++){if(J){Y+=Q[U],J=!1;continue}if(X.i){if(W){if(Q[U].match(/[a-z]/)){if(K)Y+=Q[U],Y+=`${Q[U-2]}-${Q[U]}`.toUpperCase(),K=!1;else if(Q[U+1]==="-"&&((G=Q[U+2])==null?void 0:G.match(/[a-z]/)))Y+=Q[U],K=!0;else Y+=`${Q[U]}${Q[U].toUpperCase()}`;continue}}else if(Q[U].match(/[a-z]/)){Y+=`[${Q[U]}${Q[U].toUpperCase()}]`;continue}}if(X.m){if(Q[U]==="^"){Y+=`(^|(?<=[\r
|
|
2252
2252
|
]))`;continue}else if(Q[U]==="$"){Y+=`($|(?=[\r
|
|
@@ -2543,7 +2543,7 @@ Guidelines:
|
|
|
2543
2543
|
}
|
|
2544
2544
|
return { consoleLogs, errors, evaluateResult };
|
|
2545
2545
|
}
|
|
2546
|
-
`,B=await fetch(`${hV}/function?token=${encodeURIComponent(U)}`,{method:"POST",headers:{"Content-Type":"application/javascript"},body:O});if(!B.ok){let j=await B.text().catch(()=>"Unknown error");return{success:!1,error:`Browserless function call failed (${B.status}): ${j}`,url:F.url}}let L=await B.json().catch(async()=>{return{error:`Browserless returned non-JSON response: ${(await B.text().catch(()=>"")).slice(0,200)}`}}),w=JSON.stringify(L,null,2);G.set(W.toolCallId,w);let z=a9(w);if(!("error"in L)&&z>IO&&X){let j=`inspect-pages/${crypto.randomUUID()}.json`;return await X.put(j,new TextEncoder().encode(w),{contentType:"application/json"}),{success:!0,uri:w7(j),preview:yG(w),url:F.url,tokenCount:z,consoleLogCount:L.consoleLogs?.length??0,errorCount:L.errors?.length??0,hasEvaluateResult:L.evaluateResult!=null}}return{success:!("error"in L),...L,url:F.url,tokenCount:z}}finally{$.write({type:"data-tool-metadata",id:W.toolCallId,data:{latencyMs:performance.now()-K}})}}})}function mZ4(){return F8({description:"Search the web and synthesize a comprehensive research report. This tool is only available in cluster Decopilot.",inputSchema:F1(lZ4),execute:async($)=>{throw Error("web_search is only available in cluster Decopilot.")}})}function iZ4(){return F8({description:"Record what the user is durably working toward (their goals/interests). This tool is only available in cluster Decopilot.",inputSchema:F1(dZ4),execute:async($)=>{throw Error("update_interests is only available in cluster Decopilot.")}})}function vN1($){let{writer:Z,toolOutputMap:G,objectStorage:X,pendingImages:Q,imageTool:Y,includeUnavailableClusterOnlyTools:J}=$,W={user_ask:TN1,todo_write:qN1,propose_plan:kN1,read_tool_output:lH1({toolOutputMap:G})};if(J)W.web_search=mZ4(),W.update_interests=iZ4();if(Y)W.generate_image=SN1(Z,{...Y,objectStorage:X});if(process.env.BROWSERLESS_TOKEN){if(W.scrape_url=_K$(Z,{toolOutputMap:G,objectStorage:X,kind:"scrape"}),W.inspect_page=_K$(Z,{toolOutputMap:G,objectStorage:X,kind:"inspect"}),Q)W.take_screenshot=CN1(Z,{objectStorage:X,toolOutputMap:G,pendingImages:Q})}return W}var lZ4,dZ4;var Kn1=D(()=>{r4();Yn1();Jn1();Wn1();cW();_N1();lZ4=CQ.object({query:CQ.string().max(1e4).describe("The research query. Be specific about what information you need.")}),dZ4=CQ.object({interests:CQ.array(CQ.object({title:CQ.string().max(120).describe("Short noun phrase, e.g. 'Learning Rust'"),summary:CQ.string().max(500).describe("One or two sentences of context, including any progress")})).max(10)})});async function pZ4($,Z,G){let{provider:X,imageProvider:Q,deepResearchProvider:Y,organization:J,models:W,toolApprovalLevel:K="auto",isPlanMode:U=!1,toolOutputMap:F,pendingImages:H,passthroughClient:N,vmContext:O,htmlPageBuffer:B,deckBuffer:L,taskId:w,agentId:z,onChildUsage:j}=Z,P={isPlanMode:U},R=G.auth?.user?.id,A=vN1({writer:$,toolOutputMap:F,passthroughClient:N,toolApprovalLevel:K,isPlanMode:U,objectStorage:G.objectStorage});if(R)A.update_interests=NK$({write:async(k)=>{await G.storage.interests.setForAgent(k.orgId,k.agentId,k.userId,{interests:k.interests})},orgId:J.id,agentId:z,userId:R});let M=dH1(K,!1,P)!==!1,S;if(O){let k=await _W$(G,{virtualMcpId:O.virtualMcpId,branch:O.branch,userId:O.userId});S=wN1({fs:k,htmlPageBuffer:B,deckBuffer:L,toolOutputMap:F,needsApproval:M,pendingImages:H,ctx:G,threadId:O.threadId,virtualMcpId:O.virtualMcpId}),Object.assign(A,S)}if(X)A.subtask=Qn1($,{provider:X,organization:J,models:W,self:{id:z},needsApproval:dH1(K,!1,P)!==!1,onChildUsage:j,vmTools:S},G);if(Q&&W.image&&G.objectStorage)A.generate_image=LK$($,{provider:Q,imageModelInfo:W.image,objectStorage:G.objectStorage,allowHttpExternalUrls:b0().localMode});if(Y&&W.deepResearch){let k=RK$({provider:Y,deepResearchModelInfo:W.deepResearch,ctx:G});A.web_search=zK$($,{researchJob:k,toolOutputMap:F,taskId:w})}if(process.env.BROWSERLESS_TOKEN){let k={baseUrl:hV,token:process.env.BROWSERLESS_TOKEN};if(A.take_screenshot=TK$($,{objectStorage:G.objectStorage,toolOutputMap:F,pendingImages:H}),G.objectStorage)A.scrape_url=kK$($,{browserless:k,objectStorage:G.objectStorage,toolOutputMap:F}),A.inspect_page=SK$($,{browserless:k,objectStorage:G.objectStorage,toolOutputMap:F})}return A}function tZ4($,Z,G){let X=Z.organization.id,Q=G.auth?.user?.id,Y={};for(let[J,W]of Object.entries($)){let K=W,U=K.execute;if(typeof U!=="function"){Y[J]=W;continue}let F=nZ4[J],H=U.constructor?.name==="AsyncGeneratorFunction",N=(B,L)=>{if(!X||!Q)return;E$.capture({distinctId:Q,event:"tool_called",groups:{organization:X},properties:{organization_id:X,tool_source:"builtin",tool_name:J,tool_safe_name:J,read_only:F?.readOnly??null,destructive:F?.destructive??null,idempotent:null,open_world:null,latency_ms:Math.round(B),is_error:L}})},O=H?async function*(B,L){let w=performance.now(),z=!1;try{yield*U.call(K,B,L)}catch(j){throw z=!0,j}finally{N(performance.now()-w,z)}}:async(B,L)=>{let w=performance.now(),z=!1;try{return await U.call(K,B,L)}catch(j){throw z=!0,j}finally{N(performance.now()-w,z)}};Y[J]={...K,execute:O}}return Y}async function bK$($,Z,G){let X=await pZ4($,Z,G),Q=tZ4(X,Z,G);if(!Z.isPlanMode){let{propose_plan:Y,...J}=Q;return J}return Q}function rW$($){let{ctx:Z,writer:G,toolOutputMap:X,subtaskParams:Q,planMode:Y}=$,J={user_ask:TN1,todo_write:qN1,propose_plan:kN1,read_tool_output:lH1({toolOutputMap:X})};if(Q.provider)J.subtask=Qn1(G,Q,Z);return J}var nZ4;var ti1=D(()=>{H5();Si();cW();di1();bW$();HK$();Yn1();Jn1();OK$();Wn1();EK$();jK$();IK$();qK$();VK$();CK$();Kn1();$6();nZ4={read_tool_output:{readOnly:!0,destructive:!1},read_resource:{readOnly:!0,destructive:!1},read_prompt:{readOnly:!0,destructive:!1},web_search:{readOnly:!0,destructive:!1},generate_image:{readOnly:!1,destructive:!1},open_in_agent:{readOnly:!1,destructive:!1},subtask:{readOnly:!1,destructive:!1},user_ask:{readOnly:!0,destructive:!1},propose_plan:{readOnly:!0,destructive:!1},enable_tool:{readOnly:!0,destructive:!1},todo_write:{readOnly:!1,destructive:!1},update_interests:{readOnly:!1,destructive:!1}}});function rZ4($,Z,G){if(!G)return $;let X=new Set;for(let[Q,Y]of Z)if(G.has(Q)||G.has(Y))X.add(Y);return Object.fromEntries(Object.entries($).filter(([Q])=>X.has(Q)))}function aZ4($,Z){if(!Z)return $;return Object.fromEntries(Object.entries($).filter(([G])=>oZ4.has(G)||Z.has(G)))}async function vK$($,Z,G){let X=Z.organization,Q=$.mode==="plan",Y=$.toolAllowlist&&$.toolAllowlist.length>0?new Set($.toolAllowlist):null,J=await G.mcpForAgent($.agent.id,{superUser:!0,listTimeoutMs:1000});try{let{tools:W,nameMap:K}=await lf(J,G.toolOutputMap,G.writer,$.toolApprovalLevel,{isPlanMode:Q,timeoutMs:X81,resolveArgs:G.resolveArgs,onToolCalled:G.onToolCalled}),U=rZ4(W,K,Y),H=!$.virtualMcp.metadata.githubRepo,N=$.user.id?{virtualMcpId:$.agent.id,branch:H?"ephemeral":$.branch??`thread:${G.threadId}`,userId:$.user.id,threadId:G.threadId}:null,O=await bK$(G.writer,{provider:G.provider,imageProvider:G.imageProvider,deepResearchProvider:G.deepResearchProvider,organization:X,models:$.models,toolApprovalLevel:$.toolApprovalLevel,isPlanMode:Q,toolOutputMap:G.toolOutputMap,pendingImages:G.pendingImages,passthroughClient:J,vmContext:N,htmlPageBuffer:G.htmlPageBuffer,deckBuffer:G.deckBuffer,taskId:G.threadId,agentId:$.agent.id,onChildUsage:G.onChildUsage},Z),B=aZ4(O,Y),L=(await J.listTools()).tools,w=[],z=new Map;for(let A of L){let M=K.get(A.name);if(!M)continue;if(Y&&!Y.has(A.name)&&!Y.has(M))continue;let S=typeof A._meta?.gatewayClientId==="string"?A._meta.gatewayClientId:"unknown";if(w.push({rawName:A.name,safeName:M,connectionId:S}),Q)z.set(M,{readOnlyHint:A.annotations?.readOnlyHint})}let j=J.getConnectionTitleMap(),P=J.getInstructions();return{tools:{...U,...B},nameMap:K,passthroughTools:U,builtInTools:B,passthroughToolList:L,connectionsBlockTools:w,toolAnnotations:z,vmContext:N,connectionTitleMap:j,serverInstructions:P,passthroughClient:J,close:async()=>{await J.close().catch(()=>{})}}}catch(W){throw await J.close().catch(()=>{}),W}}var oZ4;var fK$=D(()=>{ti1();Si();HL();oZ4=new Set(["read_tool_output","enable_tool","open_in_agent","todo_write","update_interests"])});function Un1($){let Z=sZ4.exec($);if(!Z)return null;return{path:$,name:Z[2],kind:Z[1].toLowerCase()==="decks"?"deck":"page"}}function xK$($,Z){if(!Z)return null;let G=$.replace(/^\.\//,""),X=`org/${Z}/`,Q=G.indexOf(X);if(Q!==0&&(Q<0||G[Q-1]!=="/"))return null;return Un1(G.slice(Q+X.length))}var sZ4;var Fn1=D(()=>{sZ4=/^(decks|pages)\/([a-z0-9][a-z0-9._-]*)\.html$/i});function yK$($){let Z=$.orgFs,G=$.organization?.slug??null,X=$.auth?.user?.id??null;if(!Z||!G||!X)return $74;let Q=uf(G),Y=new Map;return{enqueue(J,W){let K=xK$(J,Q);if(!K)return;Y.set(K.path,W)},async flush(){if(Y.size===0)return;let J=[...Y.entries()];Y.clear(),await Promise.allSettled(J.map(async([W,K])=>{try{await Z.write(eZ4,W,K,{actor:X,contentType:"text/html; charset=utf-8"})}catch(U){console.error("[deck-buffer] org-fs write failed",{path:W},U)}}))}}}var eZ4="home",$74;var gK$=D(()=>{MH1();Fn1();$74={enqueue:()=>{},flush:async()=>{}}});function hK$($,Z){let G=$.orgFs,X=$.organization?.slug??null;if(!G||!X)return{sweep:async()=>{}};let Q=uf(X),Y=G.latestSeq(Hn1).catch((H)=>{return console.error("[deck-watcher] cursor snapshot failed",H),null}),J=null,W=!1,K=!1,U=new Map;return{sweep:async()=>{if(K)return;K=!0;try{if(!W)J=await Y,W=!0;if(J===null)return;let H=new Map;for(let N=0;N<20;N++){let O=await G.changes(Hn1,J,Z74);for(let B of O.entries){if(B.kind!=="file"||B.deletedAt)continue;let L=Un1(B.path);if(!L)continue;if(B.contentHash){if(U.get(L.path)===B.contentHash)continue;U.set(L.path,B.contentHash)}H.set(L.path,{volume:Hn1,path:L.path,name:L.name,kind:L.kind,mountPath:`org/${Q}/${L.path}`})}if(J=O.cursor,!O.hasMore)break}for(let N of H.values())Z.write({type:"data-deck-updated",id:N.path,data:N})}catch(H){console.error("[deck-watcher] sweep failed",H)}finally{K=!1}}}}var Hn1="home",Z74=200;var uK$=D(()=>{MH1();Fn1()});function X74($){let Z=$.replace(/^\.?\//,""),G=G74.exec(Z);if(!G)return null;return{slug:G[1],key:Z}}function cK$($,Z,G){let X=G.split("/").map(encodeURIComponent).join("/");return`${$}/api/${encodeURIComponent(Z)}/files/${X}`}function fN1($){let Z=new Map,G=$.logPrefix??"html-page-buffer";return{enqueue:(Y,J)=>{let W=X74(Y);if(!W||!$.orgSlug)return null;return Z.set(W.key,{slug:W.slug,key:W.key,content:J}),{slug:W.slug,key:W.key,url:cK$($.baseUrl,$.orgSlug,W.key),bytes:new TextEncoder().encode(J).byteLength}},flush:async()=>{if(Z.size===0)return;let Y=Array.from(Z.values());if(Z.clear(),!$.orgSlug||!$.storage){console.warn(`[${G}] flush skipped \u2014 storage unavailable`,{pendingCount:Y.length,hasOrgSlug:Boolean($.orgSlug),hasStorage:Boolean($.storage)});return}await Promise.allSettled(Y.map(async(J)=>{try{let W=new TextEncoder().encode(J.content);await $.storage.put(J.key,W,{contentType:"text/html; charset=utf-8"}),$.writer.write({type:"data-html-page-published",id:J.slug,data:{slug:J.slug,key:J.key,url:cK$($.baseUrl,$.orgSlug,J.key),bytes:W.byteLength}})}catch(W){console.error(`[${G}] PUT failed`,{key:J.key},W)}}))}}}var G74;var Nn1=D(()=>{G74=/^pages\/([a-z0-9][a-z0-9._-]*)\.html$/i});function Q74($){if($.objectStorage)return $.objectStorage;let Z=$.organization?.id;if(!Z)return null;let G=uX();return G?$J(G,Z):new P3(Z,$.baseUrl)}function lK$($,Z){return fN1({storage:Q74($),baseUrl:$.baseUrl,orgSlug:$.organization?.slug,writer:Z})}var dK$=D(()=>{Qg();jB();Nn1()});async function Y74($,Z,G){let X=await IN1({kind:G.kind,ctx:$,organization:Z,virtualMcp:G.virtualMcp,mcpClient:G.mcpClient,provider:G.provider,models:G.models,messages:G.messages,abortSignal:G.abortSignal,temperature:G.temperature,planMode:G.planMode,isDecopilot:G.isDecopilot,systemAgentInstructions:G.systemAgentInstructions,currentThreadId:G.currentThreadId,user:G.user,userContext:G.userContext,writer:G.writer,subtaskParams:{provider:G.provider,organization:Z,models:G.models},prepareStep:G.prepareStep,onStepFinish:G.onStepFinish,passthroughClient:G.passthroughClient,connectionsData:G.connectionsData,extraTools:G.extraTools,additionalSystemMessages:G.additionalSystemMessages,stepLimit:G.stepLimit});return{result:X.result,error:X.error,span:X.span,assembledSystemMessages:X.assembledSystemMessages}}function mK$($){let{ctx:Z,organization:G,modelRuntime:X,sideChannel:Q,cleanup:Y}=$,J=lK$(Z,Q.writer),W=hK$(Z,Q.writer),K=yK$(Z);return{toolRuntime:{buildEnvironmentTools:async({input:H,onChildUsage:N})=>{let O=new Map,B=[],{resolveArgs:L,onToolCalled:w}=AN1(Z),z=await vK$(H,Z,{writer:Q.writer,toolOutputMap:O,pendingImages:B,threadId:H.threadId,resolveArgs:L,onToolCalled:w,mcpForAgent:(P,R)=>xU(H.virtualMcp,Z,"passthrough",R?.superUser??!1,{listTimeoutMs:R?.listTimeoutMs}),provider:X.thinking.provider,imageProvider:X.image?.provider??X.thinking.provider,deepResearchProvider:X.deepResearch?.provider??X.thinking.provider,htmlPageBuffer:J,deckBuffer:K,onChildUsage:N}),j={tools:z.tools,passthroughTools:z.passthroughTools,builtInTools:z.builtInTools,connectionsBlockTools:z.connectionsBlockTools,toolAnnotations:z.toolAnnotations,connectionTitleMap:z.connectionTitleMap,serverInstructions:z.serverInstructions,passthroughClient:z.passthroughClient,writer:Q.writer,pendingImages:B,sideChunks:Q.stream,closeSideChunks:Q.close,onStepFinish:async()=>{await J.flush().catch((P)=>{console.error("[decopilot] html-page flush failed",P)}),await K.flush(),await W.sweep()},close:z.close};return Y.close=z.close,j},runEngine:(H)=>Y74(Z,G,H)},telemetry:{recordLlmCall:(H)=>LW$({ctx:Z,...H}),monitorLlmCall:(H)=>BW$({ctx:Z,...H,requestId:Z.metadata.requestId,userAgent:Z.metadata.userAgent??null})}}}var iK$=D(()=>{DW$();EW$();nv();fK$();ei1();gK$();uK$();dK$();Gn1()});function gN1($){if($.providerId==="openai-compatible")try{let Z=JSON.parse($.apiKey);return{kind:"secret",providerId:$.providerId,apiKey:Z.apiKey??"",modelId:$.modelId,...Z.baseUrl?{baseUrl:Z.baseUrl}:{}}}catch{return{kind:"secret",providerId:$.providerId,apiKey:$.apiKey,modelId:$.modelId}}return{kind:"secret",providerId:$.providerId,apiKey:$.apiKey,modelId:$.modelId}}async function tK$($){if(!$)return null;return J74($)}function J74($){let Z=$.fetch??fetch,G=async(Q,Y,J)=>{let W=await Z(xN1(`${$.baseUrl}/${Q}`,Y),{method:"POST",headers:yN1($.headers,{"content-type":"application/json"}),body:JSON.stringify(J)});return nK$(W)},X={getBytesOrPresign:async(Q,Y)=>{let J=await X.head(Q);if(J.size>Y.presignWhenLargerThan)return{error:"FILE_TOO_LARGE",size:J.size,maxInlineSize:Y.presignWhenLargerThan,presignedUrl:await X.presignedGetUrl(Q,Y.presignExpiresIn),contentType:J.contentType};let W=await X.getBytes(Q);return{content:pK$(J.contentType)?new TextDecoder().decode(W):Buffer.from(W).toString("base64"),contentType:J.contentType,encoding:pK$(J.contentType)?"utf-8":"base64",size:J.size,lastModified:J.lastModified,etag:J.etag}},getBytes:async(Q)=>{let Y=await Z(xN1($.baseUrl,Q),{method:"GET",headers:yN1($.headers)});if(!Y.ok)throw Error(`object storage API failed (${Y.status})`);return new Uint8Array(await Y.arrayBuffer())},put:async(Q,Y,J)=>{let W=typeof Y==="string"?new TextEncoder().encode(Y):Y,K=W.buffer instanceof ArrayBuffer?W.buffer.slice(W.byteOffset,W.byteOffset+W.byteLength):Uint8Array.from(W).buffer,U=await Z(xN1($.baseUrl,Q),{method:"PUT",headers:yN1($.headers,{...J?.contentType?{"content-type":J.contentType}:{}}),body:K});return nK$(U)},list:async()=>{throw Error("Remote object storage list is not supported")},delete:async()=>{throw Error("Remote object storage delete is not supported")},head:async(Q)=>{let Y=await Z(xN1($.baseUrl,Q),{method:"HEAD",headers:yN1($.headers)});if(!Y.ok)throw Error(`object storage API failed (${Y.status})`);return{contentType:Y.headers.get("content-type")??"application/octet-stream",size:Number(Y.headers.get("content-length")??"0"),lastModified:Y.headers.get("last-modified")?new Date(Y.headers.get("last-modified")):void 0,etag:Y.headers.get("etag")??void 0}},presignedGetUrl:async(Q,Y)=>(await G("presigned-get",Q,{expiresIn:Y})).url,presignedPutUrl:async(Q,Y,J)=>(await G("presigned-put",Q,{expiresIn:Y,contentType:J})).url};return X}async function oK$($,Z={}){if($.kind==="in-process")return{client:$.client,close:$.close??(async()=>{})};if(Z.openHttp)return Z.openHttp($);return W74($,Z.clientInfo)}async function W74($,Z={name:"decopilot",version:"1"}){let G=new aQ(new URL($.url),{requestInit:{headers:$.headers}}),X=new Y9(Z,{capabilities:{}});return await X.connect(G),{client:X,close:async()=>{await X.close().catch(()=>{})}}}function xN1($,Z){let G=Z.split("/").map(encodeURIComponent).join("/");return`${$.replace(/\/$/,"")}/${G}`}async function nK$($){if(!$.ok){let Z=`object storage API failed (${$.status})`;try{let G=await $.json();if(typeof G.error==="string")Z=G.error}catch{let G=await $.text().catch(()=>"");if(G)Z=G}throw Error(Z)}return await $.json()}function yN1($,Z){let G=new Headers($);for(let[X,Q]of Object.entries(Z??{}))G.set(X,Q);return G}function pK$($){let Z=$.split(";")[0].trim();if(K74.has(Z))return!0;if(Z.startsWith("text/"))return!0;return!1}var K74;var On1=D(()=>{HJ();bB();K74=new Set(["application/json","text/html","text/css","application/javascript","text/typescript","text/plain","text/markdown","text/csv","application/xml","image/svg+xml","application/yaml","application/toml"])});function U74(){return{enqueue:()=>null,flush:async()=>{}}}function rK$($){let Z=vN1({writer:$.writer,toolOutputMap:$.toolOutputMap,passthroughClient:$.passthroughClient,toolApprovalLevel:$.toolApprovalLevel,isPlanMode:$.isPlanMode,objectStorage:$.ctx.objectStorage,includeUnavailableClusterOnlyTools:!0,pendingImages:$.pendingImages,imageTool:$.imageProvider&&$.imageModelInfo?{provider:$.imageProvider,imageModelInfo:$.imageModelInfo}:void 0}),G=$.isPlanMode||$.toolApprovalLevel!=="auto",X=wN1({fs:$.fs,htmlPageBuffer:$.htmlPageBuffer??U74(),toolOutputMap:$.toolOutputMap,needsApproval:G,pendingImages:$.pendingImages,ctx:$.ctx,threadId:$.threadId,virtualMcpId:$.virtualMcpId});return{...Z,...X,...$.subtask?{subtask:$.subtask}:{}}}var aK$=D(()=>{Kn1();di1()});function eK$(){if(!sK$)throw Error("[desktop] sandbox-fs builder not registered \u2014 the daemon must call "+"registerDesktopSandboxFsBuilder(buildDesktopSandboxFs) before dispatching");return sK$}var sK$;function $U$($){let Z=$81(),G=jN1($.connectionsBlockTools,$.connectionTitleMap),X=$.isDecopilotAgent?Z81():$.agentInstructions,Q=[Z,$.planPrompt,G,fl(),$.webSearchPrompt,X].filter((Y)=>Boolean(Y?.trim()));return{systemMessages:zN1(Q,new Date)}}var ZU$=D(()=>{ii1()});import{z as Bn1}from"zod";function GU$($){let{writer:Z,selfAgentId:G,models:X,needsApproval:Q,runSubtask:Y,onChildUsage:J}=$;return F8({description:H74,inputSchema:F1(F74),needsApproval:Q,execute:async({prompt:W,agent_id:K},{abortSignal:U,toolCallId:F})=>{let H=performance.now(),N=K&&K!==G?K:void 0,O=await Y(W,N,U??new AbortController().signal);return J?.(O.usage),Z.write({type:"data-tool-metadata",id:F,data:{annotations:N74,latencyMs:performance.now()-H}}),Z.write({type:"data-tool-subtask-metadata",id:F,data:{usage:O.usage,agent:N??G,models:X}}),O},toModelOutput:({output:W})=>{let K=W;if(K?.error)return{type:"error-text",value:`Subtask failed: ${K.error}`};let U=K?.text?.trim(),F=K?.finishReason==="length";if(U)return{type:"text",value:(F?`[Subtask hit step limit \u2014 partial result below; consider narrowing the task.]
|
|
2546
|
+
`,B=await fetch(`${hV}/function?token=${encodeURIComponent(U)}`,{method:"POST",headers:{"Content-Type":"application/javascript"},body:O});if(!B.ok){let j=await B.text().catch(()=>"Unknown error");return{success:!1,error:`Browserless function call failed (${B.status}): ${j}`,url:F.url}}let L=await B.json().catch(async()=>{return{error:`Browserless returned non-JSON response: ${(await B.text().catch(()=>"")).slice(0,200)}`}}),w=JSON.stringify(L,null,2);G.set(W.toolCallId,w);let z=a9(w);if(!("error"in L)&&z>IO&&X){let j=`inspect-pages/${crypto.randomUUID()}.json`;return await X.put(j,new TextEncoder().encode(w),{contentType:"application/json"}),{success:!0,uri:w7(j),preview:yG(w),url:F.url,tokenCount:z,consoleLogCount:L.consoleLogs?.length??0,errorCount:L.errors?.length??0,hasEvaluateResult:L.evaluateResult!=null}}return{success:!("error"in L),...L,url:F.url,tokenCount:z}}finally{$.write({type:"data-tool-metadata",id:W.toolCallId,data:{latencyMs:performance.now()-K}})}}})}function mZ4(){return F8({description:"Search the web and synthesize a comprehensive research report. This tool is only available in cluster Decopilot.",inputSchema:F1(lZ4),execute:async($)=>{throw Error("web_search is only available in cluster Decopilot.")}})}function iZ4(){return F8({description:"Record what the user is durably working toward (their goals/interests). This tool is only available in cluster Decopilot.",inputSchema:F1(dZ4),execute:async($)=>{throw Error("update_interests is only available in cluster Decopilot.")}})}function vN1($){let{writer:Z,toolOutputMap:G,objectStorage:X,pendingImages:Q,imageTool:Y,includeUnavailableClusterOnlyTools:J}=$,W={user_ask:TN1,todo_write:qN1,propose_plan:kN1,read_tool_output:lH1({toolOutputMap:G})};if(J)W.web_search=mZ4(),W.update_interests=iZ4();if(Y)W.generate_image=SN1(Z,{...Y,objectStorage:X});if(process.env.BROWSERLESS_TOKEN){if(W.scrape_url=_K$(Z,{toolOutputMap:G,objectStorage:X,kind:"scrape"}),W.inspect_page=_K$(Z,{toolOutputMap:G,objectStorage:X,kind:"inspect"}),Q)W.take_screenshot=CN1(Z,{objectStorage:X,toolOutputMap:G,pendingImages:Q})}return W}var lZ4,dZ4;var Kn1=D(()=>{r4();Yn1();Jn1();Wn1();cW();_N1();lZ4=CQ.object({query:CQ.string().max(1e4).describe("The research query. Be specific about what information you need.")}),dZ4=CQ.object({interests:CQ.array(CQ.object({title:CQ.string().max(120).describe("Short noun phrase, e.g. 'Learning Rust'"),summary:CQ.string().max(500).describe("One or two sentences of context, including any progress")})).max(10)})});async function pZ4($,Z,G){let{provider:X,imageProvider:Q,deepResearchProvider:Y,organization:J,models:W,toolApprovalLevel:K="auto",isPlanMode:U=!1,toolOutputMap:F,pendingImages:H,passthroughClient:N,vmContext:O,htmlPageBuffer:B,deckBuffer:L,taskId:w,agentId:z,onChildUsage:j}=Z,P={isPlanMode:U},R=G.auth?.user?.id,A=vN1({writer:$,toolOutputMap:F,passthroughClient:N,toolApprovalLevel:K,isPlanMode:U,objectStorage:G.objectStorage});if(R)A.update_interests=NK$({write:async(k)=>{await G.storage.interests.setForAgent(k.orgId,k.agentId,k.userId,{interests:k.interests})},orgId:J.id,agentId:z,userId:R});let M=dH1(K,!1,P)!==!1,S;if(O){let k=await _W$(G,{virtualMcpId:O.virtualMcpId,branch:O.branch,userId:O.userId});S=wN1({fs:k,htmlPageBuffer:B,deckBuffer:L,toolOutputMap:F,needsApproval:M,pendingImages:H,ctx:G,threadId:O.threadId,virtualMcpId:O.virtualMcpId}),Object.assign(A,S)}if(X)A.subtask=Qn1($,{provider:X,organization:J,models:W,self:{id:z},needsApproval:dH1(K,!1,P)!==!1,onChildUsage:j,vmTools:S},G);if(Q&&W.image&&G.objectStorage)A.generate_image=LK$($,{provider:Q,imageModelInfo:W.image,objectStorage:G.objectStorage,allowHttpExternalUrls:b0().localMode});if(Y&&W.deepResearch){let k=RK$({provider:Y,deepResearchModelInfo:W.deepResearch,ctx:G});A.web_search=zK$($,{researchJob:k,toolOutputMap:F,taskId:w})}if(process.env.BROWSERLESS_TOKEN){let k={baseUrl:hV,token:process.env.BROWSERLESS_TOKEN};if(A.take_screenshot=TK$($,{objectStorage:G.objectStorage,toolOutputMap:F,pendingImages:H}),G.objectStorage)A.scrape_url=kK$($,{browserless:k,objectStorage:G.objectStorage,toolOutputMap:F}),A.inspect_page=SK$($,{browserless:k,objectStorage:G.objectStorage,toolOutputMap:F})}return A}function tZ4($,Z,G){let X=Z.organization.id,Q=G.auth?.user?.id,Y={};for(let[J,W]of Object.entries($)){let K=W,U=K.execute;if(typeof U!=="function"){Y[J]=W;continue}let F=nZ4[J],H=U.constructor?.name==="AsyncGeneratorFunction",N=(B,L)=>{if(!X||!Q)return;E$.capture({distinctId:Q,event:"tool_called",groups:{organization:X},properties:{organization_id:X,tool_source:"builtin",tool_name:J,tool_safe_name:J,read_only:F?.readOnly??null,destructive:F?.destructive??null,idempotent:null,open_world:null,latency_ms:Math.round(B),is_error:L}})},O=H?async function*(B,L){let w=performance.now(),z=!1;try{yield*U.call(K,B,L)}catch(j){throw z=!0,j}finally{N(performance.now()-w,z)}}:async(B,L)=>{let w=performance.now(),z=!1;try{return await U.call(K,B,L)}catch(j){throw z=!0,j}finally{N(performance.now()-w,z)}};Y[J]={...K,execute:O}}return Y}async function bK$($,Z,G){let X=await pZ4($,Z,G),Q=tZ4(X,Z,G);if(!Z.isPlanMode){let{propose_plan:Y,...J}=Q;return J}return Q}function rW$($){let{ctx:Z,writer:G,toolOutputMap:X,subtaskParams:Q,planMode:Y}=$,J={user_ask:TN1,todo_write:qN1,propose_plan:kN1,read_tool_output:lH1({toolOutputMap:X})};if(Q.provider)J.subtask=Qn1(G,Q,Z);return J}var nZ4;var ti1=D(()=>{H5();Si();cW();di1();bW$();HK$();Yn1();Jn1();OK$();Wn1();EK$();jK$();IK$();qK$();VK$();CK$();Kn1();$6();nZ4={read_tool_output:{readOnly:!0,destructive:!1},read_resource:{readOnly:!0,destructive:!1},read_prompt:{readOnly:!0,destructive:!1},web_search:{readOnly:!0,destructive:!1},generate_image:{readOnly:!1,destructive:!1},open_in_agent:{readOnly:!1,destructive:!1},subtask:{readOnly:!1,destructive:!1},user_ask:{readOnly:!0,destructive:!1},propose_plan:{readOnly:!0,destructive:!1},enable_tool:{readOnly:!0,destructive:!1},todo_write:{readOnly:!1,destructive:!1},update_interests:{readOnly:!1,destructive:!1}}});function rZ4($,Z,G){if(!G)return $;let X=new Set;for(let[Q,Y]of Z)if(G.has(Q)||G.has(Y))X.add(Y);return Object.fromEntries(Object.entries($).filter(([Q])=>X.has(Q)))}function aZ4($,Z){if(!Z)return $;return Object.fromEntries(Object.entries($).filter(([G])=>oZ4.has(G)||Z.has(G)))}async function vK$($,Z,G){let X=Z.organization,Q=$.mode==="plan",Y=$.toolAllowlist&&$.toolAllowlist.length>0?new Set($.toolAllowlist):null,J=await G.mcpForAgent($.agent.id,{superUser:!0,listTimeoutMs:1000});try{let{tools:W,nameMap:K,rawTools:U}=await lf(J,G.toolOutputMap,G.writer,$.toolApprovalLevel,{isPlanMode:Q,timeoutMs:X81,resolveArgs:G.resolveArgs,onToolCalled:G.onToolCalled}),F=rZ4(W,K,Y),N=!$.virtualMcp.metadata.githubRepo,O=$.user.id?{virtualMcpId:$.agent.id,branch:N?"ephemeral":$.branch??`thread:${G.threadId}`,userId:$.user.id,threadId:G.threadId}:null,B=await bK$(G.writer,{provider:G.provider,imageProvider:G.imageProvider,deepResearchProvider:G.deepResearchProvider,organization:X,models:$.models,toolApprovalLevel:$.toolApprovalLevel,isPlanMode:Q,toolOutputMap:G.toolOutputMap,pendingImages:G.pendingImages,passthroughClient:J,vmContext:O,htmlPageBuffer:G.htmlPageBuffer,deckBuffer:G.deckBuffer,taskId:G.threadId,agentId:$.agent.id,onChildUsage:G.onChildUsage},Z),L=aZ4(B,Y),w=[],z=new Map;for(let A of U){let M=K.get(A.name);if(!M)continue;if(Y&&!Y.has(A.name)&&!Y.has(M))continue;let S=typeof A._meta?.gatewayClientId==="string"?A._meta.gatewayClientId:"unknown";if(w.push({rawName:A.name,safeName:M,connectionId:S}),Q)z.set(M,{readOnlyHint:A.annotations?.readOnlyHint})}let j=J.getConnectionTitleMap(),P=J.getInstructions();return{tools:{...F,...L},nameMap:K,passthroughTools:F,builtInTools:L,passthroughToolList:U,connectionsBlockTools:w,toolAnnotations:z,vmContext:O,connectionTitleMap:j,serverInstructions:P,passthroughClient:J,close:async()=>{await J.close().catch(()=>{})}}}catch(W){throw await J.close().catch(()=>{}),W}}var oZ4;var fK$=D(()=>{ti1();Si();HL();oZ4=new Set(["read_tool_output","enable_tool","open_in_agent","todo_write","update_interests"])});function Un1($){let Z=sZ4.exec($);if(!Z)return null;return{path:$,name:Z[2],kind:Z[1].toLowerCase()==="decks"?"deck":"page"}}function xK$($,Z){if(!Z)return null;let G=$.replace(/^\.\//,""),X=`org/${Z}/`,Q=G.indexOf(X);if(Q!==0&&(Q<0||G[Q-1]!=="/"))return null;return Un1(G.slice(Q+X.length))}var sZ4;var Fn1=D(()=>{sZ4=/^(decks|pages)\/([a-z0-9][a-z0-9._-]*)\.html$/i});function yK$($){let Z=$.orgFs,G=$.organization?.slug??null,X=$.auth?.user?.id??null;if(!Z||!G||!X)return $74;let Q=uf(G),Y=new Map;return{enqueue(J,W){let K=xK$(J,Q);if(!K)return;Y.set(K.path,W)},async flush(){if(Y.size===0)return;let J=[...Y.entries()];Y.clear(),await Promise.allSettled(J.map(async([W,K])=>{try{await Z.write(eZ4,W,K,{actor:X,contentType:"text/html; charset=utf-8"})}catch(U){console.error("[deck-buffer] org-fs write failed",{path:W},U)}}))}}}var eZ4="home",$74;var gK$=D(()=>{MH1();Fn1();$74={enqueue:()=>{},flush:async()=>{}}});function hK$($,Z){let G=$.orgFs,X=$.organization?.slug??null;if(!G||!X)return{sweep:async()=>{}};let Q=uf(X),Y=G.latestSeq(Hn1).catch((H)=>{return console.error("[deck-watcher] cursor snapshot failed",H),null}),J=null,W=!1,K=!1,U=new Map;return{sweep:async()=>{if(K)return;K=!0;try{if(!W)J=await Y,W=!0;if(J===null)return;let H=new Map;for(let N=0;N<20;N++){let O=await G.changes(Hn1,J,Z74);for(let B of O.entries){if(B.kind!=="file"||B.deletedAt)continue;let L=Un1(B.path);if(!L)continue;if(B.contentHash){if(U.get(L.path)===B.contentHash)continue;U.set(L.path,B.contentHash)}H.set(L.path,{volume:Hn1,path:L.path,name:L.name,kind:L.kind,mountPath:`org/${Q}/${L.path}`})}if(J=O.cursor,!O.hasMore)break}for(let N of H.values())Z.write({type:"data-deck-updated",id:N.path,data:N})}catch(H){console.error("[deck-watcher] sweep failed",H)}finally{K=!1}}}}var Hn1="home",Z74=200;var uK$=D(()=>{MH1();Fn1()});function X74($){let Z=$.replace(/^\.?\//,""),G=G74.exec(Z);if(!G)return null;return{slug:G[1],key:Z}}function cK$($,Z,G){let X=G.split("/").map(encodeURIComponent).join("/");return`${$}/api/${encodeURIComponent(Z)}/files/${X}`}function fN1($){let Z=new Map,G=$.logPrefix??"html-page-buffer";return{enqueue:(Y,J)=>{let W=X74(Y);if(!W||!$.orgSlug)return null;return Z.set(W.key,{slug:W.slug,key:W.key,content:J}),{slug:W.slug,key:W.key,url:cK$($.baseUrl,$.orgSlug,W.key),bytes:new TextEncoder().encode(J).byteLength}},flush:async()=>{if(Z.size===0)return;let Y=Array.from(Z.values());if(Z.clear(),!$.orgSlug||!$.storage){console.warn(`[${G}] flush skipped \u2014 storage unavailable`,{pendingCount:Y.length,hasOrgSlug:Boolean($.orgSlug),hasStorage:Boolean($.storage)});return}await Promise.allSettled(Y.map(async(J)=>{try{let W=new TextEncoder().encode(J.content);await $.storage.put(J.key,W,{contentType:"text/html; charset=utf-8"}),$.writer.write({type:"data-html-page-published",id:J.slug,data:{slug:J.slug,key:J.key,url:cK$($.baseUrl,$.orgSlug,J.key),bytes:W.byteLength}})}catch(W){console.error(`[${G}] PUT failed`,{key:J.key},W)}}))}}}var G74;var Nn1=D(()=>{G74=/^pages\/([a-z0-9][a-z0-9._-]*)\.html$/i});function Q74($){if($.objectStorage)return $.objectStorage;let Z=$.organization?.id;if(!Z)return null;let G=uX();return G?$J(G,Z):new P3(Z,$.baseUrl)}function lK$($,Z){return fN1({storage:Q74($),baseUrl:$.baseUrl,orgSlug:$.organization?.slug,writer:Z})}var dK$=D(()=>{Qg();jB();Nn1()});async function Y74($,Z,G){let X=await IN1({kind:G.kind,ctx:$,organization:Z,virtualMcp:G.virtualMcp,mcpClient:G.mcpClient,provider:G.provider,models:G.models,messages:G.messages,abortSignal:G.abortSignal,temperature:G.temperature,planMode:G.planMode,isDecopilot:G.isDecopilot,systemAgentInstructions:G.systemAgentInstructions,currentThreadId:G.currentThreadId,user:G.user,userContext:G.userContext,writer:G.writer,subtaskParams:{provider:G.provider,organization:Z,models:G.models},prepareStep:G.prepareStep,onStepFinish:G.onStepFinish,passthroughClient:G.passthroughClient,connectionsData:G.connectionsData,extraTools:G.extraTools,additionalSystemMessages:G.additionalSystemMessages,stepLimit:G.stepLimit});return{result:X.result,error:X.error,span:X.span,assembledSystemMessages:X.assembledSystemMessages}}function mK$($){let{ctx:Z,organization:G,modelRuntime:X,sideChannel:Q,cleanup:Y}=$,J=lK$(Z,Q.writer),W=hK$(Z,Q.writer),K=yK$(Z);return{toolRuntime:{buildEnvironmentTools:async({input:H,onChildUsage:N})=>{let O=new Map,B=[],{resolveArgs:L,onToolCalled:w}=AN1(Z),z=await vK$(H,Z,{writer:Q.writer,toolOutputMap:O,pendingImages:B,threadId:H.threadId,resolveArgs:L,onToolCalled:w,mcpForAgent:(P,R)=>xU(H.virtualMcp,Z,"passthrough",R?.superUser??!1,{listTimeoutMs:R?.listTimeoutMs}),provider:X.thinking.provider,imageProvider:X.image?.provider??X.thinking.provider,deepResearchProvider:X.deepResearch?.provider??X.thinking.provider,htmlPageBuffer:J,deckBuffer:K,onChildUsage:N}),j={tools:z.tools,passthroughTools:z.passthroughTools,builtInTools:z.builtInTools,connectionsBlockTools:z.connectionsBlockTools,toolAnnotations:z.toolAnnotations,connectionTitleMap:z.connectionTitleMap,serverInstructions:z.serverInstructions,passthroughClient:z.passthroughClient,writer:Q.writer,pendingImages:B,sideChunks:Q.stream,closeSideChunks:Q.close,onStepFinish:async()=>{await J.flush().catch((P)=>{console.error("[decopilot] html-page flush failed",P)}),await K.flush(),await W.sweep()},close:z.close};return Y.close=z.close,j},runEngine:(H)=>Y74(Z,G,H)},telemetry:{recordLlmCall:(H)=>LW$({ctx:Z,...H}),monitorLlmCall:(H)=>BW$({ctx:Z,...H,requestId:Z.metadata.requestId,userAgent:Z.metadata.userAgent??null})}}}var iK$=D(()=>{DW$();EW$();nv();fK$();ei1();gK$();uK$();dK$();Gn1()});function gN1($){if($.providerId==="openai-compatible")try{let Z=JSON.parse($.apiKey);return{kind:"secret",providerId:$.providerId,apiKey:Z.apiKey??"",modelId:$.modelId,...Z.baseUrl?{baseUrl:Z.baseUrl}:{}}}catch{return{kind:"secret",providerId:$.providerId,apiKey:$.apiKey,modelId:$.modelId}}return{kind:"secret",providerId:$.providerId,apiKey:$.apiKey,modelId:$.modelId}}async function tK$($){if(!$)return null;return J74($)}function J74($){let Z=$.fetch??fetch,G=async(Q,Y,J)=>{let W=await Z(xN1(`${$.baseUrl}/${Q}`,Y),{method:"POST",headers:yN1($.headers,{"content-type":"application/json"}),body:JSON.stringify(J)});return nK$(W)},X={getBytesOrPresign:async(Q,Y)=>{let J=await X.head(Q);if(J.size>Y.presignWhenLargerThan)return{error:"FILE_TOO_LARGE",size:J.size,maxInlineSize:Y.presignWhenLargerThan,presignedUrl:await X.presignedGetUrl(Q,Y.presignExpiresIn),contentType:J.contentType};let W=await X.getBytes(Q);return{content:pK$(J.contentType)?new TextDecoder().decode(W):Buffer.from(W).toString("base64"),contentType:J.contentType,encoding:pK$(J.contentType)?"utf-8":"base64",size:J.size,lastModified:J.lastModified,etag:J.etag}},getBytes:async(Q)=>{let Y=await Z(xN1($.baseUrl,Q),{method:"GET",headers:yN1($.headers)});if(!Y.ok)throw Error(`object storage API failed (${Y.status})`);return new Uint8Array(await Y.arrayBuffer())},put:async(Q,Y,J)=>{let W=typeof Y==="string"?new TextEncoder().encode(Y):Y,K=W.buffer instanceof ArrayBuffer?W.buffer.slice(W.byteOffset,W.byteOffset+W.byteLength):Uint8Array.from(W).buffer,U=await Z(xN1($.baseUrl,Q),{method:"PUT",headers:yN1($.headers,{...J?.contentType?{"content-type":J.contentType}:{}}),body:K});return nK$(U)},list:async()=>{throw Error("Remote object storage list is not supported")},delete:async()=>{throw Error("Remote object storage delete is not supported")},head:async(Q)=>{let Y=await Z(xN1($.baseUrl,Q),{method:"HEAD",headers:yN1($.headers)});if(!Y.ok)throw Error(`object storage API failed (${Y.status})`);return{contentType:Y.headers.get("content-type")??"application/octet-stream",size:Number(Y.headers.get("content-length")??"0"),lastModified:Y.headers.get("last-modified")?new Date(Y.headers.get("last-modified")):void 0,etag:Y.headers.get("etag")??void 0}},presignedGetUrl:async(Q,Y)=>(await G("presigned-get",Q,{expiresIn:Y})).url,presignedPutUrl:async(Q,Y,J)=>(await G("presigned-put",Q,{expiresIn:Y,contentType:J})).url};return X}async function oK$($,Z={}){if($.kind==="in-process")return{client:$.client,close:$.close??(async()=>{})};if(Z.openHttp)return Z.openHttp($);return W74($,Z.clientInfo)}async function W74($,Z={name:"decopilot",version:"1"}){let G=new aQ(new URL($.url),{requestInit:{headers:$.headers}}),X=new Y9(Z,{capabilities:{}});return await X.connect(G),{client:X,close:async()=>{await X.close().catch(()=>{})}}}function xN1($,Z){let G=Z.split("/").map(encodeURIComponent).join("/");return`${$.replace(/\/$/,"")}/${G}`}async function nK$($){if(!$.ok){let Z=`object storage API failed (${$.status})`;try{let G=await $.json();if(typeof G.error==="string")Z=G.error}catch{let G=await $.text().catch(()=>"");if(G)Z=G}throw Error(Z)}return await $.json()}function yN1($,Z){let G=new Headers($);for(let[X,Q]of Object.entries(Z??{}))G.set(X,Q);return G}function pK$($){let Z=$.split(";")[0].trim();if(K74.has(Z))return!0;if(Z.startsWith("text/"))return!0;return!1}var K74;var On1=D(()=>{HJ();bB();K74=new Set(["application/json","text/html","text/css","application/javascript","text/typescript","text/plain","text/markdown","text/csv","application/xml","image/svg+xml","application/yaml","application/toml"])});function U74(){return{enqueue:()=>null,flush:async()=>{}}}function rK$($){let Z=vN1({writer:$.writer,toolOutputMap:$.toolOutputMap,passthroughClient:$.passthroughClient,toolApprovalLevel:$.toolApprovalLevel,isPlanMode:$.isPlanMode,objectStorage:$.ctx.objectStorage,includeUnavailableClusterOnlyTools:!0,pendingImages:$.pendingImages,imageTool:$.imageProvider&&$.imageModelInfo?{provider:$.imageProvider,imageModelInfo:$.imageModelInfo}:void 0}),G=$.isPlanMode||$.toolApprovalLevel!=="auto",X=wN1({fs:$.fs,htmlPageBuffer:$.htmlPageBuffer??U74(),toolOutputMap:$.toolOutputMap,needsApproval:G,pendingImages:$.pendingImages,ctx:$.ctx,threadId:$.threadId,virtualMcpId:$.virtualMcpId});return{...Z,...X,...$.subtask?{subtask:$.subtask}:{}}}var aK$=D(()=>{Kn1();di1()});function eK$(){if(!sK$)throw Error("[desktop] sandbox-fs builder not registered \u2014 the daemon must call "+"registerDesktopSandboxFsBuilder(buildDesktopSandboxFs) before dispatching");return sK$}var sK$;function $U$($){let Z=$81(),G=jN1($.connectionsBlockTools,$.connectionTitleMap),X=$.isDecopilotAgent?Z81():$.agentInstructions,Q=[Z,$.planPrompt,G,fl(),$.webSearchPrompt,X].filter((Y)=>Boolean(Y?.trim()));return{systemMessages:zN1(Q,new Date)}}var ZU$=D(()=>{ii1()});import{z as Bn1}from"zod";function GU$($){let{writer:Z,selfAgentId:G,models:X,needsApproval:Q,runSubtask:Y,onChildUsage:J}=$;return F8({description:H74,inputSchema:F1(F74),needsApproval:Q,execute:async({prompt:W,agent_id:K},{abortSignal:U,toolCallId:F})=>{let H=performance.now(),N=K&&K!==G?K:void 0,O=await Y(W,N,U??new AbortController().signal);return J?.(O.usage),Z.write({type:"data-tool-metadata",id:F,data:{annotations:N74,latencyMs:performance.now()-H}}),Z.write({type:"data-tool-subtask-metadata",id:F,data:{usage:O.usage,agent:N??G,models:X}}),O},toModelOutput:({output:W})=>{let K=W;if(K?.error)return{type:"error-text",value:`Subtask failed: ${K.error}`};let U=K?.text?.trim(),F=K?.finishReason==="length";if(U)return{type:"text",value:(F?`[Subtask hit step limit \u2014 partial result below; consider narrowing the task.]
|
|
2547
2547
|
|
|
2548
2548
|
`:"")+U};if(F)return{type:"text",value:"[Subtask hit step limit before producing a final report. The subagent did work but ran out of steps. Narrow the task or increase the budget.]"};return{type:"text",value:"Subtask completed (no output)."}}})}var F74,H74,N74;var XU$=D(()=>{r4();F74=Bn1.object({prompt:Bn1.string().min(1).max(50000).describe("The task to delegate to the subagent. Be specific and self-contained \u2014 "+"the subagent has no access to the parent conversation history."),agent_id:Bn1.string().min(1).max(128).optional().describe("The ID of the agent (Virtual MCP) to delegate to. Must exist and be "+"active in the current organization. OMIT to clone yourself \u2014 a fresh "+"subagent with your exact tools and instructions but an empty context.")}),H74=`Run a focused task in a fresh subagent that works independently and returns only its conclusion.
|
|
2549
2549
|
|
|
@@ -2555,7 +2555,7 @@ Usage notes:
|
|
|
2555
2555
|
`+`- Every subtask call starts FRESH \u2014 no conversation history, no prior runs. Always include full context in the prompt and state exactly what to return (the specific answer/list/paths you need, not a raw dump); never use continuation phrases like 'continue' or 'as before'.
|
|
2556
2556
|
`+`- Clearly tell the subagent whether you expect it to take action or just research.
|
|
2557
2557
|
- To parallelize independent searches, launch multiple subtask calls in the same message.
|
|
2558
|
-
- The subagent's output should generally be trusted.`,N74={readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!0}});function QU$($,Z){if(!Z)return $;return $.replace(/\/virtual-mcp\/[^/]+\/?$/,`/virtual-mcp/${encodeURIComponent(Z)}`)}import{trace as O74}from"@opentelemetry/api";function B74($){let G=$._meta?.ui?.visibility;if(G==null)return!0;if(typeof G==="string")return G==="model";if(Array.isArray(G))return G.includes("model");return!0}function D74($){let Z=$.modelSources?.thinking?.kind==="secret"?$.modelSources.thinking:null;if(!Z)throw Error("decopilot-desktop requires a secret thinking model source. The cluster must inject the chat-model credential when routing decopilot to user-desktop.");let G=$.mcpSource?.kind==="http"?$.mcpSource:{kind:"http",url:$.mcp.url,headers:$.mcp.headers,expiresAt:$.mcp.expiresAt};return{modelSource:Z,mcpSource:G}}function L74($,Z){let{input:G}=$,X=bi(G.mode,{isCliAgent:!1}),Y=[...$U$({agentId:Z.virtualMcp.id,isDecopilotAgent:Z.isDecopilot,connectionsBlockTools:Z.connectionsData.tools,connectionTitleMap:Z.connectionsData.connectionTitleMap,agentInstructions:Z.systemAgentInstructions,planPrompt:X.planPrompt,webSearchPrompt:X.webSearchInstructionPrompt}).systemMessages,...Z.additionalSystemMessages],J={...$.passthroughTools,...Z.extraTools},W=O74.getTracer("decopilot-desktop").startSpan("decopilot.agent_loop",{attributes:{"decopilot.agent.id":Z.virtualMcp.id,"decopilot.agent.kind":Z.kind,"decopilot.organization.id":G.organizationId,"decopilot.model.id":Z.models.thinking.id}}),K=rf(Z.provider,Z.models.thinking),U=RN1({model:K,systemMessages:Y,messages:Z.messages,tools:J,prepareStep:Z.prepareStep,temperature:Z.temperature,maxOutputTokens:G81(Z.models.thinking.limits,a9(Y)+a9(Z.messages)+a9(J)),stopWhen:_W(Z.stepLimit??vl),abortSignal:Z.abortSignal,onStepFinish:Z.onStepFinish,onError:(F,H)=>{console.error("[decopilot-desktop] stream error",H)}});return Promise.resolve(U.result.finishReason).finally(()=>W.end()),{result:U.result,error:U.error,span:W,assembledSystemMessages:Y}}function YU$($){let{input:Z,mcpSource:G,modelRuntime:X,sideChannel:Q,cleanup:Y}=$,J=X.image?.provider??X.thinking.provider,W=$.agentOverride?.id??Z.agent.id,K=void 0,U=void 0;return{buildEnvironmentTools:async({input:F})=>{let H=new Map,N=[],O=await oK$(G,{clientInfo:{name:"decopilot-desktop",version:"1"},openHttp:$.openHttp}),B=O.client;Y.close=O.close;try{let{tools:L,nameMap:w}=await lf(B,H,void 0,F.toolApprovalLevel,{isPlanMode:F.mode==="plan",isToolVisible:B74}),z=(await B.listTools()).tools,j=[],P=new Map;for(let s of z){let d=w.get(s.name);if(!d)continue;let p=typeof s._meta?.gatewayClientId==="string"?s._meta.gatewayClientId:"unknown";if(j.push({rawName:s.name,safeName:d,connectionId:p}),s.annotations?.readOnlyHint!==void 0)P.set(d,{readOnlyHint:s.annotations.readOnlyHint})}let R=await tK$(F.objectStorageSource),A=F.organizationSlug??F.projectSlug,M=F.objectStorageSource?new URL(F.objectStorageSource.baseUrl).origin:"",S=fN1({storage:R,baseUrl:M,orgSlug:A,writer:Q.writer,logPrefix:"decopilot-desktop:html-page-buffer"}),k={objectStorage:R,organization:{id:F.organizationId,slug:A},auth:{user:{id:F.user.id}},baseUrl:M},C=eK$()({virtualMcpId:W,branch:F.branch,userId:F.user.id}),u=rK$({writer:Q.writer,toolOutputMap:H,passthroughClient:B,toolApprovalLevel:F.toolApprovalLevel,isPlanMode:F.mode==="plan",ctx:k,imageProvider:J,imageModelInfo:F.models.image,pendingImages:N,threadId:F.threadId,virtualMcpId:W,fs:C,htmlPageBuffer:S,subtask:$.subtask}),x=B.getInstructions()??void 0;return K=L,U=x,{tools:{...L,...u},passthroughTools:L,builtInTools:u,connectionsBlockTools:j,toolAnnotations:P,connectionTitleMap:new Map,serverInstructions:x,passthroughClient:B,writer:Q.writer,pendingImages:N,sideChunks:Q.stream,closeSideChunks:Q.close,onStepFinish:async()=>{await S.flush().catch((s)=>{console.error("[decopilot-desktop] html-page flush failed",s)})},close:O.close}}catch(L){throw await O.close().catch(()=>{}),Y.close=void 0,L}},runEngine:async(F)=>{if(K===void 0)throw Error("[decopilot-desktop] runEngine called before buildEnvironmentTools \u2014 "+"passthroughTools not yet assembled. This is a harness wiring bug.");let H=$.agentOverride?{...F,virtualMcp:{...F.virtualMcp,id:W},systemAgentInstructions:F.systemAgentInstructions??U}:F;return L74({input:Z,passthroughTools:K},H)}}}function JU$($){let{input:Z,modelRuntime:G,sideChannel:X,cleanup:Q,openHttp:Y}=$,{mcpSource:J}=D74(Z),W=async(H,N,O)=>{let L={kind:"http",url:QU$(J.url,N),headers:J.headers,expiresAt:J.expiresAt},w=UN1(),z={},j=N?{...Z,agent:{id:N},virtualMcp:{...Z.virtualMcp,id:N}}:Z,P=YU$({input:j,mcpSource:L,modelRuntime:G,sideChannel:w,cleanup:z,agentOverride:N?{id:N}:void 0,openHttp:Y}),R={input:j,modelRuntime:G,toolRuntime:P,telemetry:void 0};try{return await N3$({prompt:H,deps:R,signal:O})}finally{w.close(),await z.close?.().catch(()=>{})}},K,U=GU$({writer:X.writer,selfAgentId:Z.agent.id,models:Z.models,needsApproval:Z.mode==="plan"||Z.toolApprovalLevel!=="auto",runSubtask:W,onChildUsage:(H)=>K?.(H)}),F=YU$({input:Z,mcpSource:J,modelRuntime:G,sideChannel:X,cleanup:Q,subtask:U,openHttp:Y});return{buildEnvironmentTools:(H)=>{return K=H.onChildUsage,F.buildEnvironmentTools(H)},runEngine:F.runEngine}}var WU$=D(()=>{r4();On1();HN1();Si();aK$();ZU$();FN1();$n1();HL();cW();Ri1();XU$();Nn1()});var KU$=D(()=>{On1()});var UU$=D(()=>{Z3$();L3$();OW$();iK$();WU$();Zi1();Xi1();KU$();O3$(($)=>{let Z=$.ctx;return mK$({...$,ctx:Z,organization:Z.organization})});B3$(JU$);iH1(D3$);iH1($3$);iH1(NW$)});function FU$($){let Z=$.type;if(typeof Z!=="string")return!1;if(Z==="text"||Z==="reasoning")return $.state!=="streaming";if(Z==="step-start")return!1;if(Z.startsWith("tool-")||Z==="dynamic-tool")return $.state==="output-available"||$.state==="output-error"||$.state==="output-denied";return!0}function E74($){let Z=$.type??"";if(Z==="reasoning")return"reasoning";if(Z==="file")return"file";if(Z.startsWith("tool-")||Z==="dynamic-tool")return $.state==="output-available"||$.state==="output-error"||$.state==="output-denied"?"tool_result":"tool_call";return"text"}class Dn1{ctx;base;seqByPart=new Map;emitted=new Set;finished=new Set;partKeyByRowId=new Map;finishMessageIdByRowId=new Map;nextSeq=0;constructor($){this.ctx=$;this.base=$.baseTimeMs??Date.now()}seqFor($){let Z=this.seqByPart.get($);if(Z!==void 0)return Z;let G=this.nextSeq++;return this.seqByPart.set($,G),G}row($,Z,G,X,Q,Y=null){return{id:`${this.ctx.runId}:${$}:${G}`,seq:G,org_id:this.ctx.orgId,thread_id:this.ctx.threadId,run_id:this.ctx.runId,message_id:$,role:Z,kind:X,payload:Q,payload_ref:null,metadata:Y,created_at:new Date(this.base+G).toISOString()}}emitMessageParts($){let Z=$.parts??[],G=[];for(let X=0;X<Z.length;X++){let Q=Z[X];if(!FU$(Q))continue;let Y=`${$.id}#${X}`;if(this.emitted.has(Y))continue;let J=this.seqFor(Y),W=this.row($.id,$.role,J,E74(Q),Q);this.partKeyByRowId.set(W.id,Y),G.push(W)}return G}markFinished($,Z,G=null){if(this.finished.has($))return[];let X=this.seqFor(`${$}#finish`),Q=this.row($,Z,X,"finish",{},G);return this.finishMessageIdByRowId.set(Q.id,$),[Q]}acknowledge($){for(let Z of $){let G=this.partKeyByRowId.get(Z.id);if(G!==void 0)this.emitted.add(G);let X=this.finishMessageIdByRowId.get(Z.id);if(X!==void 0)this.finished.add(X)}}emitUserMessage($){return[...this.emitMessageParts($),...this.markFinished($.id,$.role,$.metadata??null)]}emitStepParts($){return this.emitMessageParts($)}emitFinal($){return[...this.emitMessageParts($),...this.markFinished($.id,$.role,$.metadata??null)]}emitError($,Z){let G=`${$}#error`,X=[];if(!this.emitted.has(G)){let Q=this.seqFor(G),Y=this.row($,"assistant",Q,"error",{type:"text",text:`Error: ${Z}`});this.partKeyByRowId.set(Y.id,G),X.push(Y)}return[...X,...this.markFinished($,"assistant")]}}class cV{ctx;builder;constructor($){this.ctx=$;this.builder=new Dn1($)}async appendBuiltRows($){await this.ctx.storage.appendParts($),this.builder.acknowledge($)}async emitUserMessage($){await this.appendBuiltRows(this.builder.emitUserMessage($))}async emitStepParts($){await this.appendBuiltRows(this.builder.emitStepParts($))}async emitFinal($){await this.appendBuiltRows(this.builder.emitFinal($))}async emitError($,Z){await this.appendBuiltRows(this.builder.emitError($,Z))}}var hN1=()=>{};class li{intervalMs;lastBumpMs=new Map;constructor($=3000){this.intervalMs=$}shouldBump($,Z=Date.now()){let G=this.lastBumpMs.get($);if(G!==void 0&&Z-G<this.intervalMs)return!1;return this.lastBumpMs.set($,Z),!0}clear($){this.lastBumpMs.delete($)}}class HU${thread;organization_id;storage;defaultWindowSize;constructor($){this.thread=$.thread,this.organization_id=$.thread.organization_id,this.storage=$.storage,this.defaultWindowSize=$.defaultWindowSize??50}async loadHistory($){let Z=$??this.defaultWindowSize,{chronological:G,isWindowed:X}=this.thread.message_storage_version===2?await this.loadWindowedFromParts(Z):await this.loadWindowedFromMessages(Z),Q=G.find((K)=>K.role!=="system");if(!Q||Q.role==="user")return G;let Y=Q,J=X?"[Context: earlier turns in this conversation were truncated. The messages below continue the thread \u2014 pick up from there.]":"[Context: this thread opens with your message \u2014 you spoke first to greet the user, and the user has not spoken before it. Their reply follows.]";return[{id:`${this.thread.id}-msg-prefix`,thread_id:this.thread.id,role:"user",parts:[{type:"text",text:J}],metadata:void 0,created_at:Y.created_at,updated_at:Y.updated_at},...G]}async loadWindowedFromMessages($){let{messages:Z,total:G}=await this.storage.listMessages(this.thread.id,{limit:$,sort:"desc"});return{chronological:[...Z].reverse(),isWindowed:G>Z.length}}async loadWindowedFromParts($){let{messages:Z,total:G}=await this.storage.messageParts().loadWindow(this.thread.id,{limit:$});return{chronological:Z.map((Q)=>({id:Q.id,thread_id:this.thread.id,role:Q.role,parts:Q.parts,metadata:Q.metadata??void 0,created_at:Q.created_at,updated_at:Q.created_at})),isWindowed:G>Z.length}}async save($){if($.length===0)return;await this.storage.saveMessages($)}}async function NU$($,Z){let{thread_id:G,defaultWindowSize:X}=Z;if(!G)throw Error("createMemory: thread_id is required");let Q=await $.get(G);if(!Q)throw Error(`Thread not found: ${G}`);return new HU$({thread:Q,storage:$,defaultWindowSize:X})}function OU$($,Z){let G=$.thinking.capabilities;if(!((G?.vision??!1)||(G?.file??!1))){if(Z.some((Y)=>Y.parts?.some((J)=>J.type==="file")))throw new t$(400,{message:"This model does not support file uploads. Please change the model and try again."})}}var BU$=D(()=>{OJ()});function uN1($){return async(Z)=>{let G=null;try{G=await $.ctx.storage.threads.get($.threadId)}catch{G=null}$.sseHub.emit($.organizationId,sQ($.threadId,G?.status??"in_progress",{title:Z,virtualMcpId:G?.virtual_mcp_id??void 0,createdBy:G?.created_by,triggerId:G?.trigger_id,branch:G?.branch??null,createdAt:G?.created_at,updatedAt:G?.updated_at}))}}var Ln1=D(()=>{S8()});async function*DU$($,Z){let G=Z.persistTitle??((Q,Y)=>Z.ctx.storage.threads.update(Q,{title:Y}).then(()=>{})),X=!1;for await(let Q of $){if(oJ$(Q)){console.warn("[title-interceptor] harness emitted deprecated data-title-input chunk; ignoring");continue}if(rJ$(Q)){if(X){console.warn("[title-interceptor] harness emitted multiple data-title-result chunks; ignoring extra");continue}if(X=!0,Z.currentThreadTitle!==FL)continue;let Y=Q.data.title;if(!Y)continue;await G(Z.threadId,Y).catch((J)=>{console.error("[title-interceptor] persist failed for thread",Z.threadId,J)});try{await Z.onTitleUpdated?.(Y)}catch(J){console.error("[title-interceptor] onTitleUpdated callback failed",J)}if(!Z.isStreamFinished())try{Z.writer.write({type:"data-thread-title",data:{title:Y},transient:!0})}catch(J){console.error("[title-interceptor] writer.write failed",J)}continue}yield Q}}var LU$=D(()=>{NL()});function w74($){let Z=$[Symbol.asyncIterator]();return new ReadableStream({async pull(G){try{let{value:X,done:Q}=await Z.next();if(Q)G.close();else G.enqueue(X)}catch(X){G.error(X)}},async cancel(G){await Z.return?.(G)}})}function z74($){let Z=$.metadata?.usage;if(!Z||typeof Z!=="object"||Array.isArray(Z))return null;let G=Z,X=(Q)=>typeof Q==="number"?Q:0;return{...G,inputTokens:X(G.inputTokens),outputTokens:X(G.outputTokens),totalTokens:X(G.totalTokens)}}function $x($){let Z=[],G=!1,X=!1,Q=crypto.randomUUID(),Y,J=new Promise((K)=>{Y=K});return{uiStream:hm({originalMessages:$.originalMessages,execute:({writer:K})=>{let U=DU$($.chunks,{ctx:null,isStreamFinished:()=>G,currentThreadTitle:$.title.currentThreadTitle,threadId:$.title.threadId,writer:K,onTitleUpdated:$.title.onTitleUpdated,persistTitle:$.title.persistTitle});K.merge(w74(U))},onStepFinish:({responseMessage:K})=>{Z.push($.persistence.emitStepParts(K).catch((U)=>console.error("[consume-harness-stream] emitStepParts failed",U))),Z.push(Promise.resolve($.hooks?.onStep?.(K)).catch((U)=>console.error("[consume-harness-stream] onStep hook failed",U)))},onFinish:async({responseMessage:K,finishReason:U})=>{if(G=!0,await Promise.allSettled(Z),!X)await $.persistence.emitFinal(K).catch((H)=>console.error("[consume-harness-stream] emitFinal failed",H));let F=z74(K);if(F)await Promise.resolve($.hooks?.onUsage?.(F)).catch((H)=>console.error("[consume-harness-stream] onUsage hook failed",H));await Promise.resolve($.hooks?.onFinish?.(K,U)).catch((H)=>console.error("[consume-harness-stream] onFinish hook failed",H)),Y()},onError:(K)=>{G=!0;let U=K instanceof Error?K.message:String(K);if(!X)X=!0,Z.push($.persistence.emitError(Q,U).catch((F)=>console.error("[consume-harness-stream] emitError failed",F))),Z.push(Promise.resolve($.hooks?.onError?.(K)).catch((F)=>console.error("[consume-harness-stream] onError hook failed",F)));return $.sanitizeErrorText?$.sanitizeErrorText(K):U}}),whenComplete:J,isStreamFinished:()=>G}}var cN1=D(()=>{r4();LU$()});function di($,Z){let G=$.capabilities?{...$.capabilities.vision!==void 0?{vision:$.capabilities.vision}:{},...$.capabilities.text!==void 0?{text:$.capabilities.text}:{},...$.capabilities.reasoning!==void 0?{reasoning:$.capabilities.reasoning}:{}}:void 0;return{id:$.id,...$.title!==void 0?{title:$.title}:{},...$.provider!==void 0?{provider:$.provider}:{},credentialId:Z,...$.limits?{limits:$.limits}:{},...G&&Object.keys(G).length>0?{capabilities:G}:{}}}function EU$($){let Z=$.credentialId,G=di($.thinking,Z);return{thinking:{...G,title:G.title??G.id},...$.fast?{fast:di($.fast,Z)}:{},...$.smart?{smart:di($.smart,Z)}:{},...$.image?{image:di($.image,$.image.credentialId??Z)}:{},...$.deepResearch?{deepResearch:di($.deepResearch,$.deepResearch.credentialId??Z)}:{}}}function wU$($,Z=[]){if($==="stop")return Z.filter((Q)=>Q.type==="text"&&Q.text).map((Q)=>Q.text).join(`
|
|
2558
|
+
- The subagent's output should generally be trusted.`,N74={readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!0}});function QU$($,Z){if(!Z)return $;return $.replace(/\/virtual-mcp\/[^/]+\/?$/,`/virtual-mcp/${encodeURIComponent(Z)}`)}import{trace as O74}from"@opentelemetry/api";function B74($){let G=$._meta?.ui?.visibility;if(G==null)return!0;if(typeof G==="string")return G==="model";if(Array.isArray(G))return G.includes("model");return!0}function D74($){let Z=$.modelSources?.thinking?.kind==="secret"?$.modelSources.thinking:null;if(!Z)throw Error("decopilot-desktop requires a secret thinking model source. The cluster must inject the chat-model credential when routing decopilot to user-desktop.");let G=$.mcpSource?.kind==="http"?$.mcpSource:{kind:"http",url:$.mcp.url,headers:$.mcp.headers,expiresAt:$.mcp.expiresAt};return{modelSource:Z,mcpSource:G}}function L74($,Z){let{input:G}=$,X=bi(G.mode,{isCliAgent:!1}),Y=[...$U$({agentId:Z.virtualMcp.id,isDecopilotAgent:Z.isDecopilot,connectionsBlockTools:Z.connectionsData.tools,connectionTitleMap:Z.connectionsData.connectionTitleMap,agentInstructions:Z.systemAgentInstructions,planPrompt:X.planPrompt,webSearchPrompt:X.webSearchInstructionPrompt}).systemMessages,...Z.additionalSystemMessages],J={...$.passthroughTools,...Z.extraTools},W=O74.getTracer("decopilot-desktop").startSpan("decopilot.agent_loop",{attributes:{"decopilot.agent.id":Z.virtualMcp.id,"decopilot.agent.kind":Z.kind,"decopilot.organization.id":G.organizationId,"decopilot.model.id":Z.models.thinking.id}}),K=rf(Z.provider,Z.models.thinking),U=RN1({model:K,systemMessages:Y,messages:Z.messages,tools:J,prepareStep:Z.prepareStep,temperature:Z.temperature,maxOutputTokens:G81(Z.models.thinking.limits,a9(Y)+a9(Z.messages)+a9(J)),stopWhen:_W(Z.stepLimit??vl),abortSignal:Z.abortSignal,onStepFinish:Z.onStepFinish,onError:(F,H)=>{console.error("[decopilot-desktop] stream error",H)}});return Promise.resolve(U.result.finishReason).finally(()=>W.end()),{result:U.result,error:U.error,span:W,assembledSystemMessages:Y}}function YU$($){let{input:Z,mcpSource:G,modelRuntime:X,sideChannel:Q,cleanup:Y}=$,J=X.image?.provider??X.thinking.provider,W=$.agentOverride?.id??Z.agent.id,K=void 0,U=void 0;return{buildEnvironmentTools:async({input:F})=>{let H=new Map,N=[],O=await oK$(G,{clientInfo:{name:"decopilot-desktop",version:"1"},openHttp:$.openHttp}),B=O.client;Y.close=O.close;try{let{tools:L,nameMap:w,rawTools:z}=await lf(B,H,void 0,F.toolApprovalLevel,{isPlanMode:F.mode==="plan",isToolVisible:B74}),j=[],P=new Map;for(let s of z){let d=w.get(s.name);if(!d)continue;let p=typeof s._meta?.gatewayClientId==="string"?s._meta.gatewayClientId:"unknown";if(j.push({rawName:s.name,safeName:d,connectionId:p}),s.annotations?.readOnlyHint!==void 0)P.set(d,{readOnlyHint:s.annotations.readOnlyHint})}let R=await tK$(F.objectStorageSource),A=F.organizationSlug??F.projectSlug,M=F.objectStorageSource?new URL(F.objectStorageSource.baseUrl).origin:"",S=fN1({storage:R,baseUrl:M,orgSlug:A,writer:Q.writer,logPrefix:"decopilot-desktop:html-page-buffer"}),k={objectStorage:R,organization:{id:F.organizationId,slug:A},auth:{user:{id:F.user.id}},baseUrl:M},C=eK$()({virtualMcpId:W,branch:F.branch,userId:F.user.id}),u=rK$({writer:Q.writer,toolOutputMap:H,passthroughClient:B,toolApprovalLevel:F.toolApprovalLevel,isPlanMode:F.mode==="plan",ctx:k,imageProvider:J,imageModelInfo:F.models.image,pendingImages:N,threadId:F.threadId,virtualMcpId:W,fs:C,htmlPageBuffer:S,subtask:$.subtask}),x=B.getInstructions()??void 0;return K=L,U=x,{tools:{...L,...u},passthroughTools:L,builtInTools:u,connectionsBlockTools:j,toolAnnotations:P,connectionTitleMap:new Map,serverInstructions:x,passthroughClient:B,writer:Q.writer,pendingImages:N,sideChunks:Q.stream,closeSideChunks:Q.close,onStepFinish:async()=>{await S.flush().catch((s)=>{console.error("[decopilot-desktop] html-page flush failed",s)})},close:O.close}}catch(L){throw await O.close().catch(()=>{}),Y.close=void 0,L}},runEngine:async(F)=>{if(K===void 0)throw Error("[decopilot-desktop] runEngine called before buildEnvironmentTools \u2014 "+"passthroughTools not yet assembled. This is a harness wiring bug.");let H=$.agentOverride?{...F,virtualMcp:{...F.virtualMcp,id:W},systemAgentInstructions:F.systemAgentInstructions??U}:F;return L74({input:Z,passthroughTools:K},H)}}}function JU$($){let{input:Z,modelRuntime:G,sideChannel:X,cleanup:Q,openHttp:Y}=$,{mcpSource:J}=D74(Z),W=async(H,N,O)=>{let L={kind:"http",url:QU$(J.url,N),headers:J.headers,expiresAt:J.expiresAt},w=UN1(),z={},j=N?{...Z,agent:{id:N},virtualMcp:{...Z.virtualMcp,id:N}}:Z,P=YU$({input:j,mcpSource:L,modelRuntime:G,sideChannel:w,cleanup:z,agentOverride:N?{id:N}:void 0,openHttp:Y}),R={input:j,modelRuntime:G,toolRuntime:P,telemetry:void 0};try{return await N3$({prompt:H,deps:R,signal:O})}finally{w.close(),await z.close?.().catch(()=>{})}},K,U=GU$({writer:X.writer,selfAgentId:Z.agent.id,models:Z.models,needsApproval:Z.mode==="plan"||Z.toolApprovalLevel!=="auto",runSubtask:W,onChildUsage:(H)=>K?.(H)}),F=YU$({input:Z,mcpSource:J,modelRuntime:G,sideChannel:X,cleanup:Q,subtask:U,openHttp:Y});return{buildEnvironmentTools:(H)=>{return K=H.onChildUsage,F.buildEnvironmentTools(H)},runEngine:F.runEngine}}var WU$=D(()=>{r4();On1();HN1();Si();aK$();ZU$();FN1();$n1();HL();cW();Ri1();XU$();Nn1()});var KU$=D(()=>{On1()});var UU$=D(()=>{Z3$();L3$();OW$();iK$();WU$();Zi1();Xi1();KU$();O3$(($)=>{let Z=$.ctx;return mK$({...$,ctx:Z,organization:Z.organization})});B3$(JU$);iH1(D3$);iH1($3$);iH1(NW$)});function FU$($){let Z=$.type;if(typeof Z!=="string")return!1;if(Z==="text"||Z==="reasoning")return $.state!=="streaming";if(Z==="step-start")return!1;if(Z.startsWith("tool-")||Z==="dynamic-tool")return $.state==="output-available"||$.state==="output-error"||$.state==="output-denied";return!0}function E74($){let Z=$.type??"";if(Z==="reasoning")return"reasoning";if(Z==="file")return"file";if(Z.startsWith("tool-")||Z==="dynamic-tool")return $.state==="output-available"||$.state==="output-error"||$.state==="output-denied"?"tool_result":"tool_call";return"text"}class Dn1{ctx;base;seqByPart=new Map;emitted=new Set;finished=new Set;partKeyByRowId=new Map;finishMessageIdByRowId=new Map;nextSeq=0;constructor($){this.ctx=$;this.base=$.baseTimeMs??Date.now()}seqFor($){let Z=this.seqByPart.get($);if(Z!==void 0)return Z;let G=this.nextSeq++;return this.seqByPart.set($,G),G}row($,Z,G,X,Q,Y=null){return{id:`${this.ctx.runId}:${$}:${G}`,seq:G,org_id:this.ctx.orgId,thread_id:this.ctx.threadId,run_id:this.ctx.runId,message_id:$,role:Z,kind:X,payload:Q,payload_ref:null,metadata:Y,created_at:new Date(this.base+G).toISOString()}}emitMessageParts($){let Z=$.parts??[],G=[];for(let X=0;X<Z.length;X++){let Q=Z[X];if(!FU$(Q))continue;let Y=`${$.id}#${X}`;if(this.emitted.has(Y))continue;let J=this.seqFor(Y),W=this.row($.id,$.role,J,E74(Q),Q);this.partKeyByRowId.set(W.id,Y),G.push(W)}return G}markFinished($,Z,G=null){if(this.finished.has($))return[];let X=this.seqFor(`${$}#finish`),Q=this.row($,Z,X,"finish",{},G);return this.finishMessageIdByRowId.set(Q.id,$),[Q]}acknowledge($){for(let Z of $){let G=this.partKeyByRowId.get(Z.id);if(G!==void 0)this.emitted.add(G);let X=this.finishMessageIdByRowId.get(Z.id);if(X!==void 0)this.finished.add(X)}}emitUserMessage($){return[...this.emitMessageParts($),...this.markFinished($.id,$.role,$.metadata??null)]}emitStepParts($){return this.emitMessageParts($)}emitFinal($){return[...this.emitMessageParts($),...this.markFinished($.id,$.role,$.metadata??null)]}emitError($,Z){let G=`${$}#error`,X=[];if(!this.emitted.has(G)){let Q=this.seqFor(G),Y=this.row($,"assistant",Q,"error",{type:"text",text:`Error: ${Z}`});this.partKeyByRowId.set(Y.id,G),X.push(Y)}return[...X,...this.markFinished($,"assistant")]}}class cV{ctx;builder;constructor($){this.ctx=$;this.builder=new Dn1($)}async appendBuiltRows($){await this.ctx.storage.appendParts($),this.builder.acknowledge($)}async emitUserMessage($){await this.appendBuiltRows(this.builder.emitUserMessage($))}async emitStepParts($){await this.appendBuiltRows(this.builder.emitStepParts($))}async emitFinal($){await this.appendBuiltRows(this.builder.emitFinal($))}async emitError($,Z){await this.appendBuiltRows(this.builder.emitError($,Z))}}var hN1=()=>{};class li{intervalMs;lastBumpMs=new Map;constructor($=3000){this.intervalMs=$}shouldBump($,Z=Date.now()){let G=this.lastBumpMs.get($);if(G!==void 0&&Z-G<this.intervalMs)return!1;return this.lastBumpMs.set($,Z),!0}clear($){this.lastBumpMs.delete($)}}class HU${thread;organization_id;storage;defaultWindowSize;constructor($){this.thread=$.thread,this.organization_id=$.thread.organization_id,this.storage=$.storage,this.defaultWindowSize=$.defaultWindowSize??50}async loadHistory($){let Z=$??this.defaultWindowSize,{chronological:G,isWindowed:X}=this.thread.message_storage_version===2?await this.loadWindowedFromParts(Z):await this.loadWindowedFromMessages(Z),Q=G.find((K)=>K.role!=="system");if(!Q||Q.role==="user")return G;let Y=Q,J=X?"[Context: earlier turns in this conversation were truncated. The messages below continue the thread \u2014 pick up from there.]":"[Context: this thread opens with your message \u2014 you spoke first to greet the user, and the user has not spoken before it. Their reply follows.]";return[{id:`${this.thread.id}-msg-prefix`,thread_id:this.thread.id,role:"user",parts:[{type:"text",text:J}],metadata:void 0,created_at:Y.created_at,updated_at:Y.updated_at},...G]}async loadWindowedFromMessages($){let{messages:Z,total:G}=await this.storage.listMessages(this.thread.id,{limit:$,sort:"desc"});return{chronological:[...Z].reverse(),isWindowed:G>Z.length}}async loadWindowedFromParts($){let{messages:Z,total:G}=await this.storage.messageParts().loadWindow(this.thread.id,{limit:$});return{chronological:Z.map((Q)=>({id:Q.id,thread_id:this.thread.id,role:Q.role,parts:Q.parts,metadata:Q.metadata??void 0,created_at:Q.created_at,updated_at:Q.created_at})),isWindowed:G>Z.length}}async save($){if($.length===0)return;await this.storage.saveMessages($)}}async function NU$($,Z){let{thread_id:G,defaultWindowSize:X}=Z;if(!G)throw Error("createMemory: thread_id is required");let Q=await $.get(G);if(!Q)throw Error(`Thread not found: ${G}`);return new HU$({thread:Q,storage:$,defaultWindowSize:X})}function OU$($,Z){let G=$.thinking.capabilities;if(!((G?.vision??!1)||(G?.file??!1))){if(Z.some((Y)=>Y.parts?.some((J)=>J.type==="file")))throw new t$(400,{message:"This model does not support file uploads. Please change the model and try again."})}}var BU$=D(()=>{OJ()});function uN1($){return async(Z)=>{let G=null;try{G=await $.ctx.storage.threads.get($.threadId)}catch{G=null}$.sseHub.emit($.organizationId,sQ($.threadId,G?.status??"in_progress",{title:Z,virtualMcpId:G?.virtual_mcp_id??void 0,createdBy:G?.created_by,triggerId:G?.trigger_id,branch:G?.branch??null,createdAt:G?.created_at,updatedAt:G?.updated_at}))}}var Ln1=D(()=>{S8()});async function*DU$($,Z){let G=Z.persistTitle??((Q,Y)=>Z.ctx.storage.threads.update(Q,{title:Y}).then(()=>{})),X=!1;for await(let Q of $){if(oJ$(Q)){console.warn("[title-interceptor] harness emitted deprecated data-title-input chunk; ignoring");continue}if(rJ$(Q)){if(X){console.warn("[title-interceptor] harness emitted multiple data-title-result chunks; ignoring extra");continue}if(X=!0,Z.currentThreadTitle!==FL)continue;let Y=Q.data.title;if(!Y)continue;await G(Z.threadId,Y).catch((J)=>{console.error("[title-interceptor] persist failed for thread",Z.threadId,J)});try{await Z.onTitleUpdated?.(Y)}catch(J){console.error("[title-interceptor] onTitleUpdated callback failed",J)}if(!Z.isStreamFinished())try{Z.writer.write({type:"data-thread-title",data:{title:Y},transient:!0})}catch(J){console.error("[title-interceptor] writer.write failed",J)}continue}yield Q}}var LU$=D(()=>{NL()});function w74($){let Z=$[Symbol.asyncIterator]();return new ReadableStream({async pull(G){try{let{value:X,done:Q}=await Z.next();if(Q)G.close();else G.enqueue(X)}catch(X){G.error(X)}},async cancel(G){await Z.return?.(G)}})}function z74($){let Z=$.metadata?.usage;if(!Z||typeof Z!=="object"||Array.isArray(Z))return null;let G=Z,X=(Q)=>typeof Q==="number"?Q:0;return{...G,inputTokens:X(G.inputTokens),outputTokens:X(G.outputTokens),totalTokens:X(G.totalTokens)}}function $x($){let Z=[],G=!1,X=!1,Q=crypto.randomUUID(),Y,J=new Promise((K)=>{Y=K});return{uiStream:hm({originalMessages:$.originalMessages,execute:({writer:K})=>{let U=DU$($.chunks,{ctx:null,isStreamFinished:()=>G,currentThreadTitle:$.title.currentThreadTitle,threadId:$.title.threadId,writer:K,onTitleUpdated:$.title.onTitleUpdated,persistTitle:$.title.persistTitle});K.merge(w74(U))},onStepFinish:({responseMessage:K})=>{Z.push($.persistence.emitStepParts(K).catch((U)=>console.error("[consume-harness-stream] emitStepParts failed",U))),Z.push(Promise.resolve($.hooks?.onStep?.(K)).catch((U)=>console.error("[consume-harness-stream] onStep hook failed",U)))},onFinish:async({responseMessage:K,finishReason:U})=>{if(G=!0,await Promise.allSettled(Z),!X)await $.persistence.emitFinal(K).catch((H)=>console.error("[consume-harness-stream] emitFinal failed",H));let F=z74(K);if(F)await Promise.resolve($.hooks?.onUsage?.(F)).catch((H)=>console.error("[consume-harness-stream] onUsage hook failed",H));await Promise.resolve($.hooks?.onFinish?.(K,U)).catch((H)=>console.error("[consume-harness-stream] onFinish hook failed",H)),Y()},onError:(K)=>{G=!0;let U=K instanceof Error?K.message:String(K);if(!X)X=!0,Z.push($.persistence.emitError(Q,U).catch((F)=>console.error("[consume-harness-stream] emitError failed",F))),Z.push(Promise.resolve($.hooks?.onError?.(K)).catch((F)=>console.error("[consume-harness-stream] onError hook failed",F)));return $.sanitizeErrorText?$.sanitizeErrorText(K):U}}),whenComplete:J,isStreamFinished:()=>G}}var cN1=D(()=>{r4();LU$()});function di($,Z){let G=$.capabilities?{...$.capabilities.vision!==void 0?{vision:$.capabilities.vision}:{},...$.capabilities.text!==void 0?{text:$.capabilities.text}:{},...$.capabilities.reasoning!==void 0?{reasoning:$.capabilities.reasoning}:{}}:void 0;return{id:$.id,...$.title!==void 0?{title:$.title}:{},...$.provider!==void 0?{provider:$.provider}:{},credentialId:Z,...$.limits?{limits:$.limits}:{},...G&&Object.keys(G).length>0?{capabilities:G}:{}}}function EU$($){let Z=$.credentialId,G=di($.thinking,Z);return{thinking:{...G,title:G.title??G.id},...$.fast?{fast:di($.fast,Z)}:{},...$.smart?{smart:di($.smart,Z)}:{},...$.image?{image:di($.image,$.image.credentialId??Z)}:{},...$.deepResearch?{deepResearch:di($.deepResearch,$.deepResearch.credentialId??Z)}:{}}}function wU$($,Z=[]){if($==="stop")return Z.filter((Q)=>Q.type==="text"&&Q.text).map((Q)=>Q.text).join(`
|
|
2559
2559
|
`).replace(/https?:\/\/[^\s)>\]]+/g,"").includes("?")?"requires_action":"completed";if($==="tool-calls"){let G=Z.some((Q)=>Q.type==="tool-user_ask"&&Q.state==="input-available"),X=Z.some((Q)=>Q.state==="approval-requested");return G||X?"requires_action":"completed"}return"failed"}function En1(){return b0().podName}var zU$=D(()=>{$6()});function j74($,Z,G){return $.pipeThrough(new TransformStream({transform(X,Q){if(RU$.shouldBump(G))Z.storage.threads.bumpProgress(G).catch(()=>{});Q.enqueue(X)},flush(){RU$.clear(G)}}))}function P74($){let Z=null;return new ReadableStream({async pull(G){try{Z??=$().getReader();let{done:X,value:Q}=await Z.read();if(X)G.close();else G.enqueue(Q)}catch(X){G.error(X)}},async cancel(G){await Z?.cancel(G)}},{highWaterMark:0})}function wn1($){if($==="claude-code")return"claude-code";if($==="codex")return"codex";return"decopilot"}function A74($,Z){let G=!!$?.metadata?.githubRepo;if(Z==="user-desktop"&&G)return{cwd:tJ$};return{cwd:pJ$}}function R74($,Z){if(Z!=="claude-code")return;for(let G=$.length-1;G>=0;G--){let X=$[G],Q=X?.metadata;if(X?.role==="assistant"&&Q?.codingAgentSessionId&&Q?.codingAgentProvider==="claude-code")return Q.codingAgentSessionId}return}async function I74($,Z,G,X){let{keyInfo:Q,apiKey:Y}=await $.storage.aiProviderKeys.resolve(G,Z);return gN1({providerId:Q.providerId,apiKey:Y,modelId:X})}async function T74($,Z,G,X,Q){let Y=await $.boundAuth.apiKey.create({name:X,expiresIn:IU$,metadata:{organization:{id:G.id,slug:G.slug,name:G.name}}});return{url:`${Q==="user-desktop"?I3():jr()}/mcp/virtual-mcp/${Z}`,headers:{Authorization:`Bearer ${Y.key}`,"x-org-id":G.id},expiresAt:Date.now()+IU$*1000}}function TU$($){let Z=$.models;return{"decopilot.agent.id":$.agent.id,"decopilot.model.id":Z.thinking.id,"decopilot.credential.id":Z.credentialId,"decopilot.organization.id":$.organizationId,"decopilot.user.id":$.userId,"decopilot.thread.id":$.taskId??""}}async function qU$($,Z,G){return IB1("decopilot.dispatchRunAndWait",async(X)=>{let{taskId:Q,uiStream:Y,registrySignal:J}=await MU$($,Z,G,X),W=G.streamBuffer,K=W?await W.createTailStream(Q,$.abortSignal,{deliverPolicy:"new",closeOnDone:!0}):null;if(W&&K){W.pump(Y,Q,J,$.organizationId);let U=K.getReader();try{while(!0){let{done:F}=await U.read();if(F)break}}finally{U.releaseLock()}}else{let U=Y.getReader();try{while(!0){let{done:F}=await U.read();if(F)break}}finally{U.releaseLock()}}return{taskId:Q}},TU$($))}async function q74($,Z,G,X){let[Q,Y,J]=await Promise.all([$.storage.threads.list(X,{limit:9,agentId:G}).catch(()=>null),$.storage.interests.getForAgent(Z,G,X).catch(()=>null),$.storage.virtualMcps.list(Z).catch(()=>null)]),W={};if(Q&&Q.total>0)W.recentThreads={total:Q.total,threads:Q.threads.map((K)=>({id:K.id,title:K.title,updated_at:K.updated_at}))};if(Y&&Y.interests.length>0)W.interests=Y.interests.map((K)=>({title:K.title,summary:K.summary}));if(J)W.agents=J.map((K)=>({id:K.id,name:K.title,description:K.description,status:K.status}));return W}async function M74({virtualMcp:$,agentId:Z,organizationId:G,ctx:X}){let Q=Be(Z);if(!Q)return $;let Y=await Kq0(Q,{orgId:G,ctx:X}),J=Y.selectedTools?[...Y.selectedTools]:null;return{...$,metadata:{...$.metadata??{},instructions:Y.instructions},connections:$.connections.map((W)=>({...W,selected_tools:J}))}}async function MU$($,Z,G,X){let{runRegistry:Q,streamBuffer:Y,sseHub:J}=G;$={...$,messages:$.messages.map((U)=>U.id?U:{...U,id:xl()})};let W=!1,K;try{let U=$.models,F=await Z.storage.aiProviderKeys.findById(U.credentialId,$.organizationId).catch(()=>null),H=$.harnessId??wn1(F?.providerId);X.setAttribute("decopilot.harnessId",H);let N=$.target??{sandboxProviderKind:"agent-sandbox"};if(N.sandboxProviderKind==="agent-sandbox")Z.sandboxPreference="agent-sandbox",Z.linkForCurrentRun=void 0;else Z.sandboxPreference="user-desktop",Z.linkForCurrentRun=N.link;X.setAttribute("decopilot.dispatchTarget.sandboxProviderKind",N.sandboxProviderKind);let O=EU$(U);if(H==="decopilot"){let D1=await iU(Z.db,$.organizationId,Z.auth.user?.role);if(!eN(D1,O.thinking.credentialId,O.thinking.id))throw Error("Model not allowed for your role");O=p41(D1,O)}let B=$.windowSize??AU;if(!$.taskId)throw Error("dispatchRunAndWait: taskId is required");let L=(D1)=>H==="decopilot"&&D1?I74(Z,$.organizationId,D1.credentialId,D1.id):Promise.resolve(void 0),[w,z,j,P,R,A,M,S]=await Promise.all([Z.storage.virtualMcps.findById($.agent.id,$.organizationId),L(O.thinking),L(O.fast),L(O.smart),L(O.image),L(O.deepResearch),NU$(Z.storage.threads,{organization_id:$.organizationId,thread_id:$.taskId,userId:$.userId,defaultWindowSize:B}),H==="decopilot"&&N.sandboxProviderKind!=="user-desktop"?q74(Z,$.organizationId,$.agent.id,$.userId):Promise.resolve(void 0)]),k=z?{thinking:z,...j?{fast:j}:{},...P?{smart:P}:{},...R?{image:R}:{},...A?{deepResearch:A}:{}}:void 0,C=z?KN1(z):null;if($.isResume)console.log("[decopilot:stream] resume \u2014 resolved source state",{taskId:$.taskId,harnessId:H,thinkingSourceResolved:!!z,imageSourceResolved:!!R,deepResearchSourceResolved:!!A,thinkingModelId:O.thinking.id,hasImage:!!O.image,hasDeepResearch:!!O.deepResearch});if(K=M.thread.id,Z.metadata.threadId=M.thread.id,X.setAttribute("decopilot.thread.id",M.thread.id),M.thread.created_by!==$.userId)throw Error("You are not allowed to write to this thread because you are not the owner");if(C?.asyncResearch){let D1=[["thinking",O.thinking.id]];if(O.fast)D1.push(["fast",O.fast.id]);if(O.smart)D1.push(["smart",O.smart.id]);if(O.image)D1.push(["image",O.image.id]);for(let[F0,G0]of D1)if(C.asyncResearch.canHandle(G0))throw Error(`Model "${G0}" can only be used as a Deep Research model. It is not usable as the ${F0} model \u2014 set it in the Deep Research slot instead.`)}let u=async(...D1)=>{let F0=Date.now(),G0=[...new Map(D1.filter(Boolean).map((M1)=>[M1.id,M1])).values()].filter((M1)=>M1.parts&&M1.parts.length>0).map((M1,J1)=>({...M1,thread_id:M.thread.id,created_at:new Date(F0+J1).toISOString(),updated_at:new Date(F0+J1).toISOString()}));if(G0.length===0)return;await M.save(G0).catch((M1)=>{jU$.add(1,{"org.id":$.organizationId}),console.error("[decopilot:stream] Error saving messages",M1)})},y=M.thread.message_storage_version===2?new cV({storage:Z.storage.threads.messageParts(),orgId:$.organizationId,threadId:M.thread.id,runId:M.thread.id}):null;if(!w)throw new Nm("agent_not_found","Agent not found");let s=await M74({virtualMcp:w,agentId:$.agent.id,organizationId:$.organizationId,ctx:Z});if($.isResume)await Q.execute({type:"RESUME",taskId:M.thread.id,orgId:$.organizationId,userId:$.userId,abortController:new AbortController,podId:En1()});else await Q.execute({type:"START",taskId:M.thread.id,orgId:$.organizationId,userId:$.userId,abortController:new AbortController,podId:En1(),runConfig:{models:$.models,agent:$.agent,temperature:$.temperature,toolApprovalLevel:$.toolApprovalLevel,mode:$.mode,windowSize:$.windowSize,triggerId:$.triggerId}});W=!0,await Z.storage.threads.clearCancelRequested(M.thread.id);let d=crypto.randomUUID();await Z.storage.threads.setRunFence(M.thread.id,d);let p=Q.getAbortSignal(M.thread.id);if(!p)throw await Q.execute({type:"FINISH",taskId:M.thread.id,threadStatus:"failed"}),Error("Run was cancelled immediately after starting");if($.abortSignal){let D1=$.abortSignal;if(D1.aborted)await Q.execute({type:"CANCEL",taskId:M.thread.id});else D1.addEventListener("abort",()=>{Q.execute({type:"CANCEL",taskId:M.thread.id}).catch(()=>{})},{once:!0})}Y?.purge(M.thread.id);let Q1=$.messages.filter((D1)=>D1.role==="system"),G1=$.messages.find((D1)=>D1.role!=="system"),U1=G1?(await QK$([G1],Z,{threadId:M.thread.id})).find((D1)=>D1.role!=="system"):void 0;if(!$.isResume){if(!U1)throw new Nm("empty_request","No user message found in input \u2014 expected at least one non-system message");if(y)await y.emitUserMessage(U1).catch((D1)=>{console.error("[decopilot:stream] v2 user-message emit failed",D1)});else await u(U1)}let m=[],K1=await WY$(M,U1,Q1,B),o=R74(K1,H),H1=Z.organization,E1=Date.now(),L1={inputTokens:0,outputTokens:0,totalTokens:0},m1=await YK$(K1,Z);OU$($.models,m1);let I1=H==="decopilot"&&N.sandboxProviderKind!=="user-desktop"?{url:"",headers:{},expiresAt:0}:await T74(Z,$.agent.id,H1,H==="claude-code"?"claude-code-session":H==="decopilot"?"decopilot-session":"codex-session",N.sandboxProviderKind),k1=I1.expiresAt>0?{kind:"http",url:I1.url,headers:I1.headers,expiresAt:I1.expiresAt}:void 0,n1=N.sandboxProviderKind==="user-desktop"&&H1.slug?{kind:"http",baseUrl:`${I3()}/api/${encodeURIComponent(H1.slug)}/object-storage`,headers:I1.headers,expiresAt:I1.expiresAt}:void 0,$1={harnessId:H,threadId:M.thread.id,runId:M.thread.id,resumeSessionRef:o,messages:m1,workspace:A74(s,N.sandboxProviderKind),models:O,modelSources:k,mcpSource:k1,objectStorageSource:n1,mcp:I1,mode:$.mode,temperature:$.temperature,toolApprovalLevel:$.toolApprovalLevel,toolAllowlist:$.toolAllowlist??null,maxAgentSteps:$.maxAgentSteps,user:{id:$.userId,email:Z.auth.user?.email??""},organizationId:$.organizationId,organizationSlug:H1.slug,projectSlug:H1.slug,virtualMcp:s,agent:{id:$.agent.id},branch:$.branch,taskId:$.taskId,triggerId:$.triggerId,currentThreadTitle:M.thread.title,runFenceToken:d,userContext:S},Y1=(D1)=>{L1={inputTokens:L1.inputTokens+D1.inputTokens,outputTokens:L1.outputTokens+D1.outputTokens,totalTokens:L1.totalTokens+D1.totalTokens}},r=J?uN1({ctx:Z,sseHub:J,threadId:M.thread.id,organizationId:$.organizationId}):void 0,t=async function*(){let D1={...$1,signal:p};if(N.sandboxProviderKind==="user-desktop")throw Error("user-desktop runs use the pull transport \u2014 dispatchRunAndWait must not run a local harness for them");yield*new Qi1({ctx:Z,harnessId:H}).dispatch(D1)},y1=P74(()=>j74($x({chunks:t(),originalMessages:K1,title:{currentThreadTitle:M.thread.title,threadId:M.thread.id,persistTitle:async(D1,F0)=>{await Z.storage.threads.update(D1,{title:F0})},onTitleUpdated:r},persistence:{emitStepParts:async(D1)=>{if(!y)return;await y.emitStepParts(D1)},emitFinal:async(D1)=>{if(y){await y.emitFinal(D1);return}await u(D1)},emitError:async(D1,F0)=>{if(p.aborted)return;let G0=TO(F0);if(y){await y.emitError(D1,G0);return}await u({id:D1,role:"assistant",parts:[{type:"text",text:`Error: ${G0}`}],metadata:{errorCategory:pf(F0)}})}},sanitizeErrorText:TO,hooks:{onUsage:Y1,onStep:(D1)=>{let F0=Q.dispatch({type:"STEP_DONE",taskId:M.thread.id});if(m.push(Q.react(F0).catch((G0)=>{console.error("[decopilot:stream] onStepFinish reactor failed",G0)})),!y){let G0=F0[0]?.event;if($.isResume?G0?.type==="STEP_COMPLETED":G0?.type==="STEP_COMPLETED"&&G0.stepCount%5===0)m.push(u(D1).catch((J1)=>{jU$.add(1,{"org.id":$.organizationId}),console.error("[decopilot:stream] onStepFinish save failed",J1)}))}},onFinish:async(D1,F0)=>{let G0=m.length,M1=performance.now();if(await Promise.allSettled(m),PU$.record(performance.now()-M1,{phase:"settle"}),p.aborted)return;await w6(0);let J1=AU$?vO():null,s1=performance.now(),w0=wU$(F0,D1?.parts);await Q.execute({type:"FINISH",taskId:M.thread.id,threadStatus:w0});let _1=performance.now()-s1;if(PU$.record(_1,{phase:"save"}),AU$&&J1){let w$=vO()??J1,s$=-1;try{s$=JSON.stringify(D1)?.length??-1}catch{}console.warn(JSON.stringify({msg:"decopilot-finish-trace",threadId:M.thread.id,pendingOps:G0,saveMs:Math.round(_1),parts:D1?.parts?.length??0,messageBytes:s$,rssDelta:w$.rss-J1.rss,heapUsedDelta:w$.heapUsed-J1.heapUsed,externalDelta:w$.external-J1.external}))}E$.capture({distinctId:$.userId,event:"chat_message_completed",groups:{organization:$.organizationId},properties:{organization_id:$.organizationId,thread_id:M.thread.id,agent_id:$.agent.id,model_id:O.thinking.id,model_title:O.thinking.title,mode:$.mode,duration_ms:Date.now()-E1,finish_reason:F0,thread_status:w0,input_tokens:L1.inputTokens,output_tokens:L1.outputTokens,total_tokens:L1.totalTokens,is_resume:$.isResume??!1}})},onError:(D1)=>{if(p.aborted){E$.capture({distinctId:$.userId,event:"chat_message_aborted",groups:{organization:$.organizationId},properties:{organization_id:$.organizationId,thread_id:M.thread.id,agent_id:$.agent.id,model_id:O.thinking.id,mode:$.mode,duration_ms:Date.now()-E1,is_resume:$.isResume??!1}});return}console.error("[decopilot] stream error:",$G(D1)),E$.capture({distinctId:$.userId,event:"chat_message_failed",groups:{organization:$.organizationId},properties:{organization_id:$.organizationId,thread_id:M.thread.id,agent_id:$.agent.id,model_id:O.thinking.id,mode:$.mode,duration_ms:Date.now()-E1,error_category:pf(D1),error_message:D1 instanceof Error?D1.message:$G(D1),is_resume:$.isResume??!1}}),Q.execute({type:"FINISH",taskId:M.thread.id,threadStatus:"failed"}).catch((F0)=>{console.error("[decopilot:stream] onError reactor failed",F0)})}}}).uiStream,Z,M.thread.id));return{taskId:M.thread.id,uiStream:y1,registrySignal:p,runFenceToken:d,wireHarnessInput:$1}}catch(U){if(W&&K)Q.execute({type:"FINISH",taskId:K,threadStatus:"failed"}).catch((F)=>{console.error("[decopilot:stream] catch-block reactor failed",F)});throw U}}async function k74($,Z,G){if($.target?.sandboxProviderKind!=="user-desktop")return null;let X=await Z.storage.virtualMcps.findById($.agent.id,$.organizationId).catch(()=>null);if(!X)return null;let Q=X.metadata??{},Y=Q.githubRepo??null,J;if(Y)try{let L=Y.connectionId,{cloneUrl:w,gitUserName:z,gitUserEmail:j}=L?await(async()=>{return await Af({ctx:Z,connectionId:L,organizationId:$.organizationId,onLegacyMintError:(P)=>{console.warn("[pullDispatch] repo-scoped legacy token mint failed",{connectionId:L,error:P instanceof Error?P.message:String(P)})}}),Rf(L,Y.owner,Y.name,Z.db,Z.vault)})():o61(Y.owner,Y.name);J={cloneUrl:w,branch:$.branch??void 0,userName:z,userEmail:j}}catch(L){console.warn(`[pullDispatch] failed to resolve clone info for agent=${$.agent.id}:`,L instanceof Error?L.message:String(L))}let{runtime:W,packageManager:K,packageManagerPath:U}=p61(Q),F;if(W&&K&&(W==="node"||W==="bun"||W==="deno")&&(K==="npm"||K==="pnpm"||K==="yarn"||K==="bun"||K==="deno"))F={runtime:W,packageManager:K,...U?{packageManagerPath:U}:{}};let H,N;try{if(Z.objectStorage){let L=await qH1(Z.objectStorage,{isProduction:b0().nodeEnv==="production"});H=L.hosts,N=L.allowSameHostDev}}catch(L){console.warn(`[pullDispatch] failed to derive offload allowlist for agent=${$.agent.id}:`,L instanceof Error?L.message:String(L))}let O=Z.organization?.slug?await kH1(Z,{orgSlug:Z.organization.slug,orgId:$.organizationId,baseUrl:I3()}):void 0,B=aU({userName:Z.auth.user?.name,userEmail:Z.auth.user?.email});return{handle:G,...J?{repo:J}:{},...F?{workload:F}:{},...B?{operator:B}:{},...H!==void 0?{offloadAllowedHosts:H}:{},...N!==void 0?{offloadAllowSameHostDev:N}:{},...O?{orgFsConfigJson:O}:{}}}async function kU$($,Z,G){return IB1("decopilot.pullDispatch",async(X)=>{let{taskId:Q,runFenceToken:Y,wireHarnessInput:J}=await MU$($,Z,G,X),W=J,K=null,U=new TextEncoder().encode(JSON.stringify(J.messages)),F=U.byteLength+Buffer.byteLength(JSON.stringify({...J,messages:void 0}),"utf8");if(EY$(F))if(Z.objectStorage)try{let O=crypto.randomUUID(),B=LY$(O);await Z.objectStorage.put(B,U,{contentType:"application/json"}),K={url:await Z.objectStorage.presignedGetUrl(B,600,{requireFetchable:!0}),bytes:U.byteLength,sha256:await wY$(U)},W={...J,messages:[]},console.log(`[pullDispatch] offloaded messages to object storage key=${B} bytes=${U.byteLength} runId=${Q}`)}catch(O){console.error(`[pullDispatch] message offload failed, work item may exceed NATS limit runId=${Q}:`,O instanceof Error?O.message:String(O))}else console.warn(`[pullDispatch] harnessInput exceeds NATS limit but no object storage configured \u2014 work item may be rejected runId=${Q}`);let H=null;if($.target?.sandboxProviderKind==="user-desktop")try{let O=V74({agentId:$.agent.id,userId:$.userId,organizationId:$.organizationId,branch:$.branch??"ephemeral"});H=await k74($,Z,O)}catch(O){console.warn(`[pullDispatch] failed to resolve sandbox config agent=${$.agent.id}:`,O instanceof Error?O.message:String(O))}let N=Z.organization?.slug??null;if(!N)N=(await Z.db.selectFrom("organization").select("slug").where("id","=",$.organizationId).executeTakeFirst())?.slug??null;if(!N)throw Error(`pullDispatch: could not resolve org slug for organization ${$.organizationId}`);return{taskId:Q,runFenceToken:Y,harnessInput:W,messagesRef:K,sandboxConfig:H,orgSlug:N}},TU$($))}function V74($){let Z=sU({orgId:$.organizationId,virtualMcpId:$.agentId,branch:$.branch});return df({userId:$.userId,projectRef:Z},$.branch)}var jU$,PU$,AU$,RU$,IU$=3600;var zn1=D(()=>{Ph1();H5();DY$();nh();nH1();IQ();zH1();r61();tm();Nm1();$6();UU$();ji1();NL();om1();hN1();PN1();BU$();Ln1();cN1();jm();lX();Om1();f9();zU$();gZ();jU$=m6.createCounter("decopilot.save.errors",{description:"Number of message-save failures during decopilot run dispatch (v1 and v2 paths)",unit:"{errors}"}),PU$=m6.createHistogram("decopilot.finish.duration",{description:"Wall time of onFinish flush segments, tagged by phase",unit:"ms"}),AU$=process.env.DECOPILOT_FINISH_TRACE==="1",RU$=new li});function VU$($,Z=15000){if(!$.body)return $;let G=C74($.body,Z);return new Response(G,{status:$.status,statusText:$.statusText,headers:$.headers})}function C74($,Z=15000){let G=null,X=null,Q=!1,Y=!1,J=()=>{if(X!==null)clearInterval(X),X=null};return new ReadableStream({async start(W){G=$.getReader(),X=setInterval(()=>{if(Q||Y)return;try{W.enqueue(S74)}catch{Q=!0,J()}},Z);try{while(!0){let{done:U,value:F}=await G.read();if(U){Q=!0,J(),W.close();return}let H=F.byteLength;if(H>0)Y=!(H>=2&&F[H-2]===10&&F[H-1]===10);W.enqueue(F)}}catch(U){Q=!0,J();try{W.error(U)}catch{}}finally{Q=!0,J();try{G.releaseLock()}catch{}}},cancel(W){Q=!0,J(),(G??$).cancel(W).catch(()=>{})}})}var S74;var SU$=D(()=>{S74=new TextEncoder().encode(`: keepalive
|
|
2560
2560
|
|
|
2561
2561
|
`)});function _74($){if($==="claude-code")return"claude-code";if($==="codex")return"codex";if($==="decopilot")return"decopilot-sandbox";return null}async function CU$($,Z){if(rU($.sandboxProviderKind)!=="user-desktop")return{ok:!0,target:{sandboxProviderKind:"agent-sandbox"}};let X=await Z.linkClaimRegistry.get($.userId);if(!X)return{ok:!1,error:{kind:"user_desktop_link_offline"}};let Q=_74($.harnessId);if(Q&&!X.capabilities.includes(Q))return{ok:!1,error:{kind:"user_desktop_link_capability_missing",activeCapabilities:X.capabilities}};return{ok:!0,target:{sandboxProviderKind:"user-desktop",link:X}}}var _U$=D(()=>{IQ()});function b74($){let Z=2166136261;for(let G=0;G<$.length;G++)Z^=$.charCodeAt(G),Z=Math.imul(Z,16777619);return(Z>>>0)%100}function v74($){if($==null)return 0;let Z=Number.parseInt($,10);if(Number.isNaN(Z))return 0;if(Z<0)return 0;if(Z>100)return 100;return Z}function f74($,Z){if(Z<=0)return!1;if(Z>=100)return!0;return b74($)<Z}function bU$($){return f74($,v74(process.env.STREAM_OF_RECORD_V2_PERCENT))}import{createHash as x74}from"crypto";function Pn1($){if($===null||typeof $!=="object")return JSON.stringify($);if(Array.isArray($))return`[${$.map(Pn1).join(",")}]`;return`{${Object.keys($).sort().map((X)=>`${JSON.stringify(X)}:${Pn1($[X])}`).join(",")}}`}function y74($){if(!$)return;if($.role==="user"&&$.id)return $.id;return x74("sha1").update(Pn1($)).digest("hex")}async function g74($){let Z=mH1($),G=await $.req.json(),X=HY$.safeParse(G);if(!X.success)throw new t$(400,{message:X.error.message});let{messages:Q,...Y}=X.data,J=Q,{systemMessages:W,requestMessage:K}=JY$(J);return{organization:Z,systemMessages:W,requestMessage:K,...Y}}async function h74($,Z,G){try{return(await $.storage.aiProviderKeys.findById(Z,G))?.providerId}catch{return}}function jn1($){let Z=$.modelMeta.capabilities;return{id:$.modelId,title:$.modelMeta.title??$.modelId,provider:$.modelMeta.providerId??null,capabilities:Z&&Z.length>0?{vision:Z.includes("vision")||Z.includes("image")||void 0,text:Z.includes("text")||void 0,reasoning:Z.includes("reasoning")||void 0}:void 0,limits:$.modelMeta.limits?{contextWindow:$.modelMeta.limits.contextWindow,maxOutputTokens:$.modelMeta.limits.maxOutputTokens??void 0}:void 0}}async function u74($,Z,G){if(G==="claude-code"||G==="codex"){let J=Z==="fast"||Z==="smart"||Z==="thinking"?Z:"smart",W=eQ$(G,J);if(!W)throw Error(`No model mapping for harness "${G}" tier "${J}"`);return{credentialId:`desktop:${G}`,thinking:{id:W.modelId,title:W.label,provider:G}}}let[X,Q,Y]=await Promise.all([gL($,Z??"smart"),av($,"image"),av($,"web_research")]);return{credentialId:X.credentialId,thinking:jn1(X),...Q?{image:{...jn1(Q),credentialId:Q.credentialId}}:{},...Y?{deepResearch:{...jn1(Y),credentialId:Y.credentialId}}:{}}}function c74($){let{taskIdInput:Z,thread:G,requestedHarnessId:X,requestedSandboxProviderKind:Q,requestedBranch:Y}=$;if(!Z||!G?.harness_id)return{harnessId:X,sandboxProviderKind:Q,branch:Y,locked:!1};if(X&&X!==G.harness_id)console.warn("decopilot.submit: ignored harness override on locked thread",{threadId:Z,requested:X,locked:G.harness_id});return{harnessId:G.harness_id,sandboxProviderKind:G.sandbox_provider_kind??void 0,branch:G.branch??null,locked:!0}}async function l74($,Z){let G=$.get("meshContext"),{organization:X,tier:Q,agent:Y,systemMessages:J,requestMessage:W,temperature:K,memory:U,thread_id:F,branch:H,toolApprovalLevel:N,mode:O,sandboxProviderKind:B,harnessId:L}=await g74($),w=F??U?.thread_id;if(Z&&w&&w!==Z)throw new t$(400,{message:"threadId in URL does not match thread_id in body"});let z=Z??w,j=G.auth?.user?.id;if(!j)throw new t$(401,{message:"User ID is required"});let P=z?await G.storage.threads.get(z):null,{harnessId:R,sandboxProviderKind:A,branch:M}=c74({taskIdInput:z,thread:P,requestedHarnessId:L,requestedSandboxProviderKind:B,requestedBranch:H}),S=await u74(G,Q,R),k=await iU(G.db,X.id,G.auth.user?.role);if(k!==void 0&&!eN(k,S.credentialId,S.thinking.id))throw new t$(403,{message:"Model not allowed for your role"});let C=p41(k,S);return{messages:[...J,W],models:C,agent:Y,temperature:K,toolApprovalLevel:N,mode:O,organizationId:X.id,userId:j,taskId:z,windowSize:U?.windowSize??AU,branch:M??null,sandboxProviderKind:A??null,harnessId:R??null}}function An1($){let{cancelBroadcast:Z,streamBuffer:G,runRegistry:X,linkClaimRegistry:Q}=$,Y=new _0;return Y.get("/:org/decopilot/allowed-models",async(J)=>{try{let W=J.get("meshContext"),K=mH1(J),U=W.auth.user?.role,F=await iU(W.db,K.id,U);return J.json(Cr0(F))}catch(W){if(console.error("[decopilot:allowed-models] Error",W),W instanceof t$)return J.json({error:W.message},W.status);return J.json({error:W instanceof Error?W.message:"Internal error"},500)}}),Y.post("/:org/decopilot/threads/:threadId/messages",async(J)=>{try{let W=J.get("meshContext"),K=await l74(J,J.req.param("threadId")),U=K.taskId;if(!U)throw new t$(400,{message:"threadId is required"});let F=null;try{F=await W.storage.threads?.get?.(U)??null}catch{F=null}let H=F?.branch??K.branch??"ephemeral",N=F?.sandbox_provider_kind??null,O=await h74(W,K.models.credentialId,K.organizationId),B=wn1(O),L=F?.harness_id??null;if(!N||!L){if(N=N??K.sandboxProviderKind??await TH1(K.userId,{linkClaimRegistry:Q,resolveEnvKind:bW}),L=L??K.harnessId??B,F){let k=!1;if(F.message_storage_version!==2&&bU$(U))try{let{total:C}=await W.storage.threads.listMessages(U,{limit:1});k=C===0}catch{k=!1}try{await W.storage.threads?.update?.(U,{sandbox_provider_kind:N,harness_id:L,branch:H,...k?{message_storage_version:2}:{}})}catch(C){console.warn("[decopilot:messages] failed to persist thread pins",C)}}}let w=await CU$({harnessId:L,sandboxProviderKind:N,userId:K.userId},{linkClaimRegistry:Q});if(!w.ok)return J.json({error:"link_unavailable",code:w.error.kind,activeCapabilities:w.error.kind==="user_desktop_link_capability_missing"?w.error.activeCapabilities:void 0},409);let z=w.target,{abortSignal:j,...P}=K,R={...P,target:z,harnessId:L},A=K.messages[K.messages.length-1],M=y74(A),S=M?`thread-run:${U}:${M}`:void 0;return await wh1({threadId:U,request:R,source:"user-message"},{workflowID:S}),J.json({taskId:U},202)}catch(W){if(console.error("[decopilot:messages] Error",W),W instanceof rv)return J.json({error:W.message},400);if(W instanceof t$)return J.json({error:W.message},W.status);return E$.captureException(W),J.json({error:W instanceof Error?W.message:JSON.stringify(W)},500)}}),Y.post("/:org/decopilot/cancel/:threadId",async(J)=>{let{ctx:W,taskId:K,thread:U,organization:F,userId:H}=await UY$(J);if(await W.storage.threads.setCancelRequested(K,F.id),(await X.execute({type:"CANCEL",taskId:K})).some((O)=>O.event.type==="RUN_FAILED"))return Z.publishControlFrame(H,{type:"cancel",runId:K}),J.json({cancelled:!0});if(Z.broadcast(K),Z.publishControlFrame(H,{type:"cancel",runId:K}),U.status==="in_progress")console.warn("[decopilot:cancel] Ghost run detected, force-failing",{taskId:K}),X.execute({type:"FORCE_FAIL",taskId:K,reason:"ghost",orgId:F.id}).catch((O)=>{console.error("[decopilot:cancel] Failed to force-fail ghost thread",{taskId:K,err:O})});return J.json({cancelled:!0,async:!0},202)}),Y.get("/:org/decopilot/threads/:threadId/stream",async(J)=>{try{let{taskId:W,thread:K}=await $i1(J),U=K.status==="in_progress"?"all":"new",F=await G.createTailStream(W,J.req.raw.signal,{deliverPolicy:U});if(!F)return J.body(null,204);let H=hm({execute:async({writer:O})=>{let B=F.getReader();try{while(!0){let{done:L,value:w}=await B.read();if(L)break;O.write(w)}}finally{B.releaseLock()}}}),N=gm({stream:H,consumeSseStream:GE});return VU$(N)}catch(W){if(W instanceof t$)throw W;return console.error("[decopilot:stream] Error",$G(W)),J.body(null,500)}}),Y}var vU$=D(()=>{C41();ZY$();H5();r4();f4();OJ();NL();om1();FY$();jm();NY$();zn1();S41();SU$();_U$();IQ()});var fU$=D(()=>{vU$()});var lN1=()=>{let $=new _0;return $.post("/connections/:connectionId/oauth-token",async(Z)=>{let G=Z.get("meshContext"),X=Z.req.param("connectionId");if(!(G.auth.user?.id??G.auth.apiKey?.userId??null))return Z.json({error:"Unauthorized"},401);let Y=G.organization?.id;if(!Y)return Z.json({error:"Organization context required"},403);let J=await G.storage.connections.findById(X,Y);if(!J)return Z.json({error:"Connection not found"},404);let W=await Z.req.json();if(!W.accessToken)return Z.json({error:"accessToken is required"},400);if(W.tokenEndpoint){let O;try{O=new URL(W.tokenEndpoint)}catch{return Z.json({error:"tokenEndpoint must be a valid URL"},400)}if(O.protocol!=="http:"&&O.protocol!=="https:")return Z.json({error:"tokenEndpoint must be an http(s) URL"},400)}let K=W.expiresIn?new Date(Date.now()+W.expiresIn*1000):null,U=W.tokenEndpoint??null;if(U?.includes("/oauth-proxy/")&&J.connection_url)try{let O=await uv(J.connection_url);if(O)try{let B=new URL(O);if(B.protocol==="http:"||B.protocol==="https:")U=O}catch{}}catch{}let F=new k9(G.db,G.vault),H={connectionId:X,accessToken:W.accessToken,refreshToken:W.refreshToken??null,scope:W.scope??null,expiresAt:K,clientId:W.clientId??null,clientSecret:W.clientSecret??null,tokenEndpoint:U},N=await F.upsert(H);return Z.json({success:!0,expiresAt:N.expiresAt})}),$.delete("/connections/:connectionId/oauth-token",async(Z)=>{let G=Z.get("meshContext"),X=Z.req.param("connectionId");if(!(G.auth.user?.id??G.auth.apiKey?.userId??null))return Z.json({error:"Unauthorized"},401);let Y=G.organization?.id;if(!Y)return Z.json({error:"Organization context required"},403);if(!await G.storage.connections.findById(X,Y))return Z.json({error:"Connection not found"},404);return await new k9(G.db,G.vault).delete(X),Z.json({success:!0})}),$.get("/connections/:connectionId/oauth-token/status",async(Z)=>{let G=Z.get("meshContext"),X=Z.req.param("connectionId");if(!(G.auth.user?.id??G.auth.apiKey?.userId??null))return Z.json({error:"Unauthorized"},401);let Y=G.organization?.id;if(!Y)return Z.json({error:"Organization context required"},403);if(!await G.storage.connections.findById(X,Y))return Z.json({error:"Connection not found"},404);let W=new k9(G.db,G.vault),K=await W.get(X);if(!K)return Z.json({hasToken:!1,isExpired:!0,canRefresh:!1});let U=W.isExpired(K),F=!!K.refreshToken&&!!K.tokenEndpoint;return Z.json({hasToken:!0,isExpired:U,canRefresh:F,expiresAt:K.expiresAt})}),$};var Rn1=D(()=>{f4();F41();zW()});var d74,xU$=($={})=>async(Z,G)=>{await G();let Q=(Z.req.matchedRoutes??[]).find((W)=>W.method!=="ALL"&&!W.path.endsWith("*"));if(!Q)return;if(d74.has(Q.path))return;if(Q.path.startsWith("/api/:org/"))return;if($.mountPath!==void 0&&Q.basePath!==$.mountPath)return;let Y=Z.get("meshContext"),J=Z.get("deprecatedRouteAttribution");console.log("deprecated route",{route:Z.req.routePath,method:Z.req.method,org:Y?.organization?.slug??J?.organizationId,user:Y?.auth?.user?.id,connection:J?.connectionId,ua:Z.req.header("user-agent")})},MO,_Q=($)=>xU$($);var In1=D(()=>{d74=new Set(["/api/deco-sites/profile"]),MO=xU$()});function yU$($,Z){if($ instanceof t$)return $.getResponse();console.error("Server error :",$);let G=$ instanceof Error?$.message:"Unknown error";return Z.json({error:"Internal Server Error",message:G},500)}var gU$=D(()=>{OJ()});var Zx=($)=>{let Z=$.req.header("sec-fetch-dest");if(Z!==void 0)return Z==="document";let G=$.req.header("accept")??"";return G.includes("text/html")&&!/text\/html\s*;\s*q\s*=\s*0/.test(G)};var lV=async($,Z)=>{let G=$.req.param("org");if(!G)return $.json({error:"org slug missing in path"},400);let X=$.get("meshContext");if(!X?.db)return $.json({error:"meshContext not initialized"},500);let Q=X.db,Y=await Q.selectFrom("organization").select(["id","slug","name","metadata"]).where("slug","=",G).executeTakeFirst();if(!Y){if(Zx($))return $.redirect(`/${encodeURIComponent(G)}`,302);return $.json({error:`organization "${G}" not found`},404)}if(PU(Y)){if(Zx($))return $.redirect(`/${encodeURIComponent(G)}`,302);return $.json({error:`organization "${G}" not found`},404)}let J=X.auth?.user?.id,W;if(J){let K=await Q.selectFrom("member").select(["role"]).where("userId","=",J).where("organizationId","=",Y.id).executeTakeFirst();if(!K){if(Zx($))return $.redirect(`/${encodeURIComponent(Y.slug)}`,302);return $.json({error:"forbidden: not a member of organization"},403)}W=K.role}return X.organization={id:Y.id,slug:Y.slug,name:Y.name,role:W},X.access.setOrganizationId(Y.id),X.access.setRole(W),U41(X,Y),await Z()};var Tn1=D(()=>{gv()});var hU$="Payload Too Large",uU$,cY=($)=>{let Z=$.onError||(()=>{let X=new Response(hU$,{status:413});throw new t$(413,{res:X})}),G=$.maxSize;return async function(Q,Y){if(!Q.req.raw.body)return Y();let J=Q.req.raw.headers.has("transfer-encoding"),W=Q.req.raw.headers.has("content-length");if(W&&!J)return parseInt(Q.req.raw.headers.get("content-length")||"0",10)>G?Z(Q):Y();let K=0,U=Q.req.raw.body.getReader(),H={body:new ReadableStream({async start(N){try{for(;;){let{done:O,value:B}=await U.read();if(O)break;if(K+=B.length,K>G){N.error(new uU$(hU$));break}N.enqueue(B)}}finally{N.close()}}}),duplex:"half"};if(Q.req.raw=new Request(Q.req.raw,H),await Y(),Q.error instanceof uU$)Q.res=await Z(Q)}};var Gx=D(()=>{OJ();uU$=class extends Error{constructor($){super($);this.name="BodyLimitError"}}});function m74($){if(typeof $!=="object"||$===null||Array.isArray($))return!1;let Z=$.op;if(Z!=="eq"&&Z!=="contains"&&Z!=="in")return!1;if(Z==="in")return Array.isArray($.value);if(Z==="contains")return typeof $.value==="string";return"value"in $}function cU$($,Z){return $.toLowerCase().includes(Z.toLowerCase())}function i74($,Z){if(m74(Z)){if(Z.op==="eq")return lU$($,Z.value);if(Z.op==="contains"){if(typeof $==="string")return cU$($,Z.value);if(Array.isArray($))return $.some((G)=>typeof G==="string"&&cU$(G,Z.value));return!1}if(Z.op==="in"){let G=Z.value;if(Array.isArray($))return $.some((X)=>G.includes(X));return G.includes($)}return!1}if(typeof Z==="object"&&Z!==null)return!1;return lU$($,Z)}function lU$($,Z){if(Array.isArray($))return $.includes(Z);return $===Z}class Xx{storage;fire;static MAX_EVENT_PAYLOAD_BYTES=1048576;constructor($,Z){this.storage=$;this.fire=Z}dispatchForEvents($){for(let Z of $)this.onEvent(Z).catch((G)=>{console.error(`[AutomationDispatch] Error processing event ${Z.type}:`,G)})}async onEvent($){let G=(await this.storage.findActiveEventTriggers($.source,$.type,$.organizationId)).filter((Q)=>this.paramsMatch(Q.params,$.data)),X=await Promise.allSettled(G.map((Q)=>this.fire({automation:Q.automation,trigger:Q,contextMessages:this.buildContextMessages($),idempotencyKey:$.id?`evt:${$.id}:trig:${Q.id}`:void 0})));for(let[Q,Y]of X.entries()){let J=G[Q];if(Y.status==="rejected")console.error(`[AutomationDispatch] Trigger ${J.id} ("${J.automation.name}") REJECTED:`,Y.reason)}}paramsMatch($,Z){if(!$)return!0;let G;try{G=JSON.parse($)}catch{return!1}if(typeof G!=="object"||G===null||Array.isArray(G))return!1;let X=G;if(Object.keys(X).length===0)return!0;if(typeof Z!=="object"||Z===null)return!1;let Q=Z;return Object.entries(X).every(([Y,J])=>i74(Q[Y],J))}buildContextMessages($){let Z=JSON.stringify($.data,null,2)??"null";if(Z.length>Xx.MAX_EVENT_PAYLOAD_BYTES)Z=Z.slice(0,Xx.MAX_EVENT_PAYLOAD_BYTES)+`
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{e as W,r as B,j as e,c as X,l as Y}from"./index-D6idVW2n.js";import{i as Z}from"./ChevronRight-GBMV5yJO.js";import{S as tt}from"./scroll-area-S5xU4-3T.js";import{a8 as et,a9 as rt,d as ot}from"./index-CwDq8vs6.js";import{c as it}from"./save-referenced-block-DgXF7K9R.js";import{S as mt}from"./schema-form-0q7FWymW.js";import{S as pt}from"./save-status-KIo_EK3u.js";import"./select-D-XBS65u.js";import"./tooltip-BwAS3LmD.js";import"./Check-BNom5dOo.js";import"./ChevronDown-B21_IsL3.js";import"./ChevronUp-CGGIgndb.js";import"./agent-capabilities-DZnx6uxN.js";import"./chat-context-DCjkCe-V.js";import"./tab-id-DKNFO22m.js";import"./use-mcp-client-Dutz6IKN.js";import"./decopilot-sse-pool-BN3Fz4g5.js";import"./create-sse-subscription-BS5983N4.js";import"./unwrap-tool-result-BYXdCQMg.js";import"./use-virtual-mcp-BW5609Gn.js";import"./use-collections-B1ftgmsC.js";import"./use-ai-providers-D_70D2KF.js";import"./use-organization-settings-t-yCPHX9.js";import"./pair-Bt2SA9Qp.js";import"./agent-icon-DwlI421o.js";import"./AlertCircle-Di-V3umI.js";import"./Tool01-BGucVzDk.js";import"./SwitchHorizontal01-CBvA0yYX.js";import"./RefreshCcw01-DoQ2Q5nQ.js";import"./XCircle-BD7UyEOF.js";import"./ArrowUpRight-C-T2gJLi.js";import"./ZapSquare-DMyX_8RQ.js";import"./Users03-Gpc8Fhl9.js";import"./CheckCircle-DrDyiPu_.js";import"./ChevronLeft-Ctye75GL.js";import"./DotsVertical-C1UpLbMK.js";import"./Container-BowdgJ62.js";import"./Eye-CCL1jvke.js";import"./ZoomOut-CrNlxKNu.js";import"./Globe01-Ca2CDUqL.js";import"./FilterLines-CLU1cvnm.js";import"./Star01-f8rMlJ5U.js";import"./Palette-DljqRkOL.js";import"./HardDrive-BRJbxTgf.js";import"./Stars02-DApbfWB6.js";import"./Key01-B0KHYY9A.js";import"./LayoutLeft-DQjoJnlv.js";import"./LinkExternal01-BmWxPEFc.js";import"./Monitor01-CCpw9YsU.js";import"./Sun-BupjfBtR.js";import"./Play-BWZ7aOd4.js";import"./Plus-BW-TIinL.js";import"./SearchMd-BrE4Lp2d.js";import"./Settings02-CnuG-oH5.js";import"./Shield01-BAt9OJkk.js";import"./Stars01-GUKoSsGN.js";import"./Trash01-DOwZGPnm.js";import"./Upload01-ypYRbiXm.js";import"./User01-iRKM2KTq.js";import"./Users01-CQjxMYXj.js";import"./XClose-qC7X4hjJ.js";import"./X-D2-T6h59.js";import"./Zap-BxPmO3d7.js";import"./format-time-Cy7tTmZp.js";import"./differenceInSeconds-NQ4PDo0z.js";import"./use-copy-N9ijygLT.js";import"./file-type-icon-B0iXSarG.js";import"./dialog-fdhgLhBf.js";import"./content-blocks-o63cs2vh.js";import"./types-DpLGHfBV.js";import"./shell-layout-652GQgyj.js";import"./avatar-DpEGkmVF.js";import"./required-auth-layout-CfzfhqYN.js";import"./useRouterState-vIbEdlN4.js";import"./use-org-sso-C7T4CeXS.js";import"./integration-icon-b2Rlb-Sb.js";import"./use-navigate-to-agent-QL4LtHJV.js";import"./use-connection-f6XTkb53.js";import"./use-mcp-prompts-DkrNbGZU.js";import"./form-l2US6lAY.js";import"./label-rvaNBf1n.js";import"./input-ChQ639sE.js";import"./spinner-Ba6MQmcV.js";import"./drawer-nppIIpnE.js";import"./collection-search-C9e8ytlm.js";import"./tabs-DI8qnoXf.js";import"./toggle-group-DLxiboB7.js";import"./connect-desktop-dialog-BSK9XSHH.js";import"./agent-icons-BpY_PoEJ.js";import"./checkbox-C0J6d59Z.js";import"./skeleton-CrWdoD9s.js";import"./ai-providers-logos-DD3qZ33J.js";import"./settings-section-DOJ8w47S.js";import"./card-DjCUI9mK.js";import"./popover-Rt3fpbO3.js";import"./command-CHlhuzJ_.js";import"./index-BUe0rEg1.js";import"./useInfiniteQuery-C4mxsTCl.js";import"./infiniteQueryObserver-VyVFnsqY.js";import"./sortable.esm-DaLbqREa.js";import"./connection-slug-eyAPH6o3.js";import"./connection-card-DO9d3YRC.js";import"./use-registry-connections-CZ4ax3LX.js";import"./extract-connection-data-D6z7oijb.js";import"./generate-id-RYRfDJEO.js";import"./collections-CFguVIuY.js";import"./collection-tabs-DcsnhXJW.js";import"./badge-CRBv_-v0.js";import"./textarea-FwxJbyLj.js";import"./connection-form-helpers-C3edNmoP.js";import"./use-infinite-scroll-D4clS4iX.js";import"./useSuspenseInfiniteQuery-B8vt_oPd.js";import"./index-DeDtw-b1.js";import"./dropdown-menu-X3z-hQ2M.js";import"./question-004-sINsf4GQ.js";import"./shell-route-loading-DWdfT9on.js";import"./sidebar-faIWOpU7.js";import"./sheet-BdF_K2dB.js";import"./toolbar-CMgp-9VS.js";import"./use-create-virtual-mcp-DmpPKskK.js";import"./github-repo-picker-Bt39LytD.js";import"./use-mcp-tools-Dk5wX_Q8.js";import"./alert-dialog-Di87pvaw.js";import"./index-Cm05rD4S.js";import"./use-org-auth-client-CAvzSle5.js";import"./hover-card-CrD42WSD.js";import"./task-status-qWqGiUC6.js";import"./use-status-sounds-J2lGW499.js";import"./empty-state-Bq6HhNrq.js";import"./resizable-CA7mW65R.js";import"./use-capability-BTcvzwTt.js";import"./header-tab-button-D5FVHg7C.js";import"./index-Doc3AWor.js";import"./user-CkUI6Rtf.js";import"./tools-list-C_1FwcZ2.js";import"./switch-Djy20jDK.js";import"./use-debounced-autosave-ChNaRP5S.js";import"./index-D-CqRT4O.js";import"./search-input-bjsIuW3e.js";import"./use-secrets-Dor672jC.js";import"./formatDistanceToNow-Cb2QZZJn.js";import"./accordion-DBdAn4Yd.js";import"./view-mode-toggle-B0zSaOcF.js";import"./select-model-BfrrA0rU.js";import"./use-automations-Bm_GDiS0.js";import"./monaco-editor-B2W8v7r6.js";import"./automation-runs-bcYQjbYn.js";import"./table-Cy6WVAuu.js";import"./use-members-73l6yAni.js";import"./automation-list-row-CeYc1MAT.js";import"./calendar-04oidYi0.js";import"./image-field-DmZve0TW.js";import"./use-file-configs-Iu1ZGjUX.js";function to(E){const t=W.c(51),{orgSlug:R,virtualMcpId:P,branch:$,blockKey:r,block:m,meta:p,decofile:C,title:F,excludeFields:K,schemaPending:M}=E,V=M===void 0?!1:M,a=typeof m?.__resolveType=="string"?m.__resolveType:"";let v;t[0]!==K||t[1]!==p||t[2]!==a?(v=et(a,p,K),t[0]=K,t[1]=p,t[2]=a,t[3]=v):v=t[3];const s=v;let b;t[4]!==s?(b=!!s&&Object.keys(s.properties??{}).length>0,t[4]=s,t[5]=b):b=t[5];const T=b;let g;t[6]!==m||t[7]!==r||t[8]!==p||t[9]!==F?(g=F??(m?rt(r,m,p):r),t[6]=m,t[7]=r,t[8]=p,t[9]=F,t[10]=g):g=t[10];const n=g;let j;t[11]!==$||t[12]!==R||t[13]!==P?(j={orgSlug:R,virtualMcpId:P,branch:$},t[11]=$,t[12]=R,t[13]=P,t[14]=j):j=t[14];const{save:c,isPending:A}=ot(j);let y;t[15]!==c?(y=it((l,i)=>c(l,i)),t[15]=c,t[16]=y):y=t[16];const L=y,[G,H]=B.useState(r),[J,q]=B.useState(null),[z,Q]=B.useState(0);let S;t[17]===Symbol.for("react.memo_cache_sentinel")?(S=[],t[17]=S):S=t[17];const[o,O]=B.useState(S);G!==r&&(H(r),q(null),Q(st),O([]));let N;t[18]!==m?(N=m??{},t[18]=m,t[19]=N):N=t[19];const D=J??N;let k;t[20]!==r||t[21]!==a||t[22]!==c?(k=l=>{const i=l;q(i),c(r,{...i,__resolveType:a})},t[20]=r,t[21]=a,t[22]=c,t[23]=k):k=t[23];const I=k;let _;t[24]!==o||t[25]!==n?(_=o.length>0?[n,...o]:[],t[24]=o,t[25]=n,t[26]=_):_=t[26];const h=_;let d;t[27]!==o||t[28]!==h||t[29]!==n?(d=h.length>0?e.jsx("nav",{"aria-label":"Editing breadcrumb",className:"flex min-w-0 flex-1 items-center gap-1 overflow-hidden text-sm",children:h.map((l,i)=>{const U=i===h.length-1;return e.jsxs("span",{className:"flex min-w-0 items-center gap-1 overflow-hidden",children:[i>0&&e.jsx(Z,{className:"size-3 shrink-0 text-muted-foreground/60"}),e.jsx("button",{type:"button",onClick:()=>O(i===0?[]:o.slice(0,i)),title:l,className:X("min-w-0 truncate rounded-md px-1 py-0.5 text-left transition-colors",U?"font-medium text-foreground":"text-muted-foreground hover:bg-accent hover:text-accent-foreground"),children:l})]},`${l}-${i}`)})}):e.jsx("span",{className:"text-sm font-medium",children:n}),t[27]=o,t[28]=h,t[29]=n,t[30]=d):d=t[30];let f;t[31]!==A?(f=e.jsx(pt,{isPending:A,isError:!1}),t[31]=A,t[32]=f):f=t[32];let u;t[33]!==d||t[34]!==f?(u=e.jsxs("div",{className:"flex h-12 shrink-0 items-center justify-between border-b px-6",children:[d,f]}),t[33]=d,t[34]=f,t[35]=u):u=t[35];let x;t[36]!==r||t[37]!==o||t[38]!==C||t[39]!==D||t[40]!==z||t[41]!==I||t[42]!==T||t[43]!==p||t[44]!==L||t[45]!==s||t[46]!==V?(x=e.jsx(tt,{className:"min-w-0 flex-1 [&_[data-slot=scroll-area-viewport]>div]:!block",children:e.jsx("div",{className:"px-6 py-6",children:e.jsx("div",{className:"mx-auto max-w-xl",children:T?e.jsx(mt,{schema:s,value:D,onChange:I,basePath:"",breadcrumbPath:o,onBreadcrumbChange:O,decofile:C,meta:p,onSaveReferencedBlock:L},`${r}:${z}`):V?e.jsxs("div",{className:"flex flex-col items-center gap-2 py-6 text-center text-xs text-muted-foreground",children:[e.jsx(Y,{size:16,className:"animate-spin"}),"Loading app schema…"]}):e.jsx("div",{className:"py-6 text-center text-xs text-muted-foreground",children:"No editable schema found for this app."})})})}),t[36]=r,t[37]=o,t[38]=C,t[39]=D,t[40]=z,t[41]=I,t[42]=T,t[43]=p,t[44]=L,t[45]=s,t[46]=V,t[47]=x):x=t[47];let w;return t[48]!==u||t[49]!==x?(w=e.jsxs("div",{className:"flex h-full flex-col",children:[u,x]}),t[48]=u,t[49]=x,t[50]=w):w=t[50],w}function st(E){return E+1}export{to as AppEditor};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{e as it,r as E,j as e,l as rt}from"./index-D6idVW2n.js";import{S as mt,d as pt,a as st,b as at}from"./sheet-BdF_K2dB.js";import{S as nt}from"./scroll-area-S5xU4-3T.js";import{r as lt,c as ct,u as dt,a as St,i as ft,f as ut,d as vt,P as ht,S as gt}from"./page-seo-form-EuEyknEc.js";import{k as xt}from"./index-CwDq8vs6.js";import"./X-D2-T6h59.js";import"./select-D-XBS65u.js";import"./tooltip-BwAS3LmD.js";import"./Check-BNom5dOo.js";import"./ChevronDown-B21_IsL3.js";import"./ChevronUp-CGGIgndb.js";import"./label-rvaNBf1n.js";import"./switch-Djy20jDK.js";import"./schema-form-0q7FWymW.js";import"./agent-icon-DwlI421o.js";import"./AlertCircle-Di-V3umI.js";import"./Tool01-BGucVzDk.js";import"./SwitchHorizontal01-CBvA0yYX.js";import"./RefreshCcw01-DoQ2Q5nQ.js";import"./XCircle-BD7UyEOF.js";import"./ArrowUpRight-C-T2gJLi.js";import"./ZapSquare-DMyX_8RQ.js";import"./Users03-Gpc8Fhl9.js";import"./CheckCircle-DrDyiPu_.js";import"./ChevronLeft-Ctye75GL.js";import"./ChevronRight-GBMV5yJO.js";import"./DotsVertical-C1UpLbMK.js";import"./Container-BowdgJ62.js";import"./Eye-CCL1jvke.js";import"./ZoomOut-CrNlxKNu.js";import"./Globe01-Ca2CDUqL.js";import"./FilterLines-CLU1cvnm.js";import"./Star01-f8rMlJ5U.js";import"./Palette-DljqRkOL.js";import"./HardDrive-BRJbxTgf.js";import"./Stars02-DApbfWB6.js";import"./Key01-B0KHYY9A.js";import"./LayoutLeft-DQjoJnlv.js";import"./LinkExternal01-BmWxPEFc.js";import"./Monitor01-CCpw9YsU.js";import"./Sun-BupjfBtR.js";import"./Play-BWZ7aOd4.js";import"./Plus-BW-TIinL.js";import"./SearchMd-BrE4Lp2d.js";import"./Settings02-CnuG-oH5.js";import"./Shield01-BAt9OJkk.js";import"./Stars01-GUKoSsGN.js";import"./Trash01-DOwZGPnm.js";import"./Upload01-ypYRbiXm.js";import"./User01-iRKM2KTq.js";import"./Users01-CQjxMYXj.js";import"./XClose-qC7X4hjJ.js";import"./Zap-BxPmO3d7.js";import"./calendar-04oidYi0.js";import"./input-ChQ639sE.js";import"./popover-Rt3fpbO3.js";import"./textarea-FwxJbyLj.js";import"./dropdown-menu-X3z-hQ2M.js";import"./image-field-DmZve0TW.js";import"./dialog-fdhgLhBf.js";import"./skeleton-CrWdoD9s.js";import"./tabs-DI8qnoXf.js";import"./use-file-configs-Iu1ZGjUX.js";import"./use-mcp-client-Dutz6IKN.js";import"./unwrap-tool-result-BYXdCQMg.js";import"./useInfiniteQuery-C4mxsTCl.js";import"./infiniteQueryObserver-VyVFnsqY.js";import"./agent-capabilities-DZnx6uxN.js";import"./chat-context-DCjkCe-V.js";import"./tab-id-DKNFO22m.js";import"./decopilot-sse-pool-BN3Fz4g5.js";import"./create-sse-subscription-BS5983N4.js";import"./use-virtual-mcp-BW5609Gn.js";import"./use-collections-B1ftgmsC.js";import"./use-ai-providers-D_70D2KF.js";import"./use-organization-settings-t-yCPHX9.js";import"./pair-Bt2SA9Qp.js";import"./format-time-Cy7tTmZp.js";import"./differenceInSeconds-NQ4PDo0z.js";import"./use-copy-N9ijygLT.js";import"./file-type-icon-B0iXSarG.js";import"./content-blocks-o63cs2vh.js";import"./types-DpLGHfBV.js";import"./shell-layout-652GQgyj.js";import"./avatar-DpEGkmVF.js";import"./required-auth-layout-CfzfhqYN.js";import"./useRouterState-vIbEdlN4.js";import"./use-org-sso-C7T4CeXS.js";import"./integration-icon-b2Rlb-Sb.js";import"./use-navigate-to-agent-QL4LtHJV.js";import"./use-connection-f6XTkb53.js";import"./use-mcp-prompts-DkrNbGZU.js";import"./form-l2US6lAY.js";import"./spinner-Ba6MQmcV.js";import"./drawer-nppIIpnE.js";import"./collection-search-C9e8ytlm.js";import"./toggle-group-DLxiboB7.js";import"./connect-desktop-dialog-BSK9XSHH.js";import"./agent-icons-BpY_PoEJ.js";import"./checkbox-C0J6d59Z.js";import"./ai-providers-logos-DD3qZ33J.js";import"./settings-section-DOJ8w47S.js";import"./card-DjCUI9mK.js";import"./command-CHlhuzJ_.js";import"./index-BUe0rEg1.js";import"./sortable.esm-DaLbqREa.js";import"./connection-slug-eyAPH6o3.js";import"./connection-card-DO9d3YRC.js";import"./use-registry-connections-CZ4ax3LX.js";import"./extract-connection-data-D6z7oijb.js";import"./generate-id-RYRfDJEO.js";import"./collections-CFguVIuY.js";import"./collection-tabs-DcsnhXJW.js";import"./badge-CRBv_-v0.js";import"./connection-form-helpers-C3edNmoP.js";import"./use-infinite-scroll-D4clS4iX.js";import"./useSuspenseInfiniteQuery-B8vt_oPd.js";import"./index-DeDtw-b1.js";import"./question-004-sINsf4GQ.js";import"./shell-route-loading-DWdfT9on.js";import"./sidebar-faIWOpU7.js";import"./toolbar-CMgp-9VS.js";import"./use-create-virtual-mcp-DmpPKskK.js";import"./github-repo-picker-Bt39LytD.js";import"./use-mcp-tools-Dk5wX_Q8.js";import"./alert-dialog-Di87pvaw.js";import"./index-Cm05rD4S.js";import"./use-org-auth-client-CAvzSle5.js";import"./hover-card-CrD42WSD.js";import"./task-status-qWqGiUC6.js";import"./use-status-sounds-J2lGW499.js";import"./empty-state-Bq6HhNrq.js";import"./resizable-CA7mW65R.js";import"./use-capability-BTcvzwTt.js";import"./header-tab-button-D5FVHg7C.js";import"./index-Doc3AWor.js";import"./user-CkUI6Rtf.js";import"./tools-list-C_1FwcZ2.js";import"./use-debounced-autosave-ChNaRP5S.js";import"./index-D-CqRT4O.js";import"./search-input-bjsIuW3e.js";import"./use-secrets-Dor672jC.js";import"./formatDistanceToNow-Cb2QZZJn.js";import"./accordion-DBdAn4Yd.js";import"./view-mode-toggle-B0zSaOcF.js";import"./select-model-BfrrA0rU.js";import"./use-automations-Bm_GDiS0.js";import"./monaco-editor-B2W8v7r6.js";import"./automation-runs-bcYQjbYn.js";import"./table-Cy6WVAuu.js";import"./use-members-73l6yAni.js";import"./automation-list-row-CeYc1MAT.js";function Si(u){const t=it.c(46),{open:k,onOpenChange:N,orgSlug:Q,virtualMcpId:U,branch:W,decofile:G,meta:s,target:m,onSaved:X}=u,o=lt(G,m,s),P=m.kind==="site"?"site":m.pageKey,[Y,Z]=E.useState(P),[tt,i]=E.useState(null),[J,g]=E.useState(void 0),[x,y]=E.useState(0);Y!==P&&(Z(P),i(null),g(void 0),y(wt));const{persistSeo:a,persistRawSeo:I,flush:K,isPending:D}=ct({orgSlug:Q,virtualMcpId:U,branch:W,target:m,resolved:o,onSaved:X}),w=m.kind==="page",ot=w?o?.rawSeoData:void 0,v=J!==void 0?J:ot,et=w?dt(v)??void 0:void 0,h=tt??et??o?.seoData??{},p=o?St(h,o):null,n=p&&(!w||ft(v))?xt(p,s):null,_=m.kind==="page"?ut(G,s)?.seoData??void 0:void 0;let j;t[0]!==s?(j=vt(s),t[0]=s,t[1]=j):j=t[1];const M=j;let R;t[2]!==a||t[3]!==o||t[4]!==i?(R=r=>{if(!o)return;const L=r;i(L),a(L)},t[2]=a,t[3]=o,t[4]=i,t[5]=R):R=t[5];const V=R;let F;t[6]!==K||t[7]!==N?(F=r=>{r||K(),N(r)},t[6]=K,t[7]=N,t[8]=F):F=t[8];const z=F,A=m.kind==="site"?"Site SEO":"Page SEO",T=w&&o,B=m.kind==="site"&&o&&n,H=m.kind==="site"?"No site-level SEO block found.":o?"SEO schema not found for this page.":"Could not load page SEO.";let C;t[9]!==i?(C=()=>i(null),t[9]=i,t[10]=C):C=t[10];const $=C;let O;t[11]!==y?(O=()=>y(yt),t[11]=y,t[12]=O):O=t[12];const q=O;let l;t[13]!==A?(l=e.jsx(mt,{className:"text-sm font-semibold",children:A}),t[13]=A,t[14]=l):l=t[14];let c;t[15]!==D?(c=D&&e.jsx(rt,{size:14,className:"animate-spin text-muted-foreground"}),t[15]=D,t[16]=c):c=t[16];let d;t[17]!==l||t[18]!==c?(d=e.jsxs(pt,{className:"px-4 py-3 border-b flex-row items-center justify-between space-y-0",children:[l,c]}),t[17]=l,t[18]=c,t[19]=d):d=t[19];let S;t[20]!==p||t[21]!==q||t[22]!==$||t[23]!==M||t[24]!==v||t[25]!==h||t[26]!==H||t[27]!==x||t[28]!==V||t[29]!==I||t[30]!==a||t[31]!==o||t[32]!==n||t[33]!==i||t[34]!==g||t[35]!==T||t[36]!==B||t[37]!==_?(S=!o||!T&&!B?e.jsx("div",{className:"flex h-full items-center justify-center text-sm text-muted-foreground",children:H}):e.jsx(nt,{className:"flex-1 min-h-0 [&_[data-slot=scroll-area-viewport]>div]:!block",children:e.jsx("div",{className:"px-6 py-4",children:e.jsx("div",{className:"mx-auto max-w-sm",children:T?e.jsx(ht,{rawSeo:v,innerSeo:h,defaultResolveType:M,seoSchema:n,activeResolveType:p,seoTypeOptions:o.seoTypeOptions,formResetKey:x,siteDefaultSeo:_,onPersistRaw:r=>{g(r),I(r)},onInnerChange:r=>{i(r),a(r)},onClearForm:$,onBumpFormKey:q}):n&&p&&e.jsx(gt,{schema:n,resolveType:p,value:h,formResetKey:x,onChange:V})})})}),t[20]=p,t[21]=q,t[22]=$,t[23]=M,t[24]=v,t[25]=h,t[26]=H,t[27]=x,t[28]=V,t[29]=I,t[30]=a,t[31]=o,t[32]=n,t[33]=i,t[34]=g,t[35]=T,t[36]=B,t[37]=_,t[38]=S):S=t[38];let f;t[39]!==d||t[40]!==S?(f=e.jsxs(st,{side:"right",className:"w-[400px] sm:max-w-[440px] p-0 gap-0",children:[d,S]}),t[39]=d,t[40]=S,t[41]=f):f=t[41];let b;return t[42]!==z||t[43]!==k||t[44]!==f?(b=e.jsx(at,{open:k,onOpenChange:z,children:f}),t[42]=z,t[43]=k,t[44]=f,t[45]=b):b=t[45],b}function yt(u){return u+1}function wt(u){return u+1}export{Si as SeoSheet};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{e as C,j as r}from"./index-D6idVW2n.js";import{I as F}from"./input-ChQ639sE.js";import{L as T}from"./label-rvaNBf1n.js";import{T as L}from"./textarea-FwxJbyLj.js";import{I as A}from"./image-field-DmZve0TW.js";import{ac as R,ad as D,af as J}from"./index-CwDq8vs6.js";import{u as K,s as S}from"./primitives-XpLpFjB8.js";import{S as M}from"./save-status-KIo_EK3u.js";import"./Tool01-BGucVzDk.js";import"./Trash01-DOwZGPnm.js";import"./Upload01-ypYRbiXm.js";import"./AlertCircle-Di-V3umI.js";import"./Check-BNom5dOo.js";import"./Eye-CCL1jvke.js";import"./DotsVertical-C1UpLbMK.js";import"./agent-icon-DwlI421o.js";import"./SwitchHorizontal01-CBvA0yYX.js";import"./RefreshCcw01-DoQ2Q5nQ.js";import"./XCircle-BD7UyEOF.js";import"./ArrowUpRight-C-T2gJLi.js";import"./ZapSquare-DMyX_8RQ.js";import"./Users03-Gpc8Fhl9.js";import"./CheckCircle-DrDyiPu_.js";import"./ChevronDown-B21_IsL3.js";import"./ChevronLeft-Ctye75GL.js";import"./ChevronRight-GBMV5yJO.js";import"./ChevronUp-CGGIgndb.js";import"./Container-BowdgJ62.js";import"./ZoomOut-CrNlxKNu.js";import"./Globe01-Ca2CDUqL.js";import"./FilterLines-CLU1cvnm.js";import"./Star01-f8rMlJ5U.js";import"./Palette-DljqRkOL.js";import"./HardDrive-BRJbxTgf.js";import"./Stars02-DApbfWB6.js";import"./Key01-B0KHYY9A.js";import"./LayoutLeft-DQjoJnlv.js";import"./LinkExternal01-BmWxPEFc.js";import"./Monitor01-CCpw9YsU.js";import"./Sun-BupjfBtR.js";import"./Play-BWZ7aOd4.js";import"./Plus-BW-TIinL.js";import"./SearchMd-BrE4Lp2d.js";import"./Settings02-CnuG-oH5.js";import"./Shield01-BAt9OJkk.js";import"./Stars01-GUKoSsGN.js";import"./User01-iRKM2KTq.js";import"./Users01-CQjxMYXj.js";import"./XClose-qC7X4hjJ.js";import"./X-D2-T6h59.js";import"./Zap-BxPmO3d7.js";import"./dialog-fdhgLhBf.js";import"./dropdown-menu-X3z-hQ2M.js";import"./skeleton-CrWdoD9s.js";import"./tabs-DI8qnoXf.js";import"./use-file-configs-Iu1ZGjUX.js";import"./use-mcp-client-Dutz6IKN.js";import"./unwrap-tool-result-BYXdCQMg.js";import"./useInfiniteQuery-C4mxsTCl.js";import"./infiniteQueryObserver-VyVFnsqY.js";import"./agent-capabilities-DZnx6uxN.js";import"./chat-context-DCjkCe-V.js";import"./tab-id-DKNFO22m.js";import"./decopilot-sse-pool-BN3Fz4g5.js";import"./create-sse-subscription-BS5983N4.js";import"./use-virtual-mcp-BW5609Gn.js";import"./use-collections-B1ftgmsC.js";import"./use-ai-providers-D_70D2KF.js";import"./use-organization-settings-t-yCPHX9.js";import"./pair-Bt2SA9Qp.js";import"./format-time-Cy7tTmZp.js";import"./differenceInSeconds-NQ4PDo0z.js";import"./scroll-area-S5xU4-3T.js";import"./select-D-XBS65u.js";import"./tooltip-BwAS3LmD.js";import"./use-copy-N9ijygLT.js";import"./file-type-icon-B0iXSarG.js";import"./content-blocks-o63cs2vh.js";import"./types-DpLGHfBV.js";import"./shell-layout-652GQgyj.js";import"./avatar-DpEGkmVF.js";import"./required-auth-layout-CfzfhqYN.js";import"./useRouterState-vIbEdlN4.js";import"./use-org-sso-C7T4CeXS.js";import"./integration-icon-b2Rlb-Sb.js";import"./use-navigate-to-agent-QL4LtHJV.js";import"./use-connection-f6XTkb53.js";import"./use-mcp-prompts-DkrNbGZU.js";import"./form-l2US6lAY.js";import"./spinner-Ba6MQmcV.js";import"./drawer-nppIIpnE.js";import"./collection-search-C9e8ytlm.js";import"./toggle-group-DLxiboB7.js";import"./connect-desktop-dialog-BSK9XSHH.js";import"./agent-icons-BpY_PoEJ.js";import"./checkbox-C0J6d59Z.js";import"./ai-providers-logos-DD3qZ33J.js";import"./settings-section-DOJ8w47S.js";import"./card-DjCUI9mK.js";import"./popover-Rt3fpbO3.js";import"./command-CHlhuzJ_.js";import"./index-BUe0rEg1.js";import"./sortable.esm-DaLbqREa.js";import"./connection-slug-eyAPH6o3.js";import"./connection-card-DO9d3YRC.js";import"./use-registry-connections-CZ4ax3LX.js";import"./extract-connection-data-D6z7oijb.js";import"./generate-id-RYRfDJEO.js";import"./collections-CFguVIuY.js";import"./collection-tabs-DcsnhXJW.js";import"./badge-CRBv_-v0.js";import"./connection-form-helpers-C3edNmoP.js";import"./use-infinite-scroll-D4clS4iX.js";import"./useSuspenseInfiniteQuery-B8vt_oPd.js";import"./index-DeDtw-b1.js";import"./question-004-sINsf4GQ.js";import"./shell-route-loading-DWdfT9on.js";import"./sidebar-faIWOpU7.js";import"./sheet-BdF_K2dB.js";import"./toolbar-CMgp-9VS.js";import"./use-create-virtual-mcp-DmpPKskK.js";import"./github-repo-picker-Bt39LytD.js";import"./use-mcp-tools-Dk5wX_Q8.js";import"./alert-dialog-Di87pvaw.js";import"./index-Cm05rD4S.js";import"./use-org-auth-client-CAvzSle5.js";import"./hover-card-CrD42WSD.js";import"./task-status-qWqGiUC6.js";import"./use-status-sounds-J2lGW499.js";import"./empty-state-Bq6HhNrq.js";import"./resizable-CA7mW65R.js";import"./use-capability-BTcvzwTt.js";import"./header-tab-button-D5FVHg7C.js";import"./index-Doc3AWor.js";import"./user-CkUI6Rtf.js";import"./tools-list-C_1FwcZ2.js";import"./switch-Djy20jDK.js";import"./use-debounced-autosave-ChNaRP5S.js";import"./index-D-CqRT4O.js";import"./search-input-bjsIuW3e.js";import"./use-secrets-Dor672jC.js";import"./formatDistanceToNow-Cb2QZZJn.js";import"./accordion-DBdAn4Yd.js";import"./view-mode-toggle-B0zSaOcF.js";import"./select-model-BfrrA0rU.js";import"./use-automations-Bm_GDiS0.js";import"./monaco-editor-B2W8v7r6.js";import"./automation-runs-bcYQjbYn.js";import"./table-Cy6WVAuu.js";import"./use-members-73l6yAni.js";import"./automation-list-row-CeYc1MAT.js";const $={authors:[{key:"name",label:"Name",widget:"text"},{key:"email",label:"Email",widget:"text",placeholder:"author@example.com"},{key:"jobTitle",label:"Job title",widget:"text"},{key:"company",label:"Company",widget:"text"},{key:"avatar",label:"Avatar",widget:"image"}],categories:[{key:"name",label:"Name",widget:"text"},{key:"slug",label:"Slug",widget:"text",placeholder:"my-category"}]},q={authors:"Author",categories:"Category"};function Tr(P){const t=C.c(34),{orgSlug:v,virtualMcpId:j,branch:f,kind:p,blockKey:y,block:w}=P;let u;t[0]!==f||t[1]!==v||t[2]!==j?(u={orgSlug:v,virtualMcpId:j,branch:f},t[0]=f,t[1]=v,t[2]=j,t[3]=u):u=t[3];const m=R(u);let d;t[4]!==w||t[5]!==p?(d=D(w,p),t[4]=w,t[5]=p,t[6]=d):d=t[6];const B=d;let h;t[7]!==y||t[8]!==p||t[9]!==m?(h=e=>{m.mutate({blockKey:y,data:J(y,p,e)})},t[7]=y,t[8]=p,t[9]=m,t[10]=h):h=t[10];const[i,E]=K(B,h);let k;t[11]!==i||t[12]!==E?(k=(e,o)=>E({...i,[e]:o}),t[11]=i,t[12]=E,t[13]=k):k=t[13];const a=k,N=q[p];let s;t[14]!==N?(s=r.jsx("span",{className:"text-sm font-medium",children:N}),t[14]=N,t[15]=s):s=t[15];let l;t[16]!==m.isError||t[17]!==m.isPending?(l=r.jsx(M,{isPending:m.isPending,isError:m.isError}),t[16]=m.isError,t[17]=m.isPending,t[18]=l):l=t[18];let n;t[19]!==s||t[20]!==l?(n=r.jsxs("div",{className:"flex h-12 shrink-0 items-center justify-between border-b px-6",children:[s,l]}),t[19]=s,t[20]=l,t[21]=n):n=t[21];const I=$[p];let c;if(t[22]!==i||t[23]!==a||t[24]!==I){let e;t[26]!==i||t[27]!==a?(e=o=>r.jsx("div",{className:"space-y-2",children:o.widget==="image"?r.jsx(A,{schema:{type:"string",format:"image-uri",title:o.label},value:i[o.key],onChange:x=>a(o.key,x),path:o.key,label:o.label}):r.jsxs(r.Fragment,{children:[r.jsx(T,{htmlFor:o.key,children:o.label}),o.widget==="textarea"?r.jsx(L,{id:o.key,value:S(i[o.key]),onChange:x=>a(o.key,x.target.value),rows:3}):r.jsx(F,{id:o.key,value:S(i[o.key]),placeholder:o.placeholder,onChange:x=>a(o.key,x.target.value),className:"h-10"})]})},o.key),t[26]=i,t[27]=a,t[28]=e):e=t[28],c=I.map(e),t[22]=i,t[23]=a,t[24]=I,t[25]=c}else c=t[25];let g;t[29]!==c?(g=r.jsx("div",{className:"min-w-0 flex-1 overflow-y-auto px-6 py-6",children:r.jsx("div",{className:"mx-auto max-w-xl space-y-6",children:c})}),t[29]=c,t[30]=g):g=t[30];let b;return t[31]!==g||t[32]!==n?(b=r.jsxs("div",{className:"flex h-full flex-col",children:[n,g]}),t[31]=g,t[32]=n,t[33]=b):b=t[33],b}export{Tr as RecordEditor};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/registry-layout-C7DwnK5e.js","assets/index-D6idVW2n.js","assets/index-C4D2JWLP.css","assets/XCircle-BD7UyEOF.js","assets/CheckCircle-DrDyiPu_.js","assets/Container-BowdgJ62.js","assets/Settings02-CnuG-oH5.js","assets/use-mcp-client-Dutz6IKN.js","assets/useInfiniteQuery-C4mxsTCl.js","assets/infiniteQueryObserver-VyVFnsqY.js","assets/badge-CRBv_-v0.js","assets/input-ChQ639sE.js","assets/dropdown-menu-X3z-hQ2M.js","assets/Check-BNom5dOo.js","assets/ChevronRight-GBMV5yJO.js","assets/DotsVertical-C1UpLbMK.js","assets/table-Cy6WVAuu.js","assets/toggle-group-DLxiboB7.js","assets/use-view-mode-EyZ_szat.js","assets/tooltip-BwAS3LmD.js","assets/FilterLines-CLU1cvnm.js","assets/Globe01-Ca2CDUqL.js","assets/SearchMd-BrE4Lp2d.js","assets/dialog-fdhgLhBf.js","assets/X-D2-T6h59.js","assets/AlertCircle-Di-V3umI.js","assets/Upload01-ypYRbiXm.js","assets/alert-dialog-Di87pvaw.js","assets/card-DjCUI9mK.js","assets/Trash01-DOwZGPnm.js","assets/label-rvaNBf1n.js","assets/select-D-XBS65u.js","assets/ChevronDown-B21_IsL3.js","assets/ChevronUp-CGGIgndb.js","assets/switch-Djy20jDK.js","assets/textarea-FwxJbyLj.js","assets/RefreshCcw01-DoQ2Q5nQ.js","assets/checkbox-C0J6d59Z.js","assets/Eye-CCL1jvke.js","assets/LinkExternal01-BmWxPEFc.js","assets/use-copy-N9ijygLT.js","assets/Key01-B0KHYY9A.js","assets/Plus-BW-TIinL.js","assets/Play-BWZ7aOd4.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{e as i,j as e,r as s,l as a,_ as o}from"./index-D6idVW2n.js";import{R as l}from"./require-capability-B4l3wBea.js";import"./use-capability-BTcvzwTt.js";import"./access-gate-BxaFZysE.js";import"./capability-load-error-DQKXVSLb.js";const m=s.lazy(()=>o(()=>import("./registry-layout-C7DwnK5e.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43])));function f(){const r=i.c(1);let t;return r[0]===Symbol.for("react.memo_cache_sentinel")?(t=e.jsx(l,{capability:"registry:manage",area:"the registry",children:e.jsx(s.Suspense,{fallback:e.jsx("div",{className:"flex-1 flex items-center justify-center",children:e.jsx(a,{size:20,className:"animate-spin text-muted-foreground"})}),children:e.jsx(m,{})})}),r[0]=t):t=r[0],t}export{f as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as a}from"./header-tab-button-D5FVHg7C.js";function t(r){return(e,o)=>{a(e),r(e,o)}}export{t as c};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/registry-layout-C7DwnK5e.js","assets/index-D6idVW2n.js","assets/index-C4D2JWLP.css","assets/XCircle-BD7UyEOF.js","assets/CheckCircle-DrDyiPu_.js","assets/Container-BowdgJ62.js","assets/Settings02-CnuG-oH5.js","assets/use-mcp-client-Dutz6IKN.js","assets/useInfiniteQuery-C4mxsTCl.js","assets/infiniteQueryObserver-VyVFnsqY.js","assets/badge-CRBv_-v0.js","assets/input-ChQ639sE.js","assets/dropdown-menu-X3z-hQ2M.js","assets/Check-BNom5dOo.js","assets/ChevronRight-GBMV5yJO.js","assets/DotsVertical-C1UpLbMK.js","assets/table-Cy6WVAuu.js","assets/toggle-group-DLxiboB7.js","assets/use-view-mode-EyZ_szat.js","assets/tooltip-BwAS3LmD.js","assets/FilterLines-CLU1cvnm.js","assets/Globe01-Ca2CDUqL.js","assets/SearchMd-BrE4Lp2d.js","assets/dialog-fdhgLhBf.js","assets/X-D2-T6h59.js","assets/AlertCircle-Di-V3umI.js","assets/Upload01-ypYRbiXm.js","assets/alert-dialog-Di87pvaw.js","assets/card-DjCUI9mK.js","assets/Trash01-DOwZGPnm.js","assets/label-rvaNBf1n.js","assets/select-D-XBS65u.js","assets/ChevronDown-B21_IsL3.js","assets/ChevronUp-CGGIgndb.js","assets/switch-Djy20jDK.js","assets/textarea-FwxJbyLj.js","assets/RefreshCcw01-DoQ2Q5nQ.js","assets/checkbox-C0J6d59Z.js","assets/Eye-CCL1jvke.js","assets/LinkExternal01-BmWxPEFc.js","assets/use-copy-N9ijygLT.js","assets/Key01-B0KHYY9A.js","assets/Plus-BW-TIinL.js","assets/Play-BWZ7aOd4.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{e as m,f as n,g as c,j as t,l as f,r as l,_ as p}from"./index-D6idVW2n.js";import{R as u}from"./require-capability-B4l3wBea.js";import"./use-capability-BTcvzwTt.js";import"./access-gate-BxaFZysE.js";import"./capability-load-error-DQKXVSLb.js";const g=l.lazy(()=>p(()=>import("./registry-layout-C7DwnK5e.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43])));function j(){const e=m.c(5),i=n();let s;e[0]===Symbol.for("react.memo_cache_sentinel")?(s={from:"/shell/$org"},e[0]=s):s=e[0];const{org:o}=c(s);let r;e[1]===Symbol.for("react.memo_cache_sentinel")?(r=t.jsx("div",{className:"h-full flex items-center justify-center",children:t.jsx(f,{size:20,className:"animate-spin text-muted-foreground"})}),e[1]=r):r=e[1];let a;return e[2]!==i||e[3]!==o?(a=t.jsx(u,{capability:"registry:manage",area:"the registry",children:t.jsx(l.Suspense,{fallback:r,children:t.jsx(g,{onBack:()=>i({to:"/$org/settings/store",params:{org:o}})})})}),e[2]=i,e[3]=o,e[4]=a):a=e[4],a}export{j as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{I as u}from"./infiniteQueryObserver-VyVFnsqY.js";import{cE as i}from"./index-D6idVW2n.js";function t(e,r){return i(e,u,r)}export{t as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{I as s}from"./infiniteQueryObserver-VyVFnsqY.js";import{cE as u,aF as n}from"./index-D6idVW2n.js";function a(r,e){return u({...r,enabled:!0,suspense:!0,throwOnError:n},s,e)}export{a as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{e as s,g as l,j as o,l as a,E as n,r as c}from"./index-D6idVW2n.js";import{a as f}from"./index-DwykyBcY.js";import"./index-Bu_CNCUZ.js";import"./use-mcp-client-Dutz6IKN.js";import"./collections-CFguVIuY.js";import"./index-BYXBOiLY.js";import"./use-virtual-mcp-BW5609Gn.js";import"./use-collections-B1ftgmsC.js";import"./monaco-editor-B2W8v7r6.js";import"./index-Doc3AWor.js";import"./spinner-Ba6MQmcV.js";import"./resizable-CA7mW65R.js";import"./ZoomOut-CrNlxKNu.js";import"./badge-CRBv_-v0.js";import"./select-D-XBS65u.js";import"./tooltip-BwAS3LmD.js";import"./Check-BNom5dOo.js";import"./ChevronDown-B21_IsL3.js";import"./ChevronUp-CGGIgndb.js";import"./view-mode-toggle-B0zSaOcF.js";import"./agent-icon-DwlI421o.js";import"./AlertCircle-Di-V3umI.js";import"./Tool01-BGucVzDk.js";import"./SwitchHorizontal01-CBvA0yYX.js";import"./RefreshCcw01-DoQ2Q5nQ.js";import"./XCircle-BD7UyEOF.js";import"./ArrowUpRight-C-T2gJLi.js";import"./ZapSquare-DMyX_8RQ.js";import"./Users03-Gpc8Fhl9.js";import"./CheckCircle-DrDyiPu_.js";import"./ChevronLeft-Ctye75GL.js";import"./ChevronRight-GBMV5yJO.js";import"./DotsVertical-C1UpLbMK.js";import"./Container-BowdgJ62.js";import"./Eye-CCL1jvke.js";import"./Globe01-Ca2CDUqL.js";import"./FilterLines-CLU1cvnm.js";import"./Star01-f8rMlJ5U.js";import"./Palette-DljqRkOL.js";import"./HardDrive-BRJbxTgf.js";import"./Stars02-DApbfWB6.js";import"./Key01-B0KHYY9A.js";import"./LayoutLeft-DQjoJnlv.js";import"./LinkExternal01-BmWxPEFc.js";import"./Monitor01-CCpw9YsU.js";import"./Sun-BupjfBtR.js";import"./Play-BWZ7aOd4.js";import"./Plus-BW-TIinL.js";import"./SearchMd-BrE4Lp2d.js";import"./Settings02-CnuG-oH5.js";import"./Shield01-BAt9OJkk.js";import"./Stars01-GUKoSsGN.js";import"./Trash01-DOwZGPnm.js";import"./Upload01-ypYRbiXm.js";import"./User01-iRKM2KTq.js";import"./Users01-CQjxMYXj.js";import"./XClose-qC7X4hjJ.js";import"./X-D2-T6h59.js";import"./Zap-BxPmO3d7.js";import"./layout-DmZgycrJ.js";import"./index-D-CqRT4O.js";import"./sidebar-faIWOpU7.js";import"./sheet-BdF_K2dB.js";import"./use-connection-f6XTkb53.js";import"./use-mcp-tools-Dk5wX_Q8.js";import"./dialog-fdhgLhBf.js";import"./scroll-area-S5xU4-3T.js";import"./index-DeDtw-b1.js";import"./hover-card-CrD42WSD.js";import"./dropdown-menu-X3z-hQ2M.js";import"./integration-icon-b2Rlb-Sb.js";import"./accordion-DBdAn4Yd.js";import"./index-Cm05rD4S.js";import"./empty-state-CQXcLTIH.js";import"./create-sse-subscription-BS5983N4.js";import"./input-ChQ639sE.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};
|