decocms 4.179.2 → 4.179.3
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-D6c8LYe2.js → AlertCircle-RaWn2qdE.js} +1 -1
- package/dist/client/assets/{AreaChart-CH8Js2pi.js → AreaChart-BKtglana.js} +1 -1
- package/dist/client/assets/{ArrowUp-kEV48sO6.js → ArrowUp-_v1PyJZC.js} +1 -1
- package/dist/client/assets/{ArrowUpRight-BJYmfFMN.js → ArrowUpRight-B444FnlJ.js} +1 -1
- package/dist/client/assets/{Check-ABlJjCtF.js → Check-wOEWxhdD.js} +1 -1
- package/dist/client/assets/{CheckCircle-fH3Msw4R.js → CheckCircle-D7Yco-4X.js} +1 -1
- package/dist/client/assets/{ChevronDown-CL6RDz5r.js → ChevronDown-D2DVQmsy.js} +1 -1
- package/dist/client/assets/{ChevronRight-D2QIyurw.js → ChevronRight-BCM3C67B.js} +1 -1
- package/dist/client/assets/{ChevronUp-WdrPgkPC.js → ChevronUp-DuTqOSnE.js} +1 -1
- package/dist/client/assets/{Copy01-ChG3zPJ0.js → Copy01-BbpoCCyO.js} +1 -1
- package/dist/client/assets/{CpuChip01-Bxo-OgNH.js → CpuChip01-Ds3Siuba.js} +1 -1
- package/dist/client/assets/{DotsVertical-BZgAyV6r.js → DotsVertical-C_vKkJ1J.js} +1 -1
- package/dist/client/assets/{Eye-CxGSRvYT.js → Eye-C5cEGVY_.js} +1 -1
- package/dist/client/assets/{FilterLines-zBVPjUus.js → FilterLines-uTkCMuiI.js} +1 -1
- package/dist/client/assets/{HardDrive-P4-L952D.js → HardDrive-Cp6U5rpQ.js} +1 -1
- package/dist/client/assets/{Key01-B5XIt7RR.js → Key01-CqVB3UBj.js} +1 -1
- package/dist/client/assets/{LayoutLeft-CMzVyzfF.js → LayoutLeft-CxXB7X--.js} +1 -1
- package/dist/client/assets/{LinkExternal01-D5kaL51e.js → LinkExternal01-DrPyuW_v.js} +1 -1
- package/dist/client/assets/{LogOut01-BIgAap7M.js → LogOut01-B3b0EefQ.js} +1 -1
- package/dist/client/assets/{Monitor01-Brls3Mpk.js → Monitor01-h6QKqUY2.js} +1 -1
- package/dist/client/assets/{Palette-BfkvPfr9.js → Palette-D9tuxjKh.js} +1 -1
- package/dist/client/assets/{Play-BUR5ZZG_.js → Play-CAF_iHYC.js} +1 -1
- package/dist/client/assets/{Plus-B6_X_P_4.js → Plus-fz3_8U8E.js} +1 -1
- package/dist/client/assets/{SearchLg-Ce7J_1q7.js → SearchLg-DrUjqH4f.js} +1 -1
- package/dist/client/assets/{SearchMd-XsnDUwN2.js → SearchMd-CjfiBnuw.js} +1 -1
- package/dist/client/assets/{Settings02-DMM46Cmi.js → Settings02-nzKOBdvA.js} +1 -1
- package/dist/client/assets/{Shield01-EWp8tUSc.js → Shield01-DoD88fg7.js} +1 -1
- package/dist/client/assets/{Star01-DQ9hzdT-.js → Star01-5QeNs8i6.js} +1 -1
- package/dist/client/assets/{Stars01-BO74Adtc.js → Stars01-CI3urKc2.js} +1 -1
- package/dist/client/assets/{Stars02-CwpBILJw.js → Stars02-zKxDyY55.js} +1 -1
- package/dist/client/assets/{Sun-DHdilogk.js → Sun-BQaO4Ai0.js} +1 -1
- package/dist/client/assets/{SwitchHorizontal01-C9NmbYS6.js → SwitchHorizontal01-Bq5heGnG.js} +1 -1
- package/dist/client/assets/{Tool01-CamnMBwA.js → Tool01-CsvOceJe.js} +1 -1
- package/dist/client/assets/{Tool02-BFsJ0nQe.js → Tool02-Bnake2Hk.js} +1 -1
- package/dist/client/assets/{Trash01-CW5LSIHJ.js → Trash01-Y7uWt21-.js} +1 -1
- package/dist/client/assets/{TrendUp01-CkRTnQ7B.js → TrendUp01-BzStLm9A.js} +1 -1
- package/dist/client/assets/{Upload01-BtC3p48n.js → Upload01-DhzpvAbC.js} +1 -1
- package/dist/client/assets/{User01-BeMqcvR2.js → User01-CILHYDPl.js} +1 -1
- package/dist/client/assets/{Users01-CHLB2Bd2.js → Users01-BQ9Gg6eP.js} +1 -1
- package/dist/client/assets/{Users03-BQ13o3ba.js → Users03-Z3UygFKB.js} +1 -1
- package/dist/client/assets/{X-BwJEoUio.js → X-BPrNOELh.js} +1 -1
- package/dist/client/assets/{XCircle-C85zLpV2.js → XCircle-B1ExbbAQ.js} +1 -1
- package/dist/client/assets/{XClose-CQGidY34.js → XClose-DGwMZ7_N.js} +1 -1
- package/dist/client/assets/{Zap-CLcTXDga.js → Zap-BCHs3zmd.js} +1 -1
- package/dist/client/assets/{ZapSquare-7-GJcAiY.js → ZapSquare-Dp_5fp2Z.js} +1 -1
- package/dist/client/assets/{access-gate-DbVLkPTf.js → access-gate-DNOkJOpD.js} +1 -1
- package/dist/client/assets/{add-section-modal-_LliHN-t.js → add-section-modal-CmXxpFx7.js} +1 -1
- package/dist/client/assets/{agent-icon-Dhl-sFkB.js → agent-icon-DShg4THN.js} +1 -1
- package/dist/client/assets/{agents-list-DvTA8xjo.js → agents-list-lf0-hWgy.js} +1 -1
- package/dist/client/assets/{ai-providers-DvJtez0R.js → ai-providers-CF4lCUV4.js} +1 -1
- package/dist/client/assets/{alert-Gkha_D03.js → alert-C0bxRzay.js} +1 -1
- package/dist/client/assets/{alert-dialog-D9zdnhjA.js → alert-dialog-D-ko5RoT.js} +1 -1
- package/dist/client/assets/{app-editor-4Yk9DE48.js → app-editor-D6LKC7Ww.js} +1 -1
- package/dist/client/assets/{auth-ChokZ9Zk.js → auth-BmWlFaf3.js} +1 -1
- package/dist/client/assets/{auth-catchall-qU16A355.js → auth-catchall-B6gA2Yva.js} +1 -1
- package/dist/client/assets/{auth-entry-CHy0sgXn.js → auth-entry-BXGJkLso.js} +1 -1
- package/dist/client/assets/{auth-split-layout-B2AuAMHa.js → auth-split-layout-B6XVJe9S.js} +1 -1
- package/dist/client/assets/{authenticate-and-persist-oauth-ZChCauXW.js → authenticate-and-persist-oauth--lbNdQqp.js} +1 -1
- package/dist/client/assets/{automation-list-row-BQWybGt8.js → automation-list-row-_bdWs_W4.js} +1 -1
- package/dist/client/assets/{automation-runs-C7ms741v.js → automation-runs-C2BB3D8W.js} +1 -1
- package/dist/client/assets/{automations-BfKficEg.js → automations-hNT_H_kV.js} +1 -1
- package/dist/client/assets/{avatar-BFoFykFY.js → avatar-CTppg1We.js} +1 -1
- package/dist/client/assets/{badge-CMT8AbHk.js → badge-BPouPRrf.js} +1 -1
- package/dist/client/assets/{block-document-CmcO-xP6.js → block-document-DIi_Xnlv.js} +1 -1
- package/dist/client/assets/{brand-context-qbc8etKL.js → brand-context-CrKQcZt7.js} +1 -1
- package/dist/client/assets/{buckets-BViCwhfu.js → buckets-Bx_6ds__.js} +1 -1
- package/dist/client/assets/{bulk-category-panel-BgoUjrxA.js → bulk-category-panel-BPl6O4QF.js} +1 -1
- package/dist/client/assets/{calendar-Du-u_cku.js → calendar-CNqq8Qyl.js} +1 -1
- package/dist/client/assets/{capability-load-error-sXUj6mV3.js → capability-load-error-75b9rk0q.js} +1 -1
- package/dist/client/assets/{card-Cj42UNuZ.js → card-YKMhk_hb.js} +1 -1
- package/dist/client/assets/{category-editor-BZ8rt9lZ.js → category-editor-fO2ANVCR.js} +1 -1
- package/dist/client/assets/{chat-context-BPy3uKbU.js → chat-context-C6ta2a8S.js} +1 -1
- package/dist/client/assets/{checkbox-D3dESoRB.js → checkbox-CiPfdHK5.js} +1 -1
- package/dist/client/assets/{cli-auth-success-BBxezqZ4.js → cli-auth-success-CAl8Co82.js} +1 -1
- package/dist/client/assets/{collection-detail-CNOGlTyC.js → collection-detail-C6MWeKWs.js} +1 -1
- package/dist/client/assets/{collection-display-button-C5ikvV0w.js → collection-display-button-PviG3V6T.js} +1 -1
- package/dist/client/assets/{collection-search-BJI10moC.js → collection-search-Cqou-sHI.js} +1 -1
- package/dist/client/assets/{collection-table-wrapper-CxWi0cGQ.js → collection-table-wrapper-BipYz5Cs.js} +1 -1
- package/dist/client/assets/{collection-tabs-BqHat4dR.js → collection-tabs-BQS5hMQO.js} +1 -1
- package/dist/client/assets/{command-BFvttDfs.js → command-BT1brb0h.js} +1 -1
- package/dist/client/assets/{commerce-onboarding-Df0TKqzp.js → commerce-onboarding-Zo2E0tuN.js} +1 -1
- package/dist/client/assets/{companions-core-BlWhbe5J.js → companions-core-g31tJj8D.js} +1 -1
- package/dist/client/assets/{connect-DVmJjsis.js → connect-DKBy6Lyj.js} +1 -1
- package/dist/client/assets/{connection-H9uDX1-t.js → connection-CoPMmVA8.js} +1 -1
- package/dist/client/assets/{connection-card-BoOcyXrA.js → connection-card-B3WvHcvK.js} +1 -1
- package/dist/client/assets/{connection-detail-CoxEgBzC.js → connection-detail-DiV4CnT8.js} +1 -1
- package/dist/client/assets/{connection-form-helpers-Bx4nPQ82.js → connection-form-helpers-Cd6KCI-x.js} +1 -1
- package/dist/client/assets/{connections-Cnduo2Sk.js → connections-9aFVu8PG.js} +1 -1
- package/dist/client/assets/{decopilot-sse-pool-Da-b1rKt.js → decopilot-sse-pool-D5OlUuNx.js} +1 -1
- package/dist/client/assets/{dialog-DOTOGQXn.js → dialog-BLphFjCS.js} +1 -1
- package/dist/client/assets/{domain-settings-Cb6N4QQM.js → domain-settings-CZp_NJLo.js} +1 -1
- package/dist/client/assets/{drawer-C7F3cWRd.js → drawer-DsviRuwh.js} +1 -1
- package/dist/client/assets/{dropdown-menu-WljPwjJm.js → dropdown-menu-veZBy1e2.js} +1 -1
- package/dist/client/assets/{empty-state-LW2nTRFn.js → empty-state-BGzbaquM.js} +1 -1
- package/dist/client/assets/{extract-connection-data-DTWYsTXl.js → extract-connection-data-B9TMW5OB.js} +1 -1
- package/dist/client/assets/{file-explorer-Czs9Tv16.js → file-explorer-BD9-j5Sj.js} +1 -1
- package/dist/client/assets/{form-BmJCuc_G.js → form-Bkl90cEN.js} +1 -1
- package/dist/client/assets/{general-Co0Dwfu4.js → general-C4xoRBRQ.js} +1 -1
- package/dist/client/assets/{github-repo-picker-BQ9MUAwh.js → github-repo-picker-D-ff3G6T.js} +1 -1
- package/dist/client/assets/{hooks-CLECGsuo.js → hooks-BVVnjKv0.js} +1 -1
- package/dist/client/assets/{index-BTccz16O.js → index-BCNsoV1P.js} +1 -1
- package/dist/client/assets/{index-Czxkr_gt.js → index-BCcUTWxr.js} +1 -1
- package/dist/client/assets/{index-tzcuDE5K.js → index-BvZKxFs_.js} +1 -1
- package/dist/client/assets/{index-NPig_MUt.js → index-CKX4JlMg.js} +5 -5
- package/dist/client/assets/{index-Cvu4RyU9.js → index-CSaLEoVR.js} +3 -3
- package/dist/client/assets/{index-CEyDFsze.js → index-Cj5KPR-9.js} +1 -1
- package/dist/client/assets/{index-C4FbpJPs.js → index-ClYhB9Lh.js} +1 -1
- package/dist/client/assets/{index-Dpi5W1fE.js → index-D6320hv5.js} +1 -1
- package/dist/client/assets/{index-C8SXOZsQ.js → index-L4L3_Dyl.js} +1 -1
- package/dist/client/assets/{index-BNAJA2AE.js → index-Leqj52UD.js} +1 -1
- package/dist/client/assets/{index-ClldkStb.js → index-YY-7Zjts.js} +1 -1
- package/dist/client/assets/{index-BLoJTTYl.js → index-ae29Vqhx.js} +3 -3
- package/dist/client/assets/{index-redirect-BGHGe3b1.js → index-redirect-l3_POX63.js} +1 -1
- package/dist/client/assets/{input-DZGEXgzv.js → input-BBVX_6cn.js} +1 -1
- package/dist/client/assets/{integration-icon-CEvXANMx.js → integration-icon-shdif4Xa.js} +1 -1
- package/dist/client/assets/{invite-member-dialog-BR0-1g82.js → invite-member-dialog-BHl80IfE.js} +1 -1
- package/dist/client/assets/{label-S8cQ0Exp.js → label-yePKVfna.js} +1 -1
- package/dist/client/assets/{layout-MR2W6oql.js → layout-C-cTOfty.js} +1 -1
- package/dist/client/assets/{login-D03v7g6w.js → login-CTaMn8zS.js} +1 -1
- package/dist/client/assets/{mcp-oauth-bPeVlVPZ.js → mcp-oauth-BP4cXSso.js} +1 -1
- package/dist/client/assets/{members-DYlNErov.js → members-FmWdXZ-t.js} +1 -1
- package/dist/client/assets/{monaco-editor-DBddUUoq.js → monaco-editor-BLRSqr-o.js} +1 -1
- package/dist/client/assets/{monitoring-stats-row-6gQrL3hU.js → monitoring-stats-row-B10Od33v.js} +1 -1
- package/dist/client/assets/{multi-select--BFWUbv1.js → multi-select-BskTm5w6.js} +1 -1
- package/dist/client/assets/{oauth-callback-GYuPK3Yh.js → oauth-callback-DjBiF8Ht.js} +1 -1
- package/dist/client/assets/{oauth-callback-ai-provider-DcjCPY4I.js → oauth-callback-ai-provider-BHYMnCqz.js} +1 -1
- package/dist/client/assets/{onboarding-C_KHBSmA.js → onboarding-BpRsC2oe.js} +1 -1
- package/dist/client/assets/{org-layout-LmRBN-0c.js → org-layout-C9r2pBLC.js} +1 -1
- package/dist/client/assets/{organization-choice-Bq9nQMUx.js → organization-choice-CROqzCOl.js} +1 -1
- package/dist/client/assets/{orgs-BIPAHD5q.js → orgs-CGcdaPr2.js} +1 -1
- package/dist/client/assets/{page-seo-form-CKrKowKL.js → page-seo-form-jiDBKOgh.js} +1 -1
- package/dist/client/assets/{popover-CjVj_wOo.js → popover-jn3JmlYB.js} +1 -1
- package/dist/client/assets/{post-editor-BfcakWE2.js → post-editor-dsiZ5HI8.js} +1 -1
- package/dist/client/assets/{primitives-vqAoNtYO.js → primitives-B_UQAB15.js} +1 -1
- package/dist/client/assets/{profile-CxwGqoIl.js → profile-C9XlQsFU.js} +1 -1
- package/dist/client/assets/project-app-view-DKefvtvP.js +1 -0
- package/dist/client/assets/record-editor-CSR76Oh-.js +1 -0
- package/dist/client/assets/{redirect-editor-CFCcg62k.js → redirect-editor-C_k6I0u1.js} +1 -1
- package/dist/client/assets/registry-DLNeLiwj.js +2 -0
- package/dist/client/assets/{registry-layout-B2Mq-MEw.js → registry-layout-Csvx2Hte.js} +1 -1
- package/dist/client/assets/{reports-CzSEg25p.js → reports-DG0-jD7f.js} +1 -1
- package/dist/client/assets/{require-capability-Ch_i9MUx.js → require-capability-B6_ZXQu1.js} +1 -1
- package/dist/client/assets/{required-auth-layout-Dhb-IyLY.js → required-auth-layout-BYIar65W.js} +1 -1
- package/dist/client/assets/{reset-password-C0z7uXQu.js → reset-password-DPBfdncv.js} +1 -1
- package/dist/client/assets/{roles-Bvzq2BnJ.js → roles-DpfsSeKe.js} +1 -1
- package/dist/client/assets/{search-input--9p4kx8X.js → search-input-B8ayfzGl.js} +1 -1
- package/dist/client/assets/{secrets-Bg-rMdrX.js → secrets-Cus1bsx5.js} +1 -1
- package/dist/client/assets/{sections-editor-BqXEuUbH.js → sections-editor-hiAa1leh.js} +1 -1
- package/dist/client/assets/{select-model-Rm8e3i9g.js → select-model-BQulWoif.js} +1 -1
- package/dist/client/assets/{select-B0lo91wi.js → select-ppm3orjA.js} +1 -1
- package/dist/client/assets/{self-tool-result-BDMMeN1e.js → self-tool-result-Hk_A-xD2.js} +1 -1
- package/dist/client/assets/{seo-editor-DipwpF-d.js → seo-editor-BoH0xEoC.js} +1 -1
- package/dist/client/assets/{settings-layout-CA_2Z5w7.js → settings-layout-6CUTyHHR.js} +1 -1
- package/dist/client/assets/{settings-section-nKCe9ELF.js → settings-section-aLJ5x4Bb.js} +1 -1
- package/dist/client/assets/{shell-controls-Eg2AkZT3.js → shell-controls-l5NvObmP.js} +1 -1
- package/dist/client/assets/{shell-layout-R-tVQWxS.js → shell-layout-CEOcii9H.js} +1 -1
- package/dist/client/assets/{sidebar-DwssglGA.js → sidebar-DsIxwGGa.js} +1 -1
- package/dist/client/assets/{skeleton-CGtQBM1r.js → skeleton-DcNYWNQH.js} +1 -1
- package/dist/client/assets/{spinner-Co_UYVI5.js → spinner-P-UzksZ6.js} +1 -1
- package/dist/client/assets/{sso-BNYaFbZK.js → sso-57ZIkHgl.js} +1 -1
- package/dist/client/assets/{store-CLUTIMf8.js → store-DqCA5bGA.js} +1 -1
- package/dist/client/assets/store-registry-BuaudJKu.js +2 -0
- package/dist/client/assets/{studio-tools-QZAsl8sN.js → studio-tools-CPEnz302.js} +1 -1
- package/dist/client/assets/{switch-BgHcCYyD.js → switch-B41oZNI6.js} +1 -1
- package/dist/client/assets/{tab-id-CwozFwfi.js → tab-id-DiBFBWZk.js} +1 -1
- package/dist/client/assets/{table-hSXgAArl.js → table-3B5Yrdcv.js} +1 -1
- package/dist/client/assets/{tabs-DV_hrUZc.js → tabs-4pYk9rE2.js} +1 -1
- package/dist/client/assets/{textarea-CLXXVDxG.js → textarea-CMb31KVu.js} +1 -1
- package/dist/client/assets/{toggle-group-BJOCIBLH.js → toggle-group-K9ttLQUK.js} +1 -1
- package/dist/client/assets/{toolbar-6QPic2k_.js → toolbar-wcxvhT2F.js} +1 -1
- package/dist/client/assets/{tooltip-C1X_Sh0t.js → tooltip-CqlOk4LY.js} +1 -1
- package/dist/client/assets/{use-ai-providers-CY0n-NJx.js → use-ai-providers-CKfFdt6Z.js} +1 -1
- package/dist/client/assets/{use-automations-CBx-mhfE.js → use-automations-DGYCEL-p.js} +1 -1
- package/dist/client/assets/{use-autosave-D0UZlhoU.js → use-autosave-CD1MSVzb.js} +1 -1
- package/dist/client/assets/{use-capability-yfVxXW4U.js → use-capability-enalroLv.js} +1 -1
- package/dist/client/assets/{use-clock-tick-C4RROoEU.js → use-clock-tick-BhsVH4Id.js} +1 -1
- package/dist/client/assets/{use-connection-C-89K6Fu.js → use-connection-BRAoZVdi.js} +1 -1
- package/dist/client/assets/{use-copy-xpbAEjPw.js → use-copy-Dh4bkm3m.js} +1 -1
- package/dist/client/assets/{use-create-virtual-mcp-D_yWyam7.js → use-create-virtual-mcp-CBaTgwti.js} +1 -1
- package/dist/client/assets/{use-debounced-autosave-DL09BHQn.js → use-debounced-autosave-DMe13H2L.js} +1 -1
- package/dist/client/assets/{use-debounced-value-DEU9FY-9.js → use-debounced-value-5vPsvbpQ.js} +1 -1
- package/dist/client/assets/{use-deco-credits-u9Wzzs2f.js → use-deco-credits-DI3NoupK.js} +1 -1
- package/dist/client/assets/{use-decopilot-events-Bp3t3i2a.js → use-decopilot-events-BLNanHeO.js} +1 -1
- package/dist/client/assets/{use-delete-connection-7Z6o0Lx1.js → use-delete-connection-BwAvabH1.js} +1 -1
- package/dist/client/assets/{use-deployment-admin-hzGF-Ckw.js → use-deployment-admin-DnPUgVY_.js} +1 -1
- package/dist/client/assets/{use-file-configs-DcC2ZiSo.js → use-file-configs-QHdxrCoX.js} +1 -1
- package/dist/client/assets/{use-infinite-scroll-Dcths7GY.js → use-infinite-scroll-1wtdiowu.js} +1 -1
- package/dist/client/assets/{use-join-requests-BSsas45Y.js → use-join-requests-k-YSGjKb.js} +1 -1
- package/dist/client/assets/{use-mcp-client-CS5h587h.js → use-mcp-client-BYngXBT6.js} +1 -1
- package/dist/client/assets/{use-mcp-tools-DIYXCAIA.js → use-mcp-tools-CfcvFTzj.js} +1 -1
- package/dist/client/assets/{use-members-DxfSI2Jx.js → use-members-D1WQa-CT.js} +1 -1
- package/dist/client/assets/{use-mobile-BaglBH3A.js → use-mobile-CI8oD3ri.js} +1 -1
- package/dist/client/assets/{use-navigate-to-agent-C-d85JYQ.js → use-navigate-to-agent-BfKWRDbc.js} +1 -1
- package/dist/client/assets/{use-org-auth-client-cK0HLSu7.js → use-org-auth-client-BANmmzen.js} +1 -1
- package/dist/client/assets/{use-org-sso-CNnypjgO.js → use-org-sso-Bni0gYjT.js} +1 -1
- package/dist/client/assets/{use-organization-roles-CatKb2no.js → use-organization-roles-D572695_.js} +1 -1
- package/dist/client/assets/{use-organization-settings-DgQSnPZR.js → use-organization-settings-CymoXkDm.js} +1 -1
- package/dist/client/assets/{use-registry-connections-Cp-VoHEt.js → use-registry-connections-DCkEBfu9.js} +1 -1
- package/dist/client/assets/{use-secrets-ufY8LNwD.js → use-secrets-D6mGxhoE.js} +1 -1
- package/dist/client/assets/{use-status-sounds-CudOZapr.js → use-status-sounds-DrE83CIk.js} +1 -1
- package/dist/client/assets/{use-tags-D7xTkrG0.js → use-tags-xIbpVn4M.js} +1 -1
- package/dist/client/assets/{use-view-mode-CI2I5cEk.js → use-view-mode-CcbBJ0u6.js} +1 -1
- package/dist/client/assets/{use-virtual-mcp-DPt7VpPC.js → use-virtual-mcp-Cfb_3CLM.js} +1 -1
- package/dist/client/assets/useInfiniteQuery-CJOrBf8a.js +1 -0
- package/dist/client/assets/{useQueries-BceWXdKI.js → useQueries-DYepcVkA.js} +1 -1
- package/dist/client/assets/{useRouterState-CuQj0227.js → useRouterState-HQACt5GE.js} +1 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-2KEX_w1G.js +1 -0
- package/dist/client/assets/{users-Cg3Zd0Xw.js → users-fAMwRIn_.js} +1 -1
- package/dist/client/assets/{variant-calendar-DcgCi0-J.js → variant-calendar-FLzztAI6.js} +1 -1
- package/dist/client/assets/{view-mode-toggle-CsNoqGjP.js → view-mode-toggle-BMFBwFEH.js} +1 -1
- package/dist/client/index.html +1 -1
- package/dist/server/cli.js +3 -3
- package/dist/server/server.js +3 -3
- package/package.json +1 -1
- package/dist/client/assets/project-app-view-SO-CKdWn.js +0 -1
- package/dist/client/assets/record-editor-BWFTogJj.js +0 -1
- package/dist/client/assets/registry-B2O8cdDq.js +0 -2
- package/dist/client/assets/store-registry-BvyMbAOv.js +0 -2
- package/dist/client/assets/useInfiniteQuery-BHcbv9d9.js +0 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-BDZ-We-4.js +0 -1
package/dist/server/cli.js
CHANGED
|
@@ -1286,7 +1286,7 @@ Usage: deco services <up|down|status>`),process.exit(1)}}var Ou1=O(()=>{Bv()});f
|
|
|
1286
1286
|
`.execute($);if(Number(W.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${J}/${K}, keeping in old table`);continue}}await cf`
|
|
1287
1287
|
DELETE FROM kysely_migration WHERE name = ${X}
|
|
1288
1288
|
`.execute($)}}async function Rm1($){await tg6($),await og6($);let Z=new Am1({db:$,provider:{getMigrations:()=>Promise.resolve($l0)}}),{error:X,results:Q}=await Z.migrateToLatest(),Y=0;if(Q?.forEach((G)=>{if(G.status==="Success")Y++;else if(G.status==="Error")console.error(`Failed to execute migration "${G.migrationName}"`)}),X)throw console.error("Failed to migrate"),console.error(X),X;return Y}async function rg6($){let{keepOpen:Z=!1,database:X,skipBetterAuth:Q=!1}=$??{},Y="skipped";if(!Q&&!X)Y=await xg0();let G=X??w6(),J=async()=>{if(!Z&&!X)await $w(G).catch((K)=>{console.warn("Warning: Error closing database:",K)})};try{let K=await Rm1(G.db);return await J(),{betterAuth:Y,kysely:K}}catch(K){throw await J(),K}}async function ag6(){let $=w6(),Z=new Am1({db:$.db,provider:{getMigrations:()=>Promise.resolve($l0)}}),{error:X,results:Q}=await Z.migrateDown();if(Q?.forEach((Y)=>{if(Y.status==="Success")console.log(`\u2705 Migration "${Y.migrationName}" rolled back successfully`);else if(Y.status==="Error")console.error(`\u274C Failed to rollback migration "${Y.migrationName}"`)}),X)throw console.error("Failed to rollback migration"),console.error(X),X}var qm1=O(()=>{Pm1();vg0();m7()});async function M50($){let Z={...process.env},X=A00($,Z);console.log(oN1(X.settings.encryptionKey));let Q=X.settings.betterAuthSecret||(X.settings.localMode?nc1(X.settings.dataDir):""),{ensureServices:Y}=await Promise.resolve().then(() => (h$0(),g$0)),{outputs:G,services:J}=await Y({home:X.settings.dataDir,externalDatabaseUrl:X.externalDatabaseUrl,externalNatsUrl:X.externalNatsUrl});if(!X.skipMigrations){let{migrateBetterAuth:W}=await Promise.resolve().then(() => (vg0(),tc1));await W(G.databaseUrl);let{createDatabase:H}=await Promise.resolve().then(() => (m7(),Nc1)),{migrateToLatest:N}=await Promise.resolve().then(() => (qm1(),Im1)),U=H(G.databaseUrl);await N({keepOpen:!0,database:U,skipBetterAuth:!0})}let K={...X.settings,betterAuthSecret:Q,databaseUrl:G.databaseUrl,natsUrls:G.natsUrls,...G.s3?{s3Endpoint:G.s3.endpoint,s3Bucket:G.s3.bucket,s3AccessKeyId:G.s3.accessKeyId,s3SecretAccessKey:G.s3.secretAccessKey,s3ForcePathStyle:G.s3.forcePathStyle}:{},...G.natsTunnel?{natsPublicUrl:G.natsTunnel.publicUrl,natsAccountJwt:G.natsTunnel.accountJwt,natsAccountSigningKey:G.natsTunnel.accountSigningKey,natsOperatorJwt:G.natsTunnel.operatorJwt,natsTunnelPublicEnabled:!0,natsCredsPath:G.natsTunnel.credsPath}:{}};return Lu1(K),{settings:K,services:J.map((W)=>({name:W.name==="PostgreSQL"?"Postgres":W.name,port:W.port})),managedServiceNames:J.filter((W)=>W.owner==="managed").map((W)=>W.name)}}var Zl0=O(()=>{Bv();pc1();y8()});var Sm1={};O0(Sm1,{updateService:()=>fD,subscribeCliState:()=>Yl0,setTuiConsoleIntercepted:()=>k50,setServerUrl:()=>Bm,setMigrationsDone:()=>wm,setDevMode:()=>$h6,resetCliStateForTests:()=>sg6,isTuiConsoleIntercepted:()=>S50,getCliState:()=>Ql0,addLogEntry:()=>Gw});function Mm1(){return{services:[{name:"Postgres",status:"pending",port:0},{name:"NATS",status:"pending",port:0}],migrationsStatus:"pending",serverUrl:null,logs:[]}}function sg6(){qQ=Mm1()}function eg6(){return[{name:"Postgres",status:"pending",port:0},{name:"NATS",status:"pending",port:0}]}function Fm(){for(let $ of Xl0)$()}function Ql0(){return qQ}function Yl0($){return Xl0.add($),()=>Xl0.delete($)}function fD($){qQ={...qQ,services:qQ.services.map((Z)=>Z.name===$.name?$:Z)},Fm()}function wm(){qQ={...qQ,migrationsStatus:"done"},Fm()}function Bm($){qQ={...qQ,serverUrl:$},Fm()}function Gw($){let Z=[...qQ.logs,$];qQ={...qQ,logs:Z.length>500?Z.slice(-500):Z},Fm()}function $h6(){qQ={...qQ,services:[...eg6(),{name:"API",status:"pending",port:0},{name:"Vite",status:"pending",port:0}]},Fm()}function k50($){km1=$}function S50(){return km1}var qQ,Xl0,km1=!1;var bD=O(()=>{qQ=Mm1();Xl0=new Set});import{createServer as Vm1}from"net";function Zh6($){return new Promise((Z)=>{let X=Vm1();X.once("error",()=>Z(!1)),X.listen($,"0.0.0.0",()=>{X.close(()=>Z(!0))})})}async function Om($){if(await Zh6($))return $;let Z=await new Promise((X,Q)=>{let Y=Vm1();Y.once("error",Q),Y.listen(0,"0.0.0.0",()=>{let G=Y.address(),J=typeof G==="object"&&G?G.port:0;Y.close(()=>X(J))})});return console.warn(`Port ${$} is in use, using port ${Z} instead.`),Z}var Gl0=()=>{};function Lm($){return $.replace(/\x1b\[[0-9;]*m/g,"")}var Jl0={};O0(Jl0,{startDevServer:()=>Qh6});import{join as Xh6}from"path";function Cm1($){let Z=$.getReader(),X=new TextDecoder,Q="";function Y(){let G=Q.split(`
|
|
1289
|
-
`);Q=G.pop()??"";for(let J of G){let K=Lm(J).replace(/^\[\d+\]\s*/,"").trim();if(!K)continue;Gw({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:K})}}(async()=>{for(;;){let{done:G,value:J}=await Z.read();if(G)break;Q+=X.decode(J,{stream:!0}),Y()}if(Q.trim()){let G=Lm(Q).replace(/^\[\d+\]\s*/,"").trim();if(G)Gw({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:G})}})()}async function Qh6($){let{baseUrl:Z,noTui:X}=$,Q=process.env.HOST==="0.0.0.0"&&Boolean(process.env.PORT),Y=Q?process.env.PORT:$.vitePort,G=Z||`http://localhost:${Y}`,J=Q?await Om(Number(Y)+1):await Om(Number($.port)),{settings:K,services:W,managedServiceNames:H}=await M50({port:String(J),home:$.home,baseUrl:$.baseUrl,localMode:$.localMode,skipMigrations:$.skipMigrations,noTui:$.noTui,vitePort:$.vitePort});for(let L of W)fD({name:L.name,status:"ready",port:L.port});wm();let N=Xh6(import.meta.dir,"..","..","..","..",".."),U=X===!0,F=Bun.spawn(["bun","run","dev:servers"],{cwd:N,env:{...process.env,PORT:String(K.port),VITE_PORT:String(Y),DATABASE_URL:K.databaseUrl,NATS_URL:K.natsUrls.join(","),NODE_ENV:K.nodeEnv,BASE_URL:G,DECOCMS_LOCAL_MODE:String(K.localMode),DECOCMS_HOME:K.dataDir,DATA_DIR:K.dataDir,DECO_CLI:"1",...K.betterAuthSecret?{BETTER_AUTH_SECRET:K.betterAuthSecret}:{},...K.s3Endpoint?{S3_ENDPOINT:K.s3Endpoint,S3_BUCKET:K.s3Bucket??"",S3_ACCESS_KEY_ID:K.s3AccessKeyId??"",S3_SECRET_ACCESS_KEY:K.s3SecretAccessKey??"",S3_FORCE_PATH_STYLE:String(K.s3ForcePathStyle)}:{},...K.natsPublicUrl&&K.natsAccountJwt&&K.natsAccountSigningKey?{NATS_PUBLIC_URL:K.natsPublicUrl,NATS_ACCOUNT_JWT:K.natsAccountJwt,NATS_ACCOUNT_SIGNING_KEY:K.natsAccountSigningKey,NATS_OPERATOR_JWT:K.natsOperatorJwt??"",NATS_TUNNEL_PUBLIC_ENABLED:"true",...K.natsCredsPath?{NATS_CREDS:K.natsCredsPath}:{}}:{}},stdio:["inherit",U?"inherit":"pipe",U?"inherit":"pipe"]});if(!U)Cm1(F.stdout),Cm1(F.stderr);Bm(G),fD({name:"Vite",status:"ready",port:Number(Y)}),fD({name:"API",status:"ready",port:Number(K.port)});let B=async(L)=>{if(F.kill(L),await F.exited,H.length>0){let{stopServices:D}=await Promise.resolve().then(() => (h$0(),g$0));await D(K.dataDir)}};return process.on("SIGINT",()=>B("SIGINT")),process.on("SIGTERM",()=>B("SIGTERM")),{port:Number(Y),process:F}}var Kl0=O(()=>{Zl0();bD();Gl0()});var V50;var Wl0=O(()=>{V50={name:"decocms",version:"4.179.2",description:"Deco CMS \u2014 Self-hostable MCP Gateway for managing AI connections and tools",author:"Deco team",repository:{type:"git",url:"git+https://github.com/decocms/studio.git",directory:"apps/api"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:"bun run migrate && bun run dev:server","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts",build:"bun run build:server","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","generate:tool-contracts":"bun run scripts/generate-tool-contracts.ts","db:migrate":"bun run ./dist/server/migrate.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts",test:"bun test src","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts",prepublishOnly:"bun run --cwd=../.. build:studio"},optionalDependencies:{"@duckdb/node-api":"^1.5.0-r.1"},dependencies:{"@ai-sdk/anthropic":"^3.0.85","@ai-sdk/google":"^3.0.83","@ai-sdk/openai":"^3.0.73","@anthropic-ai/sdk":"^0.105.0","@aws-sdk/client-s3":"^3.1013.0","@aws-sdk/client-sts":"^3.1013.0","@aws-sdk/lib-storage":"^3.1013.0","@aws-sdk/s3-request-presigner":"^3.1013.0","@clickhouse/client":"^1.8.1","@dbos-inc/dbos-sdk":"^4.21.6","@inkjs/ui":"^2.0.0","@nats-io/jetstream":"3.4.0","@nats-io/kv":"3.4.0","@nats-io/nats-core":"3.4.0","@nats-io/transport-node":"3.4.0","@openrouter/ai-sdk-provider":"^2.9.1","@opentelemetry/core":"^2.6.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12","posthog-node":"^5.0.0",react:"^19.2.6","react-dom":"^19.2.6"},devDependencies:{"@ai-sdk/provider":"^3.0.10","@better-auth/sso":"1.4.1","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/runtime":"workspace:*","@decocms/sandbox":"workspace:*","@decocms/shared":"workspace:*","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.29.0","@nats-io/jwt":"0.0.10-5","@opentelemetry/api":"^1.9.0","@opentelemetry/api-logs":"^0.211.0","@opentelemetry/exporter-logs-otlp-proto":"^0.211.0","@opentelemetry/exporter-prometheus":"^0.208.0","@opentelemetry/exporter-trace-otlp-proto":"^0.207.0","@opentelemetry/instrumentation-runtime-node":"^0.24.0","@opentelemetry/resources":"^2.6.0","@opentelemetry/sdk-logs":"^0.211.0","@opentelemetry/sdk-metrics":"^2.2.0","@opentelemetry/sdk-node":"^0.207.0","@opentelemetry/sdk-trace-base":"^2.5.0","@types/bun":"^1.3.1","@types/google.maps":"^3.65.2","@types/pg":"^8.15.6","@types/react-syntax-highlighter":"^15.5.13","@vercel/nft":"^1.1.1",ai:"^6.0.208","better-auth":"1.4.22",croner:"^9.1.0",degit:"^2.8.4",hono:"^4.10.7",jose:"^6.0.11",nanoid:"^5.1.6",pg:"^8.16.3",typescript:"^7.0.2",typescript5:"npm:typescript@^5.9.3",zod:"4.3.6"},homepage:"https://github.com/decocms/studio",keywords:["mcp","model-context-protocol","ai","gateway","self-hosted","tools"],license:"MIT",publishConfig:{access:"public"}}});import{Box as Gh6,Text as _m1}from"ink";import{jsx as Jh6,jsxs as xm1}from"react/jsx-runtime";function vm1({version:$}){return xm1(Gh6,{flexDirection:"column",marginTop:1,children:[J50.map((Z,X)=>Jh6(_m1,{color:K50[X],children:Z},X)),xm1(_m1,{dimColor:!0,children:[" v",$]})]})}var fm1=O(()=>{Zm()});import{Box as yD,Text as Jw}from"ink";import{Spinner as Kh6}from"@inkjs/ui";import{jsx as vY,jsxs as lf}from"react/jsx-runtime";function bm1({status:$}){if($==="pending")return vY(Kh6,{label:""});return vY(Jw,{color:"green",children:"\u2713"})}function Wh6($){return`${$.name}: ${$.port||"...."}`}function ym1({services:$,migrationsStatus:Z,home:X,serverUrl:Q}){return lf(yD,{flexDirection:"column",paddingBottom:1,children:[vY(vm1,{version:V50.version}),vY(yD,{marginBottom:1,children:vY(Jw,{dimColor:!0,children:"\u2500".repeat(80)})}),vY(yD,{children:lf(Jw,{dimColor:!0,children:["Home: ",X]})}),lf(yD,{gap:2,children:[$.map((Y)=>lf(yD,{gap:1,children:[vY(Jw,{children:Wh6(Y)}),vY(bm1,{status:Y.status})]},Y.name)),lf(yD,{gap:1,children:[vY(Jw,{children:"Migrations"}),vY(bm1,{status:Z})]})]}),vY(yD,{children:Q?lf(Jw,{children:["Open in browser: ",vY(Jw,{color:"cyan",children:Q})]}):vY(Jw,{dimColor:!0,children:"Starting..."})})]})}var gm1=O(()=>{Wl0();fm1()});import{Box as Hh6,Text as Dm}from"ink";import{jsx as Hl0,jsxs as Nl0}from"react/jsx-runtime";function Nh6($){if($>=500)return"red";if($>=400)return"yellow";if($>=300)return"cyan";return"green"}function hm1({logs:$}){return Hl0(Hh6,{flexDirection:"column",children:$.map((Z,X)=>{if(Z.rawLine)return Hl0(Dm,{dimColor:!0,children:Z.rawLine},X);let Q=Z.duration<1000?`${Z.duration}ms`:`${(Z.duration/1000).toFixed(1)}s`;return Nl0(Dm,{children:[Nl0(Dm,{dimColor:!0,children:[Z.method.padEnd(6)," ",Z.path.padEnd(30)," "]}),Hl0(Dm,{color:Nh6(Z.status),children:Z.status}),Nl0(Dm,{dimColor:!0,children:[" ",Q.padStart(8)]})]},X)})})}var um1=()=>{};var Ul0={};O0(Ul0,{App:()=>wh6});import{Box as Uh6}from"ink";import{useSyncExternalStore as Fh6}from"react";import{jsx as cm1,jsxs as Bh6}from"react/jsx-runtime";function wh6({home:$}){let Z=Fh6(Yl0,Ql0);return Bh6(Uh6,{flexDirection:"column",children:[cm1(ym1,{services:Z.services,migrationsStatus:Z.migrationsStatus,home:$,serverUrl:Z.serverUrl}),cm1(hm1,{logs:Z.logs})]})}var Fl0=O(()=>{gm1();um1();bD()});var GJ="thread-gate",EN="decopilot-hosted-harness",cG="automations",Kw="background-tools";var lm1="7";function dm1($){return{name:"decocms",systemDatabaseUrl:$.systemDatabaseUrl,systemDatabaseSchemaName:"dbos",systemDatabasePoolSize:$.poolSize,runAdminServer:!1,executorID:$.executorID,applicationVersion:lm1,...$.listenQueues!==void 0?{listenQueues:$.listenQueues}:{}}}var mm1=()=>{};function Oh6(){let $=(process.env.BUN_OPTIONS??"").split(/\s+/).filter(Boolean);return[...process.argv.slice(1),...$]}function wl0($,Z){for(let X=0;X<$.length;X++){let Q=$[X];if(Q===void 0)continue;if(Q===Z)return $[X+1];if(Q.startsWith(`${Z}=`))return Q.slice(Z.length+1)}return}function im1(){let $=Oh6();if($.includes("--cpu-prof")){console.log(JSON.stringify({msg:"cpu-profiling-active",dir:wl0($,"--cpu-prof-dir")??process.cwd(),name:wl0($,"--cpu-prof-name"),markdown:$.includes("--cpu-prof-md"),intervalUs:Number(wl0($,"--cpu-prof-interval")??1000),note:"profile is written on process exit"}));return}if(process.env.CPU_PROFILE)console.warn(JSON.stringify({msg:"cpu-profiling-requested-but-inactive",hint:'CPU profiling is a Bun launch flag. Set BUN_OPTIONS="--cpu-prof --cpu-prof-md --cpu-prof-dir=/tmp" before starting the process.'}))}function nm1(){if(process.env.HEAP_WATCH!=="1")return()=>{};let $=Number(process.env.HEAP_WATCH_INTERVAL_MS??60000),Z=async()=>{let X=CD();if(!X)return;let Q={};try{let{heapStats:Y}=await import("bun:jsc"),G=Y(),J=Object.entries(G.objectTypeCounts).sort((K,W)=>W[1]-K[1]).slice(0,20);Q={objectCount:G.objectCount,heapSize:G.heapSize,top:Object.fromEntries(J)}}catch{}console.log(JSON.stringify({msg:"heap-watch",ts:new Date().toISOString(),uptimeS:Math.round(process.uptime()),rss:X.rss,heapUsed:X.heapUsed,heapTotal:X.heapTotal,external:X.external,arrayBuffers:X.arrayBuffers,...Q}))};return Z().catch(()=>{}),C50=setInterval(()=>void Z().catch(()=>{}),$),C50.unref?.(),process.on("SIGUSR2",()=>{try{let X=Bun.generateHeapSnapshot("v8"),Q=typeof X==="string"?X:JSON.stringify(X),Y=`/tmp/heap-${process.pid}-${Date.now()}.heapsnapshot`;Bun.write(Y,Q),console.log(JSON.stringify({msg:"heap-snapshot-written",path:Y}))}catch(X){console.error("[heap-watch] snapshot failed:",X)}}),()=>{if(C50)clearInterval(C50)}}var C50;var pm1=()=>{};import*as Lh6 from"bun:jsc";function tm1(){if(process.env.STALL_WATCHDOG!=="1")return()=>{};let $=Number(process.env.STALL_WATCHDOG_MS??100),Z=Number(process.env.STALL_WATCHDOG_TICK_MS??50);try{Dh6()}catch(G){return console.error("[stall-watchdog] failed to start sampling profiler:",G),()=>{}}let X,Q=performance.now()+Z,Y=()=>{let G=performance.now(),J=G-Q;Q=G+Z;let K=[];try{K=Eh6()?.traces??[]}catch{}if(J>$&&K.length>0){let W=new Map;for(let N of K){let U=N.frames.find((B)=>B.sourceURL&&!/Unknown Executable/.test(B.category??""))??N.frames[0];if(!U)continue;let F=(U.sourceURL??"?").replace(/^.*\/node_modules\//,"node_modules/"),w=`${U.name??"?"} @ ${F}:${U.line??"?"}`;W.set(w,(W.get(w)??0)+1)}let H=[...W.entries()].sort((N,U)=>U[1]-N[1]).slice(0,8).map(([N,U])=>({frame:N,count:U}));console.warn(JSON.stringify({msg:"stall-stack",ts:new Date().toISOString(),lagMs:Math.round(J),samplesInWindow:K.length,top:H}))}X=setTimeout(Y,Z),X.unref?.()};return X=setTimeout(Y,Z),X.unref?.(),()=>{if(X)clearTimeout(X)}}var Dh6,Eh6;var om1=O(()=>{({startSamplingProfiler:Dh6,samplingProfilerStackTraces:Eh6}=Lh6)});function rm1(){im1();let $=[nm1(),Xc1(),tm1()];return()=>{for(let Z of $)Z()}}var am1=O(()=>{Tg0();pm1();om1()});var gD=_((sm1)=>{Object.defineProperty(sm1,"__esModule",{value:!0});sm1.RepublishHeaders=sm1.DirectMsgHeaders=sm1.JsHeaders=sm1.AdvisoryKind=void 0;sm1.isOrderedPushConsumerOptions=zh6;sm1.isPullConsumer=jh6;sm1.isPushConsumer=Ph6;sm1.isBoundPushConsumerOptions=Ah6;function zh6($){if($&&typeof $==="object")return"name_prefix"in $||"deliver_subject_prefix"in $||"filter_subjects"in $||"filter_subject"in $||"deliver_policy"in $||"opt_start_seq"in $||"opt_start_time"in $||"replay_policy"in $||"inactive_threshold"in $||"headers_only"in $||"deliver_prefix"in $;return!1}function jh6($){return $.isPullConsumer()}function Ph6($){return $.isPushConsumer()}function Ah6($){if($&&typeof $==="object")return"deliver_subject"in $||"deliver_group"in $||"idle_heartbeat"in $;return!1}sm1.AdvisoryKind={API:"api_audit",StreamAction:"stream_action",ConsumerAction:"consumer_action",SnapshotCreate:"snapshot_create",SnapshotComplete:"snapshot_complete",RestoreCreate:"restore_create",RestoreComplete:"restore_complete",MaxDeliver:"max_deliver",Terminated:"terminated",Ack:"consumer_ack",StreamLeaderElected:"stream_leader_elected",StreamQuorumLost:"stream_quorum_lost",ConsumerLeaderElected:"consumer_leader_elected",ConsumerQuorumLost:"consumer_quorum_lost"};sm1.JsHeaders={StreamSourceHdr:"Nats-Stream-Source",LastConsumerSeqHdr:"Nats-Last-Consumer",LastStreamSeqHdr:"Nats-Last-Stream",ConsumerStalledHdr:"Nats-Consumer-Stalled",MessageSizeHdr:"Nats-Msg-Size",RollupHdr:"Nats-Rollup",RollupValueSubject:"sub",RollupValueAll:"all",PendingMessagesHdr:"Nats-Pending-Messages",PendingBytesHdr:"Nats-Pending-Bytes",RequiredApiLevel:"Nats-Required-Api-Level"};sm1.DirectMsgHeaders={Stream:"Nats-Stream",Sequence:"Nats-Sequence",TimeStamp:"Nats-Time-Stamp",Subject:"Nats-Subject",LastSequence:"Nats-Last-Sequence",NumPending:"Nats-Num-Pending"};sm1.RepublishHeaders={Stream:"Nats-Stream",Subject:"Nats-Subject",Sequence:"Nats-Sequence",LastSequence:"Nats-Last-Sequence",Size:"Nats-Msg-Size"}});var fY=_(($i1)=>{Object.defineProperty($i1,"__esModule",{value:!0});$i1.TD=$i1.TE=$i1.Empty=void 0;$i1.encode=Ch6;$i1.decode=_h6;$i1.Empty=new Uint8Array(0);$i1.TE=new TextEncoder;$i1.TD=new TextDecoder;function Vh6(...$){let Z=0;for(let Y=0;Y<$.length;Y++)Z+=$[Y].length;let X=new Uint8Array(Z),Q=0;for(let Y=0;Y<$.length;Y++)X.set($[Y],Q),Q+=$[Y].length;return X}function Ch6(...$){let Z=[];for(let X=0;X<$.length;X++)Z.push($i1.TE.encode($[X]));if(Z.length===0)return $i1.Empty;if(Z.length===1)return Z[0];return Vh6(...Z)}function _h6($){if(!$||$.length===0)return"";return $i1.TD.decode($)}});var bY=_((Qi1)=>{Object.defineProperty(Qi1,"__esModule",{value:!0});Qi1.errors=Qi1.PermissionViolationError=Qi1.NoRespondersError=Qi1.TimeoutError=Qi1.RequestError=Qi1.ProtocolError=Qi1.ConnectionError=Qi1.DrainingConnectionError=Qi1.ClosedConnectionError=Qi1.AuthorizationError=Qi1.UserAuthenticationExpiredError=Qi1.InvalidOperationError=Qi1.InvalidArgumentError=Qi1.InvalidSubjectError=void 0;class Ol0 extends Error{constructor($,Z){super(`illegal subject: '${$}'`,Z);this.name="InvalidSubjectError"}}Qi1.InvalidSubjectError=Ol0;class _50 extends Error{constructor($,Z){super($,Z);this.name="InvalidArgumentError"}static format($,Z,X){if(Array.isArray(Z)&&Z.length>1)Z=Z[0];if(Array.isArray($))$=$.map((Q)=>`'${Q}'`),$=$.join(",");else $=`'${$}'`;return new _50(`${$} ${Z}`,X)}}Qi1.InvalidArgumentError=_50;class Ll0 extends Error{constructor($,Z){super($,Z);this.name="InvalidOperationError"}}Qi1.InvalidOperationError=Ll0;class x50 extends Error{constructor($,Z){super($,Z);this.name="UserAuthenticationExpiredError"}static parse($){if($.toLowerCase().indexOf("user authentication expired")!==-1)return new x50($);return null}}Qi1.UserAuthenticationExpiredError=x50;class v50 extends Error{constructor($,Z){super($,Z);this.name="AuthorizationError"}static parse($){let Z=["authorization violation","account authentication expired","authentication timeout"],X=$.toLowerCase();for(let Q=0;Q<Z.length;Q++)if(X.indexOf(Z[Q])!==-1)return new v50($);return null}}Qi1.AuthorizationError=v50;class Dl0 extends Error{constructor(){super("closed connection");this.name="ClosedConnectionError"}}Qi1.ClosedConnectionError=Dl0;class El0 extends Error{constructor(){super("connection draining");this.name="DrainingConnectionError"}}Qi1.DrainingConnectionError=El0;class zl0 extends Error{constructor($,Z){super($,Z);this.name="ConnectionError"}}Qi1.ConnectionError=zl0;class jl0 extends Error{constructor($,Z){super($,Z);this.name="ProtocolError"}}Qi1.ProtocolError=jl0;class Pl0 extends Error{constructor($="",Z){super($,Z);this.name="RequestError"}isNoResponders(){return this.cause instanceof f50}}Qi1.RequestError=Pl0;class Al0 extends Error{constructor($){super("timeout",$);this.name="TimeoutError"}}Qi1.TimeoutError=Al0;class f50 extends Error{subject;constructor($,Z){super(`no responders: '${$}'`,Z);this.subject=$,this.name="NoResponders"}}Qi1.NoRespondersError=f50;class b50 extends Error{operation;subject;queue;constructor($,Z,X,Q,Y){super($,Y);this.name="PermissionViolationError",this.operation=Z,this.subject=X,this.queue=Q}static parse($){if(($?$.toLowerCase():"").indexOf("permissions violation")===-1)return null;let X="publish",Q="",Y=void 0,G=$.match(/(Publish|Subscription) to "(\S+)"/);if(G){if(X=G[1].toLowerCase(),Q=G[2],X==="subscription"){let J=$.match(/using queue "(\S+)"/);if(J)Y=J[1]}}return new b50($,X,Q,Y)}}Qi1.PermissionViolationError=b50;Qi1.errors={AuthorizationError:v50,ClosedConnectionError:Dl0,ConnectionError:zl0,DrainingConnectionError:El0,InvalidArgumentError:_50,InvalidOperationError:Ll0,InvalidSubjectError:Ol0,NoRespondersError:f50,PermissionViolationError:b50,ProtocolError:jl0,RequestError:Pl0,TimeoutError:Al0,UserAuthenticationExpiredError:x50}});var JJ=_((Wi1)=>{Object.defineProperty(Wi1,"__esModule",{value:!0});Wi1.SimpleMutex=Wi1.Perf=void 0;Wi1.extend=oh6;Wi1.render=rh6;Wi1.timeout=ah6;Wi1.delay=sh6;Wi1.deadline=eh6;Wi1.deferred=Rl0;Wi1.debugDeferred=$u6;Wi1.shuffle=Zu6;Wi1.collect=Xu6;Wi1.jitter=Ki1;Wi1.backoff=Qu6;Wi1.nanos=Yu6;Wi1.millis=Gu6;Wi1.randomToken=Wu6;var th6=fY(),Tl0=bY();function oh6($,...Z){for(let X=0;X<Z.length;X++){let Q=Z[X];Object.keys(Q).forEach(function(Y){$[Y]=Q[Y]})}return $}function rh6($){return th6.TD.decode($).replace(/\n/g,"\u240A").replace(/\r/g,"\u240D")}function ah6($,Z=!0){let X=Z?new Tl0.TimeoutError:null,Q,Y,G=new Promise((J,K)=>{Q={cancel:()=>{if(Y)clearTimeout(Y)}},Y=setTimeout(()=>{if(X===null)K(new Tl0.TimeoutError);else K(X)},$)});return Object.assign(G,Q)}function sh6($=0){let Z,X=new Promise((Q)=>{let Y=setTimeout(()=>{Q()},$);Z={cancel:()=>{if(Y)clearTimeout(Y),Q()}}});return Object.assign(X,Z)}async function eh6($,Z=1000){let X=Rl0(),Q=setTimeout(()=>{X.reject(new Tl0.TimeoutError)},Z);try{return await Promise.race([$,X])}finally{clearTimeout(Q)}}function Rl0(){let $={},Z=new Promise((X,Q)=>{$={resolve:X,reject:Q}});return Object.assign(Z,$)}function $u6(){let $={},Z=new Promise((X,Q)=>{$={resolve:(Y)=>{console.trace("resolve",Y),X(Y)},reject:(Y)=>{console.trace("reject"),Q(Y)}}});return Object.assign(Z,$)}function Zu6($){for(let Z=$.length-1;Z>0;Z--){let X=Math.floor(Math.random()*(Z+1));[$[Z],$[X]]=[$[X],$[Z]]}return $}async function Xu6($){let Z=[];for await(let X of $)Z.push(X);return Z}class Gi1{timers;measures;constructor(){this.timers=new Map,this.measures=new Map}mark($){this.timers.set($,performance.now())}measure($,Z,X){let Q=this.timers.get(Z);if(Q===void 0)throw Error(`${Z} is not defined`);let Y=this.timers.get(X);if(Y===void 0)throw Error(`${X} is not defined`);this.measures.set($,Y-Q)}getEntries(){let $=[];return this.measures.forEach((Z,X)=>{$.push({name:X,duration:Z})}),$}}Wi1.Perf=Gi1;class Ji1{max;current;waiting;constructor($=1){this.max=$,this.current=0,this.waiting=[]}lock(){if(this.current++,this.current<=this.max)return Promise.resolve();let $=Rl0();return this.waiting.push($),$}unlock(){this.current--,this.waiting.pop()?.resolve()}}Wi1.SimpleMutex=Ji1;function Ki1($){if($===0)return 0;return Math.floor($/2+Math.random()*$)}function Qu6($=[0,250,250,500,500,3000,5000]){if(!Array.isArray($))$=[0,250,250,500,500,3000,5000];let Z=$.length-1;return{backoff(X){return Ki1(X>Z?$[Z]:$[X])}}}function Yu6($){return $*1e6}function Gu6($){return Math.floor($/1e6)}var Ju6="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",zN=new Uint8Array(62);for(let $=0;$<62;$++)zN[$]=Ju6.charCodeAt($);var Ku6=218340105584896;function Wu6(){let $=Math.floor(Math.random()*Ku6),Z=$%62,X=zN[Z];$=($-Z)/62,Z=$%62;let Q=zN[Z];$=($-Z)/62,Z=$%62;let Y=zN[Z];$=($-Z)/62,Z=$%62;let G=zN[Z];$=($-Z)/62,Z=$%62;let J=zN[Z];$=($-Z)/62,Z=$%62;let K=zN[Z];$=($-Z)/62,Z=$%62;let W=zN[Z];$=($-Z)/62;let H=zN[$];return String.fromCharCode(X,Q,Y,G,J,K,W,H)}});var Li1=_((Bi1)=>{Object.defineProperty(Bi1,"__esModule",{value:!0});Bi1.nuid=Bi1.NuidImpl=void 0;var Ru6="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",Ww=62,g50=12,Fi1=10,Ni1=33,Iu6=333,Ui1=g50+Fi1,ql0=new Uint8Array(Ww);for(let $=0;$<Ww;$++)ql0[$]=Ru6.charCodeAt($);var y50=4294967296,wi1=BigInt(Ww)**BigInt(Fi1),Em=Number(wi1/(1n<<32n)),Il0=Number(wi1%(1n<<32n));function qu6($){for(let Z=0;Z<$.length;Z++)$[Z]=Math.floor(Math.random()*256)}function Mu6($){if(globalThis?.crypto?.getRandomValues)globalThis.crypto.getRandomValues($);else qu6($)}class Ml0{buf;cbuf;seqHi;seqLo;inc;inited;constructor(){this.buf=new Uint8Array(Ui1),this.cbuf=new Uint8Array(g50),this.inited=!1}init(){this.inited=!0,this.setPre(),this.initSeqAndInc(),this.fillSeq()}initSeqAndInc(){let $=0;do this.seqHi=Math.floor(Math.random()*(Em+1)),this.seqLo=Math.floor(Math.random()*y50);while($++<8&&this.seqHi===Em&&this.seqLo>=Il0);if(this.seqHi===Em&&this.seqLo>=Il0)this.seqLo=0;this.inc=Math.random()*(Iu6-Ni1)+Ni1|0}setPre(){Mu6(this.cbuf);for(let $=0;$<g50;$++)this.buf[$]=ql0[this.cbuf[$]%Ww]}fillSeq(){let $=this.seqHi,Z=this.seqLo;for(let X=Ui1-1;X>=g50;X--){let Q=Math.floor($/Ww),G=($-Q*Ww)*y50+Z,J=Math.floor(G/Ww),K=G-J*Ww;this.buf[X]=ql0[K],$=Q,Z=J}}next(){if(!this.inited)this.init();if(this.seqLo+=this.inc,this.seqLo>=y50)this.seqLo-=y50,this.seqHi+=1;if(this.seqHi>Em||this.seqHi===Em&&this.seqLo>=Il0)this.setPre(),this.initSeqAndInc();this.fillSeq();let $=this.buf;return String.fromCharCode($[0],$[1],$[2],$[3],$[4],$[5],$[6],$[7],$[8],$[9],$[10],$[11],$[12],$[13],$[14],$[15],$[16],$[17],$[18],$[19],$[20],$[21])}reset(){this.init()}}Bi1.NuidImpl=Ml0;Bi1.nuid=new Ml0});var ji1=_((Ei1)=>{Object.defineProperty(Ei1,"__esModule",{value:!0});Ei1.nuid=Ei1.Nuid=void 0;var Di1=Li1();Ei1.Nuid=Di1.NuidImpl;Ei1.nuid=Di1.nuid});var u50=_((h50)=>{Object.defineProperty(h50,"__esModule",{value:!0});h50.nuid=h50.Nuid=void 0;var Pi1=ji1();Object.defineProperty(h50,"Nuid",{enumerable:!0,get:function(){return Pi1.Nuid}});Object.defineProperty(h50,"nuid",{enumerable:!0,get:function(){return Pi1.nuid}})});var Hw=_((Ai1)=>{Object.defineProperty(Ai1,"__esModule",{value:!0});Ai1.DEFAULT_HOST=Ai1.DEFAULT_PORT=Ai1.Match=void 0;Ai1.syncIterator=xu6;Ai1.createInbox=vu6;var Cu6=u50(),_u6=bY();Ai1.Match={Exact:"exact",CanonicalMIME:"canonical",IgnoreCase:"insensitive"};function xu6($){let Z=$[Symbol.asyncIterator]();return{async next(){let X=await Z.next();if(X.done)return Promise.resolve(null);return Promise.resolve(X.value)}}}function vu6($=""){if($=$||"_INBOX",typeof $!=="string")throw TypeError("prefix must be a string");return $.split(".").forEach((Z)=>{if(Z==="*"||Z===">")throw _u6.InvalidArgumentError.format("prefix",`cannot have wildcards ('${$}')`)}),`${$}.${Cu6.nuid.next()}`}Ai1.DEFAULT_PORT=4222;Ai1.DEFAULT_HOST="127.0.0.1"});var zm=_((qi1)=>{Object.defineProperty(qi1,"__esModule",{value:!0});qi1.DataBuffer=void 0;var Ri1=fY();class Ii1{buffers;byteLength;constructor(){this.buffers=[],this.byteLength=0}static concat(...$){let Z=0;for(let Y=0;Y<$.length;Y++)Z+=$[Y].length;let X=new Uint8Array(Z),Q=0;for(let Y=0;Y<$.length;Y++)X.set($[Y],Q),Q+=$[Y].length;return X}static fromAscii($){if(!$)$="";return Ri1.TE.encode($)}static toAscii($){return Ri1.TD.decode($)}reset(){this.buffers.length=0,this.byteLength=0}pack(){if(this.buffers.length>1){let $=new Uint8Array(this.byteLength),Z=0;for(let X=0;X<this.buffers.length;X++)$.set(this.buffers[X],Z),Z+=this.buffers[X].length;this.buffers.length=0,this.buffers.push($)}}shift(){if(this.buffers.length){let $=this.buffers.shift();if($)return this.byteLength-=$.length,$}return new Uint8Array(0)}drain($){if(this.buffers.length){this.pack();let Z=this.buffers.pop();if(Z){let X=this.byteLength;if($===void 0||$>X)$=X;let Q=Z.subarray(0,$);if(X>$)this.buffers.push(Z.subarray($));return this.byteLength=X-$,Q}}return new Uint8Array(0)}fill($,...Z){if($)this.buffers.push($),this.byteLength+=$.length;for(let X=0;X<Z.length;X++)if(Z[X]&&Z[X].length)this.buffers.push(Z[X]),this.byteLength+=Z[X].length}peek(){if(this.buffers.length)return this.pack(),this.buffers[0];return new Uint8Array(0)}size(){return this.byteLength}length(){return this.buffers.length}}qi1.DataBuffer=Ii1});var hD=_((Si1)=>{Object.defineProperty(Si1,"__esModule",{value:!0});Si1.LF=Si1.CR=Si1.CRLF=Si1.CR_LF_LEN=Si1.CR_LF=void 0;Si1.setTransportFactory=lu6;Si1.defaultPort=du6;Si1.getUrlParseFn=mu6;Si1.newTransport=iu6;Si1.getResolveFn=nu6;Si1.protoLen=ki1;Si1.extractProtocolMessage=pu6;var hu6=fY(),uu6=Hw(),cu6=zm(),yY;function lu6($){yY=$}function du6(){return yY!==void 0&&yY.defaultPort!==void 0?yY.defaultPort:uu6.DEFAULT_PORT}function mu6(){return yY!==void 0&&yY.urlParseFn?yY.urlParseFn:void 0}function iu6(){if(!yY||typeof yY.factory!=="function")throw Error("transport fn is not set");return yY.factory()}function nu6(){return yY!==void 0&&yY.dnsResolveFn?yY.dnsResolveFn:void 0}Si1.CR_LF=`\r
|
|
1289
|
+
`);Q=G.pop()??"";for(let J of G){let K=Lm(J).replace(/^\[\d+\]\s*/,"").trim();if(!K)continue;Gw({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:K})}}(async()=>{for(;;){let{done:G,value:J}=await Z.read();if(G)break;Q+=X.decode(J,{stream:!0}),Y()}if(Q.trim()){let G=Lm(Q).replace(/^\[\d+\]\s*/,"").trim();if(G)Gw({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:G})}})()}async function Qh6($){let{baseUrl:Z,noTui:X}=$,Q=process.env.HOST==="0.0.0.0"&&Boolean(process.env.PORT),Y=Q?process.env.PORT:$.vitePort,G=Z||`http://localhost:${Y}`,J=Q?await Om(Number(Y)+1):await Om(Number($.port)),{settings:K,services:W,managedServiceNames:H}=await M50({port:String(J),home:$.home,baseUrl:$.baseUrl,localMode:$.localMode,skipMigrations:$.skipMigrations,noTui:$.noTui,vitePort:$.vitePort});for(let L of W)fD({name:L.name,status:"ready",port:L.port});wm();let N=Xh6(import.meta.dir,"..","..","..","..",".."),U=X===!0,F=Bun.spawn(["bun","run","dev:servers"],{cwd:N,env:{...process.env,PORT:String(K.port),VITE_PORT:String(Y),DATABASE_URL:K.databaseUrl,NATS_URL:K.natsUrls.join(","),NODE_ENV:K.nodeEnv,BASE_URL:G,DECOCMS_LOCAL_MODE:String(K.localMode),DECOCMS_HOME:K.dataDir,DATA_DIR:K.dataDir,DECO_CLI:"1",...K.betterAuthSecret?{BETTER_AUTH_SECRET:K.betterAuthSecret}:{},...K.s3Endpoint?{S3_ENDPOINT:K.s3Endpoint,S3_BUCKET:K.s3Bucket??"",S3_ACCESS_KEY_ID:K.s3AccessKeyId??"",S3_SECRET_ACCESS_KEY:K.s3SecretAccessKey??"",S3_FORCE_PATH_STYLE:String(K.s3ForcePathStyle)}:{},...K.natsPublicUrl&&K.natsAccountJwt&&K.natsAccountSigningKey?{NATS_PUBLIC_URL:K.natsPublicUrl,NATS_ACCOUNT_JWT:K.natsAccountJwt,NATS_ACCOUNT_SIGNING_KEY:K.natsAccountSigningKey,NATS_OPERATOR_JWT:K.natsOperatorJwt??"",NATS_TUNNEL_PUBLIC_ENABLED:"true",...K.natsCredsPath?{NATS_CREDS:K.natsCredsPath}:{}}:{}},stdio:["inherit",U?"inherit":"pipe",U?"inherit":"pipe"]});if(!U)Cm1(F.stdout),Cm1(F.stderr);Bm(G),fD({name:"Vite",status:"ready",port:Number(Y)}),fD({name:"API",status:"ready",port:Number(K.port)});let B=async(L)=>{if(F.kill(L),await F.exited,H.length>0){let{stopServices:D}=await Promise.resolve().then(() => (h$0(),g$0));await D(K.dataDir)}};return process.on("SIGINT",()=>B("SIGINT")),process.on("SIGTERM",()=>B("SIGTERM")),{port:Number(Y),process:F}}var Kl0=O(()=>{Zl0();bD();Gl0()});var V50;var Wl0=O(()=>{V50={name:"decocms",version:"4.179.3",description:"Deco CMS \u2014 Self-hostable MCP Gateway for managing AI connections and tools",author:"Deco team",repository:{type:"git",url:"git+https://github.com/decocms/studio.git",directory:"apps/api"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:"bun run migrate && bun run dev:server","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts",build:"bun run build:server","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","generate:tool-contracts":"bun run scripts/generate-tool-contracts.ts","db:migrate":"bun run ./dist/server/migrate.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts",test:"bun test src","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts",prepublishOnly:"bun run --cwd=../.. build:studio"},optionalDependencies:{"@duckdb/node-api":"^1.5.0-r.1"},dependencies:{"@ai-sdk/anthropic":"^3.0.85","@ai-sdk/google":"^3.0.83","@ai-sdk/openai":"^3.0.73","@anthropic-ai/sdk":"^0.105.0","@aws-sdk/client-s3":"^3.1013.0","@aws-sdk/client-sts":"^3.1013.0","@aws-sdk/lib-storage":"^3.1013.0","@aws-sdk/s3-request-presigner":"^3.1013.0","@clickhouse/client":"^1.8.1","@dbos-inc/dbos-sdk":"^4.21.6","@inkjs/ui":"^2.0.0","@nats-io/jetstream":"3.4.0","@nats-io/kv":"3.4.0","@nats-io/nats-core":"3.4.0","@nats-io/transport-node":"3.4.0","@openrouter/ai-sdk-provider":"^2.9.1","@opentelemetry/core":"^2.6.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12","posthog-node":"^5.0.0",react:"^19.2.6","react-dom":"^19.2.6"},devDependencies:{"@ai-sdk/provider":"^3.0.10","@better-auth/sso":"1.4.1","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/runtime":"workspace:*","@decocms/sandbox":"workspace:*","@decocms/shared":"workspace:*","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.29.0","@nats-io/jwt":"0.0.10-5","@opentelemetry/api":"^1.9.0","@opentelemetry/api-logs":"^0.211.0","@opentelemetry/exporter-logs-otlp-proto":"^0.211.0","@opentelemetry/exporter-prometheus":"^0.208.0","@opentelemetry/exporter-trace-otlp-proto":"^0.207.0","@opentelemetry/instrumentation-runtime-node":"^0.24.0","@opentelemetry/resources":"^2.6.0","@opentelemetry/sdk-logs":"^0.211.0","@opentelemetry/sdk-metrics":"^2.2.0","@opentelemetry/sdk-node":"^0.207.0","@opentelemetry/sdk-trace-base":"^2.5.0","@types/bun":"^1.3.1","@types/google.maps":"^3.65.2","@types/pg":"^8.15.6","@types/react-syntax-highlighter":"^15.5.13","@vercel/nft":"^1.1.1",ai:"^6.0.208","better-auth":"1.4.22",croner:"^9.1.0",degit:"^2.8.4",hono:"^4.10.7",jose:"^6.0.11",nanoid:"^5.1.6",pg:"^8.16.3",typescript:"^7.0.2",typescript5:"npm:typescript@^5.9.3",zod:"4.3.6"},homepage:"https://github.com/decocms/studio",keywords:["mcp","model-context-protocol","ai","gateway","self-hosted","tools"],license:"MIT",publishConfig:{access:"public"}}});import{Box as Gh6,Text as _m1}from"ink";import{jsx as Jh6,jsxs as xm1}from"react/jsx-runtime";function vm1({version:$}){return xm1(Gh6,{flexDirection:"column",marginTop:1,children:[J50.map((Z,X)=>Jh6(_m1,{color:K50[X],children:Z},X)),xm1(_m1,{dimColor:!0,children:[" v",$]})]})}var fm1=O(()=>{Zm()});import{Box as yD,Text as Jw}from"ink";import{Spinner as Kh6}from"@inkjs/ui";import{jsx as vY,jsxs as lf}from"react/jsx-runtime";function bm1({status:$}){if($==="pending")return vY(Kh6,{label:""});return vY(Jw,{color:"green",children:"\u2713"})}function Wh6($){return`${$.name}: ${$.port||"...."}`}function ym1({services:$,migrationsStatus:Z,home:X,serverUrl:Q}){return lf(yD,{flexDirection:"column",paddingBottom:1,children:[vY(vm1,{version:V50.version}),vY(yD,{marginBottom:1,children:vY(Jw,{dimColor:!0,children:"\u2500".repeat(80)})}),vY(yD,{children:lf(Jw,{dimColor:!0,children:["Home: ",X]})}),lf(yD,{gap:2,children:[$.map((Y)=>lf(yD,{gap:1,children:[vY(Jw,{children:Wh6(Y)}),vY(bm1,{status:Y.status})]},Y.name)),lf(yD,{gap:1,children:[vY(Jw,{children:"Migrations"}),vY(bm1,{status:Z})]})]}),vY(yD,{children:Q?lf(Jw,{children:["Open in browser: ",vY(Jw,{color:"cyan",children:Q})]}):vY(Jw,{dimColor:!0,children:"Starting..."})})]})}var gm1=O(()=>{Wl0();fm1()});import{Box as Hh6,Text as Dm}from"ink";import{jsx as Hl0,jsxs as Nl0}from"react/jsx-runtime";function Nh6($){if($>=500)return"red";if($>=400)return"yellow";if($>=300)return"cyan";return"green"}function hm1({logs:$}){return Hl0(Hh6,{flexDirection:"column",children:$.map((Z,X)=>{if(Z.rawLine)return Hl0(Dm,{dimColor:!0,children:Z.rawLine},X);let Q=Z.duration<1000?`${Z.duration}ms`:`${(Z.duration/1000).toFixed(1)}s`;return Nl0(Dm,{children:[Nl0(Dm,{dimColor:!0,children:[Z.method.padEnd(6)," ",Z.path.padEnd(30)," "]}),Hl0(Dm,{color:Nh6(Z.status),children:Z.status}),Nl0(Dm,{dimColor:!0,children:[" ",Q.padStart(8)]})]},X)})})}var um1=()=>{};var Ul0={};O0(Ul0,{App:()=>wh6});import{Box as Uh6}from"ink";import{useSyncExternalStore as Fh6}from"react";import{jsx as cm1,jsxs as Bh6}from"react/jsx-runtime";function wh6({home:$}){let Z=Fh6(Yl0,Ql0);return Bh6(Uh6,{flexDirection:"column",children:[cm1(ym1,{services:Z.services,migrationsStatus:Z.migrationsStatus,home:$,serverUrl:Z.serverUrl}),cm1(hm1,{logs:Z.logs})]})}var Fl0=O(()=>{gm1();um1();bD()});var GJ="thread-gate",EN="decopilot-hosted-harness",cG="automations",Kw="background-tools";var lm1="7";function dm1($){return{name:"decocms",systemDatabaseUrl:$.systemDatabaseUrl,systemDatabaseSchemaName:"dbos",systemDatabasePoolSize:$.poolSize,runAdminServer:!1,executorID:$.executorID,applicationVersion:lm1,...$.listenQueues!==void 0?{listenQueues:$.listenQueues}:{}}}var mm1=()=>{};function Oh6(){let $=(process.env.BUN_OPTIONS??"").split(/\s+/).filter(Boolean);return[...process.argv.slice(1),...$]}function wl0($,Z){for(let X=0;X<$.length;X++){let Q=$[X];if(Q===void 0)continue;if(Q===Z)return $[X+1];if(Q.startsWith(`${Z}=`))return Q.slice(Z.length+1)}return}function im1(){let $=Oh6();if($.includes("--cpu-prof")){console.log(JSON.stringify({msg:"cpu-profiling-active",dir:wl0($,"--cpu-prof-dir")??process.cwd(),name:wl0($,"--cpu-prof-name"),markdown:$.includes("--cpu-prof-md"),intervalUs:Number(wl0($,"--cpu-prof-interval")??1000),note:"profile is written on process exit"}));return}if(process.env.CPU_PROFILE)console.warn(JSON.stringify({msg:"cpu-profiling-requested-but-inactive",hint:'CPU profiling is a Bun launch flag. Set BUN_OPTIONS="--cpu-prof --cpu-prof-md --cpu-prof-dir=/tmp" before starting the process.'}))}function nm1(){if(process.env.HEAP_WATCH!=="1")return()=>{};let $=Number(process.env.HEAP_WATCH_INTERVAL_MS??60000),Z=async()=>{let X=CD();if(!X)return;let Q={};try{let{heapStats:Y}=await import("bun:jsc"),G=Y(),J=Object.entries(G.objectTypeCounts).sort((K,W)=>W[1]-K[1]).slice(0,20);Q={objectCount:G.objectCount,heapSize:G.heapSize,top:Object.fromEntries(J)}}catch{}console.log(JSON.stringify({msg:"heap-watch",ts:new Date().toISOString(),uptimeS:Math.round(process.uptime()),rss:X.rss,heapUsed:X.heapUsed,heapTotal:X.heapTotal,external:X.external,arrayBuffers:X.arrayBuffers,...Q}))};return Z().catch(()=>{}),C50=setInterval(()=>void Z().catch(()=>{}),$),C50.unref?.(),process.on("SIGUSR2",()=>{try{let X=Bun.generateHeapSnapshot("v8"),Q=typeof X==="string"?X:JSON.stringify(X),Y=`/tmp/heap-${process.pid}-${Date.now()}.heapsnapshot`;Bun.write(Y,Q),console.log(JSON.stringify({msg:"heap-snapshot-written",path:Y}))}catch(X){console.error("[heap-watch] snapshot failed:",X)}}),()=>{if(C50)clearInterval(C50)}}var C50;var pm1=()=>{};import*as Lh6 from"bun:jsc";function tm1(){if(process.env.STALL_WATCHDOG!=="1")return()=>{};let $=Number(process.env.STALL_WATCHDOG_MS??100),Z=Number(process.env.STALL_WATCHDOG_TICK_MS??50);try{Dh6()}catch(G){return console.error("[stall-watchdog] failed to start sampling profiler:",G),()=>{}}let X,Q=performance.now()+Z,Y=()=>{let G=performance.now(),J=G-Q;Q=G+Z;let K=[];try{K=Eh6()?.traces??[]}catch{}if(J>$&&K.length>0){let W=new Map;for(let N of K){let U=N.frames.find((B)=>B.sourceURL&&!/Unknown Executable/.test(B.category??""))??N.frames[0];if(!U)continue;let F=(U.sourceURL??"?").replace(/^.*\/node_modules\//,"node_modules/"),w=`${U.name??"?"} @ ${F}:${U.line??"?"}`;W.set(w,(W.get(w)??0)+1)}let H=[...W.entries()].sort((N,U)=>U[1]-N[1]).slice(0,8).map(([N,U])=>({frame:N,count:U}));console.warn(JSON.stringify({msg:"stall-stack",ts:new Date().toISOString(),lagMs:Math.round(J),samplesInWindow:K.length,top:H}))}X=setTimeout(Y,Z),X.unref?.()};return X=setTimeout(Y,Z),X.unref?.(),()=>{if(X)clearTimeout(X)}}var Dh6,Eh6;var om1=O(()=>{({startSamplingProfiler:Dh6,samplingProfilerStackTraces:Eh6}=Lh6)});function rm1(){im1();let $=[nm1(),Xc1(),tm1()];return()=>{for(let Z of $)Z()}}var am1=O(()=>{Tg0();pm1();om1()});var gD=_((sm1)=>{Object.defineProperty(sm1,"__esModule",{value:!0});sm1.RepublishHeaders=sm1.DirectMsgHeaders=sm1.JsHeaders=sm1.AdvisoryKind=void 0;sm1.isOrderedPushConsumerOptions=zh6;sm1.isPullConsumer=jh6;sm1.isPushConsumer=Ph6;sm1.isBoundPushConsumerOptions=Ah6;function zh6($){if($&&typeof $==="object")return"name_prefix"in $||"deliver_subject_prefix"in $||"filter_subjects"in $||"filter_subject"in $||"deliver_policy"in $||"opt_start_seq"in $||"opt_start_time"in $||"replay_policy"in $||"inactive_threshold"in $||"headers_only"in $||"deliver_prefix"in $;return!1}function jh6($){return $.isPullConsumer()}function Ph6($){return $.isPushConsumer()}function Ah6($){if($&&typeof $==="object")return"deliver_subject"in $||"deliver_group"in $||"idle_heartbeat"in $;return!1}sm1.AdvisoryKind={API:"api_audit",StreamAction:"stream_action",ConsumerAction:"consumer_action",SnapshotCreate:"snapshot_create",SnapshotComplete:"snapshot_complete",RestoreCreate:"restore_create",RestoreComplete:"restore_complete",MaxDeliver:"max_deliver",Terminated:"terminated",Ack:"consumer_ack",StreamLeaderElected:"stream_leader_elected",StreamQuorumLost:"stream_quorum_lost",ConsumerLeaderElected:"consumer_leader_elected",ConsumerQuorumLost:"consumer_quorum_lost"};sm1.JsHeaders={StreamSourceHdr:"Nats-Stream-Source",LastConsumerSeqHdr:"Nats-Last-Consumer",LastStreamSeqHdr:"Nats-Last-Stream",ConsumerStalledHdr:"Nats-Consumer-Stalled",MessageSizeHdr:"Nats-Msg-Size",RollupHdr:"Nats-Rollup",RollupValueSubject:"sub",RollupValueAll:"all",PendingMessagesHdr:"Nats-Pending-Messages",PendingBytesHdr:"Nats-Pending-Bytes",RequiredApiLevel:"Nats-Required-Api-Level"};sm1.DirectMsgHeaders={Stream:"Nats-Stream",Sequence:"Nats-Sequence",TimeStamp:"Nats-Time-Stamp",Subject:"Nats-Subject",LastSequence:"Nats-Last-Sequence",NumPending:"Nats-Num-Pending"};sm1.RepublishHeaders={Stream:"Nats-Stream",Subject:"Nats-Subject",Sequence:"Nats-Sequence",LastSequence:"Nats-Last-Sequence",Size:"Nats-Msg-Size"}});var fY=_(($i1)=>{Object.defineProperty($i1,"__esModule",{value:!0});$i1.TD=$i1.TE=$i1.Empty=void 0;$i1.encode=Ch6;$i1.decode=_h6;$i1.Empty=new Uint8Array(0);$i1.TE=new TextEncoder;$i1.TD=new TextDecoder;function Vh6(...$){let Z=0;for(let Y=0;Y<$.length;Y++)Z+=$[Y].length;let X=new Uint8Array(Z),Q=0;for(let Y=0;Y<$.length;Y++)X.set($[Y],Q),Q+=$[Y].length;return X}function Ch6(...$){let Z=[];for(let X=0;X<$.length;X++)Z.push($i1.TE.encode($[X]));if(Z.length===0)return $i1.Empty;if(Z.length===1)return Z[0];return Vh6(...Z)}function _h6($){if(!$||$.length===0)return"";return $i1.TD.decode($)}});var bY=_((Qi1)=>{Object.defineProperty(Qi1,"__esModule",{value:!0});Qi1.errors=Qi1.PermissionViolationError=Qi1.NoRespondersError=Qi1.TimeoutError=Qi1.RequestError=Qi1.ProtocolError=Qi1.ConnectionError=Qi1.DrainingConnectionError=Qi1.ClosedConnectionError=Qi1.AuthorizationError=Qi1.UserAuthenticationExpiredError=Qi1.InvalidOperationError=Qi1.InvalidArgumentError=Qi1.InvalidSubjectError=void 0;class Ol0 extends Error{constructor($,Z){super(`illegal subject: '${$}'`,Z);this.name="InvalidSubjectError"}}Qi1.InvalidSubjectError=Ol0;class _50 extends Error{constructor($,Z){super($,Z);this.name="InvalidArgumentError"}static format($,Z,X){if(Array.isArray(Z)&&Z.length>1)Z=Z[0];if(Array.isArray($))$=$.map((Q)=>`'${Q}'`),$=$.join(",");else $=`'${$}'`;return new _50(`${$} ${Z}`,X)}}Qi1.InvalidArgumentError=_50;class Ll0 extends Error{constructor($,Z){super($,Z);this.name="InvalidOperationError"}}Qi1.InvalidOperationError=Ll0;class x50 extends Error{constructor($,Z){super($,Z);this.name="UserAuthenticationExpiredError"}static parse($){if($.toLowerCase().indexOf("user authentication expired")!==-1)return new x50($);return null}}Qi1.UserAuthenticationExpiredError=x50;class v50 extends Error{constructor($,Z){super($,Z);this.name="AuthorizationError"}static parse($){let Z=["authorization violation","account authentication expired","authentication timeout"],X=$.toLowerCase();for(let Q=0;Q<Z.length;Q++)if(X.indexOf(Z[Q])!==-1)return new v50($);return null}}Qi1.AuthorizationError=v50;class Dl0 extends Error{constructor(){super("closed connection");this.name="ClosedConnectionError"}}Qi1.ClosedConnectionError=Dl0;class El0 extends Error{constructor(){super("connection draining");this.name="DrainingConnectionError"}}Qi1.DrainingConnectionError=El0;class zl0 extends Error{constructor($,Z){super($,Z);this.name="ConnectionError"}}Qi1.ConnectionError=zl0;class jl0 extends Error{constructor($,Z){super($,Z);this.name="ProtocolError"}}Qi1.ProtocolError=jl0;class Pl0 extends Error{constructor($="",Z){super($,Z);this.name="RequestError"}isNoResponders(){return this.cause instanceof f50}}Qi1.RequestError=Pl0;class Al0 extends Error{constructor($){super("timeout",$);this.name="TimeoutError"}}Qi1.TimeoutError=Al0;class f50 extends Error{subject;constructor($,Z){super(`no responders: '${$}'`,Z);this.subject=$,this.name="NoResponders"}}Qi1.NoRespondersError=f50;class b50 extends Error{operation;subject;queue;constructor($,Z,X,Q,Y){super($,Y);this.name="PermissionViolationError",this.operation=Z,this.subject=X,this.queue=Q}static parse($){if(($?$.toLowerCase():"").indexOf("permissions violation")===-1)return null;let X="publish",Q="",Y=void 0,G=$.match(/(Publish|Subscription) to "(\S+)"/);if(G){if(X=G[1].toLowerCase(),Q=G[2],X==="subscription"){let J=$.match(/using queue "(\S+)"/);if(J)Y=J[1]}}return new b50($,X,Q,Y)}}Qi1.PermissionViolationError=b50;Qi1.errors={AuthorizationError:v50,ClosedConnectionError:Dl0,ConnectionError:zl0,DrainingConnectionError:El0,InvalidArgumentError:_50,InvalidOperationError:Ll0,InvalidSubjectError:Ol0,NoRespondersError:f50,PermissionViolationError:b50,ProtocolError:jl0,RequestError:Pl0,TimeoutError:Al0,UserAuthenticationExpiredError:x50}});var JJ=_((Wi1)=>{Object.defineProperty(Wi1,"__esModule",{value:!0});Wi1.SimpleMutex=Wi1.Perf=void 0;Wi1.extend=oh6;Wi1.render=rh6;Wi1.timeout=ah6;Wi1.delay=sh6;Wi1.deadline=eh6;Wi1.deferred=Rl0;Wi1.debugDeferred=$u6;Wi1.shuffle=Zu6;Wi1.collect=Xu6;Wi1.jitter=Ki1;Wi1.backoff=Qu6;Wi1.nanos=Yu6;Wi1.millis=Gu6;Wi1.randomToken=Wu6;var th6=fY(),Tl0=bY();function oh6($,...Z){for(let X=0;X<Z.length;X++){let Q=Z[X];Object.keys(Q).forEach(function(Y){$[Y]=Q[Y]})}return $}function rh6($){return th6.TD.decode($).replace(/\n/g,"\u240A").replace(/\r/g,"\u240D")}function ah6($,Z=!0){let X=Z?new Tl0.TimeoutError:null,Q,Y,G=new Promise((J,K)=>{Q={cancel:()=>{if(Y)clearTimeout(Y)}},Y=setTimeout(()=>{if(X===null)K(new Tl0.TimeoutError);else K(X)},$)});return Object.assign(G,Q)}function sh6($=0){let Z,X=new Promise((Q)=>{let Y=setTimeout(()=>{Q()},$);Z={cancel:()=>{if(Y)clearTimeout(Y),Q()}}});return Object.assign(X,Z)}async function eh6($,Z=1000){let X=Rl0(),Q=setTimeout(()=>{X.reject(new Tl0.TimeoutError)},Z);try{return await Promise.race([$,X])}finally{clearTimeout(Q)}}function Rl0(){let $={},Z=new Promise((X,Q)=>{$={resolve:X,reject:Q}});return Object.assign(Z,$)}function $u6(){let $={},Z=new Promise((X,Q)=>{$={resolve:(Y)=>{console.trace("resolve",Y),X(Y)},reject:(Y)=>{console.trace("reject"),Q(Y)}}});return Object.assign(Z,$)}function Zu6($){for(let Z=$.length-1;Z>0;Z--){let X=Math.floor(Math.random()*(Z+1));[$[Z],$[X]]=[$[X],$[Z]]}return $}async function Xu6($){let Z=[];for await(let X of $)Z.push(X);return Z}class Gi1{timers;measures;constructor(){this.timers=new Map,this.measures=new Map}mark($){this.timers.set($,performance.now())}measure($,Z,X){let Q=this.timers.get(Z);if(Q===void 0)throw Error(`${Z} is not defined`);let Y=this.timers.get(X);if(Y===void 0)throw Error(`${X} is not defined`);this.measures.set($,Y-Q)}getEntries(){let $=[];return this.measures.forEach((Z,X)=>{$.push({name:X,duration:Z})}),$}}Wi1.Perf=Gi1;class Ji1{max;current;waiting;constructor($=1){this.max=$,this.current=0,this.waiting=[]}lock(){if(this.current++,this.current<=this.max)return Promise.resolve();let $=Rl0();return this.waiting.push($),$}unlock(){this.current--,this.waiting.pop()?.resolve()}}Wi1.SimpleMutex=Ji1;function Ki1($){if($===0)return 0;return Math.floor($/2+Math.random()*$)}function Qu6($=[0,250,250,500,500,3000,5000]){if(!Array.isArray($))$=[0,250,250,500,500,3000,5000];let Z=$.length-1;return{backoff(X){return Ki1(X>Z?$[Z]:$[X])}}}function Yu6($){return $*1e6}function Gu6($){return Math.floor($/1e6)}var Ju6="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",zN=new Uint8Array(62);for(let $=0;$<62;$++)zN[$]=Ju6.charCodeAt($);var Ku6=218340105584896;function Wu6(){let $=Math.floor(Math.random()*Ku6),Z=$%62,X=zN[Z];$=($-Z)/62,Z=$%62;let Q=zN[Z];$=($-Z)/62,Z=$%62;let Y=zN[Z];$=($-Z)/62,Z=$%62;let G=zN[Z];$=($-Z)/62,Z=$%62;let J=zN[Z];$=($-Z)/62,Z=$%62;let K=zN[Z];$=($-Z)/62,Z=$%62;let W=zN[Z];$=($-Z)/62;let H=zN[$];return String.fromCharCode(X,Q,Y,G,J,K,W,H)}});var Li1=_((Bi1)=>{Object.defineProperty(Bi1,"__esModule",{value:!0});Bi1.nuid=Bi1.NuidImpl=void 0;var Ru6="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",Ww=62,g50=12,Fi1=10,Ni1=33,Iu6=333,Ui1=g50+Fi1,ql0=new Uint8Array(Ww);for(let $=0;$<Ww;$++)ql0[$]=Ru6.charCodeAt($);var y50=4294967296,wi1=BigInt(Ww)**BigInt(Fi1),Em=Number(wi1/(1n<<32n)),Il0=Number(wi1%(1n<<32n));function qu6($){for(let Z=0;Z<$.length;Z++)$[Z]=Math.floor(Math.random()*256)}function Mu6($){if(globalThis?.crypto?.getRandomValues)globalThis.crypto.getRandomValues($);else qu6($)}class Ml0{buf;cbuf;seqHi;seqLo;inc;inited;constructor(){this.buf=new Uint8Array(Ui1),this.cbuf=new Uint8Array(g50),this.inited=!1}init(){this.inited=!0,this.setPre(),this.initSeqAndInc(),this.fillSeq()}initSeqAndInc(){let $=0;do this.seqHi=Math.floor(Math.random()*(Em+1)),this.seqLo=Math.floor(Math.random()*y50);while($++<8&&this.seqHi===Em&&this.seqLo>=Il0);if(this.seqHi===Em&&this.seqLo>=Il0)this.seqLo=0;this.inc=Math.random()*(Iu6-Ni1)+Ni1|0}setPre(){Mu6(this.cbuf);for(let $=0;$<g50;$++)this.buf[$]=ql0[this.cbuf[$]%Ww]}fillSeq(){let $=this.seqHi,Z=this.seqLo;for(let X=Ui1-1;X>=g50;X--){let Q=Math.floor($/Ww),G=($-Q*Ww)*y50+Z,J=Math.floor(G/Ww),K=G-J*Ww;this.buf[X]=ql0[K],$=Q,Z=J}}next(){if(!this.inited)this.init();if(this.seqLo+=this.inc,this.seqLo>=y50)this.seqLo-=y50,this.seqHi+=1;if(this.seqHi>Em||this.seqHi===Em&&this.seqLo>=Il0)this.setPre(),this.initSeqAndInc();this.fillSeq();let $=this.buf;return String.fromCharCode($[0],$[1],$[2],$[3],$[4],$[5],$[6],$[7],$[8],$[9],$[10],$[11],$[12],$[13],$[14],$[15],$[16],$[17],$[18],$[19],$[20],$[21])}reset(){this.init()}}Bi1.NuidImpl=Ml0;Bi1.nuid=new Ml0});var ji1=_((Ei1)=>{Object.defineProperty(Ei1,"__esModule",{value:!0});Ei1.nuid=Ei1.Nuid=void 0;var Di1=Li1();Ei1.Nuid=Di1.NuidImpl;Ei1.nuid=Di1.nuid});var u50=_((h50)=>{Object.defineProperty(h50,"__esModule",{value:!0});h50.nuid=h50.Nuid=void 0;var Pi1=ji1();Object.defineProperty(h50,"Nuid",{enumerable:!0,get:function(){return Pi1.Nuid}});Object.defineProperty(h50,"nuid",{enumerable:!0,get:function(){return Pi1.nuid}})});var Hw=_((Ai1)=>{Object.defineProperty(Ai1,"__esModule",{value:!0});Ai1.DEFAULT_HOST=Ai1.DEFAULT_PORT=Ai1.Match=void 0;Ai1.syncIterator=xu6;Ai1.createInbox=vu6;var Cu6=u50(),_u6=bY();Ai1.Match={Exact:"exact",CanonicalMIME:"canonical",IgnoreCase:"insensitive"};function xu6($){let Z=$[Symbol.asyncIterator]();return{async next(){let X=await Z.next();if(X.done)return Promise.resolve(null);return Promise.resolve(X.value)}}}function vu6($=""){if($=$||"_INBOX",typeof $!=="string")throw TypeError("prefix must be a string");return $.split(".").forEach((Z)=>{if(Z==="*"||Z===">")throw _u6.InvalidArgumentError.format("prefix",`cannot have wildcards ('${$}')`)}),`${$}.${Cu6.nuid.next()}`}Ai1.DEFAULT_PORT=4222;Ai1.DEFAULT_HOST="127.0.0.1"});var zm=_((qi1)=>{Object.defineProperty(qi1,"__esModule",{value:!0});qi1.DataBuffer=void 0;var Ri1=fY();class Ii1{buffers;byteLength;constructor(){this.buffers=[],this.byteLength=0}static concat(...$){let Z=0;for(let Y=0;Y<$.length;Y++)Z+=$[Y].length;let X=new Uint8Array(Z),Q=0;for(let Y=0;Y<$.length;Y++)X.set($[Y],Q),Q+=$[Y].length;return X}static fromAscii($){if(!$)$="";return Ri1.TE.encode($)}static toAscii($){return Ri1.TD.decode($)}reset(){this.buffers.length=0,this.byteLength=0}pack(){if(this.buffers.length>1){let $=new Uint8Array(this.byteLength),Z=0;for(let X=0;X<this.buffers.length;X++)$.set(this.buffers[X],Z),Z+=this.buffers[X].length;this.buffers.length=0,this.buffers.push($)}}shift(){if(this.buffers.length){let $=this.buffers.shift();if($)return this.byteLength-=$.length,$}return new Uint8Array(0)}drain($){if(this.buffers.length){this.pack();let Z=this.buffers.pop();if(Z){let X=this.byteLength;if($===void 0||$>X)$=X;let Q=Z.subarray(0,$);if(X>$)this.buffers.push(Z.subarray($));return this.byteLength=X-$,Q}}return new Uint8Array(0)}fill($,...Z){if($)this.buffers.push($),this.byteLength+=$.length;for(let X=0;X<Z.length;X++)if(Z[X]&&Z[X].length)this.buffers.push(Z[X]),this.byteLength+=Z[X].length}peek(){if(this.buffers.length)return this.pack(),this.buffers[0];return new Uint8Array(0)}size(){return this.byteLength}length(){return this.buffers.length}}qi1.DataBuffer=Ii1});var hD=_((Si1)=>{Object.defineProperty(Si1,"__esModule",{value:!0});Si1.LF=Si1.CR=Si1.CRLF=Si1.CR_LF_LEN=Si1.CR_LF=void 0;Si1.setTransportFactory=lu6;Si1.defaultPort=du6;Si1.getUrlParseFn=mu6;Si1.newTransport=iu6;Si1.getResolveFn=nu6;Si1.protoLen=ki1;Si1.extractProtocolMessage=pu6;var hu6=fY(),uu6=Hw(),cu6=zm(),yY;function lu6($){yY=$}function du6(){return yY!==void 0&&yY.defaultPort!==void 0?yY.defaultPort:uu6.DEFAULT_PORT}function mu6(){return yY!==void 0&&yY.urlParseFn?yY.urlParseFn:void 0}function iu6(){if(!yY||typeof yY.factory!=="function")throw Error("transport fn is not set");return yY.factory()}function nu6(){return yY!==void 0&&yY.dnsResolveFn?yY.dnsResolveFn:void 0}Si1.CR_LF=`\r
|
|
1290
1290
|
`;Si1.CR_LF_LEN=Si1.CR_LF.length;Si1.CRLF=cu6.DataBuffer.fromAscii(Si1.CR_LF);Si1.CR=new Uint8Array(Si1.CRLF)[0];Si1.LF=new Uint8Array(Si1.CRLF)[1];function ki1($){for(let Z=0;Z<$.length;Z++){let X=Z+1;if($.byteLength>X&&$[Z]===Si1.CR&&$[X]===Si1.LF)return X+1}return 0}function pu6($){let Z=ki1($);if(Z>0){let Q=new Uint8Array($).slice(0,Z);return hu6.TD.decode(Q)}return""}});var _l0=_((yi1)=>{Object.defineProperty(yi1,"__esModule",{value:!0});yi1.ipV4=vi1;yi1.isIP=Yc6;yi1.parseIP=fi1;var jm=4,uD=16,c50=48,xi1=57,Ci1=65,Xc6=70,_i1=97,Qc6=102,Cl0=16777215;function vi1($,Z,X,Q){let Y=new Uint8Array(uD);return[0,0,0,0,0,0,0,0,0,0,255,255].forEach((J,K)=>{Y[K]=J}),Y[12]=$,Y[13]=Z,Y[14]=X,Y[15]=Q,Y}function Yc6($){return fi1($)!==void 0}function fi1($){for(let Z=0;Z<$.length;Z++)switch($[Z]){case".":return bi1($);case":":return Gc6($)}return}function bi1($){let Z=new Uint8Array(jm);for(let X=0;X<jm;X++){if($.length===0)return;if(X>0){if($[0]!==".")return;$=$.substring(1)}let{n:Q,c:Y,ok:G}=Jc6($);if(!G||Q>255)return;$=$.substring(Y),Z[X]=Q}return vi1(Z[0],Z[1],Z[2],Z[3])}function Gc6($){let Z=new Uint8Array(uD),X=-1;if($.length>=2&&$[0]===":"&&$[1]===":"){if(X=0,$=$.substring(2),$.length===0)return Z}let Q=0;while(Q<uD){let{n:Y,c:G,ok:J}=Kc6($);if(!J||Y>65535)return;if(G<$.length&&$[G]==="."){if(X<0&&Q!=uD-jm)return;if(Q+jm>uD)return;let K=bi1($);if(K===void 0)return;Z[Q]=K[12],Z[Q+1]=K[13],Z[Q+2]=K[14],Z[Q+3]=K[15],$="",Q+=jm;break}if(Z[Q]=Y>>8,Z[Q+1]=Y,Q+=2,$=$.substring(G),$.length===0)break;if($[0]!==":"||$.length==1)return;if($=$.substring(1),$[0]===":"){if(X>=0)return;if(X=Q,$=$.substring(1),$.length===0)break}}if($.length!==0)return;if(Q<uD){if(X<0)return;let Y=uD-Q;for(let G=Q-1;G>=X;G--)Z[G+Y]=Z[G];for(let G=X+Y-1;G>=X;G--)Z[G]=0}else if(X>=0)return;return Z}function Jc6($){let Z=0,X=0;for(Z=0;Z<$.length&&c50<=$.charCodeAt(Z)&&$.charCodeAt(Z)<=xi1;Z++)if(X=X*10+($.charCodeAt(Z)-c50),X>=Cl0)return{n:Cl0,c:Z,ok:!1};if(Z===0)return{n:0,c:0,ok:!1};return{n:X,c:Z,ok:!0}}function Kc6($){let Z=0,X=0;for(X=0;X<$.length;X++){if(c50<=$.charCodeAt(X)&&$.charCodeAt(X)<=xi1)Z*=16,Z+=$.charCodeAt(X)-c50;else if(_i1<=$.charCodeAt(X)&&$.charCodeAt(X)<=Qc6)Z*=16,Z+=$.charCodeAt(X)-_i1+10;else if(Ci1<=$.charCodeAt(X)&&$.charCodeAt(X)<=Xc6)Z*=16,Z+=$.charCodeAt(X)-Ci1+10;else break;if(Z>=Cl0)return{n:0,c:X,ok:!1}}if(X===0)return{n:0,c:X,ok:!1};return{n:Z,c:X,ok:!0}}});var gl0=_((hi1)=>{Object.defineProperty(hi1,"__esModule",{value:!0});hi1.Servers=hi1.ServerImpl=void 0;hi1.isIPV4OrHostname=gi1;hi1.hostPort=yl0;var xl0=hD(),vl0=JJ(),fl0=_l0(),Uc6=Hw(),Fc6=bY();function gi1($){if($.indexOf("[")!==-1||$.indexOf("::")!==-1)return!1;if($.indexOf(".")!==-1)return!0;if($.split(":").length<=2)return!0;return!1}function bl0($){return!gi1($)}function wc6($){let X=$.toUpperCase().indexOf("::FFFF:");if(X!==-1&&$.indexOf(".")!==-1){let Q=$.substring(X+7);return Q=Q.replace("[",""),Q.replace("]","")}return $}function yl0($){if($=$.trim(),$.match(/^(.*:\/\/)(.*)/m))$=$.replace(/^(.*:\/\/)(.*)/gm,"$2");if($=wc6($),bl0($)&&$.indexOf("[")===-1)$=`[${$}]`;let Z=bl0($)?$.match(/(]:)(\d+)/):$.match(/(:)(\d+)/),X=Z&&Z.length===3&&Z[1]&&Z[2]?parseInt(Z[2]):Uc6.DEFAULT_PORT,Y=new URL(`${X===80?"https":"http"}://${$}`);Y.port=`${X}`;let G=Y.hostname;if(G.charAt(0)==="[")G=G.substring(1,G.length-1);return{listen:Y.host,hostname:G,port:X}}class df{src;listen;hostname;port;didConnect;reconnects;lastConnect;gossiped;tlsName;resolves;constructor($,Z=!1){this.src=$,this.tlsName="";let X=yl0($);this.listen=X.listen,this.hostname=X.hostname,this.port=X.port,this.didConnect=!1,this.reconnects=0,this.lastConnect=0,this.gossiped=Z}toString(){return this.listen}async resolve($){if(!$.fn||$.resolve===!1)return[this];let Z=[];if((0,fl0.isIP)(this.hostname))return[this];else{let X=await $.fn(this.hostname);if($.debug)console.log(`resolve ${this.hostname} = ${X.join(",")}`);for(let Q of X){let Y=this.port===80?"https":"http",G=new URL(`${Y}://${bl0(Q)?"["+Q+"]":Q}`);G.port=`${this.port}`;let J=new df(G.host,!1);J.tlsName=this.hostname,Z.push(J)}}if($.randomize)(0,vl0.shuffle)(Z);return this.resolves=Z,Z}}hi1.ServerImpl=df;class l50{firstSelect;servers;currentServer;tlsName;randomize;constructor($={}){this.firstSelect=!0,this.servers=[],this.tlsName="",this.randomize=$.randomize||!1}setServers($){if(!Array.isArray($)||$.length===0)throw Fc6.InvalidArgumentError.format("servers","cannot be empty");let Z=(0,xl0.getUrlParseFn)(),X=new Map;for(let Y of this.servers)X.set(Y.listen,Y);let Q=[];for(let Y of $){Y=Z?Z(Y):Y;let{listen:G}=yl0(Y),J=X.get(G);if(J)J.gossiped=!1,Q.push(J);else Q.push(new df(Y))}if(this.randomize)(0,vl0.shuffle)(Q);if(this.servers=Q,this.currentServer===void 0||!Q.includes(this.currentServer))this.currentServer=Q[0],this.firstSelect=!0}clear(){this.servers.length=0}updateTLSName(){let $=this.getCurrentServer();if(!(0,fl0.isIP)($.hostname))this.tlsName=$.hostname,this.servers.forEach((Z)=>{if(Z.gossiped)Z.tlsName=this.tlsName})}getCurrentServer(){return this.currentServer}addServer($,Z=!1){let X=(0,xl0.getUrlParseFn)();$=X?X($):$;let Q=new df($,Z);if((0,fl0.isIP)(Q.hostname))Q.tlsName=this.tlsName;this.servers.push(Q)}selectServer(){if(this.firstSelect)return this.firstSelect=!1,this.currentServer;let $=this.servers.shift();if($)this.servers.push($),this.currentServer=$;return $}removeCurrentServer(){this.removeServer(this.currentServer)}removeServer($){if($){let Z=this.servers.indexOf($);this.servers.splice(Z,1)}}snapshot(){return l50.freezeAll(this.servers)}snapshotForHandler(){let $=this.currentServer;if(!$)return this.snapshot();let Z=this.servers.indexOf($);if(Z<=0)return this.snapshot();return l50.freezeAll([$,...this.servers.slice(0,Z),...this.servers.slice(Z+1)])}static freezeAll($){return $.map((Z)=>Object.freeze({hostname:Z.hostname,port:Z.port,listen:Z.listen,src:Z.src,tlsName:Z.tlsName,reconnects:Z.reconnects,lastConnect:Z.lastConnect,gossiped:Z.gossiped,didConnect:Z.didConnect}))}find($){return this.servers.find((Z)=>Z.listen===$.listen)}setCurrent($){this.currentServer=$}length(){return this.servers.length}next(){return this.servers.length?this.servers[0]:void 0}getServers(){return this.servers}update($,Z){let X=[],Q=[],Y=(0,xl0.getUrlParseFn)(),G=new Map;if($.connect_urls&&$.connect_urls.length>0)$.connect_urls.forEach((K)=>{K=Y?Y(K,Z):K;let W=new df(K,!0);G.set(K,W)});let J=[];if(this.servers.forEach((K,W)=>{let H=K.listen;if(K.gossiped&&this.currentServer.listen!==H&&G.get(H)===void 0)J.push(W);G.delete(H)}),J.reverse(),J.forEach((K)=>{let W=this.servers.splice(K,1);Q=Q.concat(W[0].listen)}),G.forEach((K,W)=>{this.servers.push(K),X.push(W)}),this.randomize&&X.length>0){let K=this.currentServer,W=this.servers.filter((H)=>H!==K);(0,vl0.shuffle)(W),this.servers=K?[K,...W]:W}return{added:X,deleted:Q}}}hi1.Servers=l50});var d50=_((di1)=>{Object.defineProperty(di1,"__esModule",{value:!0});di1.QueuedIteratorImpl=void 0;var hl0=JJ(),ci1=bY();class li1{inflight;processed;received;noIterator;iterClosed;done;signal;yields;filtered;pendingFiltered;ctx;_data;err;time;profile;yielding;didBreak;constructor(){this.inflight=0,this.filtered=0,this.pendingFiltered=0,this.processed=0,this.received=0,this.noIterator=!1,this.done=!1,this.signal=(0,hl0.deferred)(),this.yields=[],this.iterClosed=(0,hl0.deferred)(),this.time=0,this.yielding=!1,this.didBreak=!1,this.profile=!1}[Symbol.asyncIterator](){return this.iterate()}push($){if(this.done)return;if(this.didBreak){if(typeof $==="function"){let Z=$;try{Z()}catch(X){}}return}if(typeof $==="function")this.pendingFiltered++;this.yields.push($),this.signal.resolve()}async*iterate(){if(this.noIterator)throw new ci1.InvalidOperationError("iterator cannot be used when a callback is registered");if(this.yielding)throw new ci1.InvalidOperationError("iterator is already yielding");this.yielding=!0;try{while(!0){if(this.yields.length===0)await this.signal;if(this.err)throw this.err;let $=this.yields;this.inflight=$.length,this.yields=[];for(let Z=0;Z<$.length;Z++){if(typeof $[Z]==="function"){this.pendingFiltered--;let Q=$[Z];try{Q()}catch(Y){throw Y}if(this.err)throw this.err;continue}this.processed++,this.inflight--;let X=this.profile?Date.now():0;yield $[Z],this.time=this.profile?Date.now()-X:0}if(this.done)break;else if(this.yields.length===0)$.length=0,this.yields=$,this.signal=(0,hl0.deferred)()}}finally{this.didBreak=!0,this.stop()}}stop($){if(this.done)return;this.err=$,this.done=!0,this.signal.resolve(),this.iterClosed.resolve($)}getProcessed(){return this.noIterator?this.received:this.processed}getPending(){return this.yields.length+this.inflight-this.pendingFiltered}getReceived(){return this.received-this.filtered}}di1.QueuedIteratorImpl=li1});var ul0=_((pi1)=>{Object.defineProperty(pi1,"__esModule",{value:!0});pi1.MuxSubscription=void 0;var Dc6=Hw(),ii1=bY();class ni1{baseInbox;reqs;constructor(){this.reqs=new Map}size(){return this.reqs.size}init($){return this.baseInbox=`${(0,Dc6.createInbox)($)}.`,this.baseInbox}add($){if(!isNaN($.received))$.received=0;this.reqs.set($.token,$)}get($){return this.reqs.get($)}cancel($){this.reqs.delete($.token)}getToken($){let Z=$.subject||"";if(Z.indexOf(this.baseInbox)===0)return Z.substring(this.baseInbox.length);return null}all(){return Array.from(this.reqs.values())}handleError($,Z){if($)return this.all().forEach((X)=>{X.resolver(Z,{})}),!0;if(Z.operation==="publish"){let X=this.all().find((Q)=>{return Q.requestSubject===Z.subject});if(X)return X.resolver(Z,{}),!0}return!1}dispatcher(){return($,Z)=>{let X=this.getToken(Z);if(X){let Q=this.get(X);if(Q){if($===null)$=Z?.data?.length===0&&Z.headers?.code===503?new ii1.NoRespondersError(Q.requestSubject):null;Q.resolver($,Z)}}}}close(){let $=new ii1.RequestError("connection closed");this.reqs.forEach((Z)=>{Z.resolver($,{})})}}pi1.MuxSubscription=ni1});var cl0=_((ri1)=>{Object.defineProperty(ri1,"__esModule",{value:!0});ri1.Heartbeat=void 0;var Ec6=JJ();class oi1{ph;interval;maxOut;timer;pendings;constructor($,Z,X){this.ph=$,this.interval=Z,this.maxOut=X,this.pendings=[]}start(){this.cancel(),this._schedule()}cancel($){if(this.timer)clearTimeout(this.timer),this.timer=void 0;if(this._reset(),$)this.ph.disconnect()}_schedule(){this.timer=setTimeout(()=>{if(this.ph.dispatchStatus({type:"ping",pendingPings:this.pendings.length+1}),this.pendings.length===this.maxOut){this.cancel(!0);return}let $=(0,Ec6.deferred)();this.ph.flush($).then(()=>{this._reset()}).catch(()=>{this.cancel()}),this.pendings.push($),this._schedule()},this.interval)}_reset(){this.pendings=this.pendings.filter(($)=>{return $.resolve(),!1})}}ri1.Heartbeat=oi1});var ml0=_((Zn1)=>{Object.defineProperty(Zn1,"__esModule",{value:!0});Zn1.DenoBuffer=Zn1.MAX_SIZE=Zn1.AssertionError=void 0;Zn1.assert=ei1;Zn1.concat=$n1;Zn1.append=jc6;Zn1.readAll=Pc6;Zn1.writeAll=Ac6;var zc6=fY();class ll0 extends Error{constructor($){super($);this.name="AssertionError"}}Zn1.AssertionError=ll0;function ei1($,Z="Assertion failed."){if(!$)throw new ll0(Z)}var si1=32768;Zn1.MAX_SIZE=4294967294;function m50($,Z,X=0){let Q=Z.byteLength-X;if($.byteLength>Q)$=$.subarray(0,Q);return Z.set($,X),$.byteLength}function $n1($,Z){if($===void 0&&Z===void 0)return new Uint8Array(0);if($===void 0)return Z;if(Z===void 0)return $;let X=new Uint8Array($.length+Z.length);return X.set($,0),X.set(Z,$.length),X}function jc6($,Z){return $n1($,Uint8Array.of(Z))}class dl0{_buf;_off;constructor($){if(this._off=0,$==null){this._buf=new Uint8Array(0);return}this._buf=new Uint8Array($)}bytes($={copy:!0}){if($.copy===!1)return this._buf.subarray(this._off);return this._buf.slice(this._off)}empty(){return this._buf.byteLength<=this._off}get length(){return this._buf.byteLength-this._off}get capacity(){return this._buf.buffer.byteLength}truncate($){if($===0){this.reset();return}if($<0||$>this.length)throw Error("bytes.Buffer: truncation out of range");this._reslice(this._off+$)}reset(){this._reslice(0),this._off=0}_tryGrowByReslice($){let Z=this._buf.byteLength;if($<=this.capacity-Z)return this._reslice(Z+$),Z;return-1}_reslice($){ei1($<=this._buf.buffer.byteLength),this._buf=new Uint8Array(this._buf.buffer,0,$)}readByte(){let $=new Uint8Array(1);if(this.read($))return $[0];return null}read($){if(this.empty()){if(this.reset(),$.byteLength===0)return 0;return null}let Z=m50(this._buf.subarray(this._off),$);return this._off+=Z,Z}writeByte($){return this.write(Uint8Array.of($))}writeString($){return this.write(zc6.TE.encode($))}write($){let Z=this._grow($.byteLength);return m50($,this._buf,Z)}_grow($){let Z=this.length;if(Z===0&&this._off!==0)this.reset();let X=this._tryGrowByReslice($);if(X>=0)return X;let Q=this.capacity;if($<=Math.floor(Q/2)-Z)m50(this._buf.subarray(this._off),this._buf);else if(Q+$>Zn1.MAX_SIZE)throw Error("The buffer cannot be grown beyond the maximum size.");else{let Y=new Uint8Array(Math.min(2*Q+$,Zn1.MAX_SIZE));m50(this._buf.subarray(this._off),Y),this._buf=Y}return this._off=0,this._reslice(Math.min(Z+$,Zn1.MAX_SIZE)),Z}grow($){if($<0)throw Error("Buffer._grow: negative count");let Z=this._grow($);this._reslice(Z)}readFrom($){let Z=0,X=new Uint8Array(si1);while(!0){let Q=this.capacity-this.length<si1,Y=Q?X:new Uint8Array(this._buf.buffer,this.length),G=$.read(Y);if(G===null)return Z;if(Q)this.write(Y.subarray(0,G));else this._reslice(this.length+G);Z+=G}}}Zn1.DenoBuffer=dl0;function Pc6($){let Z=new dl0;return Z.readFrom($),Z.bytes()}function Ac6($,Z){let X=0;while(X<Z.length)X+=$.write(Z.subarray(X))}});var pl0=_((Jn1)=>{Object.defineProperty(Jn1,"__esModule",{value:!0});Jn1.cc=Jn1.State=Jn1.Parser=Jn1.Kind=void 0;Jn1.describe=Sc6;var il0=ml0(),nl0=fY();Jn1.Kind={OK:0,ERR:1,MSG:2,INFO:3,PING:4,PONG:5};function Sc6($){let Z,X="";switch($.kind){case Jn1.Kind.MSG:Z="MSG";break;case Jn1.Kind.OK:Z="OK";break;case Jn1.Kind.ERR:Z="ERR",X=nl0.TD.decode($.data);break;case Jn1.Kind.PING:Z="PING";break;case Jn1.Kind.PONG:Z="PONG";break;case Jn1.Kind.INFO:Z="INFO",X=nl0.TD.decode($.data)}return`${Z}: ${X}`}function Qn1(){let $={};return $.sid=-1,$.hdr=-1,$.size=-1,$}var Yn1=48,Vc6=57,mf=67108864;class Gn1{dispatcher;state;as;drop;hdr;ma;argBuf;msgBuf;constructor($){this.dispatcher=$,this.state=Jn1.State.OP_START,this.as=0,this.drop=0,this.hdr=0}parse($){let Z;for(Z=0;Z<$.length;Z++){let X=$[Z];switch(this.state){case Jn1.State.OP_START:switch(X){case Jn1.cc.M:case Jn1.cc.m:this.state=Jn1.State.OP_M,this.hdr=-1,this.ma=Qn1();break;case Jn1.cc.H:case Jn1.cc.h:this.state=Jn1.State.OP_H,this.hdr=0,this.ma=Qn1();break;case Jn1.cc.P:case Jn1.cc.p:this.state=Jn1.State.OP_P;break;case Jn1.cc.PLUS:this.state=Jn1.State.OP_PLUS;break;case Jn1.cc.MINUS:this.state=Jn1.State.OP_MINUS;break;case Jn1.cc.I:case Jn1.cc.i:this.state=Jn1.State.OP_I;break;default:throw this.fail($.subarray(Z))}break;case Jn1.State.OP_H:switch(X){case Jn1.cc.M:case Jn1.cc.m:this.state=Jn1.State.OP_M;break;default:throw this.fail($.subarray(Z))}break;case Jn1.State.OP_M:switch(X){case Jn1.cc.S:case Jn1.cc.s:this.state=Jn1.State.OP_MS;break;default:throw this.fail($.subarray(Z))}break;case Jn1.State.OP_MS:switch(X){case Jn1.cc.G:case Jn1.cc.g:this.state=Jn1.State.OP_MSG;break;default:throw this.fail($.subarray(Z))}break;case Jn1.State.OP_MSG:switch(X){case Jn1.cc.SPACE:case Jn1.cc.TAB:this.state=Jn1.State.OP_MSG_SPC;break;default:throw this.fail($.subarray(Z))}break;case Jn1.State.OP_MSG_SPC:switch(X){case Jn1.cc.SPACE:case Jn1.cc.TAB:continue;default:this.state=Jn1.State.MSG_ARG,this.as=Z}break;case Jn1.State.MSG_ARG:switch(X){case Jn1.cc.CR:this.drop=1;break;case Jn1.cc.NL:{let Q=this.argBuf?this.argBuf.bytes():$.subarray(this.as,Z-this.drop);this.processMsgArgs(Q),this.drop=0,this.as=Z+1,this.state=Jn1.State.MSG_PAYLOAD,Z=this.as+this.ma.size-1;break}default:if(this.argBuf)this.argBuf.writeByte(X)}break;case Jn1.State.MSG_PAYLOAD:if(this.msgBuf)if(this.msgBuf.length>=this.ma.size){let Q=this.msgBuf.bytes({copy:!1});this.dispatcher.push({kind:Jn1.Kind.MSG,msg:this.ma,data:Q}),this.argBuf=void 0,this.msgBuf=void 0,this.state=Jn1.State.MSG_END}else{let Q=this.ma.size-this.msgBuf.length,Y=$.length-Z;if(Y<Q)Q=Y;if(Q>0)this.msgBuf.write($.subarray(Z,Z+Q)),Z=Z+Q-1;else this.msgBuf.writeByte(X)}else if(Z-this.as>=this.ma.size)this.dispatcher.push({kind:Jn1.Kind.MSG,msg:this.ma,data:$.subarray(this.as,Z)}),this.argBuf=void 0,this.msgBuf=void 0,this.state=Jn1.State.MSG_END;break;case Jn1.State.MSG_END:switch(X){case Jn1.cc.NL:this.drop=0,this.as=Z+1,this.state=Jn1.State.OP_START;break;default:continue}break;case Jn1.State.OP_PLUS:switch(X){case Jn1.cc.O:case Jn1.cc.o:this.state=Jn1.State.OP_PLUS_O;break;default:throw this.fail($.subarray(Z))}break;case Jn1.State.OP_PLUS_O:switch(X){case Jn1.cc.K:case Jn1.cc.k:this.state=Jn1.State.OP_PLUS_OK;break;default:throw this.fail($.subarray(Z))}break;case Jn1.State.OP_PLUS_OK:switch(X){case Jn1.cc.NL:this.dispatcher.push({kind:Jn1.Kind.OK}),this.drop=0,this.state=Jn1.State.OP_START;break}break;case Jn1.State.OP_MINUS:switch(X){case Jn1.cc.E:case Jn1.cc.e:this.state=Jn1.State.OP_MINUS_E;break;default:throw this.fail($.subarray(Z))}break;case Jn1.State.OP_MINUS_E:switch(X){case Jn1.cc.R:case Jn1.cc.r:this.state=Jn1.State.OP_MINUS_ER;break;default:throw this.fail($.subarray(Z))}break;case Jn1.State.OP_MINUS_ER:switch(X){case Jn1.cc.R:case Jn1.cc.r:this.state=Jn1.State.OP_MINUS_ERR;break;default:throw this.fail($.subarray(Z))}break;case Jn1.State.OP_MINUS_ERR:switch(X){case Jn1.cc.SPACE:case Jn1.cc.TAB:this.state=Jn1.State.OP_MINUS_ERR_SPC;break;default:throw this.fail($.subarray(Z))}break;case Jn1.State.OP_MINUS_ERR_SPC:switch(X){case Jn1.cc.SPACE:case Jn1.cc.TAB:continue;default:this.state=Jn1.State.MINUS_ERR_ARG,this.as=Z}break;case Jn1.State.MINUS_ERR_ARG:switch(X){case Jn1.cc.CR:this.drop=1;break;case Jn1.cc.NL:{let Q;if(this.argBuf)Q=this.argBuf.bytes(),this.argBuf=void 0;else Q=$.subarray(this.as,Z-this.drop);this.dispatcher.push({kind:Jn1.Kind.ERR,data:Q}),this.drop=0,this.as=Z+1,this.state=Jn1.State.OP_START;break}default:if(this.argBuf)this.argBuf.write(Uint8Array.of(X))}break;case Jn1.State.OP_P:switch(X){case Jn1.cc.I:case Jn1.cc.i:this.state=Jn1.State.OP_PI;break;case Jn1.cc.O:case Jn1.cc.o:this.state=Jn1.State.OP_PO;break;default:throw this.fail($.subarray(Z))}break;case Jn1.State.OP_PO:switch(X){case Jn1.cc.N:case Jn1.cc.n:this.state=Jn1.State.OP_PON;break;default:throw this.fail($.subarray(Z))}break;case Jn1.State.OP_PON:switch(X){case Jn1.cc.G:case Jn1.cc.g:this.state=Jn1.State.OP_PONG;break;default:throw this.fail($.subarray(Z))}break;case Jn1.State.OP_PONG:switch(X){case Jn1.cc.NL:this.dispatcher.push({kind:Jn1.Kind.PONG}),this.drop=0,this.state=Jn1.State.OP_START;break}break;case Jn1.State.OP_PI:switch(X){case Jn1.cc.N:case Jn1.cc.n:this.state=Jn1.State.OP_PIN;break;default:throw this.fail($.subarray(Z))}break;case Jn1.State.OP_PIN:switch(X){case Jn1.cc.G:case Jn1.cc.g:this.state=Jn1.State.OP_PING;break;default:throw this.fail($.subarray(Z))}break;case Jn1.State.OP_PING:switch(X){case Jn1.cc.NL:this.dispatcher.push({kind:Jn1.Kind.PING}),this.drop=0,this.state=Jn1.State.OP_START;break}break;case Jn1.State.OP_I:switch(X){case Jn1.cc.N:case Jn1.cc.n:this.state=Jn1.State.OP_IN;break;default:throw this.fail($.subarray(Z))}break;case Jn1.State.OP_IN:switch(X){case Jn1.cc.F:case Jn1.cc.f:this.state=Jn1.State.OP_INF;break;default:throw this.fail($.subarray(Z))}break;case Jn1.State.OP_INF:switch(X){case Jn1.cc.O:case Jn1.cc.o:this.state=Jn1.State.OP_INFO;break;default:throw this.fail($.subarray(Z))}break;case Jn1.State.OP_INFO:switch(X){case Jn1.cc.SPACE:case Jn1.cc.TAB:this.state=Jn1.State.OP_INFO_SPC;break;default:throw this.fail($.subarray(Z))}break;case Jn1.State.OP_INFO_SPC:switch(X){case Jn1.cc.SPACE:case Jn1.cc.TAB:continue;default:this.state=Jn1.State.INFO_ARG,this.as=Z}break;case Jn1.State.INFO_ARG:switch(X){case Jn1.cc.CR:this.drop=1;break;case Jn1.cc.NL:{let Q;if(this.argBuf)Q=this.argBuf.bytes(),this.argBuf=void 0;else Q=$.subarray(this.as,Z-this.drop);this.dispatcher.push({kind:Jn1.Kind.INFO,data:Q}),this.drop=0,this.as=Z+1,this.state=Jn1.State.OP_START;break}default:if(this.argBuf)this.argBuf.writeByte(X)}break;default:throw this.fail($.subarray(Z))}}if((this.state===Jn1.State.MSG_ARG||this.state===Jn1.State.MINUS_ERR_ARG||this.state===Jn1.State.INFO_ARG)&&!this.argBuf)this.argBuf=new il0.DenoBuffer($.subarray(this.as,Z-this.drop));if(this.state===Jn1.State.MSG_PAYLOAD&&!this.msgBuf){if(!this.argBuf)this.cloneMsgArg();this.msgBuf=new il0.DenoBuffer($.subarray(this.as))}}cloneMsgArg(){let $=this.ma.subject.length,Z=this.ma.reply?this.ma.reply.length:0,X=new Uint8Array($+Z);if(X.set(this.ma.subject),this.ma.reply)X.set(this.ma.reply,$);if(this.argBuf=new il0.DenoBuffer(X),this.ma.subject=X.subarray(0,$),this.ma.reply)this.ma.reply=X.subarray($)}processMsgArgs($){if(this.hdr>=0)return this.processHeaderMsgArgs($);let Z=[],X=-1;for(let Q=0;Q<$.length;Q++)switch($[Q]){case Jn1.cc.SPACE:case Jn1.cc.TAB:case Jn1.cc.CR:case Jn1.cc.NL:if(X>=0)Z.push($.subarray(X,Q)),X=-1;break;default:if(X<0)X=Q}if(X>=0)Z.push($.subarray(X));switch(Z.length){case 3:this.ma.subject=Z[0],this.ma.sid=this.protoParseInt(Z[1]),this.ma.reply=void 0,this.ma.size=this.protoParseInt(Z[2],mf);break;case 4:this.ma.subject=Z[0],this.ma.sid=this.protoParseInt(Z[1]),this.ma.reply=Z[2],this.ma.size=this.protoParseInt(Z[3],mf);break;default:throw this.fail($,"processMsgArgs Parse Error")}if(this.ma.sid<0)throw this.fail($,"processMsgArgs Bad or Missing Sid Error");if(this.ma.size<0)throw this.fail($,"processMsgArgs Bad or Missing Size Error")}fail($,Z=""){if(!Z)Z=`parse error [${this.state}]`;else Z=`${Z} [${this.state}]`;return Error(`${Z}: ${nl0.TD.decode($)}`)}processHeaderMsgArgs($){let Z=[],X=-1;for(let Q=0;Q<$.length;Q++)switch($[Q]){case Jn1.cc.SPACE:case Jn1.cc.TAB:case Jn1.cc.CR:case Jn1.cc.NL:if(X>=0)Z.push($.subarray(X,Q)),X=-1;break;default:if(X<0)X=Q}if(X>=0)Z.push($.subarray(X));switch(Z.length){case 4:this.ma.subject=Z[0],this.ma.sid=this.protoParseInt(Z[1]),this.ma.reply=void 0,this.ma.hdr=this.protoParseInt(Z[2],mf),this.ma.size=this.protoParseInt(Z[3],mf);break;case 5:this.ma.subject=Z[0],this.ma.sid=this.protoParseInt(Z[1]),this.ma.reply=Z[2],this.ma.hdr=this.protoParseInt(Z[3],mf),this.ma.size=this.protoParseInt(Z[4],mf);break;default:throw this.fail($,"processHeaderMsgArgs Parse Error")}if(this.ma.sid<0)throw this.fail($,"processHeaderMsgArgs Bad or Missing Sid Error");if(this.ma.hdr<0||this.ma.hdr>this.ma.size)throw this.fail($,"processHeaderMsgArgs Bad or Missing Header Size Error");if(this.ma.size<0)throw this.fail($,"processHeaderMsgArgs Bad or Missing Size Error")}protoParseInt($,Z){if($.length===0||$.length>15)return-1;let X=0;for(let Q=0;Q<$.length;Q++){if($[Q]<Yn1||$[Q]>Vc6)return-1;X=X*10+($[Q]-Yn1)}return Z!==void 0&&X>Z?-1:X}}Jn1.Parser=Gn1;Jn1.State={OP_START:0,OP_PLUS:1,OP_PLUS_O:2,OP_PLUS_OK:3,OP_MINUS:4,OP_MINUS_E:5,OP_MINUS_ER:6,OP_MINUS_ERR:7,OP_MINUS_ERR_SPC:8,MINUS_ERR_ARG:9,OP_M:10,OP_MS:11,OP_MSG:12,OP_MSG_SPC:13,MSG_ARG:14,MSG_PAYLOAD:15,MSG_END:16,OP_H:17,OP_P:18,OP_PI:19,OP_PIN:20,OP_PING:21,OP_PO:22,OP_PON:23,OP_PONG:24,OP_I:25,OP_IN:26,OP_INF:27,OP_INFO:28,OP_INFO_SPC:29,INFO_ARG:30};Jn1.cc={CR:13,E:69,e:101,F:70,f:102,G:71,g:103,H:72,h:104,I:73,i:105,K:75,k:107,M:77,m:109,MINUS:45,N:78,n:110,NL:10,O:79,o:111,P:80,p:112,PLUS:43,R:82,r:114,S:83,s:115,SPACE:32,TAB:9}});var p50=_((Wn1)=>{Object.defineProperty(Wn1,"__esModule",{value:!0});Wn1.MsgHdrsImpl=void 0;Wn1.canonicalMIMEHeaderKey=ol0;Wn1.headers=xc6;var Kn1=fY(),KJ=Hw(),n50=bY();function ol0($){let N=!0,U=Array($.length);for(let F=0;F<$.length;F++){let w=$.charCodeAt(F);if(w===58||w<33||w>126)throw n50.InvalidArgumentError.format("header",`'${$[F]}' is not a valid character in a header name`);if(N&&97<=w&&w<=122)w-=32;else if(!N&&65<=w&&w<=90)w+=32;U[F]=w,N=w==45}return String.fromCharCode(...U)}function xc6($=0,Z=""){if($===0&&Z!=="")throw n50.InvalidArgumentError.format("code","is required");else if($>0&&Z==="")throw n50.InvalidArgumentError.format("description","is required");return new nf($,Z)}var tl0="NATS/1.0";class nf{_code;headers;_description;constructor($=0,Z=""){this._code=$,this._description=Z,this.headers=new Map}[Symbol.iterator](){return this.headers.entries()}size(){return this.headers.size}equals($){if($&&this.headers.size===$.headers.size&&this._code===$._code){for(let[Z,X]of this.headers){let Q=$.values(Z);if(X.length!==Q.length)return!1;let Y=[...X].sort(),G=[...Q].sort();for(let J=0;J<Y.length;J++)if(Y[J]!==G[J])return!1}return!0}return!1}static decode($){let Z=new nf,Q=Kn1.TD.decode($).split(`\r
|
|
1291
1291
|
`),Y=Q[0];if(Y!==tl0){let G=Y.replace(tl0,"").trim();if(G.length>0){if(Z._code=parseInt(G,10),isNaN(Z._code))Z._code=0;let J=Z._code.toString();G=G.replace(J,""),Z._description=G.trim()}}if(Q.length>=1)Q.slice(1).map((G)=>{if(G){let J=G.indexOf(":");if(J>-1){let K=G.slice(0,J),W=G.slice(J+1).trim();Z.append(K,W)}}});return Z}toString(){if(this.headers.size===0&&this._code===0)return"";let $=tl0;if(this._code>0&&this._description!=="")$+=` ${this._code} ${this._description}`;for(let[Z,X]of this.headers)for(let Q=0;Q<X.length;Q++)$=`${$}\r
|
|
1292
1292
|
${Z}: ${X[Q]}`;return`${$}\r
|
|
@@ -2271,7 +2271,7 @@ Keep both indexes concise \u2014 a curated list of durable facts and one-line po
|
|
|
2271
2271
|
- \`org/public/<set>/\` \u2014 curated read-only skill sets, mounted here. Your skills are listed in the <available-skills> catalog; load one with the \`skill\` tool before applying it.
|
|
2272
2272
|
- \`org/upload/\` \u2014 files the user attached to this conversation are already here; read them directly (no copy step needed).
|
|
2273
2273
|
- \`org/output/\` \u2014 write final deliverables here; they are shared back to the organization under this run's folder.
|
|
2274
|
-
</organization-filesystem>`}var SB=O(()=>{Gz();ua0()});function ca0($){let Z=new Map;for(let Q of $){let Y=Z.get(Q.message_id);if(Y)Y.push(Q);else Z.set(Q.message_id,[Q])}let X=[];for(let[Q,Y]of Z){let G=[...Y].sort((K,W)=>K.seq-W.seq),J=G[0];X.push({id:Q,role:J.role,parts:G.filter((K)=>K.kind!=="finish").map((K)=>K.payload&&typeof K.payload==="object"&&!Array.isArray(K.payload)?{...K.payload,created_at:K.created_at}:K.payload),created_at:J.created_at,status:G.some((K)=>K.kind==="finish")?"complete":"in_progress",metadata:G.find((K)=>K.kind==="finish")?.metadata??null})}return X.sort((Q,Y)=>Q.created_at<Y.created_at?-1:Q.created_at>Y.created_at?1:0),X}function vN4($,Z){let X=0,Q=0,Y=[$];while(Y.length>0){if(X>Z||++Q>_N4)return 1/0;let G=Y.pop();if(typeof G==="string")X+=G.length;else if(Array.isArray(G))for(let J of G)Y.push(J);else if(G!==null&&typeof G==="object")for(let J of Object.values(G))Y.push(J)}return X}function yN4($){return $.replace(fN4,"").replace(bN4,"\uFFFD")}function DJ8($){if(vN4($,LJ8)>LJ8)return JSON.stringify({truncated:!0,reason:"payload exceeds max stored size"});return JSON.stringify($,(Z,X)=>typeof X==="string"?yN4(X):X)}class la0{db;constructor($){this.db=$}async serializeParts($){let Z=new Set,X=[],Q=new Map;for(let Y=0;Y<$.length;Y++){let G=$[Y];if(Z.has(G.id))continue;if(Z.add(G.id),Q.set(G.id,G),X.push({id:G.id,seq:G.seq,org_id:G.org_id,thread_id:G.thread_id,run_id:G.run_id,message_id:G.message_id,role:G.role,kind:G.kind,payload:DJ8(G.payload),payload_ref:G.payload_ref??null,metadata:G.metadata!=null?DJ8(G.metadata):null,created_at:G.created_at}),(Y+1)%xN4===0)await h8(0)}return{rows:X,partsById:Q}}async appendParts($){if($.length===0)return[];let{rows:Z,partsById:X}=await this.serializeParts($);return(await this.db.insertInto("thread_message_parts").values(Z).onConflict((Y)=>Y.column("id").doNothing()).returning("id").execute()).map((Y)=>X.get(Y.id)).filter((Y)=>Y!==void 0)}async replaceMessageParts($,Z,X){let{rows:Q}=await this.serializeParts(X);return await this.db.transaction().execute(async(Y)=>{let G=await Y.selectFrom("thread_message_parts").select((W)=>W.fn.min("created_at").as("created_at")).where("thread_id","=",$).where("message_id","=",Z).executeTakeFirst(),J=G?.created_at!=null?new Date(G.created_at).getTime():null,K=J!=null&&Number.isFinite(J)?Q.map((W)=>({...W,created_at:new Date(J+W.seq).toISOString()})):Q;if(await Y.deleteFrom("thread_message_parts").where("thread_id","=",$).where("message_id","=",Z).execute(),K.length>0)await Y.insertInto("thread_message_parts").values(K).onConflict((W)=>W.column("id").doUpdateSet((H)=>({seq:H.ref("excluded.seq"),role:H.ref("excluded.role"),kind:H.ref("excluded.kind"),payload:H.ref("excluded.payload"),payload_ref:H.ref("excluded.payload_ref"),metadata:H.ref("excluded.metadata"),created_at:H.ref("excluded.created_at")}))).execute()}),X}async deleteMessageParts($,Z){await this.db.deleteFrom("thread_message_parts").where("thread_id","=",$).where("message_id","=",Z).execute()}async maxCreatedAtMsForRun($){let Z=await this.db.selectFrom("thread_message_parts").select((Q)=>Q.fn.max("created_at").as("max")).where("run_id","=",$).executeTakeFirst();if(!Z?.max)return null;let X=new Date(Z.max).getTime();return Number.isFinite(X)?X:null}async maxCreatedAtMsForMessage($,Z){let X=await this.db.selectFrom("thread_message_parts").select((Y)=>Y.fn.max("created_at").as("max")).where("run_id","=",$).where("message_id","=",Z).executeTakeFirst();if(!X?.max)return null;let Q=new Date(X.max).getTime();return Number.isFinite(Q)?Q:null}async loadWindow($,Z){let X=await this.db.selectFrom("thread_message_parts").select(["message_id"]).where("thread_id","=",$).where("kind","=","finish").orderBy("created_at","desc").orderBy("id","desc").limit(Z.limit).offset(Z.offset??0).execute(),Q=await this.db.selectFrom("thread_message_parts").select((W)=>W.fn.count("id").as("count")).where("thread_id","=",$).where("kind","=","finish").executeTakeFirst(),Y=Number(Q?.count??0),G=Z.includeInFlight&&(Z.offset??0)===0?await this.db.selectFrom("thread_message_parts as p").select("p.message_id").distinct().where("p.thread_id","=",$).where((W)=>W.not(W.exists(W.selectFrom("thread_message_parts as f").select("f.id").whereRef("f.message_id","=","p.message_id").where("f.thread_id","=",$).where("f.kind","=","finish")))).execute():[],J=[...X.map((W)=>W.message_id),...G.map((W)=>W.message_id)];if(J.length===0)return{messages:[],total:Y};let K=await this.db.selectFrom("thread_message_parts").selectAll().where("thread_id","=",$).where("message_id","in",J).orderBy("seq","asc").execute();return{messages:ca0(K),total:Y}}async backfillFromMessages($,Z){let X=[],Q=0;for(let Y of $)X.push({id:`${Z.runId}:${Y.id}:content`,seq:Q++,org_id:Z.orgId,thread_id:Z.threadId,run_id:Z.runId,message_id:Y.id,role:Y.role,kind:"text",payload:Y.parts,payload_ref:null,metadata:Y.metadata??null,created_at:Y.created_at}),X.push({id:`${Z.runId}:${Y.id}:finish`,seq:Q++,org_id:Z.orgId,thread_id:Z.threadId,run_id:Z.runId,message_id:Y.id,role:Y.role,kind:"finish",payload:{},payload_ref:null,metadata:null,created_at:Y.created_at});await this.appendParts(X)}}var LJ8=50000000,_N4=1e5,xN4=25,fN4,bN4;var EJ8=O(()=>{s$();fN4=/\u0000/g,bN4=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g});import{sql as zg}from"kysely";function Jz($){return typeof $==="string"?$:$.toISOString()}function zJ8($){return $.replace(/[\\%_]/g,"\\$&")}class da0{inner;organizationId;constructor($,Z){this.inner=$;this.organizationId=Z}requireOrg(){if(!this.organizationId)throw Error("OrgScopedThreadStorage: thread operations require an authenticated organization");return this.organizationId}setOrganizationId($){this.organizationId=$}getOrganizationId(){return this.organizationId}create($){let Z=this.requireOrg();return this.inner.create({...$,organization_id:Z})}get($){return this.inner.get($,this.requireOrg())}update($,Z){return this.inner.update($,this.requireOrg(),Z)}pinRuntimeIfUnset($,Z){return this.inner.pinRuntimeIfUnset($,this.requireOrg(),Z)}completeRunIfNotCompleted($){return this.inner.completeRunIfNotCompleted($,this.requireOrg())}markRunFailed($,Z,X){return this.inner.markRunFailed($,this.requireOrg(),Z,X)}requiresActionIfInProgress($){return this.inner.requiresActionIfInProgress($,this.requireOrg())}forceFailIfInProgress($,Z){return this.inner.forceFailIfInProgress($,this.requireOrg(),Z)}delete($){return this.inner.delete($,this.requireOrg())}list($,Z){return this.inner.list(this.requireOrg(),$,Z)}listByTriggerIds($,Z){return this.inner.listByTriggerIds(this.requireOrg(),$,Z)}findLastUsedByVirtualMcpIds($){return this.inner.findLastUsedByVirtualMcpIds(this.requireOrg(),$)}bumpProgress($){return this.inner.bumpProgress($,this.requireOrg())}getProgress($){return this.inner.getProgress($,this.requireOrg())}listMessages($,Z){return this.inner.listMessages($,this.requireOrg(),Z)}listWithLastMessage($){return this.inner.listWithLastMessage(this.requireOrg(),$)}messageParts(){return this.inner.messageParts()}getRunFence($){return this.inner.getRunFence($)}setRunFence($,Z){return this.inner.setRunFence($,Z)}setCancelRequested($,Z){return this.inner.setCancelRequested($,Z)}getCancelRequestedAt($){return this.inner.getCancelRequestedAt($)}clearCancelRequested($){return this.inner.clearCancelRequested($)}bumpAckedSeq($,Z,X){return this.inner.bumpAckedSeq($,this.requireOrg(),Z,X)}getAckedSeq($){return this.inner.getAckedSeq($,this.requireOrg())}}class jg{db;constructor($){this.db=$}messageParts(){return new la0(this.db)}async create($){let Z=$.id??$4("thrd"),X=new Date().toISOString();if(!$.organization_id)throw Error("organization_id is required");if(!$.created_by)throw Error("created_by is required");if(!$.title)$.title=kB;let Q={id:Z,organization_id:$.organization_id,title:$.title,description:$.description??null,status:$.status??"completed",trigger_id:$.trigger_id??null,virtual_mcp_id:$.virtual_mcp_id??"",branch:$.branch??null,sandbox_provider_kind:$.sandbox_provider_kind??null,harness_id:$.harness_id??null,created_at:X,updated_at:X,created_by:$.created_by,updated_by:$.updated_by??null,...$.message_storage_version!==void 0?{message_storage_version:$.message_storage_version}:{},...$.metadata!==void 0?{metadata:JSON.stringify($.metadata)}:{}},Y=await this.db.insertInto("threads").values(Q).onConflict((J)=>J.column("id").doNothing()).returningAll().executeTakeFirst();if(Y)return{...this.threadFromDbRow(Y),isNew:!0};let G=await this.db.selectFrom("threads").selectAll().where("id","=",Z).where("organization_id","=",$.organization_id).executeTakeFirstOrThrow();return{...this.threadFromDbRow(G),isNew:!1}}async get($,Z){let X=await this.db.selectFrom("threads").selectAll().where("id","=",$).where("organization_id","=",Z).executeTakeFirst();return X?this.threadFromDbRow(X):null}async update($,Z,X){let Y={updated_at:new Date().toISOString()};if(X.title!==void 0)Y.title=X.title;if(X.description!==void 0)Y.description=X.description;if(X.updated_by!==void 0)Y.updated_by=X.updated_by;if(X.hidden!==void 0)Y.hidden=X.hidden;if(X.status!==void 0)Y.status=X.status;if(X.context_start_message_id!==void 0)Y.context_start_message_id=X.context_start_message_id;if(X.run_owner_pod!==void 0)Y.run_owner_pod=X.run_owner_pod;if(X.run_config!==void 0)Y.run_config=X.run_config?JSON.stringify(X.run_config):null;if(X.run_started_at!==void 0)Y.run_started_at=X.run_started_at;if(X.last_progress_at!==void 0)Y.last_progress_at=X.last_progress_at;if(X.failure_reason!==void 0)Y.failure_reason=X.failure_reason;if(X.failure_kind!==void 0)Y.failure_kind=X.failure_kind;if(X.metadata!==void 0)Y.metadata=JSON.stringify(X.metadata);if(X.branch!==void 0)Y.branch=X.branch;if(X.virtual_mcp_id!==void 0)Y.virtual_mcp_id=X.virtual_mcp_id;if(X.sandbox_provider_kind!==void 0)Y.sandbox_provider_kind=X.sandbox_provider_kind;if(X.harness_id!==void 0)Y.harness_id=X.harness_id;if(X.message_storage_version!==void 0)Y.message_storage_version=X.message_storage_version;await this.db.updateTable("threads").set(Y).where("id","=",$).where("organization_id","=",Z).execute();let G=await this.get($,Z);if(!G)throw Error("Thread not found after update");return G}async pinRuntimeIfUnset($,Z,X){let Q=await this.db.updateTable("threads").set({harness_id:X.harnessId,sandbox_provider_kind:zg`coalesce(${zg.ref("sandbox_provider_kind")}, ${X.sandboxProviderKind})`,branch:zg`coalesce(${zg.ref("branch")}, ${X.branch})`,updated_at:new Date().toISOString(),...X.messageStorageVersion!==void 0?{message_storage_version:X.messageStorageVersion}:{}}).where("id","=",$).where("organization_id","=",Z).where("harness_id","is",null).where((Y)=>X.sandboxProviderKind===null?Y("sandbox_provider_kind","is",null):Y.or([Y("sandbox_provider_kind","is",null),Y("sandbox_provider_kind","=",X.sandboxProviderKind)])).returningAll().executeTakeFirst();if(Q)return{thread:this.threadFromDbRow(Q),claimed:!0};return{thread:await this.get($,Z),claimed:!1}}async completeRunIfNotCompleted($,Z){let Q=(await this.db.updateTable("threads").set({status:"completed",run_owner_pod:null,run_config:null,run_started_at:null,updated_at:new Date().toISOString()}).where("id","=",$).where("organization_id","=",Z).where("status","=","in_progress").returningAll().execute())[0];return Q?this.threadFromDbRow(Q):null}async markRunFailed($,Z,X,Q){let G=(await this.db.updateTable("threads").set({status:"failed",failure_reason:X,failure_kind:Q,run_owner_pod:null,run_config:null,run_started_at:null,updated_at:new Date().toISOString()}).where("id","=",$).where("organization_id","=",Z).where("status","=","in_progress").returningAll().execute())[0];return G?this.threadFromDbRow(G):null}async requiresActionIfInProgress($,Z){let Q=(await this.db.updateTable("threads").set({status:"requires_action",run_config:null,run_started_at:null,updated_at:new Date().toISOString()}).where("id","=",$).where("organization_id","=",Z).where("status","=","in_progress").returningAll().execute())[0];return Q?this.threadFromDbRow(Q):null}async forceFailIfInProgress($,Z,X){let Q=new Date().toISOString(),Y=this.db.updateTable("threads").set({status:"failed",updated_at:Q}).where("id","=",$).where("organization_id","=",Z).where("status","=","in_progress");if(X!=null)Y=Y.where("run_fence_token","=",X);return((await Y.executeTakeFirst()).numUpdatedRows??BigInt(0))>BigInt(0)}async delete($,Z){await this.db.deleteFrom("threads").where("id","=",$).where("organization_id","=",Z).execute()}async list($,Z,X){let Q=X?.includeArchived===!0,Y=this.db.selectFrom("threads").selectAll().where("organization_id","=",$).where("hidden","=",Q).orderBy("updated_at","desc");if(Z)Y=Y.where("created_by","=",Z);let G=X?.virtualMcpId??X?.agentId;if(G)Y=Y.where("virtual_mcp_id","=",G);if(X?.hasTrigger===!0)Y=Y.where("trigger_id","is not",null);else if(X?.hasTrigger===!1)Y=Y.where("trigger_id","is",null);if(X?.startDate)Y=Y.where("updated_at",">=",X.startDate);if(X?.endDate)Y=Y.where("updated_at","<=",X.endDate);if(X?.search)Y=Y.where("title","ilike",`%${zJ8(X.search)}%`);if(X?.status)Y=Y.where("status","=",X.status);let J=this.db.selectFrom("threads").select((H)=>H.fn.count("id").as("count")).where("organization_id","=",$).where("hidden","=",Q);if(Z)J=J.where("created_by","=",Z);if(G)J=J.where("virtual_mcp_id","=",G);if(X?.hasTrigger===!0)J=J.where("trigger_id","is not",null);else if(X?.hasTrigger===!1)J=J.where("trigger_id","is",null);if(X?.startDate)J=J.where("updated_at",">=",X.startDate);if(X?.endDate)J=J.where("updated_at","<=",X.endDate);if(X?.search)J=J.where("title","ilike",`%${zJ8(X.search)}%`);if(X?.status)J=J.where("status","=",X.status);if(X?.limit)Y=Y.limit(X.limit);if(X?.offset)Y=Y.offset(X.offset);let[K,W]=await Promise.all([Y.execute(),J.executeTakeFirst()]);return{threads:K.map((H)=>this.threadFromDbRow(H)),total:Number(W?.count||0)}}async listByTriggerIds($,Z,X){if(Z.length===0)return{threads:[],total:0};let Q=this.db.selectFrom("threads").selectAll().where("organization_id","=",$).where("hidden","=",!1).where("trigger_id","in",Z).orderBy("updated_at","desc"),Y=this.db.selectFrom("threads").select((K)=>K.fn.count("id").as("count")).where("organization_id","=",$).where("hidden","=",!1).where("trigger_id","in",Z);if(X?.limit)Q=Q.limit(X.limit);if(X?.offset)Q=Q.offset(X.offset);let[G,J]=await Promise.all([Q.execute(),Y.executeTakeFirst()]);return{threads:G.map((K)=>this.threadFromDbRow(K)),total:Number(J?.count||0)}}async findLastUsedByVirtualMcpIds($,Z){let X=new Map;if(Z.length===0)return X;let Q=await this.db.selectFrom("threads").distinctOn("virtual_mcp_id").select(["virtual_mcp_id","created_by","created_at"]).where("organization_id","=",$).where("virtual_mcp_id","in",Z).orderBy("virtual_mcp_id").orderBy("created_at","desc").execute();for(let Y of Q)X.set(Y.virtual_mcp_id,{last_used_at:Jz(Y.created_at),last_used_by:Y.created_by});return X}async listWithLastMessage($,Z){let X=this.db.selectFrom("threads as t").innerJoinLateral((Y)=>Y.selectFrom("thread_messages as m").selectAll().whereRef("m.thread_id","=","t.id").orderBy("m.created_at","desc").orderBy("m.id","desc").limit(1).as("lm"),(Y)=>Y.onTrue()).selectAll("t").select(["lm.id as lm_id","lm.thread_id as lm_thread_id","lm.metadata as lm_metadata","lm.parts as lm_parts","lm.role as lm_role","lm.created_at as lm_created_at","lm.updated_at as lm_updated_at"]).where("t.organization_id","=",$).where("t.hidden","=",!1).where("lm.role","=",Z.lastMessageRole).orderBy("lm.created_at","desc").limit(Z.limit);if(Z.createdBy)X=X.where("t.created_by","=",Z.createdBy);return(await X.execute()).map((Y)=>({thread:this.threadFromDbRow(Y),lastMessage:this.messageFromDbRow({id:Y.lm_id,thread_id:Y.lm_thread_id,metadata:Y.lm_metadata,parts:Y.lm_parts,role:Y.lm_role,created_at:Y.lm_created_at,updated_at:Y.lm_updated_at})}))}async listMessages($,Z,X){if(!await this.get($,Z))return{messages:[],total:0};let Y=X?.sort??"asc",G=this.db.selectFrom("thread_messages").selectAll().where("thread_id","=",$).orderBy("created_at",Y).orderBy("id",Y),J=this.db.selectFrom("thread_messages").select((H)=>H.fn.count("id").as("count")).where("thread_id","=",$);if(X?.limit)G=G.limit(X.limit);if(X?.offset)G=G.offset(X.offset);let[K,W]=await Promise.all([G.execute(),J.executeTakeFirst()]);return{messages:K.map((H)=>this.messageFromDbRow(H)),total:Number(W?.count||0)}}async bumpProgress($,Z){await this.db.updateTable("threads").set({last_progress_at:zg`now()`}).where("id","=",$).where("organization_id","=",Z).execute()}async getProgress($,Z){let X=await this.db.selectFrom("threads").select(["last_progress_at","run_started_at"]).where("id","=",$).where("organization_id","=",Z).executeTakeFirst();if(!X)return null;let Q=(Y)=>{if(Y==null)return null;let G=(Y instanceof Date?Y:new Date(Y)).getTime();return Number.isNaN(G)?null:G};return{lastProgressAt:Q(X.last_progress_at),runStartedAt:Q(X.run_started_at)}}async getRunFence($){return(await this.db.selectFrom("threads").select("run_fence_token").where("id","=",$).executeTakeFirst())?.run_fence_token??null}async setRunFence($,Z){await this.db.updateTable("threads").set(Z===null?{run_fence_token:null,run_acked_seq:null}:{run_fence_token:Z,run_acked_seq:null,status:"in_progress"}).where("id","=",$).execute()}async setCancelRequested($,Z){await this.db.updateTable("threads").set({cancel_requested_at:zg`now()`}).where("id","=",$).where("organization_id","=",Z).execute()}async getCancelRequestedAt($){let X=(await this.db.selectFrom("threads").select("cancel_requested_at").where("id","=",$).executeTakeFirst())?.cancel_requested_at;if(X==null)return null;return X instanceof Date?X:new Date(X)}async clearCancelRequested($){await this.db.updateTable("threads").set({cancel_requested_at:null}).where("id","=",$).execute()}async bumpAckedSeq($,Z,X,Q){await this.db.updateTable("threads").set({run_acked_seq:Q}).where("id","=",$).where("organization_id","=",Z).where((Y)=>Y.or([Y("run_acked_seq","is",null),Y("run_acked_seq","<",Q)])).execute()}async getAckedSeq($,Z){return(await this.db.selectFrom("threads").select("run_acked_seq").where("id","=",$).where("organization_id","=",Z).executeTakeFirst())?.run_acked_seq??0}threadFromDbRow($){let Z={};if($.metadata!=null)if(typeof $.metadata==="string")try{Z=JSON.parse($.metadata)}catch(X){console.error(`Failed to parse metadata for thread ${$.id}:`,$.metadata,X)}else Z=$.metadata;return{id:$.id,organization_id:$.organization_id,title:$.title,description:$.description,status:$.status,trigger_id:$.trigger_id??null,context_start_message_id:$.context_start_message_id??null,run_owner_pod:$.run_owner_pod??null,run_config:$.run_config??null,run_started_at:$.run_started_at?Jz($.run_started_at):null,last_progress_at:$.last_progress_at?Jz($.last_progress_at):null,virtual_mcp_id:$.virtual_mcp_id??"",branch:$.branch??null,sandbox_provider_kind:$.sandbox_provider_kind??null,harness_id:$.harness_id??null,metadata:Z,created_at:Jz($.created_at),updated_at:Jz($.updated_at),created_by:$.created_by,updated_by:$.updated_by??void 0,hidden:!!$.hidden,message_storage_version:$.message_storage_version??1,link_transport:$.link_transport??null}}messageFromDbRow($){let Z,X;try{Z=$.metadata?JSON.parse($.metadata):void 0}catch(Q){console.error(`Failed to parse metadata for message ${$.id}:`,$.metadata,Q),Z=void 0}try{X=typeof $.parts==="string"?JSON.parse($.parts):$.parts}catch(Q){console.error(`Failed to parse parts for message ${$.id}:`,$.parts,Q),X=[]}return{id:$.id,thread_id:$.thread_id,metadata:Z,parts:X,role:$.role,created_at:Jz($.created_at),updated_at:Jz($.updated_at)}}}var ma0=O(()=>{dX();SB();EJ8()});import{sql as ia0}from"kysely";function XY0($){if($==null)return null;return typeof $==="string"?$:$.toISOString()}function QY0($){return`msg_async_stub_${$}`}async function na0($,Z){await $.deleteFrom("thread_messages").where("id","=",QY0(Z)).execute(),await $.deleteFrom("thread_message_parts").where("message_id","=",QY0(Z)).execute()}function gN4($){if($==null)return null;if(typeof $!=="string")return $;try{return JSON.parse($)}catch{return null}}function pa0($){return{id:$.id,interactionId:$.interaction_id??null,toolCallId:$.tool_call_id,organizationId:$.organization_id,threadId:$.thread_id,messageId:$.message_id??null,provider:$.provider,modelId:$.model_id,query:$.query,status:$.status,attempts:$.attempts??0,lastPolledAt:XY0($.last_polled_at),lastError:$.last_error??null,inputTokens:$.input_tokens??null,outputTokens:$.output_tokens??null,citations:gN4($.citations),resultUri:$.result_uri??null,resultPreview:$.result_preview??null,resultContent:$.result_content??null,createdAt:XY0($.created_at)??"",updatedAt:XY0($.updated_at)??"",completedAt:XY0($.completed_at)}}class ta0{inner;organizationId;constructor($,Z){this.inner=$;this.organizationId=Z}requireOrg(){if(!this.organizationId)throw Error("OrgScopedAsyncResearchJobStorage: requires an authenticated organization");return this.organizationId}setOrganizationId($){this.organizationId=$}upsertPending($){return this.inner.upsertPending({organizationId:this.requireOrg(),...$})}findByToolCall($){return this.inner.findByToolCall(this.requireOrg(),$)}markPolling($,Z,X){return this.inner.markPolling(this.requireOrg(),$,Z,X)}recordPoll($,Z){return this.inner.recordPoll(this.requireOrg(),$,Z)}markCompleted($,Z){return this.inner.markCompleted(this.requireOrg(),$,Z)}markFailed($,Z){return this.inner.markFailed(this.requireOrg(),$,Z)}markCancelled($,Z){return this.inner.markCancelled(this.requireOrg(),$,Z)}}class ap{db;constructor($){this.db=$}async upsertPending($){let Z=new Date().toISOString(),X=await this.db.insertInto("async_research_jobs").values({organization_id:$.organizationId,thread_id:$.threadId,tool_call_id:$.toolCallId,message_id:$.messageId??null,provider:$.provider,model_id:$.modelId,query:$.query,status:"pending",attempts:0,updated_at:Z}).onConflict((Y)=>Y.columns(["organization_id","tool_call_id"]).doNothing()).returningAll().executeTakeFirst();if(X)return pa0(X);let Q=await this.db.selectFrom("async_research_jobs").selectAll().where("organization_id","=",$.organizationId).where("tool_call_id","=",$.toolCallId).executeTakeFirstOrThrow();return pa0(Q)}async findByToolCall($,Z){let X=await this.db.selectFrom("async_research_jobs").selectAll().where("organization_id","=",$).where("tool_call_id","=",Z).executeTakeFirst();return X?pa0(X):null}async markPolling($,Z,X,Q){let Y=new Date().toISOString();await this.db.transaction().execute(async(G)=>{if(await G.updateTable("async_research_jobs").set({status:"polling",interaction_id:X,last_polled_at:Y,updated_at:Y}).where("organization_id","=",$).where("tool_call_id","=",Z).execute(),(await G.selectFrom("threads").select("message_storage_version").where("id","=",Q.threadId).where("organization_id","=",$).executeTakeFirst())?.message_storage_version!==2)return;let K=QY0(Z);await G.insertInto("thread_message_parts").values([{id:`${Q.threadId}:${K}:0`,seq:0,org_id:$,thread_id:Q.threadId,run_id:Q.threadId,message_id:K,role:"assistant",kind:"tool_call",payload:JSON.stringify({type:`tool-${Q.toolName}`,toolCallId:Z,state:"input-available",input:{query:Q.query}}),payload_ref:null,metadata:null,created_at:Y},{id:`${Q.threadId}:${K}:finish`,seq:1,org_id:$,thread_id:Q.threadId,run_id:Q.threadId,message_id:K,role:"assistant",kind:"finish",payload:JSON.stringify({}),payload_ref:null,metadata:null,created_at:Y}]).onConflict((W)=>W.column("id").doNothing()).execute()})}async recordPoll($,Z,X){let Q=new Date().toISOString();await this.db.updateTable("async_research_jobs").set({attempts:ia0`attempts + 1`,last_polled_at:Q,...X!==void 0?{last_error:X}:{},updated_at:Q}).where("organization_id","=",$).where("tool_call_id","=",Z).execute()}async markCompleted($,Z,X){let Q=new Date().toISOString();await this.db.transaction().execute(async(Y)=>{await Y.updateTable("async_research_jobs").set({status:"completed",input_tokens:X.inputTokens,output_tokens:X.outputTokens,citations:JSON.stringify(X.citations),result_uri:X.resultUri,result_preview:X.resultPreview,result_content:X.resultContent,completed_at:Q,updated_at:Q}).where("organization_id","=",$).where("tool_call_id","=",Z).execute(),await na0(Y,Z)})}async markFailed($,Z,X){let Q=new Date().toISOString();await this.db.transaction().execute(async(Y)=>{await Y.updateTable("async_research_jobs").set({status:"failed",last_error:X,completed_at:Q,updated_at:Q}).where("organization_id","=",$).where("tool_call_id","=",Z).execute(),await na0(Y,Z)})}async markCancelled($,Z,X){let Q=new Date().toISOString();await this.db.transaction().execute(async(Y)=>{await Y.updateTable("async_research_jobs").set({status:"cancelled",last_error:X??null,completed_at:Q,updated_at:Q}).where("organization_id","=",$).where("tool_call_id","=",Z).execute(),await na0(Y,Z)})}async sweepAbandoned($){let Z=new Date(Date.now()-$).toISOString(),X=new Date().toISOString();return await this.db.transaction().execute(async(Q)=>{let Y=await Q.updateTable("async_research_jobs").set({status:"abandoned",completed_at:X,updated_at:X,last_error:ia0`COALESCE(last_error, '') || ' [abandoned by sweeper]'`}).where("status","in",["pending","polling"]).where(ia0`COALESCE(last_polled_at, created_at) < ${Z}::timestamptz`).returning(["tool_call_id"]).execute();if(Y.length===0)return 0;let G=Y.map((J)=>QY0(J.tool_call_id));return await Q.deleteFrom("thread_messages").where("id","in",G).execute(),await Q.deleteFrom("thread_message_parts").where("message_id","in",G).execute(),Y.length})}}var oa0=()=>{};function YY0(){let $=new Map;function Z(Q,Y){let G=$.get(Y);if(G)return G;let J=new h9({name:`outbound-client-${Y}`,version:"1.0.0"},{capabilities:{tasks:{list:{},cancel:{},requests:{tool:{call:{}}}}},jsonSchemaValidator:w5});J.onclose=()=>{$.delete(Y)};let K=J.connect(Q).then(()=>J).catch((W)=>{throw $.delete(Y),W});return $.set(Y,K),K}return Object.assign(Z,{[Symbol.asyncDispose]:async()=>{let Q=[];for(let[Y,G]of $)Q.push(G.then((J)=>J.close()).catch(()=>{}));await Promise.all(Q),$.clear()}})}var ra0=O(()=>{LW();tX()});class aa0{db;vault;constructor($,Z){this.db=$;this.vault=Z}async get($){let Z=await this.db.selectFrom("subsidized_gateway_keys").select("encrypted_key").where("organization_id","=",$).executeTakeFirst();if(!Z)return null;return await this.vault.decrypt(Z.encrypted_key)}async put($,Z){let X=await this.vault.encrypt(Z);await this.db.insertInto("subsidized_gateway_keys").values({organization_id:$,encrypted_key:X}).onConflict((Q)=>Q.column("organization_id").doUpdateSet({encrypted_key:X})).execute()}}import{sql as hN4}from"kysely";function jJ8($){return $ instanceof Date?$.toISOString():String($)}class sa0{db;vault;constructor($,Z){this.db=$;this.vault=Z}rowToInfo($){return{id:$.id,organizationId:$.organization_id,scope:$.scope,userId:$.user_id,name:$.name,description:$.description,createdBy:$.created_by,createdAt:jJ8($.created_at),updatedBy:$.updated_by,updatedAt:jJ8($.updated_at)}}assertVisible($,Z){if($.scope==="user"&&$.user_id!==Z)throw new VB($.id)}async create($){let Z=$4("sec"),X=await this.vault.encrypt($.value),Q=new Date,Y=await this.db.insertInto("secrets").values({id:Z,organization_id:$.organizationId,scope:$.scope.kind,user_id:$.scope.kind==="user"?$.scope.userId:null,name:$.name,encrypted_value:X,description:$.description??null,created_by:$.createdBy,created_at:Q,updated_by:$.createdBy,updated_at:Q}).returning(GY0).executeTakeFirstOrThrow();return this.rowToInfo(Y)}async update($){let Z=await this.db.selectFrom("secrets").where("id","=",$.id).where("organization_id","=",$.organizationId).select(["id","scope","user_id"]).executeTakeFirst();if(!Z)throw new Y3($.id);this.assertVisible(Z,$.callerUserId);let X={updated_by:$.updatedBy,updated_at:new Date};if($.value!==void 0)X.encrypted_value=await this.vault.encrypt($.value);if($.description!==void 0)X.description=$.description;let Q=await this.db.updateTable("secrets").set(X).where("id","=",$.id).where("organization_id","=",$.organizationId).returning(GY0).executeTakeFirstOrThrow();return this.rowToInfo(Q)}async delete($,Z,X){let Q=await this.db.selectFrom("secrets").where("id","=",$).where("organization_id","=",Z).select(["id","scope","user_id"]).executeTakeFirst();if(!Q)throw new Y3($);this.assertVisible(Q,X),await this.db.deleteFrom("secrets").where("id","=",$).where("organization_id","=",Z).execute()}async list($){let Z=this.db.selectFrom("secrets").where("organization_id","=",$.organizationId).select(GY0);if($.scope?.kind==="user")Z=Z.where("scope","=","user").where("user_id","=",$.scope.userId);else if($.scope?.kind==="organization")Z=Z.where("scope","=","organization");else Z=Z.where((Q)=>Q.or([Q("scope","=","organization"),Q.and([Q("scope","=","user"),Q("user_id","=",$.callerUserId)])]));return(await Z.orderBy("created_at","desc").execute()).map((Q)=>this.rowToInfo(Q))}async findById($,Z,X){let Q=await this.db.selectFrom("secrets").where("id","=",$).where("organization_id","=",Z).select(GY0).executeTakeFirst();if(!Q)throw new Y3($);return this.assertVisible(Q,X),this.rowToInfo(Q)}async resolveById($,Z,X){let Q=await this.db.selectFrom("secrets").where("id","=",$).where("organization_id","=",Z).selectAll().executeTakeFirst();if(!Q)throw new Y3($);this.assertVisible(Q,X);let Y=await this.vault.decrypt(Q.encrypted_value);return{info:this.rowToInfo(Q),value:Y}}async resolveByName($){let Z=this.db.selectFrom("secrets").where("organization_id","=",$.organizationId).where("scope","=",$.scope.kind).where(hN4`lower(name) = lower(${$.name})`).selectAll();if($.scope.kind==="user")Z=Z.where("user_id","=",$.scope.userId);let X=await Z.executeTakeFirst();if(!X)throw new Y3(`${$.scope.kind}:${$.name}`);let Q=await this.vault.decrypt(X.encrypted_value);return{info:this.rowToInfo(X),value:Q}}}var GY0,Y3,VB;var sp=O(()=>{dX();GY0=["id","organization_id","scope","user_id","name","description","created_by","created_at","updated_by","updated_at"];Y3=class Y3 extends Error{constructor($){super(`Secret ${$} not found`);this.name="SecretNotFoundError"}};VB=class VB extends Error{constructor($){super(`Access denied for secret ${$}`);this.name="SecretAccessDeniedError"}}});import{sql as uN4}from"kysely";function PJ8($){return $ instanceof Date?$.toISOString():String($)}class ea0{db;vault;constructor($,Z){this.db=$;this.vault=Z}rowToInfo($){return{id:$.id,organizationId:$.organization_id,name:$.name,description:$.description,bucket:$.bucket,region:$.region,endpoint:$.endpoint,forcePathStyle:$.force_path_style,prefix:$.prefix,publicUrlBase:$.public_url_base,credentialType:$.credential_type??"static",refreshUrl:$.refresh_url,siteSlug:$.site_slug,createdBy:$.created_by,createdAt:PJ8($.created_at),updatedBy:$.updated_by,updatedAt:PJ8($.updated_at)}}async create($){let Z=$4("fcfg"),X=await this.vault.encrypt(JSON.stringify($.credentials)),Q=new Date,Y=await this.db.insertInto("org_file_configs").values({id:Z,organization_id:$.organizationId,name:$.name,description:$.description??null,bucket:$.bucket,region:$.region,endpoint:$.endpoint??null,force_path_style:$.forcePathStyle??!1,prefix:$.prefix??null,public_url_base:$.publicUrlBase??null,credential_type:$.credentials.type,refresh_url:$.refreshUrl??null,site_slug:$.siteSlug??null,encrypted_credentials:X,created_by:$.createdBy,created_at:Q,updated_by:$.createdBy,updated_at:Q}).returning(JY0).executeTakeFirstOrThrow();return this.rowToInfo(Y)}async update($){if(!await this.db.selectFrom("org_file_configs").where("id","=",$.id).where("organization_id","=",$.organizationId).select(["id"]).executeTakeFirst())throw new Pg($.id);let X={updated_by:$.updatedBy,updated_at:new Date};if($.name!==void 0)X.name=$.name;if($.description!==void 0)X.description=$.description;if($.bucket!==void 0)X.bucket=$.bucket;if($.region!==void 0)X.region=$.region;if($.endpoint!==void 0)X.endpoint=$.endpoint;if($.forcePathStyle!==void 0)X.force_path_style=$.forcePathStyle;if($.prefix!==void 0)X.prefix=$.prefix;if($.publicUrlBase!==void 0)X.public_url_base=$.publicUrlBase;if($.refreshUrl!==void 0)X.refresh_url=$.refreshUrl;if($.siteSlug!==void 0)X.site_slug=$.siteSlug;if($.credentials!==void 0)X.credential_type=$.credentials.type,X.encrypted_credentials=await this.vault.encrypt(JSON.stringify($.credentials));let Q=await this.db.updateTable("org_file_configs").set(X).where("id","=",$.id).where("organization_id","=",$.organizationId).returning(JY0).executeTakeFirstOrThrow();return this.rowToInfo(Q)}async delete($,Z){if(!await this.db.selectFrom("org_file_configs").where("id","=",$).where("organization_id","=",Z).select(["id"]).executeTakeFirst())throw new Pg($);await this.db.deleteFrom("org_file_configs").where("id","=",$).where("organization_id","=",Z).execute()}async list($){return(await this.db.selectFrom("org_file_configs").where("organization_id","=",$).select(JY0).orderBy("created_at","desc").execute()).map((X)=>this.rowToInfo(X))}async findById($,Z){let X=await this.db.selectFrom("org_file_configs").where("id","=",$).where("organization_id","=",Z).select(JY0).executeTakeFirst();if(!X)throw new Pg($);return this.rowToInfo(X)}async resolveById($,Z){let X=await this.db.selectFrom("org_file_configs").where("id","=",$).where("organization_id","=",Z).selectAll().executeTakeFirst();if(!X)throw new Pg($);return{info:this.rowToInfo(X),credentials:await this.decodeCredentials(X)}}async resolveByName($){let Z=await this.db.selectFrom("org_file_configs").where("organization_id","=",$.organizationId).where(uN4`lower(name) = lower(${$.name})`).selectAll().executeTakeFirst();if(!Z)throw new Pg($.name);return{info:this.rowToInfo(Z),credentials:await this.decodeCredentials(Z)}}async decodeCredentials($){if($.credential_type==="managed")return{type:"managed"};let Z=await this.vault.decrypt($.encrypted_credentials),X=JSON.parse(Z);if(($.credential_type??"static")==="sts-session")return{type:"sts-session",apiKey:String(X.apiKey)};return{type:"static",accessKeyId:String(X.accessKeyId),secretAccessKey:String(X.secretAccessKey)}}}var JY0,Pg;var AJ8=O(()=>{dX();JY0=["id","organization_id","name","description","bucket","region","endpoint","force_path_style","prefix","public_url_base","credential_type","refresh_url","site_slug","created_by","created_at","updated_by","updated_at"];Pg=class Pg extends Error{constructor($){super(`File config ${$} not found`);this.name="OrgFileConfigNotFoundError"}}});function KY0($){return $s0.test($)}var $s0;var WY0=O(()=>{$s0=/^[a-z0-9][a-z0-9-]{0,59}$/});function TJ8($){return $ instanceof Date?$.toISOString():String($)}function Zs0($){return{slug:$.slug,organizationId:$.organization_id,source:$.source,createdBy:$.created_by,createdAt:TJ8($.created_at),updatedBy:$.updated_by,updatedAt:TJ8($.updated_at)}}class Qs0{db;constructor($){this.db=$}async claimSite($){if(!KY0($.slug))throw Error(`Invalid site slug "${$.slug}" \u2014 must be 1-60 chars of lowercase letters, digits, or hyphens, starting with a letter or digit`);let Z=new Date,X=await this.db.insertInto("org_sites").values({slug:$.slug,organization_id:$.organizationId,source:$.source??"deco-import",created_by:$.by,created_at:Z,updated_by:$.by,updated_at:Z}).onConflict((G)=>G.column("slug").doNothing()).returningAll().executeTakeFirst();if(X)return Zs0(X);let Q=await this.getBySlug($.slug);if(!Q)throw new Xs0($.slug,"unknown");if(Q.organizationId!==$.organizationId)throw new Xs0($.slug,Q.organizationId);let Y=await this.db.updateTable("org_sites").set({source:$.source??Q.source,updated_by:$.by,updated_at:Z}).where("slug","=",$.slug).where("organization_id","=",$.organizationId).returningAll().executeTakeFirstOrThrow();return Zs0(Y)}async getBySlug($){let Z=await this.db.selectFrom("org_sites").selectAll().where("slug","=",$).executeTakeFirst();return Z?Zs0(Z):null}async isOwnedBy($,Z){return!!await this.db.selectFrom("org_sites").select("slug").where("slug","=",$).where("organization_id","=",Z).executeTakeFirst()}}var Xs0;var RJ8=O(()=>{WY0();Xs0=class Xs0 extends Error{slug;ownerOrganizationId;constructor($,Z){super(`Site slug "${$}" is already owned by another organization`);this.slug=$;this.ownerOrganizationId=Z;this.name="OrgSiteConflictError"}}});function sN($){return $.createdBy==="system"}function dN4($){return $?.status==="active"||$?.status==="past_due"}function IJ8($,Z){if(dN4($))return{periodKey:$?.currentPeriodEnd?`sub:${$.currentPeriodEnd.toISOString()}`:"sub:pending",limit:Z.monthlyTaskExecutions,exhaustedReason:"monthly_exhausted"};return{periodKey:"trial",limit:Z.freeTaskExecutions,exhaustedReason:"trial_exhausted"}}function qJ8(){let $=Q1();return{enforced:$.taskQuotaEnforced,freeTaskExecutions:$.freeTaskExecutions,monthlyTaskExecutions:$.monthlyTaskExecutions,maxRunsPerTask:$.maxRunsPerTask}}async function MJ8($,Z,X=qJ8()){if(!X.enforced||!sN(Z))return;let Q=await $.storage.organizationBilling.taskClaim(Z.id);if(Q&&Q.runCount>=X.maxRunsPerTask)throw new G3("runs_exhausted");if(Q&&Q.state!=="released")return;let Y=await $.storage.organizationBilling.getBilling(Z.organizationId),G=IJ8(Y,X);if(await $.storage.organizationBilling.countTaskClaims(Z.organizationId,G.periodKey)>=G.limit)throw new G3(G.exhaustedReason)}async function kJ8($,Z,X=qJ8()){if(!X.enforced||!sN(Z))return;let Q=await $.storage.organizationBilling.getBilling(Z.organizationId),Y=IJ8(Q,X),G=await $.storage.organizationBilling.claimTaskUnderLimit(Z.organizationId,Z.id,Y.periodKey,Y.limit,X.maxRunsPerTask);if(G==="exhausted")throw new G3(Y.exhaustedReason);if(G==="runs_exhausted")throw new G3("runs_exhausted")}async function SJ8($,Z){let X=await $.storage.organizationBilling.taskClaim(Z);return!!X&&X.state!=="released"}async function HY0($,Z,X){await $.releaseTaskClaim(Z,X).catch((Q)=>console.error("[task-quota] refund failed (stays charged)",Q))}var cN4="[SUBSCRIPTION_REQUIRED]",lN4,G3;var CB=O(()=>{y8();lN4={trial_exhausted:"this organization used its free task executions \u2014 subscribe to keep running tasks",monthly_exhausted:"this organization used its monthly task executions \u2014 more become available next billing cycle",runs_exhausted:"this task reached its execution limit \u2014 create a new task to keep going"};G3=class G3 extends Error{reason;constructor($){super(`${cN4} ${lN4[$]}`);this.reason=$;this.name="TaskQuotaError"}}});function VJ8($,Z){return $?.startsWith(`${ep[Z]}:`)??!1}function Ys0($){let Z=0;for(let X of $){if(X.action!=="status_changed")continue;if(X.data?.to!=="in_review")continue;Z=Math.max(Z,new Date(X.occurredAt).getTime())}return Z}function mN4($,Z){let X=Ys0($),Q=new Map;for(let Y of $){if(Y.action!=="review_approved"&&Y.action!=="review_changes_requested")continue;if(new Date(Y.occurredAt).getTime()<X)continue;let G=Y.data??{};if(G.reviewer!=="qa"&&G.reviewer!=="code_review")continue;if(Y.action==="review_approved"){if(Z?.verifiedOnly&&G.verified!==!0)continue;Q.set(G.reviewer,"approved")}else Q.set(G.reviewer,"changes_requested")}return Q}function Ag($,Z,X){if(Z.length===0)return!1;let Q=mN4($,X);return Z.every((Y)=>Q.get(Y)==="approved")}var B5="super-agent",_B,ep,xB,CJ8="task-board.item.updated",_J8="task-board.item.deleted";var J3=O(()=>{_B=["qa","code_review"],ep={qa:"QA Agent",code_review:"Code Reviewer"},xB={qa:"qa_agent_enabled",code_review:"code_reviewer_enabled"}});function Gs0($){let Z=(X)=>X instanceof Date?X.toISOString():X;return{id:$.id,taskBoardItemId:$.task_board_item_id,parentId:$.parent_id,authorId:$.author_id,body:$.body,resolved:$.resolved,createdAt:Z($.created_at),updatedAt:Z($.updated_at)}}function iN4($){if($&&typeof $==="object"&&!Array.isArray($)){let Z=$.text;if(typeof Z==="string"&&Z.trim())return Z.trim()}return null}function Ks0($){if($.status!=="in_progress")return!1;let Z=$.threads.filter((X)=>X.hasMessages);if(Z.length===0)return!1;return Z.every((X)=>X.status!==null&&Js0.has(X.status))}function nN4($){let Z=typeof $==="string"?(()=>{try{return JSON.parse($)}catch{return null}})():$;if(!Z||typeof Z!=="object")return!1;let X=Z.githubRepo?.url;return typeof X==="string"&&X.length>0}class vB{db;constructor($){this.db=$}inTransaction($){return this.db.isTransaction?$(this.db):this.db.transaction().execute($)}async list($){let X=(await this.db.selectFrom("task_board_items").selectAll().where("organization_id","=",$).where("dismissed_at","is",null).orderBy("sort_order","asc").execute()).map((Q)=>this.itemFromDbRow(Q));return await this.attachRefs(X,$),X}async getById($,Z){let X=await this.db.selectFrom("task_board_items").selectAll().where("id","=",$).where("organization_id","=",Z).executeTakeFirst();if(!X)return null;let Q=this.itemFromDbRow(X);return await this.attachRefs([Q],Z),Q}async create($){let Z=$4("board"),X=new Date().toISOString(),Q=$.status??"triage",{minOrder:Y}=await this.db.selectFrom("task_board_items").select((J)=>J.fn.min("sort_order").as("minOrder")).where("organization_id","=",$.organizationId).where("status","=",Q).executeTakeFirstOrThrow(),G=await this.db.insertInto("task_board_items").values({id:Z,organization_id:$.organizationId,title:$.title,description:$.description??null,status:Q,priority:$.priority??"medium",assignee_id:$.assigneeId??null,assigned_by:$.assignedBy??null,due_date:$.dueDate??null,external_key:$.externalKey??null,sort_order:(Y??0)-1,created_by:$.by,created_at:X,updated_by:$.by,updated_at:X}).returningAll().executeTakeFirstOrThrow();return this.itemFromDbRow(G)}async update($,Z,X,Q){let Y=await this.db.updateTable("task_board_items").set({...X.title!==void 0?{title:X.title}:{},...X.description!==void 0?{description:X.description}:{},...X.status!==void 0?{status:X.status}:{},...X.priority!==void 0?{priority:X.priority}:{},...X.assigneeId!==void 0?{assignee_id:X.assigneeId}:{},...X.assignedBy!==void 0?{assigned_by:X.assignedBy}:{},...X.dueDate!==void 0?{due_date:X.dueDate}:{},...X.sortOrder!==void 0?{sort_order:X.sortOrder}:{},updated_by:Q,updated_at:new Date().toISOString()}).where("id","=",$).where("organization_id","=",Z).returningAll().executeTakeFirstOrThrow(),G=this.itemFromDbRow(Y);return await this.attachRefs([G],Z),G}async delete($,Z,X){await this.inTransaction(async(Q)=>{let Y=await Q.selectFrom("task_board_items").select(["created_by"]).where("id","=",$).where("organization_id","=",Z).executeTakeFirst();if(Y&&sN({createdBy:Y.created_by})){await Q.updateTable("task_board_items").set({dismissed_at:new Date().toISOString(),updated_by:X}).where("id","=",$).where("organization_id","=",Z).where("dismissed_at","is",null).execute();return}await Q.deleteFrom("task_board_item_threads").where("task_board_item_id","=",$).where("organization_id","=",Z).execute(),await Q.deleteFrom("task_board_item_prs").where("task_board_item_id","=",$).where("organization_id","=",Z).execute(),await Q.deleteFrom("task_board_items").where("id","=",$).where("organization_id","=",Z).execute()})}async dismissedFindingKeys($,Z){if(Z.length===0)return new Set;let X=await this.db.selectFrom("task_board_items").select(["external_key"]).where("organization_id","=",$).where("external_key","in",Z).where("dismissed_at","is not",null).execute();return new Set(X.flatMap((Q)=>Q.external_key??[]))}async listDismissedFindings($){return(await this.db.selectFrom("task_board_items").select(["external_key","updated_by","dismissed_at"]).where("organization_id","=",$).where("dismissed_at","is not",null).orderBy("dismissed_at","desc").execute()).flatMap((X)=>X.external_key&&X.dismissed_at?[{externalKey:X.external_key,dismissedBy:X.updated_by,dismissedAt:X.dismissed_at instanceof Date?X.dismissed_at.toISOString():X.dismissed_at}]:[])}async restoreDismissedFindings($,Z){if(Z&&Z.length===0)return 0;let X=this.db.updateTable("task_board_items").set({dismissed_at:null}).where("organization_id","=",$).where("dismissed_at","is not",null);if(Z)X=X.where("external_key","in",Z);let Q=await X.executeTakeFirst();return Number(Q.numUpdatedRows??0n)}async setItemTags($,Z,X){await this.inTransaction(async(Q)=>{if(await Q.deleteFrom("task_board_item_tags").where("task_board_item_id","=",$).$if(Z.length>0,(Y)=>Y.where("id","not in",Z)).execute(),Z.length>0)await Q.insertInto("task_board_item_tags").values(Z.map((Y)=>({task_board_item_id:$,id:Y,created_by:X,created_at:new Date().toISOString()}))).onConflict((Y)=>Y.doNothing()).execute()})}async linkThread($,Z,X){await this.db.insertInto("task_board_item_threads").values({task_board_item_id:$,thread_id:Z,organization_id:X}).onConflict((Q)=>Q.columns(["task_board_item_id","thread_id"]).doNothing()).execute()}async linkedTaskIds($,Z){return(await this.db.selectFrom("task_board_item_threads").select("task_board_item_id as taskId").where("thread_id","=",$).where("organization_id","=",Z).execute()).map((Q)=>Q.taskId)}async linkPr($){await this.db.insertInto("task_board_item_prs").values({task_board_item_id:$.taskBoardItemId,organization_id:$.organizationId,url:$.url,pr_number:$.prNumber,repo_owner:$.repoOwner,repo_name:$.repoName,connection_id:$.connectionId??null}).onConflict((Z)=>Z.columns(["task_board_item_id","url"]).doNothing()).execute()}async listPrs($,Z){return(await this.db.selectFrom("task_board_item_prs").select(["url","pr_number as prNumber","repo_owner as repoOwner","repo_name as repoName","connection_id as connectionId","created_at as createdAt"]).where("task_board_item_id","=",$).where("organization_id","=",Z).orderBy("created_at","desc").execute()).map((Q)=>({url:Q.url,number:Q.prNumber,repoOwner:Q.repoOwner,repoName:Q.repoName,connectionId:Q.connectionId??null,createdAt:Q.createdAt instanceof Date?Q.createdAt.toISOString():Q.createdAt}))}async advanceLinkedTasksToReviewOnThreadFinish($,Z){let X=[];for(let Q of await this.linkedTaskIds($,Z)){let Y=await this.getById(Q,Z);if(!Y||!Ks0(Y))continue;X.push(await this.update(Q,Z,{status:"in_review"},Y.updatedBy)),await this.recordActivity({taskBoardItemId:Q,action:"status_changed",actorId:null,data:{from:Y.status,to:"in_review"}}).catch((G)=>console.error("[task-board] in_review activity write failed",G))}return X}async reopenLinkedTasksOnThreadRun($,Z){let X=[];for(let Q of await this.linkedTaskIds($,Z)){let Y=await this.getById(Q,Z);if(!Y||Y.status!=="in_review")continue;X.push(await this.update(Q,Z,{status:"in_progress"},Y.updatedBy))}return X}claimConflictResolution($,Z,X){return this.claimInReviewSuperAgentSlot($,Z,X)}claimReviewChangesBounce($,Z,X){return this.claimInReviewSuperAgentSlot($,Z,X)}async claimInReviewSuperAgentSlot($,Z,X){let Q=await this.db.updateTable("task_board_items").set({status:"in_progress",updated_by:X,updated_at:new Date().toISOString()}).where("id","=",$).where("organization_id","=",Z).where("status","=","in_review").where("assignee_id","=",B5).returningAll().executeTakeFirst();if(!Q)return null;let Y=this.itemFromDbRow(Q);return await this.attachRefs([Y],Z),Y}async attachRefs($,Z){if($.length===0)return;await this.inTransaction(async(X)=>{await this.attachThreads(X,$,Z),await this.attachTags(X,$)})}async attachThreads($,Z,X){let Q=Z.map((J)=>J.id),Y=await $.selectFrom("task_board_item_threads as link").innerJoin("threads as t","t.id","link.thread_id").leftJoinLateral((J)=>J.selectFrom("thread_message_parts as p").select("p.payload as payload").whereRef("p.thread_id","=","link.thread_id").where("p.role","=","assistant").where("p.kind","=","text").orderBy("p.created_at","desc").limit(1).as("lastmsg"),(J)=>J.onTrue()).select((J)=>["link.task_board_item_id as taskId","link.thread_id as threadId","link.created_at as createdAt","t.status as status","t.title as title","t.virtual_mcp_id as virtualMcpId","t.metadata as metadata","lastmsg.payload as lastMessagePayload",J.or([J.exists(J.selectFrom("thread_message_parts as mp").select("mp.id").whereRef("mp.thread_id","=","link.thread_id")),J.exists(J.selectFrom("thread_messages as tm").select("tm.id").whereRef("tm.thread_id","=","link.thread_id"))]).as("hasMessages")]).where("link.organization_id","=",X).where("link.task_board_item_id","in",Q).orderBy("link.created_at","desc").execute(),G=new Map;for(let J of Y){let K={threadId:J.threadId,virtualMcpId:J.virtualMcpId??null,status:J.status??null,title:J.title??null,lastMessage:iN4(J.lastMessagePayload),hasPreview:nN4(J.metadata),hasMessages:!!J.hasMessages,createdAt:J.createdAt instanceof Date?J.createdAt.toISOString():J.createdAt},W=G.get(J.taskId);if(W)W.push(K);else G.set(J.taskId,[K])}for(let J of Z)J.threads=G.get(J.id)??[]}async attachTags($,Z){let X=Z.map((G)=>G.id),Q=await $.selectFrom("task_board_item_tags as link").innerJoin("organization_tags as tag","tag.id","link.id").select(["link.task_board_item_id as taskId","link.created_by as createdBy","link.created_at as createdAt","tag.id as id","tag.name as name","tag.color as color"]).where("link.task_board_item_id","in",X).orderBy("tag.name","asc").execute(),Y=new Map;for(let G of Q){let J={id:G.id,name:G.name,color:G.color??null,createdBy:G.createdBy,createdAt:G.createdAt instanceof Date?G.createdAt.toISOString():G.createdAt},K=Y.get(G.taskId);if(K)K.push(J);else Y.set(G.taskId,[J])}for(let G of Z)G.tags=Y.get(G.id)??[]}async recordActivity($){await this.db.insertInto("task_board_activity").values({id:$4("act"),task_board_item_id:$.taskBoardItemId,action:$.action,actor_id:$.actorId,data:$.data?JSON.stringify($.data):null,occurred_at:new Date().toISOString()}).execute()}async claimReviewer($,Z,X){let Q=`rtok_${crypto.randomUUID()}`,Y=await this.db.insertInto("task_board_review_claims").values({task_board_item_id:$,reviewer:Z,cycle_at:X,token:Q}).onConflict((J)=>J.columns(["task_board_item_id","reviewer","cycle_at"]).doNothing()).returning("token").executeTakeFirst();if(Y)return{claimed:!0,token:Y.token};return{claimed:!1,token:(await this.db.selectFrom("task_board_review_claims").select("token").where("task_board_item_id","=",$).where("reviewer","=",Z).where("cycle_at","=",X).executeTakeFirst())?.token??Q}}async releaseReviewerClaim($,Z,X){await this.db.deleteFrom("task_board_review_claims").where("task_board_item_id","=",$).where("reviewer","=",Z).where("cycle_at","=",X).execute()}async resolveReviewClaimByToken($,Z){let X=await this.db.selectFrom("task_board_review_claims").select(["reviewer","cycle_at"]).where("task_board_item_id","=",$).where("token","=",Z).executeTakeFirst();return X?{reviewer:X.reviewer,cycleAt:X.cycle_at}:null}async recordActivities($){if($.length===0)return;let Z=new Date().toISOString();await this.db.insertInto("task_board_activity").values($.map((X)=>({id:$4("act"),task_board_item_id:X.taskBoardItemId,action:X.action,actor_id:X.actorId,data:X.data?JSON.stringify(X.data):null,occurred_at:Z}))).execute()}async listActivity($,Z){return(await this.db.selectFrom("task_board_activity as a").innerJoin("task_board_items as item","item.id","a.task_board_item_id").selectAll("a").where("item.organization_id","=",Z).where("a.task_board_item_id","=",$).orderBy("a.occurred_at","asc").execute()).map((Q)=>({id:Q.id,taskBoardItemId:Q.task_board_item_id,action:Q.action,actorId:Q.actor_id,data:typeof Q.data==="string"?JSON.parse(Q.data):Q.data??{},occurredAt:Q.occurred_at instanceof Date?Q.occurred_at.toISOString():Q.occurred_at}))}async listComments($,Z){return(await this.db.selectFrom("task_board_comments as c").innerJoin("task_board_items as item","item.id","c.task_board_item_id").selectAll("c").where("item.organization_id","=",Z).where("c.task_board_item_id","=",$).orderBy("c.created_at","asc").execute()).map((Q)=>Gs0(Q))}async createComment($){if(!await this.db.selectFrom("task_board_items").select("id").where("id","=",$.taskBoardItemId).where("organization_id","=",$.organizationId).executeTakeFirst())return null;let X=null;if($.parentId){let Y=await this.db.selectFrom("task_board_comments").select(["id","parent_id"]).where("id","=",$.parentId).where("task_board_item_id","=",$.taskBoardItemId).executeTakeFirst();if(!Y)return null;X=Y.parent_id??Y.id}let Q=await this.db.insertInto("task_board_comments").values({id:$4("cmt"),task_board_item_id:$.taskBoardItemId,parent_id:X,author_id:$.authorId,body:$.body}).returningAll().executeTakeFirstOrThrow();return Gs0(Q)}async updateComment($){let Z=await this.commentInOrg($.id,$.organizationId);if(!Z)return null;if($.body!==void 0&&Z.authorId!==$.callerId)return null;if($.resolved!==void 0&&Z.parentId!==null)return null;let X=await this.db.updateTable("task_board_comments").set({...$.body===void 0?{}:{body:$.body},...$.resolved===void 0?{}:{resolved:$.resolved},updated_at:new Date().toISOString()}).where("id","=",$.id).returningAll().executeTakeFirst();return X?Gs0(X):null}async deleteComment($,Z,X){let Q=await this.commentInOrg($,Z);if(!Q)return!1;if(Q.authorId!==X&&Q.authorId!==B5)return!1;return await this.db.deleteFrom("task_board_comments").where("id","=",$).execute(),!0}async commentInOrg($,Z){let X=await this.db.selectFrom("task_board_comments as c").innerJoin("task_board_items as item","item.id","c.task_board_item_id").select(["c.id","c.author_id","c.parent_id"]).where("c.id","=",$).where("item.organization_id","=",Z).executeTakeFirst();return X?{authorId:X.author_id,parentId:X.parent_id}:null}itemFromDbRow($){return{id:$.id,organizationId:$.organization_id,title:$.title,description:$.description,status:$.status,priority:$.priority,assigneeId:$.assignee_id,assignedBy:$.assigned_by,dueDate:$.due_date instanceof Date?$.due_date.toISOString():$.due_date,sortOrder:$.sort_order,threads:[],tags:[],createdBy:$.created_by,createdAt:$.created_at instanceof Date?$.created_at.toISOString():$.created_at,updatedBy:$.updated_by,updatedAt:$.updated_at instanceof Date?$.updated_at.toISOString():$.updated_at}}}var Js0;var Tg=O(()=>{CB();dX();J3();Js0=new Set(["completed","failed","expired"])});class Ws0{db;constructor($){this.db=$}async create($,Z,X){let Q=crypto.randomUUID(),Y=new Date(Date.now()+600000);return await this.db.insertInto("oauth_pkce_states").values({id:Q,organization_id:Z,user_id:X,code_verifier:$,expires_at:Y,created_at:new Date}).execute(),Q}async consume($,Z,X){let Q=await this.db.deleteFrom("oauth_pkce_states").where("id","=",$).where("organization_id","=",Z).where("user_id","=",X).returningAll().executeTakeFirst();if(!Q)throw Error("Invalid or expired OAuth state token");if((Q.expires_at instanceof Date?Q.expires_at:new Date(Q.expires_at))<new Date)throw Error("OAuth state token has expired");return Q.code_verifier}}class Hs0{db;vault;constructor($,Z){this.db=$;this.vault=Z}async upsert($){let Z=await this.vault.encrypt($.accessToken),X=$.expiresAt??null,Q=new Date;return await this.db.insertInto("claude_subscriptions").values({user_id:$.userId,encrypted_access_token:Z,expires_at:X,created_at:Q}).onConflict((Y)=>Y.column("user_id").doUpdateSet({encrypted_access_token:Z,expires_at:X,created_at:Q})).execute(),{linkedAt:Q.toISOString(),expiresAt:X?.toISOString()??null}}async find($){let Z=await this.db.selectFrom("claude_subscriptions").select(["created_at","expires_at"]).where("user_id","=",$).executeTakeFirst();if(!Z)return null;return{linkedAt:new Date(Z.created_at).toISOString(),expiresAt:Z.expires_at?new Date(Z.expires_at).toISOString():null}}async findLiveToken($){let Z=await this.db.selectFrom("claude_subscriptions").select(["encrypted_access_token","expires_at"]).where("user_id","=",$).executeTakeFirst();if(!Z)return null;if(Z.expires_at&&new Date(Z.expires_at).getTime()<=Date.now())return null;return this.vault.decrypt(Z.encrypted_access_token)}async delete($){await this.db.deleteFrom("claude_subscriptions").where("user_id","=",$).execute()}}function VW($){if($==null)return"unknown error";if(typeof $==="string")return $;if($ instanceof Error)return $.message;return JSON.stringify($)}function NY0($){if($===null||typeof $==="string"||typeof $==="number"||typeof $==="boolean")return!0;if(Array.isArray($))return $.every(NY0);if(typeof $==="object")return Object.entries($).every(([Z,X])=>typeof Z==="string"&&(X===void 0||NY0(X)));return!1}function Ns0($){return Array.isArray($)&&$.every(NY0)}function $t($){return $!=null&&typeof $==="object"&&Object.entries($).every(([Z,X])=>typeof Z==="string"&&(X===void 0||NY0(X)))}var KK8="vercel.ai.error",pN4,xJ8,vJ8,L1,WK8="AI_APICallError",HK8,tN4,fJ8,bJ8,N4,NK8="AI_EmptyResponseBodyError",UK8,oN4,yJ8,gJ8,UY0,FK8="AI_InvalidArgumentError",wK8,rN4,hJ8,uJ8,fB,BK8="AI_InvalidPromptError",OK8,aN4,cJ8,lJ8,K3,LK8="AI_InvalidResponseDataError",DK8,sN4,dJ8,mJ8,Rg,EK8="AI_JSONParseError",zK8,eN4,iJ8,nJ8,eN,jK8="AI_LoadAPIKeyError",PK8,$U4,pJ8,tJ8,Kz,AK8="AI_LoadSettingError",TK8,ZU4,oJ8,rJ8,RK8,IK8="AI_NoContentGeneratedError",qK8,XU4,aJ8,sJ8,MK8,kK8="AI_NoSuchModelError",SK8,QU4,eJ8,$K8,h5,VK8="AI_TooManyEmbeddingValuesForCallError",CK8,YU4,ZK8,XK8,Ig,_K8="AI_TypeValidationError",xK8,GU4,QK8,YK8,O5,vK8="AI_UnsupportedFunctionalityError",fK8,JU4,GK8,JK8,v4;var Q8=O(()=>{pN4=Symbol.for(KK8),L1=class $ extends(vJ8=Error,xJ8=pN4,vJ8){constructor({name:Z,message:X,cause:Q}){super(X);this[xJ8]=!0,this.name=Z,this.cause=Q}static isInstance(Z){return $.hasMarker(Z,KK8)}static hasMarker(Z,X){let Q=Symbol.for(X);return Z!=null&&typeof Z==="object"&&Q in Z&&typeof Z[Q]==="boolean"&&Z[Q]===!0}},HK8=`vercel.ai.error.${WK8}`,tN4=Symbol.for(HK8),N4=class extends(bJ8=L1,fJ8=tN4,bJ8){constructor({message:$,url:Z,requestBodyValues:X,statusCode:Q,responseHeaders:Y,responseBody:G,cause:J,isRetryable:K=Q!=null&&(Q===408||Q===409||Q===429||Q>=500),data:W}){super({name:WK8,message:$,cause:J});this[fJ8]=!0,this.url=Z,this.requestBodyValues=X,this.statusCode=Q,this.responseHeaders=Y,this.responseBody=G,this.isRetryable=K,this.data=W}static isInstance($){return L1.hasMarker($,HK8)}},UK8=`vercel.ai.error.${NK8}`,oN4=Symbol.for(UK8),UY0=class extends(gJ8=L1,yJ8=oN4,gJ8){constructor({message:$="Empty response body"}={}){super({name:NK8,message:$});this[yJ8]=!0}static isInstance($){return L1.hasMarker($,UK8)}};wK8=`vercel.ai.error.${FK8}`,rN4=Symbol.for(wK8),fB=class extends(uJ8=L1,hJ8=rN4,uJ8){constructor({message:$,cause:Z,argument:X}){super({name:FK8,message:$,cause:Z});this[hJ8]=!0,this.argument=X}static isInstance($){return L1.hasMarker($,wK8)}},OK8=`vercel.ai.error.${BK8}`,aN4=Symbol.for(OK8),K3=class extends(lJ8=L1,cJ8=aN4,lJ8){constructor({prompt:$,message:Z,cause:X}){super({name:BK8,message:`Invalid prompt: ${Z}`,cause:X});this[cJ8]=!0,this.prompt=$}static isInstance($){return L1.hasMarker($,OK8)}},DK8=`vercel.ai.error.${LK8}`,sN4=Symbol.for(DK8),Rg=class extends(mJ8=L1,dJ8=sN4,mJ8){constructor({data:$,message:Z=`Invalid response data: ${JSON.stringify($)}.`}){super({name:LK8,message:Z});this[dJ8]=!0,this.data=$}static isInstance($){return L1.hasMarker($,DK8)}},zK8=`vercel.ai.error.${EK8}`,eN4=Symbol.for(zK8),eN=class extends(nJ8=L1,iJ8=eN4,nJ8){constructor({text:$,cause:Z}){super({name:EK8,message:`JSON parsing failed: Text: ${$}.
|
|
2274
|
+
</organization-filesystem>`}var SB=O(()=>{Gz();ua0()});function ca0($){let Z=new Map;for(let Q of $){let Y=Z.get(Q.message_id);if(Y)Y.push(Q);else Z.set(Q.message_id,[Q])}let X=[];for(let[Q,Y]of Z){let G=[...Y].sort((K,W)=>K.seq-W.seq),J=G[0];X.push({id:Q,role:J.role,parts:G.filter((K)=>K.kind!=="finish").map((K)=>K.payload&&typeof K.payload==="object"&&!Array.isArray(K.payload)?{...K.payload,created_at:K.created_at}:K.payload),created_at:J.created_at,status:G.some((K)=>K.kind==="finish")?"complete":"in_progress",metadata:G.find((K)=>K.kind==="finish")?.metadata??null})}return X.sort((Q,Y)=>Q.created_at<Y.created_at?-1:Q.created_at>Y.created_at?1:0),X}function vN4($,Z){let X=0,Q=0,Y=[$];while(Y.length>0){if(X>Z||++Q>_N4)return 1/0;let G=Y.pop();if(typeof G==="string")X+=G.length;else if(Array.isArray(G))for(let J of G)Y.push(J);else if(G!==null&&typeof G==="object")for(let J of Object.values(G))Y.push(J)}return X}function yN4($){return $.replace(fN4,"").replace(bN4,"\uFFFD")}function DJ8($){if(vN4($,LJ8)>LJ8)return JSON.stringify({truncated:!0,reason:"payload exceeds max stored size"});return JSON.stringify($,(Z,X)=>typeof X==="string"?yN4(X):X)}class la0{db;constructor($){this.db=$}async serializeParts($){let Z=new Set,X=[],Q=new Map;for(let Y=0;Y<$.length;Y++){let G=$[Y];if(Z.has(G.id))continue;if(Z.add(G.id),Q.set(G.id,G),X.push({id:G.id,seq:G.seq,org_id:G.org_id,thread_id:G.thread_id,run_id:G.run_id,message_id:G.message_id,role:G.role,kind:G.kind,payload:DJ8(G.payload),payload_ref:G.payload_ref??null,metadata:G.metadata!=null?DJ8(G.metadata):null,created_at:G.created_at}),(Y+1)%xN4===0)await h8(0)}return{rows:X,partsById:Q}}async appendParts($){if($.length===0)return[];let{rows:Z,partsById:X}=await this.serializeParts($);return(await this.db.insertInto("thread_message_parts").values(Z).onConflict((Y)=>Y.column("id").doNothing()).returning("id").execute()).map((Y)=>X.get(Y.id)).filter((Y)=>Y!==void 0)}async replaceMessageParts($,Z,X){let{rows:Q}=await this.serializeParts(X);return await this.db.transaction().execute(async(Y)=>{let G=await Y.selectFrom("thread_message_parts").select((W)=>W.fn.min("created_at").as("created_at")).where("thread_id","=",$).where("message_id","=",Z).executeTakeFirst(),J=G?.created_at!=null?new Date(G.created_at).getTime():null,K=J!=null&&Number.isFinite(J)?Q.map((W)=>({...W,created_at:new Date(J+W.seq).toISOString()})):Q;if(await Y.deleteFrom("thread_message_parts").where("thread_id","=",$).where("message_id","=",Z).execute(),K.length>0)await Y.insertInto("thread_message_parts").values(K).onConflict((W)=>W.column("id").doUpdateSet((H)=>({seq:H.ref("excluded.seq"),role:H.ref("excluded.role"),kind:H.ref("excluded.kind"),payload:H.ref("excluded.payload"),payload_ref:H.ref("excluded.payload_ref"),metadata:H.ref("excluded.metadata"),created_at:H.ref("excluded.created_at")}))).execute()}),X}async deleteMessageParts($,Z){await this.db.deleteFrom("thread_message_parts").where("thread_id","=",$).where("message_id","=",Z).execute()}async maxCreatedAtMsForRun($){let Z=await this.db.selectFrom("thread_message_parts").select((Q)=>Q.fn.max("created_at").as("max")).where("run_id","=",$).executeTakeFirst();if(!Z?.max)return null;let X=new Date(Z.max).getTime();return Number.isFinite(X)?X:null}async maxCreatedAtMsForMessage($,Z){let X=await this.db.selectFrom("thread_message_parts").select((Y)=>Y.fn.max("created_at").as("max")).where("run_id","=",$).where("message_id","=",Z).executeTakeFirst();if(!X?.max)return null;let Q=new Date(X.max).getTime();return Number.isFinite(Q)?Q:null}async loadWindow($,Z){let X=await this.db.selectFrom("thread_message_parts").select(["message_id"]).where("thread_id","=",$).where("kind","=","finish").orderBy("created_at","desc").orderBy("id","desc").limit(Z.limit).offset(Z.offset??0).execute(),Q=await this.db.selectFrom("thread_message_parts").select((W)=>W.fn.count("id").as("count")).where("thread_id","=",$).where("kind","=","finish").executeTakeFirst(),Y=Number(Q?.count??0),G=Z.includeInFlight&&(Z.offset??0)===0?await this.db.selectFrom("thread_message_parts as p").select("p.message_id").distinct().where("p.thread_id","=",$).where((W)=>W.not(W.exists(W.selectFrom("thread_message_parts as f").select("f.id").whereRef("f.message_id","=","p.message_id").where("f.thread_id","=",$).where("f.kind","=","finish")))).execute():[],J=[...X.map((W)=>W.message_id),...G.map((W)=>W.message_id)];if(J.length===0)return{messages:[],total:Y};let K=await this.db.selectFrom("thread_message_parts").selectAll().where("thread_id","=",$).where("message_id","in",J).orderBy("seq","asc").execute();return{messages:ca0(K),total:Y}}async backfillFromMessages($,Z){let X=[],Q=0;for(let Y of $)X.push({id:`${Z.runId}:${Y.id}:content`,seq:Q++,org_id:Z.orgId,thread_id:Z.threadId,run_id:Z.runId,message_id:Y.id,role:Y.role,kind:"text",payload:Y.parts,payload_ref:null,metadata:Y.metadata??null,created_at:Y.created_at}),X.push({id:`${Z.runId}:${Y.id}:finish`,seq:Q++,org_id:Z.orgId,thread_id:Z.threadId,run_id:Z.runId,message_id:Y.id,role:Y.role,kind:"finish",payload:{},payload_ref:null,metadata:null,created_at:Y.created_at});await this.appendParts(X)}}var LJ8=50000000,_N4=1e5,xN4=25,fN4,bN4;var EJ8=O(()=>{s$();fN4=/\u0000/g,bN4=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g});import{sql as zg}from"kysely";function Jz($){return typeof $==="string"?$:$.toISOString()}function zJ8($){return $.replace(/[\\%_]/g,"\\$&")}class da0{inner;organizationId;constructor($,Z){this.inner=$;this.organizationId=Z}requireOrg(){if(!this.organizationId)throw Error("OrgScopedThreadStorage: thread operations require an authenticated organization");return this.organizationId}setOrganizationId($){this.organizationId=$}getOrganizationId(){return this.organizationId}create($){let Z=this.requireOrg();return this.inner.create({...$,organization_id:Z})}get($){return this.inner.get($,this.requireOrg())}update($,Z){return this.inner.update($,this.requireOrg(),Z)}pinRuntimeIfUnset($,Z){return this.inner.pinRuntimeIfUnset($,this.requireOrg(),Z)}completeRunIfNotCompleted($){return this.inner.completeRunIfNotCompleted($,this.requireOrg())}markRunFailed($,Z,X){return this.inner.markRunFailed($,this.requireOrg(),Z,X)}requiresActionIfInProgress($){return this.inner.requiresActionIfInProgress($,this.requireOrg())}forceFailIfInProgress($,Z){return this.inner.forceFailIfInProgress($,this.requireOrg(),Z)}delete($){return this.inner.delete($,this.requireOrg())}list($,Z){return this.inner.list(this.requireOrg(),$,Z)}listByTriggerIds($,Z){return this.inner.listByTriggerIds(this.requireOrg(),$,Z)}findLastUsedByVirtualMcpIds($){return this.inner.findLastUsedByVirtualMcpIds(this.requireOrg(),$)}bumpProgress($){return this.inner.bumpProgress($,this.requireOrg())}getProgress($){return this.inner.getProgress($,this.requireOrg())}listMessages($,Z){return this.inner.listMessages($,this.requireOrg(),Z)}listWithLastMessage($){return this.inner.listWithLastMessage(this.requireOrg(),$)}messageParts(){return this.inner.messageParts()}getRunFence($){return this.inner.getRunFence($)}setRunFence($,Z){return this.inner.setRunFence($,Z)}setCancelRequested($,Z){return this.inner.setCancelRequested($,Z)}getCancelRequestedAt($){return this.inner.getCancelRequestedAt($)}clearCancelRequested($){return this.inner.clearCancelRequested($)}bumpAckedSeq($,Z,X){return this.inner.bumpAckedSeq($,this.requireOrg(),Z,X)}getAckedSeq($){return this.inner.getAckedSeq($,this.requireOrg())}}class jg{db;constructor($){this.db=$}messageParts(){return new la0(this.db)}async create($){let Z=$.id??$4("thrd"),X=new Date().toISOString();if(!$.organization_id)throw Error("organization_id is required");if(!$.created_by)throw Error("created_by is required");if(!$.title)$.title=kB;let Q={id:Z,organization_id:$.organization_id,title:$.title,description:$.description??null,status:$.status??"completed",trigger_id:$.trigger_id??null,virtual_mcp_id:$.virtual_mcp_id??"",branch:$.branch??null,sandbox_provider_kind:$.sandbox_provider_kind??null,harness_id:$.harness_id??null,created_at:X,updated_at:X,created_by:$.created_by,updated_by:$.updated_by??null,...$.message_storage_version!==void 0?{message_storage_version:$.message_storage_version}:{},...$.metadata!==void 0?{metadata:JSON.stringify($.metadata)}:{}},Y=await this.db.insertInto("threads").values(Q).onConflict((J)=>J.column("id").doNothing()).returningAll().executeTakeFirst();if(Y)return{...this.threadFromDbRow(Y),isNew:!0};let G=await this.db.selectFrom("threads").selectAll().where("id","=",Z).where("organization_id","=",$.organization_id).executeTakeFirstOrThrow();return{...this.threadFromDbRow(G),isNew:!1}}async get($,Z){let X=await this.db.selectFrom("threads").selectAll().where("id","=",$).where("organization_id","=",Z).executeTakeFirst();return X?this.threadFromDbRow(X):null}async update($,Z,X){let Y={updated_at:new Date().toISOString()};if(X.title!==void 0)Y.title=X.title;if(X.description!==void 0)Y.description=X.description;if(X.updated_by!==void 0)Y.updated_by=X.updated_by;if(X.hidden!==void 0)Y.hidden=X.hidden;if(X.status!==void 0)Y.status=X.status;if(X.context_start_message_id!==void 0)Y.context_start_message_id=X.context_start_message_id;if(X.run_owner_pod!==void 0)Y.run_owner_pod=X.run_owner_pod;if(X.run_config!==void 0)Y.run_config=X.run_config?JSON.stringify(X.run_config):null;if(X.run_started_at!==void 0)Y.run_started_at=X.run_started_at;if(X.last_progress_at!==void 0)Y.last_progress_at=X.last_progress_at;if(X.failure_reason!==void 0)Y.failure_reason=X.failure_reason;if(X.failure_kind!==void 0)Y.failure_kind=X.failure_kind;if(X.metadata!==void 0)Y.metadata=JSON.stringify(X.metadata);if(X.branch!==void 0)Y.branch=X.branch;if(X.virtual_mcp_id!==void 0)Y.virtual_mcp_id=X.virtual_mcp_id;if(X.sandbox_provider_kind!==void 0)Y.sandbox_provider_kind=X.sandbox_provider_kind;if(X.harness_id!==void 0)Y.harness_id=X.harness_id;if(X.message_storage_version!==void 0)Y.message_storage_version=X.message_storage_version;await this.db.updateTable("threads").set(Y).where("id","=",$).where("organization_id","=",Z).execute();let G=await this.get($,Z);if(!G)throw Error("Thread not found after update");return G}async pinRuntimeIfUnset($,Z,X){let Q=await this.db.updateTable("threads").set({harness_id:X.harnessId,sandbox_provider_kind:zg`coalesce(${zg.ref("sandbox_provider_kind")}, ${X.sandboxProviderKind})`,branch:zg`coalesce(${zg.ref("branch")}, ${X.branch})`,updated_at:new Date().toISOString(),...X.messageStorageVersion!==void 0?{message_storage_version:X.messageStorageVersion}:{}}).where("id","=",$).where("organization_id","=",Z).where("harness_id","is",null).where((Y)=>X.sandboxProviderKind===null?Y("sandbox_provider_kind","is",null):Y.or([Y("sandbox_provider_kind","is",null),Y("sandbox_provider_kind","=",X.sandboxProviderKind)])).returningAll().executeTakeFirst();if(Q)return{thread:this.threadFromDbRow(Q),claimed:!0};return{thread:await this.get($,Z),claimed:!1}}async completeRunIfNotCompleted($,Z){let Q=(await this.db.updateTable("threads").set({status:"completed",run_owner_pod:null,run_config:null,run_started_at:null,updated_at:new Date().toISOString()}).where("id","=",$).where("organization_id","=",Z).where("status","=","in_progress").returningAll().execute())[0];return Q?this.threadFromDbRow(Q):null}async markRunFailed($,Z,X,Q){let G=(await this.db.updateTable("threads").set({status:"failed",failure_reason:X,failure_kind:Q,run_owner_pod:null,run_config:null,run_started_at:null,updated_at:new Date().toISOString()}).where("id","=",$).where("organization_id","=",Z).where("status","=","in_progress").returningAll().execute())[0];return G?this.threadFromDbRow(G):null}async requiresActionIfInProgress($,Z){let Q=(await this.db.updateTable("threads").set({status:"requires_action",run_config:null,run_started_at:null,updated_at:new Date().toISOString()}).where("id","=",$).where("organization_id","=",Z).where("status","=","in_progress").returningAll().execute())[0];return Q?this.threadFromDbRow(Q):null}async forceFailIfInProgress($,Z,X){let Q=new Date().toISOString(),Y=this.db.updateTable("threads").set({status:"failed",updated_at:Q}).where("id","=",$).where("organization_id","=",Z).where("status","=","in_progress");if(X!=null)Y=Y.where("run_fence_token","=",X);return((await Y.executeTakeFirst()).numUpdatedRows??BigInt(0))>BigInt(0)}async delete($,Z){await this.db.deleteFrom("threads").where("id","=",$).where("organization_id","=",Z).execute()}async list($,Z,X){let Q=X?.includeArchived===!0,Y=this.db.selectFrom("threads").selectAll().where("organization_id","=",$).where("hidden","=",Q).orderBy("updated_at","desc");if(Z)Y=Y.where("created_by","=",Z);let G=X?.virtualMcpId??X?.agentId;if(G)Y=Y.where("virtual_mcp_id","=",G);if(X?.hasTrigger===!0)Y=Y.where("trigger_id","is not",null);else if(X?.hasTrigger===!1)Y=Y.where("trigger_id","is",null);if(X?.startDate)Y=Y.where("updated_at",">=",X.startDate);if(X?.endDate)Y=Y.where("updated_at","<=",X.endDate);if(X?.search)Y=Y.where("title","ilike",`%${zJ8(X.search)}%`);if(X?.status)Y=Y.where("status","=",X.status);let J=this.db.selectFrom("threads").select((H)=>H.fn.count("id").as("count")).where("organization_id","=",$).where("hidden","=",Q);if(Z)J=J.where("created_by","=",Z);if(G)J=J.where("virtual_mcp_id","=",G);if(X?.hasTrigger===!0)J=J.where("trigger_id","is not",null);else if(X?.hasTrigger===!1)J=J.where("trigger_id","is",null);if(X?.startDate)J=J.where("updated_at",">=",X.startDate);if(X?.endDate)J=J.where("updated_at","<=",X.endDate);if(X?.search)J=J.where("title","ilike",`%${zJ8(X.search)}%`);if(X?.status)J=J.where("status","=",X.status);if(X?.limit)Y=Y.limit(X.limit);if(X?.offset)Y=Y.offset(X.offset);let[K,W]=await Promise.all([Y.execute(),J.executeTakeFirst()]);return{threads:K.map((H)=>this.threadFromDbRow(H)),total:Number(W?.count||0)}}async listByTriggerIds($,Z,X){if(Z.length===0)return{threads:[],total:0};let Q=this.db.selectFrom("threads").selectAll().where("organization_id","=",$).where("hidden","=",!1).where("trigger_id","in",Z).orderBy("updated_at","desc"),Y=this.db.selectFrom("threads").select((K)=>K.fn.count("id").as("count")).where("organization_id","=",$).where("hidden","=",!1).where("trigger_id","in",Z);if(X?.limit)Q=Q.limit(X.limit);if(X?.offset)Q=Q.offset(X.offset);let[G,J]=await Promise.all([Q.execute(),Y.executeTakeFirst()]);return{threads:G.map((K)=>this.threadFromDbRow(K)),total:Number(J?.count||0)}}async findLastUsedByVirtualMcpIds($,Z){let X=new Map;if(Z.length===0)return X;let Q=await this.db.selectFrom("threads").distinctOn("virtual_mcp_id").select(["virtual_mcp_id","created_by","created_at"]).where("organization_id","=",$).where("virtual_mcp_id","in",Z).orderBy("virtual_mcp_id").orderBy("created_at","desc").execute();for(let Y of Q)X.set(Y.virtual_mcp_id,{last_used_at:Jz(Y.created_at),last_used_by:Y.created_by});return X}async listWithLastMessage($,Z){let X=this.db.selectFrom("threads as t").innerJoinLateral((Y)=>Y.selectFrom("thread_messages as m").selectAll().whereRef("m.thread_id","=","t.id").orderBy("m.created_at","desc").orderBy("m.id","desc").limit(1).as("lm"),(Y)=>Y.onTrue()).selectAll("t").select(["lm.id as lm_id","lm.thread_id as lm_thread_id","lm.metadata as lm_metadata","lm.parts as lm_parts","lm.role as lm_role","lm.created_at as lm_created_at","lm.updated_at as lm_updated_at"]).where("t.organization_id","=",$).where("t.hidden","=",!1).where("lm.role","=",Z.lastMessageRole).orderBy("lm.created_at","desc").limit(Z.limit);if(Z.createdBy)X=X.where("t.created_by","=",Z.createdBy);return(await X.execute()).map((Y)=>({thread:this.threadFromDbRow(Y),lastMessage:this.messageFromDbRow({id:Y.lm_id,thread_id:Y.lm_thread_id,metadata:Y.lm_metadata,parts:Y.lm_parts,role:Y.lm_role,created_at:Y.lm_created_at,updated_at:Y.lm_updated_at})}))}async listMessages($,Z,X){if(!await this.get($,Z))return{messages:[],total:0};let Y=X?.sort??"asc",G=this.db.selectFrom("thread_messages").selectAll().where("thread_id","=",$).orderBy("created_at",Y).orderBy("id",Y),J=this.db.selectFrom("thread_messages").select((H)=>H.fn.count("id").as("count")).where("thread_id","=",$);if(X?.limit)G=G.limit(X.limit);if(X?.offset)G=G.offset(X.offset);let[K,W]=await Promise.all([G.execute(),J.executeTakeFirst()]);return{messages:K.map((H)=>this.messageFromDbRow(H)),total:Number(W?.count||0)}}async bumpProgress($,Z){await this.db.updateTable("threads").set({last_progress_at:zg`now()`}).where("id","=",$).where("organization_id","=",Z).execute()}async getProgress($,Z){let X=await this.db.selectFrom("threads").select(["last_progress_at","run_started_at"]).where("id","=",$).where("organization_id","=",Z).executeTakeFirst();if(!X)return null;let Q=(Y)=>{if(Y==null)return null;let G=(Y instanceof Date?Y:new Date(Y)).getTime();return Number.isNaN(G)?null:G};return{lastProgressAt:Q(X.last_progress_at),runStartedAt:Q(X.run_started_at)}}async getRunFence($){return(await this.db.selectFrom("threads").select("run_fence_token").where("id","=",$).executeTakeFirst())?.run_fence_token??null}async setRunFence($,Z){await this.db.updateTable("threads").set(Z===null?{run_fence_token:null,run_acked_seq:null}:{run_fence_token:Z,run_acked_seq:null,status:"in_progress"}).where("id","=",$).execute()}async setCancelRequested($,Z){await this.db.updateTable("threads").set({cancel_requested_at:zg`now()`}).where("id","=",$).where("organization_id","=",Z).execute()}async getCancelRequestedAt($){let X=(await this.db.selectFrom("threads").select("cancel_requested_at").where("id","=",$).executeTakeFirst())?.cancel_requested_at;if(X==null)return null;return X instanceof Date?X:new Date(X)}async clearCancelRequested($){await this.db.updateTable("threads").set({cancel_requested_at:null}).where("id","=",$).execute()}async bumpAckedSeq($,Z,X,Q){await this.db.updateTable("threads").set({run_acked_seq:Q}).where("id","=",$).where("organization_id","=",Z).where((Y)=>Y.or([Y("run_acked_seq","is",null),Y("run_acked_seq","<",Q)])).execute()}async getAckedSeq($,Z){return(await this.db.selectFrom("threads").select("run_acked_seq").where("id","=",$).where("organization_id","=",Z).executeTakeFirst())?.run_acked_seq??0}threadFromDbRow($){let Z={};if($.metadata!=null)if(typeof $.metadata==="string")try{Z=JSON.parse($.metadata)}catch(X){console.error(`Failed to parse metadata for thread ${$.id}:`,$.metadata,X)}else Z=$.metadata;return{id:$.id,organization_id:$.organization_id,title:$.title,description:$.description,status:$.status,trigger_id:$.trigger_id??null,context_start_message_id:$.context_start_message_id??null,run_owner_pod:$.run_owner_pod??null,run_config:$.run_config??null,run_started_at:$.run_started_at?Jz($.run_started_at):null,last_progress_at:$.last_progress_at?Jz($.last_progress_at):null,virtual_mcp_id:$.virtual_mcp_id??"",branch:$.branch??null,sandbox_provider_kind:$.sandbox_provider_kind??null,harness_id:$.harness_id??null,metadata:Z,created_at:Jz($.created_at),updated_at:Jz($.updated_at),created_by:$.created_by,updated_by:$.updated_by??void 0,hidden:!!$.hidden,message_storage_version:$.message_storage_version??1,link_transport:$.link_transport??null}}messageFromDbRow($){let Z,X;try{Z=$.metadata?JSON.parse($.metadata):void 0}catch(Q){console.error(`Failed to parse metadata for message ${$.id}:`,$.metadata,Q),Z=void 0}try{X=typeof $.parts==="string"?JSON.parse($.parts):$.parts}catch(Q){console.error(`Failed to parse parts for message ${$.id}:`,$.parts,Q),X=[]}return{id:$.id,thread_id:$.thread_id,metadata:Z,parts:X,role:$.role,created_at:Jz($.created_at),updated_at:Jz($.updated_at)}}}var ma0=O(()=>{dX();SB();EJ8()});import{sql as ia0}from"kysely";function XY0($){if($==null)return null;return typeof $==="string"?$:$.toISOString()}function QY0($){return`msg_async_stub_${$}`}async function na0($,Z){await $.deleteFrom("thread_messages").where("id","=",QY0(Z)).execute(),await $.deleteFrom("thread_message_parts").where("message_id","=",QY0(Z)).execute()}function gN4($){if($==null)return null;if(typeof $!=="string")return $;try{return JSON.parse($)}catch{return null}}function pa0($){return{id:$.id,interactionId:$.interaction_id??null,toolCallId:$.tool_call_id,organizationId:$.organization_id,threadId:$.thread_id,messageId:$.message_id??null,provider:$.provider,modelId:$.model_id,query:$.query,status:$.status,attempts:$.attempts??0,lastPolledAt:XY0($.last_polled_at),lastError:$.last_error??null,inputTokens:$.input_tokens??null,outputTokens:$.output_tokens??null,citations:gN4($.citations),resultUri:$.result_uri??null,resultPreview:$.result_preview??null,resultContent:$.result_content??null,createdAt:XY0($.created_at)??"",updatedAt:XY0($.updated_at)??"",completedAt:XY0($.completed_at)}}class ta0{inner;organizationId;constructor($,Z){this.inner=$;this.organizationId=Z}requireOrg(){if(!this.organizationId)throw Error("OrgScopedAsyncResearchJobStorage: requires an authenticated organization");return this.organizationId}setOrganizationId($){this.organizationId=$}upsertPending($){return this.inner.upsertPending({organizationId:this.requireOrg(),...$})}findByToolCall($){return this.inner.findByToolCall(this.requireOrg(),$)}markPolling($,Z,X){return this.inner.markPolling(this.requireOrg(),$,Z,X)}recordPoll($,Z){return this.inner.recordPoll(this.requireOrg(),$,Z)}markCompleted($,Z){return this.inner.markCompleted(this.requireOrg(),$,Z)}markFailed($,Z){return this.inner.markFailed(this.requireOrg(),$,Z)}markCancelled($,Z){return this.inner.markCancelled(this.requireOrg(),$,Z)}}class ap{db;constructor($){this.db=$}async upsertPending($){let Z=new Date().toISOString(),X=await this.db.insertInto("async_research_jobs").values({organization_id:$.organizationId,thread_id:$.threadId,tool_call_id:$.toolCallId,message_id:$.messageId??null,provider:$.provider,model_id:$.modelId,query:$.query,status:"pending",attempts:0,updated_at:Z}).onConflict((Y)=>Y.columns(["organization_id","tool_call_id"]).doNothing()).returningAll().executeTakeFirst();if(X)return pa0(X);let Q=await this.db.selectFrom("async_research_jobs").selectAll().where("organization_id","=",$.organizationId).where("tool_call_id","=",$.toolCallId).executeTakeFirstOrThrow();return pa0(Q)}async findByToolCall($,Z){let X=await this.db.selectFrom("async_research_jobs").selectAll().where("organization_id","=",$).where("tool_call_id","=",Z).executeTakeFirst();return X?pa0(X):null}async markPolling($,Z,X,Q){let Y=new Date().toISOString();await this.db.transaction().execute(async(G)=>{if(await G.updateTable("async_research_jobs").set({status:"polling",interaction_id:X,last_polled_at:Y,updated_at:Y}).where("organization_id","=",$).where("tool_call_id","=",Z).execute(),(await G.selectFrom("threads").select("message_storage_version").where("id","=",Q.threadId).where("organization_id","=",$).executeTakeFirst())?.message_storage_version!==2)return;let K=QY0(Z);await G.insertInto("thread_message_parts").values([{id:`${Q.threadId}:${K}:0`,seq:0,org_id:$,thread_id:Q.threadId,run_id:Q.threadId,message_id:K,role:"assistant",kind:"tool_call",payload:JSON.stringify({type:`tool-${Q.toolName}`,toolCallId:Z,state:"input-available",input:{query:Q.query}}),payload_ref:null,metadata:null,created_at:Y},{id:`${Q.threadId}:${K}:finish`,seq:1,org_id:$,thread_id:Q.threadId,run_id:Q.threadId,message_id:K,role:"assistant",kind:"finish",payload:JSON.stringify({}),payload_ref:null,metadata:null,created_at:Y}]).onConflict((W)=>W.column("id").doNothing()).execute()})}async recordPoll($,Z,X){let Q=new Date().toISOString();await this.db.updateTable("async_research_jobs").set({attempts:ia0`attempts + 1`,last_polled_at:Q,...X!==void 0?{last_error:X}:{},updated_at:Q}).where("organization_id","=",$).where("tool_call_id","=",Z).execute()}async markCompleted($,Z,X){let Q=new Date().toISOString();await this.db.transaction().execute(async(Y)=>{await Y.updateTable("async_research_jobs").set({status:"completed",input_tokens:X.inputTokens,output_tokens:X.outputTokens,citations:JSON.stringify(X.citations),result_uri:X.resultUri,result_preview:X.resultPreview,result_content:X.resultContent,completed_at:Q,updated_at:Q}).where("organization_id","=",$).where("tool_call_id","=",Z).execute(),await na0(Y,Z)})}async markFailed($,Z,X){let Q=new Date().toISOString();await this.db.transaction().execute(async(Y)=>{await Y.updateTable("async_research_jobs").set({status:"failed",last_error:X,completed_at:Q,updated_at:Q}).where("organization_id","=",$).where("tool_call_id","=",Z).execute(),await na0(Y,Z)})}async markCancelled($,Z,X){let Q=new Date().toISOString();await this.db.transaction().execute(async(Y)=>{await Y.updateTable("async_research_jobs").set({status:"cancelled",last_error:X??null,completed_at:Q,updated_at:Q}).where("organization_id","=",$).where("tool_call_id","=",Z).execute(),await na0(Y,Z)})}async sweepAbandoned($){let Z=new Date(Date.now()-$).toISOString(),X=new Date().toISOString();return await this.db.transaction().execute(async(Q)=>{let Y=await Q.updateTable("async_research_jobs").set({status:"abandoned",completed_at:X,updated_at:X,last_error:ia0`COALESCE(last_error, '') || ' [abandoned by sweeper]'`}).where("status","in",["pending","polling"]).where(ia0`COALESCE(last_polled_at, created_at) < ${Z}::timestamptz`).returning(["tool_call_id"]).execute();if(Y.length===0)return 0;let G=Y.map((J)=>QY0(J.tool_call_id));return await Q.deleteFrom("thread_messages").where("id","in",G).execute(),await Q.deleteFrom("thread_message_parts").where("message_id","in",G).execute(),Y.length})}}var oa0=()=>{};function YY0(){let $=new Map;function Z(Q,Y){let G=$.get(Y);if(G)return G;let J=new h9({name:`outbound-client-${Y}`,version:"1.0.0"},{capabilities:{tasks:{list:{},cancel:{},requests:{tool:{call:{}}}}},jsonSchemaValidator:w5});J.onclose=()=>{$.delete(Y)};let K=J.connect(Q).then(()=>J).catch((W)=>{throw $.delete(Y),W});return $.set(Y,K),K}return Object.assign(Z,{[Symbol.asyncDispose]:async()=>{let Q=[];for(let[Y,G]of $)Q.push(G.then((J)=>J.close()).catch(()=>{}));await Promise.all(Q),$.clear()}})}var ra0=O(()=>{LW();tX()});class aa0{db;vault;constructor($,Z){this.db=$;this.vault=Z}async get($){let Z=await this.db.selectFrom("subsidized_gateway_keys").select("encrypted_key").where("organization_id","=",$).executeTakeFirst();if(!Z)return null;return await this.vault.decrypt(Z.encrypted_key)}async put($,Z){let X=await this.vault.encrypt(Z);await this.db.insertInto("subsidized_gateway_keys").values({organization_id:$,encrypted_key:X}).onConflict((Q)=>Q.column("organization_id").doUpdateSet({encrypted_key:X})).execute()}}import{sql as hN4}from"kysely";function jJ8($){return $ instanceof Date?$.toISOString():String($)}class sa0{db;vault;constructor($,Z){this.db=$;this.vault=Z}rowToInfo($){return{id:$.id,organizationId:$.organization_id,scope:$.scope,userId:$.user_id,name:$.name,description:$.description,createdBy:$.created_by,createdAt:jJ8($.created_at),updatedBy:$.updated_by,updatedAt:jJ8($.updated_at)}}assertVisible($,Z){if($.scope==="user"&&$.user_id!==Z)throw new VB($.id)}async create($){let Z=$4("sec"),X=await this.vault.encrypt($.value),Q=new Date,Y=await this.db.insertInto("secrets").values({id:Z,organization_id:$.organizationId,scope:$.scope.kind,user_id:$.scope.kind==="user"?$.scope.userId:null,name:$.name,encrypted_value:X,description:$.description??null,created_by:$.createdBy,created_at:Q,updated_by:$.createdBy,updated_at:Q}).returning(GY0).executeTakeFirstOrThrow();return this.rowToInfo(Y)}async update($){let Z=await this.db.selectFrom("secrets").where("id","=",$.id).where("organization_id","=",$.organizationId).select(["id","scope","user_id"]).executeTakeFirst();if(!Z)throw new Y3($.id);this.assertVisible(Z,$.callerUserId);let X={updated_by:$.updatedBy,updated_at:new Date};if($.value!==void 0)X.encrypted_value=await this.vault.encrypt($.value);if($.description!==void 0)X.description=$.description;let Q=await this.db.updateTable("secrets").set(X).where("id","=",$.id).where("organization_id","=",$.organizationId).returning(GY0).executeTakeFirstOrThrow();return this.rowToInfo(Q)}async delete($,Z,X){let Q=await this.db.selectFrom("secrets").where("id","=",$).where("organization_id","=",Z).select(["id","scope","user_id"]).executeTakeFirst();if(!Q)throw new Y3($);this.assertVisible(Q,X),await this.db.deleteFrom("secrets").where("id","=",$).where("organization_id","=",Z).execute()}async list($){let Z=this.db.selectFrom("secrets").where("organization_id","=",$.organizationId).select(GY0);if($.scope?.kind==="user")Z=Z.where("scope","=","user").where("user_id","=",$.scope.userId);else if($.scope?.kind==="organization")Z=Z.where("scope","=","organization");else Z=Z.where((Q)=>Q.or([Q("scope","=","organization"),Q.and([Q("scope","=","user"),Q("user_id","=",$.callerUserId)])]));return(await Z.orderBy("created_at","desc").execute()).map((Q)=>this.rowToInfo(Q))}async findById($,Z,X){let Q=await this.db.selectFrom("secrets").where("id","=",$).where("organization_id","=",Z).select(GY0).executeTakeFirst();if(!Q)throw new Y3($);return this.assertVisible(Q,X),this.rowToInfo(Q)}async resolveById($,Z,X){let Q=await this.db.selectFrom("secrets").where("id","=",$).where("organization_id","=",Z).selectAll().executeTakeFirst();if(!Q)throw new Y3($);this.assertVisible(Q,X);let Y=await this.vault.decrypt(Q.encrypted_value);return{info:this.rowToInfo(Q),value:Y}}async resolveByName($){let Z=this.db.selectFrom("secrets").where("organization_id","=",$.organizationId).where("scope","=",$.scope.kind).where(hN4`lower(name) = lower(${$.name})`).selectAll();if($.scope.kind==="user")Z=Z.where("user_id","=",$.scope.userId);let X=await Z.executeTakeFirst();if(!X)throw new Y3(`${$.scope.kind}:${$.name}`);let Q=await this.vault.decrypt(X.encrypted_value);return{info:this.rowToInfo(X),value:Q}}}var GY0,Y3,VB;var sp=O(()=>{dX();GY0=["id","organization_id","scope","user_id","name","description","created_by","created_at","updated_by","updated_at"];Y3=class Y3 extends Error{constructor($){super(`Secret ${$} not found`);this.name="SecretNotFoundError"}};VB=class VB extends Error{constructor($){super(`Access denied for secret ${$}`);this.name="SecretAccessDeniedError"}}});import{sql as uN4}from"kysely";function PJ8($){return $ instanceof Date?$.toISOString():String($)}class ea0{db;vault;constructor($,Z){this.db=$;this.vault=Z}rowToInfo($){return{id:$.id,organizationId:$.organization_id,name:$.name,description:$.description,bucket:$.bucket,region:$.region,endpoint:$.endpoint,forcePathStyle:$.force_path_style,prefix:$.prefix,publicUrlBase:$.public_url_base,credentialType:$.credential_type??"static",refreshUrl:$.refresh_url,siteSlug:$.site_slug,createdBy:$.created_by,createdAt:PJ8($.created_at),updatedBy:$.updated_by,updatedAt:PJ8($.updated_at)}}async create($){let Z=$4("fcfg"),X=await this.vault.encrypt(JSON.stringify($.credentials)),Q=new Date,Y=await this.db.insertInto("org_file_configs").values({id:Z,organization_id:$.organizationId,name:$.name,description:$.description??null,bucket:$.bucket,region:$.region,endpoint:$.endpoint??null,force_path_style:$.forcePathStyle??!1,prefix:$.prefix??null,public_url_base:$.publicUrlBase??null,credential_type:$.credentials.type,refresh_url:$.refreshUrl??null,site_slug:$.siteSlug??null,encrypted_credentials:X,created_by:$.createdBy,created_at:Q,updated_by:$.createdBy,updated_at:Q}).returning(JY0).executeTakeFirstOrThrow();return this.rowToInfo(Y)}async update($){if(!await this.db.selectFrom("org_file_configs").where("id","=",$.id).where("organization_id","=",$.organizationId).select(["id"]).executeTakeFirst())throw new Pg($.id);let X={updated_by:$.updatedBy,updated_at:new Date};if($.name!==void 0)X.name=$.name;if($.description!==void 0)X.description=$.description;if($.bucket!==void 0)X.bucket=$.bucket;if($.region!==void 0)X.region=$.region;if($.endpoint!==void 0)X.endpoint=$.endpoint;if($.forcePathStyle!==void 0)X.force_path_style=$.forcePathStyle;if($.prefix!==void 0)X.prefix=$.prefix;if($.publicUrlBase!==void 0)X.public_url_base=$.publicUrlBase;if($.refreshUrl!==void 0)X.refresh_url=$.refreshUrl;if($.siteSlug!==void 0)X.site_slug=$.siteSlug;if($.credentials!==void 0)X.credential_type=$.credentials.type,X.encrypted_credentials=await this.vault.encrypt(JSON.stringify($.credentials));let Q=await this.db.updateTable("org_file_configs").set(X).where("id","=",$.id).where("organization_id","=",$.organizationId).returning(JY0).executeTakeFirstOrThrow();return this.rowToInfo(Q)}async delete($,Z){if(!await this.db.selectFrom("org_file_configs").where("id","=",$).where("organization_id","=",Z).select(["id"]).executeTakeFirst())throw new Pg($);await this.db.deleteFrom("org_file_configs").where("id","=",$).where("organization_id","=",Z).execute()}async list($){return(await this.db.selectFrom("org_file_configs").where("organization_id","=",$).select(JY0).orderBy("created_at","desc").execute()).map((X)=>this.rowToInfo(X))}async findById($,Z){let X=await this.db.selectFrom("org_file_configs").where("id","=",$).where("organization_id","=",Z).select(JY0).executeTakeFirst();if(!X)throw new Pg($);return this.rowToInfo(X)}async resolveById($,Z){let X=await this.db.selectFrom("org_file_configs").where("id","=",$).where("organization_id","=",Z).selectAll().executeTakeFirst();if(!X)throw new Pg($);return{info:this.rowToInfo(X),credentials:await this.decodeCredentials(X)}}async resolveByName($){let Z=await this.db.selectFrom("org_file_configs").where("organization_id","=",$.organizationId).where(uN4`lower(name) = lower(${$.name})`).selectAll().executeTakeFirst();if(!Z)throw new Pg($.name);return{info:this.rowToInfo(Z),credentials:await this.decodeCredentials(Z)}}async decodeCredentials($){if($.credential_type==="managed")return{type:"managed"};let Z=await this.vault.decrypt($.encrypted_credentials),X=JSON.parse(Z);if(($.credential_type??"static")==="sts-session")return{type:"sts-session",apiKey:String(X.apiKey)};return{type:"static",accessKeyId:String(X.accessKeyId),secretAccessKey:String(X.secretAccessKey)}}}var JY0,Pg;var AJ8=O(()=>{dX();JY0=["id","organization_id","name","description","bucket","region","endpoint","force_path_style","prefix","public_url_base","credential_type","refresh_url","site_slug","created_by","created_at","updated_by","updated_at"];Pg=class Pg extends Error{constructor($){super(`File config ${$} not found`);this.name="OrgFileConfigNotFoundError"}}});function KY0($){return $s0.test($)}var $s0;var WY0=O(()=>{$s0=/^[a-z0-9][a-z0-9-]{0,59}$/});function TJ8($){return $ instanceof Date?$.toISOString():String($)}function Zs0($){return{slug:$.slug,organizationId:$.organization_id,source:$.source,createdBy:$.created_by,createdAt:TJ8($.created_at),updatedBy:$.updated_by,updatedAt:TJ8($.updated_at)}}class Qs0{db;constructor($){this.db=$}async claimSite($){if(!KY0($.slug))throw Error(`Invalid site slug "${$.slug}" \u2014 must be 1-60 chars of lowercase letters, digits, or hyphens, starting with a letter or digit`);let Z=new Date,X=await this.db.insertInto("org_sites").values({slug:$.slug,organization_id:$.organizationId,source:$.source??"deco-import",created_by:$.by,created_at:Z,updated_by:$.by,updated_at:Z}).onConflict((G)=>G.column("slug").doNothing()).returningAll().executeTakeFirst();if(X)return Zs0(X);let Q=await this.getBySlug($.slug);if(!Q)throw new Xs0($.slug,"unknown");if(Q.organizationId!==$.organizationId)throw new Xs0($.slug,Q.organizationId);let Y=await this.db.updateTable("org_sites").set({source:$.source??Q.source,updated_by:$.by,updated_at:Z}).where("slug","=",$.slug).where("organization_id","=",$.organizationId).returningAll().executeTakeFirstOrThrow();return Zs0(Y)}async getBySlug($){let Z=await this.db.selectFrom("org_sites").selectAll().where("slug","=",$).executeTakeFirst();return Z?Zs0(Z):null}async isOwnedBy($,Z){return!!await this.db.selectFrom("org_sites").select("slug").where("slug","=",$).where("organization_id","=",Z).executeTakeFirst()}}var Xs0;var RJ8=O(()=>{WY0();Xs0=class Xs0 extends Error{slug;ownerOrganizationId;constructor($,Z){super(`Site slug "${$}" is already owned by another organization`);this.slug=$;this.ownerOrganizationId=Z;this.name="OrgSiteConflictError"}}});function sN($){return $.createdBy==="system"}function dN4($){return $?.status==="active"||$?.status==="past_due"}function IJ8($,Z){if(dN4($))return{periodKey:$?.currentPeriodEnd?`sub:${$.currentPeriodEnd.toISOString()}`:"sub:pending",limit:Z.monthlyTaskExecutions,exhaustedReason:"monthly_exhausted"};return{periodKey:"trial",limit:Z.freeTaskExecutions,exhaustedReason:"trial_exhausted"}}function qJ8(){let $=Q1();return{enforced:$.taskQuotaEnforced,freeTaskExecutions:$.freeTaskExecutions,monthlyTaskExecutions:$.monthlyTaskExecutions,maxRunsPerTask:$.maxRunsPerTask}}async function MJ8($,Z,X=qJ8()){if(!X.enforced||!sN(Z))return;let Q=await $.storage.organizationBilling.taskClaim(Z.id);if(Q&&Q.runCount>=X.maxRunsPerTask)throw new G3("runs_exhausted");if(Q&&Q.state!=="released")return;let Y=await $.storage.organizationBilling.getBilling(Z.organizationId),G=IJ8(Y,X);if(await $.storage.organizationBilling.countTaskClaims(Z.organizationId,G.periodKey)>=G.limit)throw new G3(G.exhaustedReason)}async function kJ8($,Z,X=qJ8()){if(!X.enforced||!sN(Z))return;let Q=await $.storage.organizationBilling.getBilling(Z.organizationId),Y=IJ8(Q,X),G=await $.storage.organizationBilling.claimTaskUnderLimit(Z.organizationId,Z.id,Y.periodKey,Y.limit,X.maxRunsPerTask);if(G==="exhausted")throw new G3(Y.exhaustedReason);if(G==="runs_exhausted")throw new G3("runs_exhausted")}async function SJ8($,Z){let X=await $.storage.organizationBilling.taskClaim(Z);return!!X&&X.state!=="released"}async function HY0($,Z,X){await $.releaseTaskClaim(Z,X).catch((Q)=>console.error("[task-quota] refund failed (stays charged)",Q))}var cN4="[SUBSCRIPTION_REQUIRED]",lN4,G3;var CB=O(()=>{y8();lN4={trial_exhausted:"this organization used its free task executions \u2014 subscribe to keep running tasks",monthly_exhausted:"this organization used its monthly task executions \u2014 more become available next billing cycle",runs_exhausted:"this task reached its execution limit \u2014 create a new task to keep going"};G3=class G3 extends Error{reason;constructor($){super(`${cN4} ${lN4[$]}`);this.reason=$;this.name="TaskQuotaError"}}});function VJ8($,Z){return $?.startsWith(`${ep[Z]}:`)??!1}function Ys0($){let Z=0;for(let X of $){if(X.action!=="status_changed")continue;if(X.data?.to!=="in_review")continue;Z=Math.max(Z,new Date(X.occurredAt).getTime())}return Z}function mN4($,Z){let X=Ys0($),Q=new Map;for(let Y of $){if(Y.action!=="review_approved"&&Y.action!=="review_changes_requested")continue;if(new Date(Y.occurredAt).getTime()<X)continue;let G=Y.data??{};if(G.reviewer!=="qa"&&G.reviewer!=="code_review")continue;if(Y.action==="review_approved"){if(Z?.verifiedOnly&&G.verified!==!0)continue;Q.set(G.reviewer,"approved")}else Q.set(G.reviewer,"changes_requested")}return Q}function Ag($,Z,X){if(Z.length===0)return!1;let Q=mN4($,X);return Z.every((Y)=>Q.get(Y)==="approved")}var B5="super-agent",_B,ep,xB,CJ8="task-board.item.updated",_J8="task-board.item.deleted";var J3=O(()=>{_B=["qa","code_review"],ep={qa:"QA Agent",code_review:"Code Reviewer"},xB={qa:"qa_agent_enabled",code_review:"code_reviewer_enabled"}});function Gs0($){let Z=(X)=>X instanceof Date?X.toISOString():X;return{id:$.id,taskBoardItemId:$.task_board_item_id,parentId:$.parent_id,authorId:$.author_id,body:$.body,resolved:$.resolved,createdAt:Z($.created_at),updatedAt:Z($.updated_at)}}function iN4($){if($&&typeof $==="object"&&!Array.isArray($)){let Z=$.text;if(typeof Z==="string"&&Z.trim())return Z.trim()}return null}function Ks0($){if($.status!=="in_progress")return!1;let Z=$.threads.filter((X)=>X.hasMessages);if(Z.length===0)return!1;return Z.every((X)=>X.status!==null&&Js0.has(X.status))}function nN4($){let Z=typeof $==="string"?(()=>{try{return JSON.parse($)}catch{return null}})():$;if(!Z||typeof Z!=="object")return!1;let X=Z.githubRepo?.url;return typeof X==="string"&&X.length>0}class vB{db;constructor($){this.db=$}inTransaction($){return this.db.isTransaction?$(this.db):this.db.transaction().execute($)}async list($){let X=(await this.db.selectFrom("task_board_items").selectAll().where("organization_id","=",$).where("dismissed_at","is",null).orderBy("sort_order","asc").execute()).map((Q)=>this.itemFromDbRow(Q));return await this.attachRefs(X,$),X}async getById($,Z){let X=await this.db.selectFrom("task_board_items").selectAll().where("id","=",$).where("organization_id","=",Z).executeTakeFirst();if(!X)return null;let Q=this.itemFromDbRow(X);return await this.attachRefs([Q],Z),Q}async create($){let Z=$4("board"),X=new Date().toISOString(),Q=$.status??"triage",{minOrder:Y}=await this.db.selectFrom("task_board_items").select((J)=>J.fn.min("sort_order").as("minOrder")).where("organization_id","=",$.organizationId).where("status","=",Q).executeTakeFirstOrThrow(),G=await this.db.insertInto("task_board_items").values({id:Z,organization_id:$.organizationId,title:$.title,description:$.description??null,status:Q,priority:$.priority??"medium",assignee_id:$.assigneeId??null,assigned_by:$.assignedBy??null,due_date:$.dueDate??null,external_key:$.externalKey??null,sort_order:(Y??0)-1,created_by:$.by,created_at:X,updated_by:$.by,updated_at:X}).returningAll().executeTakeFirstOrThrow();return this.itemFromDbRow(G)}async update($,Z,X,Q){let Y=await this.db.updateTable("task_board_items").set({...X.title!==void 0?{title:X.title}:{},...X.description!==void 0?{description:X.description}:{},...X.status!==void 0?{status:X.status}:{},...X.priority!==void 0?{priority:X.priority}:{},...X.assigneeId!==void 0?{assignee_id:X.assigneeId}:{},...X.assignedBy!==void 0?{assigned_by:X.assignedBy}:{},...X.dueDate!==void 0?{due_date:X.dueDate}:{},...X.sortOrder!==void 0?{sort_order:X.sortOrder}:{},updated_by:Q,updated_at:new Date().toISOString()}).where("id","=",$).where("organization_id","=",Z).returningAll().executeTakeFirstOrThrow(),G=this.itemFromDbRow(Y);return await this.attachRefs([G],Z),G}async delete($,Z,X){return this.inTransaction(async(Q)=>{let Y=await Q.selectFrom("task_board_items").select(["created_by"]).where("id","=",$).where("organization_id","=",Z).executeTakeFirst();if(!Y)return!1;if(sN({createdBy:Y.created_by}))return await Q.updateTable("task_board_items").set({dismissed_at:new Date().toISOString(),updated_by:X}).where("id","=",$).where("organization_id","=",Z).where("dismissed_at","is",null).execute(),!0;return await Q.deleteFrom("task_board_item_threads").where("task_board_item_id","=",$).where("organization_id","=",Z).execute(),await Q.deleteFrom("task_board_item_prs").where("task_board_item_id","=",$).where("organization_id","=",Z).execute(),await Q.deleteFrom("task_board_items").where("id","=",$).where("organization_id","=",Z).execute(),!0})}async dismissedFindingKeys($,Z){if(Z.length===0)return new Set;let X=await this.db.selectFrom("task_board_items").select(["external_key"]).where("organization_id","=",$).where("external_key","in",Z).where("dismissed_at","is not",null).execute();return new Set(X.flatMap((Q)=>Q.external_key??[]))}async listDismissedFindings($){return(await this.db.selectFrom("task_board_items").select(["external_key","updated_by","dismissed_at"]).where("organization_id","=",$).where("dismissed_at","is not",null).orderBy("dismissed_at","desc").execute()).flatMap((X)=>X.external_key&&X.dismissed_at?[{externalKey:X.external_key,dismissedBy:X.updated_by,dismissedAt:X.dismissed_at instanceof Date?X.dismissed_at.toISOString():X.dismissed_at}]:[])}async restoreDismissedFindings($,Z){if(Z&&Z.length===0)return 0;let X=this.db.updateTable("task_board_items").set({dismissed_at:null}).where("organization_id","=",$).where("dismissed_at","is not",null);if(Z)X=X.where("external_key","in",Z);let Q=await X.executeTakeFirst();return Number(Q.numUpdatedRows??0n)}async setItemTags($,Z,X){await this.inTransaction(async(Q)=>{if(await Q.deleteFrom("task_board_item_tags").where("task_board_item_id","=",$).$if(Z.length>0,(Y)=>Y.where("id","not in",Z)).execute(),Z.length>0)await Q.insertInto("task_board_item_tags").values(Z.map((Y)=>({task_board_item_id:$,id:Y,created_by:X,created_at:new Date().toISOString()}))).onConflict((Y)=>Y.doNothing()).execute()})}async linkThread($,Z,X){await this.db.insertInto("task_board_item_threads").values({task_board_item_id:$,thread_id:Z,organization_id:X}).onConflict((Q)=>Q.columns(["task_board_item_id","thread_id"]).doNothing()).execute()}async linkedTaskIds($,Z){return(await this.db.selectFrom("task_board_item_threads").select("task_board_item_id as taskId").where("thread_id","=",$).where("organization_id","=",Z).execute()).map((Q)=>Q.taskId)}async linkPr($){await this.db.insertInto("task_board_item_prs").values({task_board_item_id:$.taskBoardItemId,organization_id:$.organizationId,url:$.url,pr_number:$.prNumber,repo_owner:$.repoOwner,repo_name:$.repoName,connection_id:$.connectionId??null}).onConflict((Z)=>Z.columns(["task_board_item_id","url"]).doNothing()).execute()}async listPrs($,Z){return(await this.db.selectFrom("task_board_item_prs").select(["url","pr_number as prNumber","repo_owner as repoOwner","repo_name as repoName","connection_id as connectionId","created_at as createdAt"]).where("task_board_item_id","=",$).where("organization_id","=",Z).orderBy("created_at","desc").execute()).map((Q)=>({url:Q.url,number:Q.prNumber,repoOwner:Q.repoOwner,repoName:Q.repoName,connectionId:Q.connectionId??null,createdAt:Q.createdAt instanceof Date?Q.createdAt.toISOString():Q.createdAt}))}async advanceLinkedTasksToReviewOnThreadFinish($,Z){let X=[];for(let Q of await this.linkedTaskIds($,Z)){let Y=await this.getById(Q,Z);if(!Y||!Ks0(Y))continue;X.push(await this.update(Q,Z,{status:"in_review"},Y.updatedBy)),await this.recordActivity({taskBoardItemId:Q,action:"status_changed",actorId:null,data:{from:Y.status,to:"in_review"}}).catch((G)=>console.error("[task-board] in_review activity write failed",G))}return X}async reopenLinkedTasksOnThreadRun($,Z){let X=[];for(let Q of await this.linkedTaskIds($,Z)){let Y=await this.getById(Q,Z);if(!Y||Y.status!=="in_review")continue;X.push(await this.update(Q,Z,{status:"in_progress"},Y.updatedBy))}return X}claimConflictResolution($,Z,X){return this.claimInReviewSuperAgentSlot($,Z,X)}claimReviewChangesBounce($,Z,X){return this.claimInReviewSuperAgentSlot($,Z,X)}async claimInReviewSuperAgentSlot($,Z,X){let Q=await this.db.updateTable("task_board_items").set({status:"in_progress",updated_by:X,updated_at:new Date().toISOString()}).where("id","=",$).where("organization_id","=",Z).where("status","=","in_review").where("assignee_id","=",B5).returningAll().executeTakeFirst();if(!Q)return null;let Y=this.itemFromDbRow(Q);return await this.attachRefs([Y],Z),Y}async attachRefs($,Z){if($.length===0)return;await this.inTransaction(async(X)=>{await this.attachThreads(X,$,Z),await this.attachTags(X,$)})}async attachThreads($,Z,X){let Q=Z.map((J)=>J.id),Y=await $.selectFrom("task_board_item_threads as link").innerJoin("threads as t","t.id","link.thread_id").leftJoinLateral((J)=>J.selectFrom("thread_message_parts as p").select("p.payload as payload").whereRef("p.thread_id","=","link.thread_id").where("p.role","=","assistant").where("p.kind","=","text").orderBy("p.created_at","desc").limit(1).as("lastmsg"),(J)=>J.onTrue()).select((J)=>["link.task_board_item_id as taskId","link.thread_id as threadId","link.created_at as createdAt","t.status as status","t.title as title","t.virtual_mcp_id as virtualMcpId","t.metadata as metadata","lastmsg.payload as lastMessagePayload",J.or([J.exists(J.selectFrom("thread_message_parts as mp").select("mp.id").whereRef("mp.thread_id","=","link.thread_id")),J.exists(J.selectFrom("thread_messages as tm").select("tm.id").whereRef("tm.thread_id","=","link.thread_id"))]).as("hasMessages")]).where("link.organization_id","=",X).where("link.task_board_item_id","in",Q).orderBy("link.created_at","desc").execute(),G=new Map;for(let J of Y){let K={threadId:J.threadId,virtualMcpId:J.virtualMcpId??null,status:J.status??null,title:J.title??null,lastMessage:iN4(J.lastMessagePayload),hasPreview:nN4(J.metadata),hasMessages:!!J.hasMessages,createdAt:J.createdAt instanceof Date?J.createdAt.toISOString():J.createdAt},W=G.get(J.taskId);if(W)W.push(K);else G.set(J.taskId,[K])}for(let J of Z)J.threads=G.get(J.id)??[]}async attachTags($,Z){let X=Z.map((G)=>G.id),Q=await $.selectFrom("task_board_item_tags as link").innerJoin("organization_tags as tag","tag.id","link.id").select(["link.task_board_item_id as taskId","link.created_by as createdBy","link.created_at as createdAt","tag.id as id","tag.name as name","tag.color as color"]).where("link.task_board_item_id","in",X).orderBy("tag.name","asc").execute(),Y=new Map;for(let G of Q){let J={id:G.id,name:G.name,color:G.color??null,createdBy:G.createdBy,createdAt:G.createdAt instanceof Date?G.createdAt.toISOString():G.createdAt},K=Y.get(G.taskId);if(K)K.push(J);else Y.set(G.taskId,[J])}for(let G of Z)G.tags=Y.get(G.id)??[]}async recordActivity($){await this.db.insertInto("task_board_activity").values({id:$4("act"),task_board_item_id:$.taskBoardItemId,action:$.action,actor_id:$.actorId,data:$.data?JSON.stringify($.data):null,occurred_at:new Date().toISOString()}).execute()}async claimReviewer($,Z,X){let Q=`rtok_${crypto.randomUUID()}`,Y=await this.db.insertInto("task_board_review_claims").values({task_board_item_id:$,reviewer:Z,cycle_at:X,token:Q}).onConflict((J)=>J.columns(["task_board_item_id","reviewer","cycle_at"]).doNothing()).returning("token").executeTakeFirst();if(Y)return{claimed:!0,token:Y.token};return{claimed:!1,token:(await this.db.selectFrom("task_board_review_claims").select("token").where("task_board_item_id","=",$).where("reviewer","=",Z).where("cycle_at","=",X).executeTakeFirst())?.token??Q}}async releaseReviewerClaim($,Z,X){await this.db.deleteFrom("task_board_review_claims").where("task_board_item_id","=",$).where("reviewer","=",Z).where("cycle_at","=",X).execute()}async resolveReviewClaimByToken($,Z){let X=await this.db.selectFrom("task_board_review_claims").select(["reviewer","cycle_at"]).where("task_board_item_id","=",$).where("token","=",Z).executeTakeFirst();return X?{reviewer:X.reviewer,cycleAt:X.cycle_at}:null}async recordActivities($){if($.length===0)return;let Z=new Date().toISOString();await this.db.insertInto("task_board_activity").values($.map((X)=>({id:$4("act"),task_board_item_id:X.taskBoardItemId,action:X.action,actor_id:X.actorId,data:X.data?JSON.stringify(X.data):null,occurred_at:Z}))).execute()}async listActivity($,Z){return(await this.db.selectFrom("task_board_activity as a").innerJoin("task_board_items as item","item.id","a.task_board_item_id").selectAll("a").where("item.organization_id","=",Z).where("a.task_board_item_id","=",$).orderBy("a.occurred_at","asc").execute()).map((Q)=>({id:Q.id,taskBoardItemId:Q.task_board_item_id,action:Q.action,actorId:Q.actor_id,data:typeof Q.data==="string"?JSON.parse(Q.data):Q.data??{},occurredAt:Q.occurred_at instanceof Date?Q.occurred_at.toISOString():Q.occurred_at}))}async listComments($,Z){return(await this.db.selectFrom("task_board_comments as c").innerJoin("task_board_items as item","item.id","c.task_board_item_id").selectAll("c").where("item.organization_id","=",Z).where("c.task_board_item_id","=",$).orderBy("c.created_at","asc").execute()).map((Q)=>Gs0(Q))}async createComment($){if(!await this.db.selectFrom("task_board_items").select("id").where("id","=",$.taskBoardItemId).where("organization_id","=",$.organizationId).executeTakeFirst())return null;let X=null;if($.parentId){let Y=await this.db.selectFrom("task_board_comments").select(["id","parent_id"]).where("id","=",$.parentId).where("task_board_item_id","=",$.taskBoardItemId).executeTakeFirst();if(!Y)return null;X=Y.parent_id??Y.id}let Q=await this.db.insertInto("task_board_comments").values({id:$4("cmt"),task_board_item_id:$.taskBoardItemId,parent_id:X,author_id:$.authorId,body:$.body}).returningAll().executeTakeFirstOrThrow();return Gs0(Q)}async updateComment($){let Z=await this.commentInOrg($.id,$.organizationId);if(!Z)return null;if($.body!==void 0&&Z.authorId!==$.callerId)return null;if($.resolved!==void 0&&Z.parentId!==null)return null;let X=await this.db.updateTable("task_board_comments").set({...$.body===void 0?{}:{body:$.body},...$.resolved===void 0?{}:{resolved:$.resolved},updated_at:new Date().toISOString()}).where("id","=",$.id).returningAll().executeTakeFirst();return X?Gs0(X):null}async deleteComment($,Z,X){let Q=await this.commentInOrg($,Z);if(!Q)return!1;if(Q.authorId!==X&&Q.authorId!==B5)return!1;return await this.db.deleteFrom("task_board_comments").where("id","=",$).execute(),!0}async commentInOrg($,Z){let X=await this.db.selectFrom("task_board_comments as c").innerJoin("task_board_items as item","item.id","c.task_board_item_id").select(["c.id","c.author_id","c.parent_id"]).where("c.id","=",$).where("item.organization_id","=",Z).executeTakeFirst();return X?{authorId:X.author_id,parentId:X.parent_id}:null}itemFromDbRow($){return{id:$.id,organizationId:$.organization_id,title:$.title,description:$.description,status:$.status,priority:$.priority,assigneeId:$.assignee_id,assignedBy:$.assigned_by,dueDate:$.due_date instanceof Date?$.due_date.toISOString():$.due_date,sortOrder:$.sort_order,threads:[],tags:[],createdBy:$.created_by,createdAt:$.created_at instanceof Date?$.created_at.toISOString():$.created_at,updatedBy:$.updated_by,updatedAt:$.updated_at instanceof Date?$.updated_at.toISOString():$.updated_at}}}var Js0;var Tg=O(()=>{CB();dX();J3();Js0=new Set(["completed","failed","expired"])});class Ws0{db;constructor($){this.db=$}async create($,Z,X){let Q=crypto.randomUUID(),Y=new Date(Date.now()+600000);return await this.db.insertInto("oauth_pkce_states").values({id:Q,organization_id:Z,user_id:X,code_verifier:$,expires_at:Y,created_at:new Date}).execute(),Q}async consume($,Z,X){let Q=await this.db.deleteFrom("oauth_pkce_states").where("id","=",$).where("organization_id","=",Z).where("user_id","=",X).returningAll().executeTakeFirst();if(!Q)throw Error("Invalid or expired OAuth state token");if((Q.expires_at instanceof Date?Q.expires_at:new Date(Q.expires_at))<new Date)throw Error("OAuth state token has expired");return Q.code_verifier}}class Hs0{db;vault;constructor($,Z){this.db=$;this.vault=Z}async upsert($){let Z=await this.vault.encrypt($.accessToken),X=$.expiresAt??null,Q=new Date;return await this.db.insertInto("claude_subscriptions").values({user_id:$.userId,encrypted_access_token:Z,expires_at:X,created_at:Q}).onConflict((Y)=>Y.column("user_id").doUpdateSet({encrypted_access_token:Z,expires_at:X,created_at:Q})).execute(),{linkedAt:Q.toISOString(),expiresAt:X?.toISOString()??null}}async find($){let Z=await this.db.selectFrom("claude_subscriptions").select(["created_at","expires_at"]).where("user_id","=",$).executeTakeFirst();if(!Z)return null;return{linkedAt:new Date(Z.created_at).toISOString(),expiresAt:Z.expires_at?new Date(Z.expires_at).toISOString():null}}async findLiveToken($){let Z=await this.db.selectFrom("claude_subscriptions").select(["encrypted_access_token","expires_at"]).where("user_id","=",$).executeTakeFirst();if(!Z)return null;if(Z.expires_at&&new Date(Z.expires_at).getTime()<=Date.now())return null;return this.vault.decrypt(Z.encrypted_access_token)}async delete($){await this.db.deleteFrom("claude_subscriptions").where("user_id","=",$).execute()}}function VW($){if($==null)return"unknown error";if(typeof $==="string")return $;if($ instanceof Error)return $.message;return JSON.stringify($)}function NY0($){if($===null||typeof $==="string"||typeof $==="number"||typeof $==="boolean")return!0;if(Array.isArray($))return $.every(NY0);if(typeof $==="object")return Object.entries($).every(([Z,X])=>typeof Z==="string"&&(X===void 0||NY0(X)));return!1}function Ns0($){return Array.isArray($)&&$.every(NY0)}function $t($){return $!=null&&typeof $==="object"&&Object.entries($).every(([Z,X])=>typeof Z==="string"&&(X===void 0||NY0(X)))}var KK8="vercel.ai.error",pN4,xJ8,vJ8,L1,WK8="AI_APICallError",HK8,tN4,fJ8,bJ8,N4,NK8="AI_EmptyResponseBodyError",UK8,oN4,yJ8,gJ8,UY0,FK8="AI_InvalidArgumentError",wK8,rN4,hJ8,uJ8,fB,BK8="AI_InvalidPromptError",OK8,aN4,cJ8,lJ8,K3,LK8="AI_InvalidResponseDataError",DK8,sN4,dJ8,mJ8,Rg,EK8="AI_JSONParseError",zK8,eN4,iJ8,nJ8,eN,jK8="AI_LoadAPIKeyError",PK8,$U4,pJ8,tJ8,Kz,AK8="AI_LoadSettingError",TK8,ZU4,oJ8,rJ8,RK8,IK8="AI_NoContentGeneratedError",qK8,XU4,aJ8,sJ8,MK8,kK8="AI_NoSuchModelError",SK8,QU4,eJ8,$K8,h5,VK8="AI_TooManyEmbeddingValuesForCallError",CK8,YU4,ZK8,XK8,Ig,_K8="AI_TypeValidationError",xK8,GU4,QK8,YK8,O5,vK8="AI_UnsupportedFunctionalityError",fK8,JU4,GK8,JK8,v4;var Q8=O(()=>{pN4=Symbol.for(KK8),L1=class $ extends(vJ8=Error,xJ8=pN4,vJ8){constructor({name:Z,message:X,cause:Q}){super(X);this[xJ8]=!0,this.name=Z,this.cause=Q}static isInstance(Z){return $.hasMarker(Z,KK8)}static hasMarker(Z,X){let Q=Symbol.for(X);return Z!=null&&typeof Z==="object"&&Q in Z&&typeof Z[Q]==="boolean"&&Z[Q]===!0}},HK8=`vercel.ai.error.${WK8}`,tN4=Symbol.for(HK8),N4=class extends(bJ8=L1,fJ8=tN4,bJ8){constructor({message:$,url:Z,requestBodyValues:X,statusCode:Q,responseHeaders:Y,responseBody:G,cause:J,isRetryable:K=Q!=null&&(Q===408||Q===409||Q===429||Q>=500),data:W}){super({name:WK8,message:$,cause:J});this[fJ8]=!0,this.url=Z,this.requestBodyValues=X,this.statusCode=Q,this.responseHeaders=Y,this.responseBody=G,this.isRetryable=K,this.data=W}static isInstance($){return L1.hasMarker($,HK8)}},UK8=`vercel.ai.error.${NK8}`,oN4=Symbol.for(UK8),UY0=class extends(gJ8=L1,yJ8=oN4,gJ8){constructor({message:$="Empty response body"}={}){super({name:NK8,message:$});this[yJ8]=!0}static isInstance($){return L1.hasMarker($,UK8)}};wK8=`vercel.ai.error.${FK8}`,rN4=Symbol.for(wK8),fB=class extends(uJ8=L1,hJ8=rN4,uJ8){constructor({message:$,cause:Z,argument:X}){super({name:FK8,message:$,cause:Z});this[hJ8]=!0,this.argument=X}static isInstance($){return L1.hasMarker($,wK8)}},OK8=`vercel.ai.error.${BK8}`,aN4=Symbol.for(OK8),K3=class extends(lJ8=L1,cJ8=aN4,lJ8){constructor({prompt:$,message:Z,cause:X}){super({name:BK8,message:`Invalid prompt: ${Z}`,cause:X});this[cJ8]=!0,this.prompt=$}static isInstance($){return L1.hasMarker($,OK8)}},DK8=`vercel.ai.error.${LK8}`,sN4=Symbol.for(DK8),Rg=class extends(mJ8=L1,dJ8=sN4,mJ8){constructor({data:$,message:Z=`Invalid response data: ${JSON.stringify($)}.`}){super({name:LK8,message:Z});this[dJ8]=!0,this.data=$}static isInstance($){return L1.hasMarker($,DK8)}},zK8=`vercel.ai.error.${EK8}`,eN4=Symbol.for(zK8),eN=class extends(nJ8=L1,iJ8=eN4,nJ8){constructor({text:$,cause:Z}){super({name:EK8,message:`JSON parsing failed: Text: ${$}.
|
|
2275
2275
|
Error message: ${VW(Z)}`,cause:Z});this[iJ8]=!0,this.text=$}static isInstance($){return L1.hasMarker($,zK8)}},PK8=`vercel.ai.error.${jK8}`,$U4=Symbol.for(PK8),Kz=class extends(tJ8=L1,pJ8=$U4,tJ8){constructor({message:$}){super({name:jK8,message:$});this[pJ8]=!0}static isInstance($){return L1.hasMarker($,PK8)}},TK8=`vercel.ai.error.${AK8}`,ZU4=Symbol.for(TK8),RK8=class extends(rJ8=L1,oJ8=ZU4,rJ8){constructor({message:$}){super({name:AK8,message:$});this[oJ8]=!0}static isInstance($){return L1.hasMarker($,TK8)}},qK8=`vercel.ai.error.${IK8}`,XU4=Symbol.for(qK8),MK8=class extends(sJ8=L1,aJ8=XU4,sJ8){constructor({message:$="No content generated."}={}){super({name:IK8,message:$});this[aJ8]=!0}static isInstance($){return L1.hasMarker($,qK8)}},SK8=`vercel.ai.error.${kK8}`,QU4=Symbol.for(SK8),h5=class extends($K8=L1,eJ8=QU4,$K8){constructor({errorName:$=kK8,modelId:Z,modelType:X,message:Q=`No such ${X}: ${Z}`}){super({name:$,message:Q});this[eJ8]=!0,this.modelId=Z,this.modelType=X}static isInstance($){return L1.hasMarker($,SK8)}},CK8=`vercel.ai.error.${VK8}`,YU4=Symbol.for(CK8),Ig=class extends(XK8=L1,ZK8=YU4,XK8){constructor($){super({name:VK8,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[ZK8]=!0,this.provider=$.provider,this.modelId=$.modelId,this.maxEmbeddingsPerCall=$.maxEmbeddingsPerCall,this.values=$.values}static isInstance($){return L1.hasMarker($,CK8)}},xK8=`vercel.ai.error.${_K8}`,GU4=Symbol.for(xK8),O5=class $ extends(YK8=L1,QK8=GU4,YK8){constructor({value:Z,cause:X,context:Q}){let Y="Type validation failed";if(Q==null?void 0:Q.field)Y+=` for ${Q.field}`;if((Q==null?void 0:Q.entityName)||(Q==null?void 0:Q.entityId)){Y+=" (";let G=[];if(Q.entityName)G.push(Q.entityName);if(Q.entityId)G.push(`id: "${Q.entityId}"`);Y+=G.join(", "),Y+=")"}super({name:_K8,message:`${Y}: Value: ${JSON.stringify(Z)}.
|
|
2276
2276
|
Error message: ${VW(X)}`,cause:X});this[QK8]=!0,this.value=Z,this.context=Q}static isInstance(Z){return L1.hasMarker(Z,xK8)}static wrap({value:Z,cause:X,context:Q}){var Y,G,J;if($.isInstance(X)&&X.value===Z&&((Y=X.context)==null?void 0:Y.field)===(Q==null?void 0:Q.field)&&((G=X.context)==null?void 0:G.entityName)===(Q==null?void 0:Q.entityName)&&((J=X.context)==null?void 0:J.entityId)===(Q==null?void 0:Q.entityId))return X;return new $({value:Z,cause:X,context:Q})}},fK8=`vercel.ai.error.${vK8}`,JU4=Symbol.for(fK8),v4=class extends(JK8=L1,GK8=JU4,JK8){constructor({functionality:$,message:Z=`'${$}' functionality not supported.`}){super({name:vK8,message:Z});this[GK8]=!0,this.functionality=$}static isInstance($){return L1.hasMarker($,fK8)}}});import*as OY0 from"zod/v4";import{ZodFirstPartyTypeKind as E4}from"zod/v3";import{ZodFirstPartyTypeKind as RU4}from"zod/v3";import{ZodFirstPartyTypeKind as FY0}from"zod/v3";function s8(...$){return $.reduce((Z,X)=>({...Z,...X!=null?X:{}}),{})}function wY0({tools:$=[],providerToolNames:Z,resolveProviderToolName:X}){var Q;let Y={},G={};for(let J of $)if(J.type==="provider"){let K=(Q=X==null?void 0:X(J))!=null?Q:(J.id in Z)?Z[J.id]:void 0;if(K==null)continue;Y[J.name]=K,G[K]=J.name}return{toProviderToolName:(J)=>{var K;return(K=Y[J])!=null?K:J},toCustomToolName:(J)=>{var K;return(K=G[J])!=null?K:J}}}async function cQ($,Z){if($==null)return Promise.resolve();let X=Z==null?void 0:Z.abortSignal;return new Promise((Q,Y)=>{if(X==null?void 0:X.aborted){Y(bK8());return}let G=setTimeout(()=>{J(),Q()},$),J=()=>{clearTimeout(G),X==null||X.removeEventListener("abort",K)},K=()=>{J(),Y(bK8())};X==null||X.addEventListener("abort",K)})}function bK8(){return new DOMException("Delay was aborted","AbortError")}function qg($){return Object.fromEntries([...$.headers])}function T9($){let Z=$.replace(/-/g,"+").replace(/_/g,"/"),X=WU4(Z);return Uint8Array.from(X,(Q)=>Q.codePointAt(0))}function dQ($){let Z="";for(let X=0;X<$.length;X++)Z+=String.fromCodePoint($[X]);return KU4(Z)}function UZ($){return $ instanceof Uint8Array?dQ($):$}function lK8($,Z={}){let{useArrayBrackets:X=!0}=Z,Q=new FormData;for(let[Y,G]of Object.entries($)){if(G==null)continue;if(Array.isArray(G)){if(G.length===1){Q.append(Y,G[0]);continue}let J=X?`${Y}[]`:Y;for(let K of G)Q.append(J,K);continue}Q.append(Y,G)}return Q}async function Zt($){var Z;try{await((Z=$.body)==null?void 0:Z.cancel())}catch(X){}}function NU4($=globalThis){return $.window!=null}function UU4($){let Z;try{Z=new URL($)}catch(Q){throw new NZ({url:$,message:`Invalid URL: ${$}`})}if(Z.protocol==="data:")return;if(Z.protocol!=="http:"&&Z.protocol!=="https:")throw new NZ({url:$,message:`URL scheme must be http, https, or data, got ${Z.protocol}`});let X=Z.hostname.toLowerCase().replace(/\.+$/,"");if(!X)throw new NZ({url:$,message:"URL must have a hostname"});if(X==="localhost"||X.endsWith(".local")||X.endsWith(".localhost"))throw new NZ({url:$,message:`URL with hostname ${X} is not allowed`});if(X.startsWith("[")&&X.endsWith("]")){let Q=X.slice(1,-1);if(wU4(Q))throw new NZ({url:$,message:`URL with IPv6 address ${X} is not allowed`});return}if(iK8(X)){if(nK8(X))throw new NZ({url:$,message:`URL with IP address ${X} is not allowed`});return}}function iK8($){let Z=$.split(".");if(Z.length!==4)return!1;return Z.every((X)=>{let Q=Number(X);return Number.isInteger(Q)&&Q>=0&&Q<=255&&String(Q)===X})}function nK8($){let Z=$.split(".").map(Number),[X,Q,Y]=Z;if(X===0)return!0;if(X===10)return!0;if(X===100&&Q>=64&&Q<=127)return!0;if(X===127)return!0;if(X===169&&Q===254)return!0;if(X===172&&Q>=16&&Q<=31)return!0;if(X===192&&Q===0&&Y===0)return!0;if(X===192&&Q===168)return!0;if(X===198&&(Q===18||Q===19))return!0;if(X>=240)return!0;return!1}function FU4($){let Z=$.toLowerCase(),X=Z.indexOf("%");if(X!==-1)Z=Z.slice(0,X);let Q=Z.split("::");if(Q.length>2)return null;let Y=(J)=>{if(J==="")return[];let K=[],W=J.split(":");for(let H=0;H<W.length;H++){let N=W[H];if(N.includes(".")){if(H!==W.length-1||!iK8(N))return null;let[U,F,w,B]=N.split(".").map(Number);K.push(U<<8|F,w<<8|B);continue}if(!/^[0-9a-f]{1,4}$/.test(N))return null;K.push(parseInt(N,16))}return K},G=Y(Q[0]);if(G===null)return null;if(Q.length===2){let J=Y(Q[1]);if(J===null)return null;let K=8-G.length-J.length;if(K<0)return null;return[...G,...Array(K).fill(0),...J]}return G.length===8?G:null}function wU4($){let Z=FU4($);if(Z===null)return!0;let X=(Y)=>Z.slice(0,Y).every((G)=>G===0);if(X(7)&&(Z[7]===0||Z[7]===1))return!0;if((Z[0]&65024)===64512)return!0;if((Z[0]&65472)===65152)return!0;if((Z[0]&65472)===65216)return!0;if((Z[0]&65280)===65280)return!0;if(X(6)||X(5)&&Z[5]===65535||X(4)&&Z[4]===65535&&Z[5]===0||Z[0]===100&&Z[1]===65435&&Z[2]===0&&Z[3]===0&&Z[4]===0&&Z[5]===0||Z[0]===100&&Z[1]===65435&&Z[2]===1){let Y=Z[6]>>8&255,G=Z[6]&255,J=Z[7]>>8&255,K=Z[7]&255;return nK8(`${Y}.${G}.${J}.${K}`)}return!1}async function Os0({url:$,headers:Z,abortSignal:X,maxRedirects:Q=BU4}){let Y={signal:X};if(Z!==void 0)Y.headers=Z;let G=$;for(let J=0;J<=Q;J++){UU4(G);let K=await fetch(G,{...Y,redirect:"manual"});if(K.type==="opaqueredirect"){if(!NU4())throw new NZ({url:$,message:`Redirect from ${G} could not be validated and was blocked`});return await fetch(G,{...Y,redirect:"follow"})}let W=K.headers.get("location");if(K.status>=300&&K.status<400&&W){await Zt(K),G=new URL(W,G).toString();continue}return K}throw new NZ({url:$,message:`Too many redirects (max ${Q})`})}async function Ls0({response:$,url:Z,maxBytes:X=BY0}){let Q=$.headers.get("content-length");if(Q!=null){let N=parseInt(Q,10);if(!isNaN(N)&&N>X)throw await Zt($),new NZ({url:Z,message:`Download of ${Z} exceeded maximum size of ${X} bytes (Content-Length: ${N}).`})}let Y=$.body;if(Y==null)return new Uint8Array(0);let G=Y.getReader(),J=[],K=0;try{while(!0){let{done:N,value:U}=await G.read();if(N)break;if(K+=U.length,K>X)throw new NZ({url:Z,message:`Download of ${Z} exceeded maximum size of ${X} bytes.`});J.push(U)}}finally{try{await G.cancel()}finally{G.releaseLock()}}let W=new Uint8Array(K),H=0;for(let N of J)W.set(N,H),H+=N.length;return W}async function Ds0($,Z){var X,Q;try{let Y=await Os0({url:$,abortSignal:Z==null?void 0:Z.abortSignal});if(!Y.ok)throw await Zt(Y),new NZ({url:$,statusCode:Y.status,statusText:Y.statusText});let G=await Ls0({response:Y,url:$,maxBytes:(X=Z==null?void 0:Z.maxBytes)!=null?X:BY0}),J=(Q=Y.headers.get("content-type"))!=null?Q:void 0;return new Blob([G],J?{type:J}:void 0)}catch(Y){if(NZ.isInstance(Y))throw Y;throw new NZ({url:$,cause:Y})}}function Mg($){if($==null)return"unknown error";if(typeof $==="string")return $;if($ instanceof Error)return $.message;return JSON.stringify($)}function uQ($){return($ instanceof Error||$ instanceof DOMException)&&($.name==="AbortError"||$.name==="ResponseAborted"||$.name==="TimeoutError")}function DU4($){if(!($ instanceof Error))return!1;let Z=$.code;if(typeof Z==="string"&&LU4.includes(Z))return!0;return!1}function pK8({error:$,url:Z,requestBodyValues:X}){if(uQ($))return $;if($ instanceof TypeError&&OU4.includes($.message.toLowerCase())){let Q=$.cause;if(Q!=null)return new N4({message:`Cannot connect to API: ${Q.message}`,cause:Q,url:Z,requestBodyValues:X,isRetryable:!0})}if(DU4($))return new N4({message:`Cannot connect to API: ${$.message}`,cause:$,url:Z,requestBodyValues:X,isRetryable:!0});return $}function bB($=globalThis){var Z,X,Q;if($.window)return"runtime/browser";if((Z=$.navigator)==null?void 0:Z.userAgent)return`runtime/${$.navigator.userAgent.toLowerCase()}`;if((Q=(X=$.process)==null?void 0:X.versions)==null?void 0:Q.node)return`runtime/node.js/${$.process.version.substring(0)}`;if($.EdgeRuntime)return"runtime/vercel-edge";return"runtime/unknown"}function yB($){if($==null)return{};let Z={};if($ instanceof Headers)$.forEach((X,Q)=>{Z[Q.toLowerCase()]=X});else{if(!Array.isArray($))$=Object.entries($);for(let[X,Q]of $)if(Q!=null)Z[X.toLowerCase()]=Q}return Z}function s4($,...Z){let X=new Headers(yB($)),Q=X.get("user-agent")||"";return X.set("user-agent",[Q,...Z].filter(Boolean).join(" ")),Object.fromEntries(X.entries())}function Hz($){return $!=null}function oK8($,Z){try{return new URL($).origin===new URL(Z).origin}catch(X){return!1}}function rK8({mediaType:$,url:Z,supportedUrls:X}){return Z=Z.toLowerCase(),$=$.toLowerCase(),Object.entries(X).map(([Q,Y])=>{let G=Q.toLowerCase();return G==="*"||G==="*/*"?{mediaTypePrefix:"",regexes:Y}:{mediaTypePrefix:G.replace(/\*/,""),regexes:Y}}).filter(({mediaTypePrefix:Q})=>$.startsWith(Q)).flatMap(({regexes:Q})=>Q).some((Q)=>Q.test(Z))}function kg({apiKey:$,environmentVariableName:Z,apiKeyParameterName:X="apiKey",description:Q}){if(typeof $==="string")return $;if($!=null)throw new Kz({message:`${Q} API key must be a string.`});if(typeof process>"u")throw new Kz({message:`${Q} API key is missing. Pass it using the '${X}' parameter. Environment variables are not supported in this environment.`});if($=process.env[Z],$==null)throw new Kz({message:`${Q} API key is missing. Pass it using the '${X}' parameter or the ${Z} environment variable.`});if(typeof $!=="string")throw new Kz({message:`${Q} API key must be a string. The value of the ${Z} environment variable is not a string.`});return $}function CW({settingValue:$,environmentVariableName:Z}){if(typeof $==="string")return $;if($!=null||typeof process>"u")return;if($=process.env[Z],$==null||typeof $!=="string")return;return $}function aK8($){var Z;let[X,Q=""]=$.toLowerCase().split("/");return(Z={mpeg:"mp3","x-wav":"wav",opus:"ogg",mp4:"m4a","x-m4a":"m4a"}[Q])!=null?Z:Q}function hK8($){let Z=JSON.parse($);if(Z===null||typeof Z!=="object")return Z;if(zU4.test($)===!1&&jU4.test($)===!1)return Z;return PU4(Z)}function PU4($){let Z=[$];while(Z.length){let X=Z;Z=[];for(let Q of X){if(Object.prototype.hasOwnProperty.call(Q,"__proto__"))throw SyntaxError("Object contains forbidden prototype property");if(Object.prototype.hasOwnProperty.call(Q,"constructor")&&Q.constructor!==null&&typeof Q.constructor==="object"&&Object.prototype.hasOwnProperty.call(Q.constructor,"prototype"))throw SyntaxError("Object contains forbidden prototype property");for(let Y in Q){let G=Q[Y];if(G&&typeof G==="object")Z.push(G)}}}return $}function Es0($){let{stackTraceLimit:Z}=Error;try{Error.stackTraceLimit=0}catch(X){return hK8($)}try{return hK8($)}finally{Error.stackTraceLimit=Z}}function zs0($){if($.type==="object"||Array.isArray($.type)&&$.type.includes("object")){$.additionalProperties=!1;let{properties:X}=$;if(X!=null)for(let Q of Object.keys(X))X[Q]=Wz(X[Q])}if($.items!=null)$.items=Array.isArray($.items)?$.items.map(Wz):Wz($.items);if($.anyOf!=null)$.anyOf=$.anyOf.map(Wz);if($.allOf!=null)$.allOf=$.allOf.map(Wz);if($.oneOf!=null)$.oneOf=$.oneOf.map(Wz);let{definitions:Z}=$;if(Z!=null)for(let X of Object.keys(Z))Z[X]=Wz(Z[X]);return $}function Wz($){if(typeof $==="boolean")return $;return zs0($)}function rY(){return{}}function IU4($,Z){var X,Q,Y;let G={type:"array"};if(((X=$.type)==null?void 0:X._def)&&((Y=(Q=$.type)==null?void 0:Q._def)==null?void 0:Y.typeName)!==RU4.ZodAny)G.items=E$($.type._def,{...Z,currentPath:[...Z.currentPath,"items"]});if($.minLength)G.minItems=$.minLength.value;if($.maxLength)G.maxItems=$.maxLength.value;if($.exactLength)G.minItems=$.exactLength.value,G.maxItems=$.exactLength.value;return G}function qU4($){let Z={type:"integer",format:"int64"};if(!$.checks)return Z;for(let X of $.checks)switch(X.kind){case"min":if(X.inclusive)Z.minimum=X.value;else Z.exclusiveMinimum=X.value;break;case"max":if(X.inclusive)Z.maximum=X.value;else Z.exclusiveMaximum=X.value;break;case"multipleOf":Z.multipleOf=X.value;break}return Z}function MU4(){return{type:"boolean"}}function sK8($,Z){return E$($.type._def,Z)}function eK8($,Z,X){let Q=X!=null?X:Z.dateStrategy;if(Array.isArray(Q))return{anyOf:Q.map((Y,G)=>eK8($,Z,Y))};switch(Q){case"string":case"format:date-time":return{type:"string",format:"date-time"};case"format:date":return{type:"string",format:"date"};case"integer":return SU4($)}}function VU4($,Z){return{...E$($.innerType._def,Z),default:$.defaultValue()}}function CU4($,Z){return Z.effectStrategy==="input"?E$($.schema._def,Z):rY()}function _U4($){return{type:"string",enum:Array.from($.values)}}function vU4($,Z){let X=[E$($.left._def,{...Z,currentPath:[...Z.currentPath,"allOf","0"]}),E$($.right._def,{...Z,currentPath:[...Z.currentPath,"allOf","1"]})].filter((Y)=>!!Y),Q=[];return X.forEach((Y)=>{if(xU4(Y))Q.push(...Y.allOf);else{let G=Y;if("additionalProperties"in Y&&Y.additionalProperties===!1){let{additionalProperties:J,...K}=Y;G=K}Q.push(G)}}),Q.length?{allOf:Q}:void 0}function fU4($){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 $W8($,Z){let X={type:"string"};if($.checks)for(let Q of $.checks)switch(Q.kind){case"min":X.minLength=typeof X.minLength==="number"?Math.max(X.minLength,Q.value):Q.value;break;case"max":X.maxLength=typeof X.maxLength==="number"?Math.min(X.maxLength,Q.value):Q.value;break;case"email":switch(Z.emailStrategy){case"format:email":uJ(X,"email",Q.message,Z);break;case"format:idn-email":uJ(X,"idn-email",Q.message,Z);break;case"pattern:zod":sX(X,hJ.email,Q.message,Z);break}break;case"url":uJ(X,"uri",Q.message,Z);break;case"uuid":uJ(X,"uuid",Q.message,Z);break;case"regex":sX(X,Q.regex,Q.message,Z);break;case"cuid":sX(X,hJ.cuid,Q.message,Z);break;case"cuid2":sX(X,hJ.cuid2,Q.message,Z);break;case"startsWith":sX(X,RegExp(`^${Fs0(Q.value,Z)}`),Q.message,Z);break;case"endsWith":sX(X,RegExp(`${Fs0(Q.value,Z)}$`),Q.message,Z);break;case"datetime":uJ(X,"date-time",Q.message,Z);break;case"date":uJ(X,"date",Q.message,Z);break;case"time":uJ(X,"time",Q.message,Z);break;case"duration":uJ(X,"duration",Q.message,Z);break;case"length":X.minLength=typeof X.minLength==="number"?Math.max(X.minLength,Q.value):Q.value,X.maxLength=typeof X.maxLength==="number"?Math.min(X.maxLength,Q.value):Q.value;break;case"includes":{sX(X,RegExp(Fs0(Q.value,Z)),Q.message,Z);break}case"ip":{if(Q.version!=="v6")uJ(X,"ipv4",Q.message,Z);if(Q.version!=="v4")uJ(X,"ipv6",Q.message,Z);break}case"base64url":sX(X,hJ.base64url,Q.message,Z);break;case"jwt":sX(X,hJ.jwt,Q.message,Z);break;case"cidr":{if(Q.version!=="v6")sX(X,hJ.ipv4Cidr,Q.message,Z);if(Q.version!=="v4")sX(X,hJ.ipv6Cidr,Q.message,Z);break}case"emoji":sX(X,hJ.emoji(),Q.message,Z);break;case"ulid":{sX(X,hJ.ulid,Q.message,Z);break}case"base64":{switch(Z.base64Strategy){case"format:binary":{uJ(X,"binary",Q.message,Z);break}case"contentEncoding:base64":{X.contentEncoding="base64";break}case"pattern:zod":{sX(X,hJ.base64,Q.message,Z);break}}break}case"nanoid":sX(X,hJ.nanoid,Q.message,Z);case"toLowerCase":case"toUpperCase":case"trim":break;default:}return X}function Fs0($,Z){return Z.patternStrategy==="escape"?yU4($):$}function yU4($){let Z="";for(let X=0;X<$.length;X++){if(!bU4.has($[X]))Z+="\\";Z+=$[X]}return Z}function uJ($,Z,X,Q){var Y;if($.format||((Y=$.anyOf)==null?void 0:Y.some((G)=>G.format))){if(!$.anyOf)$.anyOf=[];if($.format)$.anyOf.push({format:$.format}),delete $.format;$.anyOf.push({format:Z,...X&&Q.errorMessages&&{errorMessage:{format:X}}})}else $.format=Z}function sX($,Z,X,Q){var Y;if($.pattern||((Y=$.allOf)==null?void 0:Y.some((G)=>G.pattern))){if(!$.allOf)$.allOf=[];if($.pattern)$.allOf.push({pattern:$.pattern}),delete $.pattern;$.allOf.push({pattern:cK8(Z,Q),...X&&Q.errorMessages&&{errorMessage:{pattern:X}}})}else $.pattern=cK8(Z,Q)}function cK8($,Z){var X;if(!Z.applyRegexFlags||!$.flags)return $.source;let Q={i:$.flags.includes("i"),m:$.flags.includes("m"),s:$.flags.includes("s")},Y=Q.i?$.source.toLowerCase():$.source,G="",J=!1,K=!1,W=!1;for(let H=0;H<Y.length;H++){if(J){G+=Y[H],J=!1;continue}if(Q.i){if(K){if(Y[H].match(/[a-z]/)){if(W)G+=Y[H],G+=`${Y[H-2]}-${Y[H]}`.toUpperCase(),W=!1;else if(Y[H+1]==="-"&&((X=Y[H+2])==null?void 0:X.match(/[a-z]/)))G+=Y[H],W=!0;else G+=`${Y[H]}${Y[H].toUpperCase()}`;continue}}else if(Y[H].match(/[a-z]/)){G+=`[${Y[H]}${Y[H].toUpperCase()}]`;continue}}if(Q.m){if(Y[H]==="^"){G+=`(^|(?<=[\r
|
|
2277
2277
|
]))`;continue}else if(Y[H]==="$"){G+=`($|(?=[\r
|
|
@@ -2787,7 +2787,7 @@ ${$.description}
|
|
|
2787
2787
|
`):Z?.feedback?[Z.pr?`A reviewer requested changes on the existing pull request #${Z.pr.number} (${Z.pr.url}):`:"A reviewer requested changes on your previous work:",Z.feedback,Z.pr?`Load the repo, then CHECK OUT that PR's branch (e.g. \`gh pr checkout ${Z.pr.number}\`) before editing, address the feedback, commit, and push to update the SAME pull request \u2014 do NOT open a new one or start a new branch.`:"Address this feedback.",""].join(`
|
|
2788
2788
|
`):"","How to work:","- First decide whether this task requires changing code in a repository. Some tasks (research, answering a question, planning) don't. If it doesn't, just do the work directly \u2014 don't load a repo or open a PR.","- If it DOES need code changes: use the `load_repo` tool to load the relevant repository, then make the change, commit on a new branch, push, and open a pull request. Only then does a PR apply.","- Prefer the GitHub tool to open the PR. If it errors or targets the wrong repo, fall back to `git push` + the GitHub REST API (the auth token is embedded in the `origin` URL).","- If a dev server is running it hot-reloads your changes \u2014 don't restart it, hunt for its port, or run a full typecheck/build just to verify a small edit.","- Change only what the task needs. Don't trace the definition of a pre-existing symbol that's incidental to your change \u2014 note it in one line and move on. Prefer one or two broad searches over many narrow retries.","- Only if you hit a genuine blocker a human must clear (see above) may you call `user_ask` \u2014 otherwise keep going and finish the task.","",`(task id: ${$.id})`].join(`
|
|
2789
2789
|
`)}async function za($,Z,X){await kJ8($,Z);try{let Q=await uC8($,Z.organizationId);if(Q){let Y="repo"in Q?Q.repo:null;await Ea($,Z,{title:`Super Agent: ${Z.title}`,prompt:cC8(Z,Y,{...X,..."choices"in Q?{repoChoices:Q.choices}:{}}),temperature:0.5,harnessId:"claude-code",...Y?{repo:Y}:{}});return}await Ea($,Z,{title:`Super Agent: ${Z.title}`,prompt:Fl4(Z,X),temperature:0.5})}catch(Q){throw await HY0($.storage.organizationBilling,Z.organizationId,Z.id),Q}}var Ku=O(()=>{J3();CB();i91();lC8()});import{z as MP0}from"zod";async function UY($,Z){try{await $.storage.taskBoard.recordActivity(Z)}catch(X){console.error("[task-board] activity log write failed",X)}}async function dC8($,Z){if(Z.length===0)return;try{await $.storage.taskBoard.recordActivities(Z)}catch(X){console.error("[task-board] activity log write failed",X)}}var n91;var fU=O(()=>{t0();KH();n91=o({name:"TASK_BOARD_ACTIVITY_LIST",description:"List a task board item's change history (timeline, oldest first).",annotations:{title:"List Task Activity",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:MP0.object({taskBoardItemId:MP0.string()}),outputSchema:MP0.object({activity:MP0.array(eq8)}),handler:async($,Z)=>{F0(Z),await Z.access.check();let X=Z.organization?.id;if(!X)throw Error("Organization ID required (no active organization in context)");return{activity:await Z.storage.taskBoard.listActivity($.taskBoardItemId,X)}}})});import{z as iO}from"zod";var p91;var mC8=O(()=>{t0();KH();Y51();Ku();fU();HQ();p91=o({name:"TASK_BOARD_ITEM_CREATE",description:"Create a new task board item for the organization.",annotations:{title:"Create Task Board Item",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!1},inputSchema:iO.object({title:iO.string().min(1),description:iO.string().nullable().optional(),status:SU.optional(),priority:C_.optional(),assigneeId:iO.string().nullable().optional(),dueDate:iO.string().datetime().nullable().optional(),tagIds:iO.array(iO.string()).optional()}),outputSchema:iO.object({item:mh}),handler:async($,Z)=>{F0(Z),await Z.access.check();let X=Z.organization?.id;if(!X)throw Error("Organization ID required (no active organization in context)");if($.assigneeId)await zj0(Z,X,$.assigneeId);let Q=$.assigneeId===B5;if($.tagIds?.length){let G=await Z.storage.tags.listOrgTags(X),J=new Set(G.map((K)=>K.id));for(let K of $.tagIds)if(!J.has(K))throw Error(`Tag not found: ${K}`)}let Y=await Z.storage.taskBoard.create({organizationId:X,title:$.title,description:$.description??null,status:Q?"todo":$.status,priority:$.priority,assigneeId:$.assigneeId??null,assignedBy:$.assigneeId?P1(Z):null,dueDate:$.dueDate??null,by:P1(Z)});if($.tagIds?.length)await Z.storage.taskBoard.setItemTags(Y.id,$.tagIds,P1(Z)),Y=await Z.storage.taskBoard.getById(Y.id,X);return await UY(Z,{taskBoardItemId:Y.id,action:"created",actorId:P1(Z)}),w9(X,Y),await Ju(Z,Y),{item:Y}}})});function wl4($){if($.status==="completed")return"advance";if($.status==="failed"&&$.messageStorageVersion===2&&YP0($))return"nudge";return"none"}async function Ol4($,Z,X){let Q=Z.organizationId,Y=await EX($,"smart"),G=X.virtualMcpId??ZE(Q),J={id:`stall-nudge-${Z.id}-${X.threadId}`,role:"user",parts:[{type:"text",text:Bl4}]};await new jX({storage:$.storage.threads.messageParts(),orgId:Q,threadId:X.threadId,runId:X.threadId}).emitRequestMessage(J),await xU({threadId:X.threadId,source:"background-tool",request:{messages:[J],models:{credentialId:Y.credentialId,thinking:{id:Y.modelId,title:Y.modelMeta.title}},agent:{id:G},temperature:0.5,toolApprovalLevel:"auto",mode:"default",organizationId:Q,userId:Z.assignedBy??Z.createdBy,harnessId:"decopilot",sandboxProviderKind:"agent-sandbox",taskId:X.threadId,runMetadata:jj0(Z)}},{workflowID:`stall-nudge:${Z.id}:${X.threadId}`})}async function Ll4($,Z){let X=await $.storage.threads.get(Z);if(!X)return"none";return wl4({status:X.status,messageStorageVersion:X.message_storage_version,harnessId:X.harness_id,sandboxProviderKind:X.sandbox_provider_kind})}async function iC8($,Z){let X=$.organization?.id;if(!X)return;for(let Q of Z){if(!Ks0(Q))continue;let Y=Q.threads.find((G)=>G.hasMessages);if(!Y)continue;try{let G=await Ll4($,Y.threadId);if(G==="none")continue;if(G==="advance")await Ha($.storage.taskBoard,Y.threadId,X,$.storage.organizationBilling);else await Ol4($,Q,Y)}catch(G){console.error(`[task-board] stall recovery failed for ${Q.id}`,G)}}}var Bl4;var nC8=O(()=>{Xa();uO();fO();l_();Tg();R6();HQ();Bl4=["This task is still In Progress on the board and your last run ended without finishing it.","","Look at what you already did, then either:","- finish the remaining work (and open the PR, if it needed code changes),","- or, if it's actually done, say so in one line \u2014 the board moves the card for you,","- or, if you're blocked on something only a human knows, call the `user_ask` tool.","","Don't start over and don't redo work you already committed or pushed."].join(`
|
|
2790
|
-
`)});import{z as t91}from"zod";var o91;var pC8=O(()=>{t0();KH();nC8();o91=o({name:"TASK_BOARD_ITEM_LIST",description:"List all task board items for the organization.",annotations:{title:"List Task Board Items",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:t91.object({}),outputSchema:t91.object({items:t91.array(mh)}),handler:async($,Z)=>{F0(Z),await Z.access.check();let X=Z.organization?.id;if(!X)throw Error("Organization ID required (no active organization in context)");let Q=await Z.storage.taskBoard.list(X);return iC8(Z,Q),{items:Q}}})});import{z as OK}from"zod";function El4($,Z){let X=[];for(let{field:G,action:J}of Dl4){if(Z[G]===$[G])continue;X.push({action:J,data:{from:$[G],to:Z[G]}})}if(Z.description!==$.description)X.push({action:"description_changed"});let Q=new Set($.tags.map((G)=>G.id));if(Z.tags.length!==$.tags.length||Z.tags.some((G)=>!Q.has(G.id)))X.push({action:"tags_changed",data:{from:$.tags,to:Z.tags}});return X}var Dl4,r91;var tC8=O(()=>{t0();KH();Y51();Ku();fU();HQ();CB();Dl4=[{field:"status",action:"status_changed"},{field:"assigneeId",action:"assignee_changed"},{field:"priority",action:"priority_changed"},{field:"dueDate",action:"due_date_changed"},{field:"title",action:"title_changed"}];r91=o({name:"TASK_BOARD_ITEM_UPDATE",description:"Update a task board item's fields (title, description, status, priority, assignee), and/or link a chat thread to it.",annotations:{title:"Update Task Board Item",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:OK.object({id:OK.string(),title:OK.string().min(1).optional(),description:OK.string().nullable().optional(),status:SU.optional(),priority:C_.optional(),assigneeId:OK.string().nullable().optional(),dueDate:OK.string().datetime().nullable().optional(),sortOrder:OK.number().optional(),tagIds:OK.array(OK.string()).optional(),linkThreadId:OK.string().optional()}),outputSchema:OK.object({item:mh}),handler:async($,Z)=>{F0(Z),await Z.access.check();let X=Z.organization?.id;if(!X)throw Error("Organization ID required (no active organization in context)");if($.assigneeId)await zj0(Z,X,$.assigneeId);if($.linkThreadId){if(!await Z.storage.taskBoard.getById($.id,X))throw Error(`Task board item not found: ${$.id}`);if(!await Z.storage.threads.get($.linkThreadId))throw Error(`Thread not found: ${$.linkThreadId}`);await Z.storage.taskBoard.linkThread($.id,$.linkThreadId,X)}let Q=$.title!==void 0||$.description!==void 0||$.status!==void 0||$.priority!==void 0||$.assigneeId!==void 0||$.dueDate!==void 0||$.sortOrder!==void 0||$.tagIds!==void 0,Y=Q?await Z.storage.taskBoard.getById($.id,X):null;if(Q&&!Y)throw Error(`Task board item not found: ${$.id}`);let G=$.assigneeId!==void 0&&$.assigneeId!==(Y?.assigneeId??null),J=G&&$.assigneeId===B5;if(Y&&sN(Y)){if($.title!==void 0||$.description!==void 0||$.priority!==void 0)throw Error("This task was generated from your report and can't be edited \u2014 create your own task instead.");if(J)await MJ8(Z,Y)}if($.tagIds!==void 0){let W=await Z.storage.tags.listOrgTags(X),H=new Set(W.map((N)=>N.id));for(let N of $.tagIds)if(!H.has(N))throw Error(`Tag not found: ${N}`);await Z.storage.taskBoard.setItemTags($.id,$.tagIds,P1(Z))}let K;if(Q)K=await Z.storage.taskBoard.update($.id,X,{title:$.title,description:$.description,status:J?"todo":$.status,priority:$.priority,assigneeId:$.assigneeId,assignedBy:G?$.assigneeId?P1(Z):null:void 0,dueDate:$.dueDate,sortOrder:$.sortOrder},P1(Z));else{let W=await Z.storage.taskBoard.getById($.id,X);if(!W)throw Error(`Task board item not found: ${$.id}`);K=W}if(Y){let W=P1(Z),H=El4(Y,K);if(H.length>0)await dC8(Z,H.map((N)=>({taskBoardItemId:K.id,actorId:W,...N})))}if(Q||$.linkThreadId)w9(X,K);if(J)await Ju(Z,K);return{item:K}}})});import{z as kP0}from"zod";var a91;var oC8=O(()=>{t0();HQ();a91=o({name:"TASK_BOARD_ITEM_DELETE",description:"Delete a task board item. A reports-pushed task also dismisses its finding, so the next diagnostic import won't re-create the card.",annotations:{title:"Delete Task Board Item",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:kP0.object({id:kP0.string()}),outputSchema:kP0.object({success:kP0.boolean()}),handler:async($,Z)=>{F0(Z),await Z.access.check();let X=Z.organization?.id;if(!X)throw Error("Organization ID required (no active organization in context)");
|
|
2790
|
+
`)});import{z as t91}from"zod";var o91;var pC8=O(()=>{t0();KH();nC8();o91=o({name:"TASK_BOARD_ITEM_LIST",description:"List all task board items for the organization.",annotations:{title:"List Task Board Items",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:t91.object({}),outputSchema:t91.object({items:t91.array(mh)}),handler:async($,Z)=>{F0(Z),await Z.access.check();let X=Z.organization?.id;if(!X)throw Error("Organization ID required (no active organization in context)");let Q=await Z.storage.taskBoard.list(X);return iC8(Z,Q),{items:Q}}})});import{z as OK}from"zod";function El4($,Z){let X=[];for(let{field:G,action:J}of Dl4){if(Z[G]===$[G])continue;X.push({action:J,data:{from:$[G],to:Z[G]}})}if(Z.description!==$.description)X.push({action:"description_changed"});let Q=new Set($.tags.map((G)=>G.id));if(Z.tags.length!==$.tags.length||Z.tags.some((G)=>!Q.has(G.id)))X.push({action:"tags_changed",data:{from:$.tags,to:Z.tags}});return X}var Dl4,r91;var tC8=O(()=>{t0();KH();Y51();Ku();fU();HQ();CB();Dl4=[{field:"status",action:"status_changed"},{field:"assigneeId",action:"assignee_changed"},{field:"priority",action:"priority_changed"},{field:"dueDate",action:"due_date_changed"},{field:"title",action:"title_changed"}];r91=o({name:"TASK_BOARD_ITEM_UPDATE",description:"Update a task board item's fields (title, description, status, priority, assignee), and/or link a chat thread to it.",annotations:{title:"Update Task Board Item",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:OK.object({id:OK.string(),title:OK.string().min(1).optional(),description:OK.string().nullable().optional(),status:SU.optional(),priority:C_.optional(),assigneeId:OK.string().nullable().optional(),dueDate:OK.string().datetime().nullable().optional(),sortOrder:OK.number().optional(),tagIds:OK.array(OK.string()).optional(),linkThreadId:OK.string().optional()}),outputSchema:OK.object({item:mh}),handler:async($,Z)=>{F0(Z),await Z.access.check();let X=Z.organization?.id;if(!X)throw Error("Organization ID required (no active organization in context)");if($.assigneeId)await zj0(Z,X,$.assigneeId);if($.linkThreadId){if(!await Z.storage.taskBoard.getById($.id,X))throw Error(`Task board item not found: ${$.id}`);if(!await Z.storage.threads.get($.linkThreadId))throw Error(`Thread not found: ${$.linkThreadId}`);await Z.storage.taskBoard.linkThread($.id,$.linkThreadId,X)}let Q=$.title!==void 0||$.description!==void 0||$.status!==void 0||$.priority!==void 0||$.assigneeId!==void 0||$.dueDate!==void 0||$.sortOrder!==void 0||$.tagIds!==void 0,Y=Q?await Z.storage.taskBoard.getById($.id,X):null;if(Q&&!Y)throw Error(`Task board item not found: ${$.id}`);let G=$.assigneeId!==void 0&&$.assigneeId!==(Y?.assigneeId??null),J=G&&$.assigneeId===B5;if(Y&&sN(Y)){if($.title!==void 0||$.description!==void 0||$.priority!==void 0)throw Error("This task was generated from your report and can't be edited \u2014 create your own task instead.");if(J)await MJ8(Z,Y)}if($.tagIds!==void 0){let W=await Z.storage.tags.listOrgTags(X),H=new Set(W.map((N)=>N.id));for(let N of $.tagIds)if(!H.has(N))throw Error(`Tag not found: ${N}`);await Z.storage.taskBoard.setItemTags($.id,$.tagIds,P1(Z))}let K;if(Q)K=await Z.storage.taskBoard.update($.id,X,{title:$.title,description:$.description,status:J?"todo":$.status,priority:$.priority,assigneeId:$.assigneeId,assignedBy:G?$.assigneeId?P1(Z):null:void 0,dueDate:$.dueDate,sortOrder:$.sortOrder},P1(Z));else{let W=await Z.storage.taskBoard.getById($.id,X);if(!W)throw Error(`Task board item not found: ${$.id}`);K=W}if(Y){let W=P1(Z),H=El4(Y,K);if(H.length>0)await dC8(Z,H.map((N)=>({taskBoardItemId:K.id,actorId:W,...N})))}if(Q||$.linkThreadId)w9(X,K);if(J)await Ju(Z,K);return{item:K}}})});import{z as kP0}from"zod";var a91;var oC8=O(()=>{t0();HQ();a91=o({name:"TASK_BOARD_ITEM_DELETE",description:"Delete a task board item. A reports-pushed task also dismisses its finding, so the next diagnostic import won't re-create the card.",annotations:{title:"Delete Task Board Item",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:kP0.object({id:kP0.string()}),outputSchema:kP0.object({success:kP0.boolean()}),handler:async($,Z)=>{F0(Z),await Z.access.check();let X=Z.organization?.id;if(!X)throw Error("Organization ID required (no active organization in context)");if(!await Z.storage.taskBoard.delete($.id,X,P1(Z)??"system"))throw Error(`Task board item not found: ${$.id}`);return US8(X,$.id),{success:!0}}})});async function s91($){let{contextFactory:Z,taskBoard:X,threadId:Q,orgId:Y}=$;try{for(let G of await X.linkedTaskIds(Q,Y)){let J=await X.getById(G,Y);if(!J||J.status!=="in_review"||J.assigneeId!==B5)continue;if(!J.threads.find((N)=>N.threadId===Q)?.title?.startsWith("Super Agent:"))continue;if((await X.listPrs(G,Y)).length===0)continue;let H=await Z(Y,J.assignedBy??J.createdBy);if(!H)continue;await e91(H,J)}}catch(G){console.error("[task-board] reviewer trigger on run finish failed",G)}}async function e91($,Z){let Q=(await $.storage.organizationSettings.get(Z.organizationId))?.flags??{},Y=_B.filter((K)=>Q[xB[K]]===!0);if(Y.length===0)return;let G=await Al4($,Z),J=new Date(G);await Promise.all(Y.map(async(K)=>{if(Pl4(Z,K,G))return;let W,H;try{({claimed:W,token:H}=await $.storage.taskBoard.claimReviewer(Z.id,K,J))}catch(N){console.error(`[task-board] ${K} reviewer claim failed`,N);return}if(!W)return;await Tl4($,Z,K,H).catch(async(N)=>{console.error(`[task-board] ${K} reviewer enqueue failed`,N),await $.storage.taskBoard.releaseReviewerClaim(Z.id,K,J).catch((U)=>console.error(`[task-board] ${K} reviewer claim release failed`,U))})}))}function Pl4($,Z,X){return $.threads.some((Q)=>{if(!VJ8(Q.title,Z))return!1;if(Q.status!==null&&!zl4.has(Q.status))return!0;return new Date(Q.createdAt).getTime()>=X})}async function Al4($,Z){let X=await $.storage.taskBoard.listActivity(Z.id,Z.organizationId);return Ys0(X)}async function Tl4($,Z,X,Q){let Y=Z.organizationId,G=[jl4[X],"","You are running AUTONOMOUSLY \u2014 no human is watching this run. Making the "+'approve / request-changes call IS your job; you are the decision-maker, not an assistant asking a human to decide. NEVER use `user_ask` to ask whether to approve, or to confirm an obvious call ("Approve the PR?"). Reserve `user_ask` for a genuine, unresolvable blocker only a human can clear (e.g. a missing credential, or a requirement so ambiguous you '+"truly cannot judge the outcome) \u2014 that should be rare. When in doubt "+"between asking and deciding, DECIDE.","",`Task title: ${Z.title}`,Z.description?`
|
|
2791
2791
|
Task description:
|
|
2792
2792
|
${Z.description}
|
|
2793
2793
|
`:"","How to work:","- Call `TASK_BOARD_ITEM_PRS_GET` with the task id below to find the pull request under review, then load its repository to inspect / exercise the change.","- Do NOT push commits or change the code yourself. You are reviewing, not implementing.",`- End the run by calling \`TASK_BOARD_REVIEW_DECISION\` exactly once with the task id, reviewer "${X}", the reviewToken below, and your decision:`," - `approve` when it's good to ship. Include a short summary of what you verified."," - `request_changes` when something is wrong or missing. Include specific, actionable notes \u2014 the task goes back to the Super Agent with your notes.","- The reviewToken proves you are this reviewer \u2014 pass it through EXACTLY as given. Without it your approval won't count toward an automatic merge.","",`(task id: ${Z.id})`,`(reviewToken: ${Q})`].join(`
|