decocms 2.178.0 → 2.178.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/assets/{AlertCircle-DOAxiEBN.js → AlertCircle-12chRuly.js} +1 -1
- package/dist/client/assets/{AlignLeft-CRMPlioa.js → AlignLeft-_LT9deOt.js} +1 -1
- package/dist/client/assets/{ArrowDown-xJyK-tRR.js → ArrowDown-7rbX3zqZ.js} +1 -1
- package/dist/client/assets/{ArrowLeft-B-tpcvF0.js → ArrowLeft-erI8s3G2.js} +1 -1
- package/dist/client/assets/{ArrowUp-BO7WH9Uq.js → ArrowUp-DoIG5eQh.js} +1 -1
- package/dist/client/assets/{Building02-D30T2TCD.js → Building02-Dr7IyBdv.js} +1 -1
- package/dist/client/assets/{Check-BTP9VTUM.js → Check-DW8AVFkq.js} +1 -1
- package/dist/client/assets/{CheckCircle-DoZ7ERyW.js → CheckCircle-hBpanOsI.js} +1 -1
- package/dist/client/assets/{CheckSquare-Dbh9CJyx.js → CheckSquare-Cr3IzSXp.js} +1 -1
- package/dist/client/assets/{CheckVerified02-CyloHbYs.js → CheckVerified02-r17ymUCs.js} +1 -1
- package/dist/client/assets/{ChevronDown-CLapIRmf.js → ChevronDown-BIRGQoZ5.js} +1 -1
- package/dist/client/assets/{ChevronLeft-CMUbV0KP.js → ChevronLeft-D-e7F7Gj.js} +1 -1
- package/dist/client/assets/{ChevronRight-DWZgTrde.js → ChevronRight-DsjLlugM.js} +1 -1
- package/dist/client/assets/{ChevronUp-DGOtRvEF.js → ChevronUp-Bi3NMXzv.js} +1 -1
- package/dist/client/assets/{Clock-BYjyd9hX.js → Clock-D4xJnA3P.js} +1 -1
- package/dist/client/assets/{Code01-BkNgeom6.js → Code01-YGq5QwlZ.js} +1 -1
- package/dist/client/assets/{Container-D7IaxBn4.js → Container-DHyMOW_p.js} +1 -1
- package/dist/client/assets/{Copy01-BJ5f3Ft8.js → Copy01-DkcjIGiS.js} +1 -1
- package/dist/client/assets/{Dataflow03-DE7FXw07.js → Dataflow03-CD3eo8oO.js} +1 -1
- package/dist/client/assets/{DotsHorizontal-BFhhKBhk.js → DotsHorizontal-CjYGc80C.js} +1 -1
- package/dist/client/assets/{DotsVertical-CmyZ1eER.js → DotsVertical-2nyye7GD.js} +1 -1
- package/dist/client/assets/{Download01-C0zy7iAO.js → Download01-BvtNZalG.js} +1 -1
- package/dist/client/assets/{Edit01-BsJ32les.js → Edit01-CoeKfJ-u.js} +1 -1
- package/dist/client/assets/{Edit05-BD2d2k-5.js → Edit05-CbbEzOoe.js} +1 -1
- package/dist/client/assets/{Eye-B3PAdhmZ.js → Eye-hBqNQHpc.js} +1 -1
- package/dist/client/assets/{EyeOff-_G9JY6d-.js → EyeOff-CJoTkAtN.js} +1 -1
- package/dist/client/assets/{File02-CAND2NHE.js → File02-D19u2hUl.js} +1 -1
- package/dist/client/assets/{File06-Bvs2lp94.js → File06-Bp4ioOvR.js} +1 -1
- package/dist/client/assets/{FilterLines-D-lo1vJH.js → FilterLines-Dvk7BhWf.js} +1 -1
- package/dist/client/assets/{Globe01-jlGiKRJ-.js → Globe01-B8Ib7knn.js} +1 -1
- package/dist/client/assets/{Globe02-DpkPR1qQ.js → Globe02-wRhoc1N5.js} +1 -1
- package/dist/client/assets/{Grid01-Bootsry8.js → Grid01-C5e9ReQ4.js} +1 -1
- package/dist/client/assets/{Home02-Cn5GN0Zh.js → Home02-JZJR9jmQ.js} +1 -1
- package/dist/client/assets/{Image01-BGiNuXLR.js → Image01-DjoSkYp_.js} +1 -1
- package/dist/client/assets/{Inbox01-QN0h6e9y.js → Inbox01-ClVaT7W5.js} +1 -1
- package/dist/client/assets/{InfoCircle-BlKvj0NG.js → InfoCircle-DzyfpQes.js} +1 -1
- package/dist/client/assets/{Key01-p6odXPoE.js → Key01-qNySmY39.js} +1 -1
- package/dist/client/assets/{LayersTwo01-Dj6OMOTN.js → LayersTwo01-dfSlQT0y.js} +1 -1
- package/dist/client/assets/{LayoutLeft-Bl9wlb-l.js → LayoutLeft-B2KZfn2n.js} +1 -1
- package/dist/client/assets/{Link01-GDNtvq6w.js → Link01-Cz_ZRKoB.js} +1 -1
- package/dist/client/assets/{LinkExternal01-Cmp1Jq7T.js → LinkExternal01-CKvCiQnV.js} +1 -1
- package/dist/client/assets/{List-BFzJ8d3-.js → List-NLa0AhO4.js} +1 -1
- package/dist/client/assets/{Loading01-Bgt2pWQu.js → Loading01-Bb8FCosd.js} +1 -1
- package/dist/client/assets/{Lock01-CrtAKCVY.js → Lock01-CnZITIks.js} +1 -1
- package/dist/client/assets/{Play-C6mSLsW0.js → Play-Bw5lQw7j.js} +1 -1
- package/dist/client/assets/{Plus-Bah3bfIq.js → Plus-CajZ9VfC.js} +1 -1
- package/dist/client/assets/{RefreshCcw01-D6TQ-sWU.js → RefreshCcw01-B_NTitRE.js} +1 -1
- package/dist/client/assets/{Save01-DMdPXvfp.js → Save01-8oEsqMkJ.js} +1 -1
- package/dist/client/assets/{SearchMd-CbNARIB_.js → SearchMd-eZWeU0sP.js} +1 -1
- package/dist/client/assets/{Settings01-ncSo0UF1.js → Settings01-ClPVpLPy.js} +1 -1
- package/dist/client/assets/{Shield01-jjVa8gNb.js → Shield01-N4ace-oo.js} +1 -1
- package/dist/client/assets/{Terminal-BkHJq74m.js → Terminal-CGwuP-_5.js} +1 -1
- package/dist/client/assets/{Tool01-CCSFIqz9.js → Tool01-D1m8i7Ez.js} +1 -1
- package/dist/client/assets/{Trash01-DJLT0hlL.js → Trash01-B_4PTwjI.js} +1 -1
- package/dist/client/assets/{Upload01-CrylBwgE.js → Upload01-CLIOr3Tj.js} +1 -1
- package/dist/client/assets/{Users03-ClHTtWuU.js → Users03-Bv-hUQkl.js} +1 -1
- package/dist/client/assets/{X-Dr3IGE6q.js → X-LzehymHS.js} +1 -1
- package/dist/client/assets/{XClose-CM_PUH0D.js → XClose-CcNXqPQc.js} +1 -1
- package/dist/client/assets/{Zap-DNAzZ691.js → Zap-BFN1DqIC.js} +1 -1
- package/dist/client/assets/{agent-connections-preview-D9yVR2mI.js → agent-connections-preview-3pYXfstj.js} +1 -1
- package/dist/client/assets/{agent-detail-D9yhjqjE.js → agent-detail-DMK-u3yi.js} +1 -1
- package/dist/client/assets/{agents-UYgbyoc-.js → agents-Wfe5dNfh.js} +1 -1
- package/dist/client/assets/{ai-providers-logos-CKXeyPmY.js → ai-providers-logos-CCp39UCk.js} +1 -1
- package/dist/client/assets/{alert-dialog-CGRFjIvo.js → alert-dialog-B_ae3oRt.js} +1 -1
- package/dist/client/assets/{auth-catchall-DJtyBhDQ.js → auth-catchall-DAx9m28t.js} +1 -1
- package/dist/client/assets/{automation-detail-Da-KIL0v.js → automation-detail-DfFkGT_5.js} +1 -1
- package/dist/client/assets/{automations-BBeFyOp2.js → automations-A8NOzTSS.js} +1 -1
- package/dist/client/assets/{avatar-B6y4oqG6.js → avatar-B2yArl-q.js} +1 -1
- package/dist/client/assets/{badge-BWsagPlP.js → badge-DtRom7JO.js} +1 -1
- package/dist/client/assets/{binder-BfA1Jrrc.js → binder-D4cqx_Kx.js} +1 -1
- package/dist/client/assets/{breadcrumb-D8mb9kpq.js → breadcrumb-C2RG4nAQ.js} +1 -1
- package/dist/client/assets/{card-C0MItTW_.js → card-B8qDZGCZ.js} +1 -1
- package/dist/client/assets/{checkbox-DUU3Nuea.js → checkbox-B1rexahu.js} +1 -1
- package/dist/client/assets/{collapsible-CtLdTa6t.js → collapsible-BtjeaBAE.js} +1 -1
- package/dist/client/assets/{collection-detail-DPIki4up.js → collection-detail-BaBGI9i2.js} +1 -1
- package/dist/client/assets/{collection-display-button-DdFInvSR.js → collection-display-button-CpVZ4wHm.js} +1 -1
- package/dist/client/assets/{collection-search-CGfzh4mC.js → collection-search-BYV7N3mr.js} +1 -1
- package/dist/client/assets/{collection-table-wrapper-DLe2aR6i.js → collection-table-wrapper-CHFJQd21.js} +1 -1
- package/dist/client/assets/{collection-tabs-DAHXpc2n.js → collection-tabs-CJEa3dRy.js} +1 -1
- package/dist/client/assets/{command-C4HnUxgr.js → command-Drksh_DO.js} +1 -1
- package/dist/client/assets/{connection-card-DRd8H1I5.js → connection-card-Bak2l1_M.js} +1 -1
- package/dist/client/assets/{connection-detail-MKWBWpRr.js → connection-detail-BKy2ZsS6.js} +1 -1
- package/dist/client/assets/{connections-CIQDC3QM.js → connections-Dxf4eIOE.js} +1 -1
- package/dist/client/assets/{constants-C6R-Odkq.js → constants-D7qXOYRn.js} +1 -1
- package/dist/client/assets/{context-BFTRA5vP.js → context-DxQMlFKC.js} +1 -1
- package/dist/client/assets/{create-organization-dialog-Bez2nZe0.js → create-organization-dialog-CNWB-72r.js} +1 -1
- package/dist/client/assets/{create-project-dialog-MCGuKGij.js → create-project-dialog-BeIY4Oy9.js} +1 -1
- package/dist/client/assets/{danger-D1zng7LS.js → danger-YWbxrjNq.js} +1 -1
- package/dist/client/assets/{danger-zone-DbcRzYYG.js → danger-zone-DGg0ZzSy.js} +1 -1
- package/dist/client/assets/{dependencies-B8EkZe-H.js → dependencies-DtAVTWu-.js} +1 -1
- package/dist/client/assets/{dialog-Bw5T2ogY.js → dialog-ChXYvlDt.js} +1 -1
- package/dist/client/assets/{dropdown-menu-Dan8nMb8.js → dropdown-menu-BxlQMXgW.js} +1 -1
- package/dist/client/assets/{dynamic-plugin-layout-BDxV3RAS.js → dynamic-plugin-layout-JpZTv0Ay.js} +1 -1
- package/dist/client/assets/{editable-task-title-wfBXYVIh.js → editable-task-title-Cm-uIwFs.js} +1 -1
- package/dist/client/assets/{empty-state-CoA3_x_6.js → empty-state-qLM_bVsv.js} +1 -1
- package/dist/client/assets/{empty-state-C1iyyf7G.js → empty-state-xIvMMy-_.js} +1 -1
- package/dist/client/assets/{env-vars-editor-CxyeKMFS.js → env-vars-editor-Yss1wn0m.js} +1 -1
- package/dist/client/assets/{extract-connection-data-C8ZedtM3.js → extract-connection-data-48N591A_.js} +1 -1
- package/dist/client/assets/{file-browser-CShFs9BG.js → file-browser-BbqpPFZK.js} +2 -2
- package/dist/client/assets/{form-B1LLlQBa.js → form-CaFPTMVC.js} +1 -1
- package/dist/client/assets/{general-Dnfj_B7U.js → general-DI9irVIQ.js} +1 -1
- package/dist/client/assets/{generate-id-WpAuYSZF.js → generate-id-BiV6m8fS.js} +1 -1
- package/dist/client/assets/{grid-view-PzYdekcz.js → grid-view-DurgUMuo.js} +1 -1
- package/dist/client/assets/{home-CKa-gWjN.js → home-CspK560n.js} +1 -1
- package/dist/client/assets/{index-lUO5B2Do.js → index-ChUIqRBi.js} +1 -1
- package/dist/client/assets/{index-D-AXXJqO.js → index-CqWJIMlG.js} +1 -1
- package/dist/client/assets/{index-CgSAwZ8g.js → index-CqtWW-Tq.js} +1 -1
- package/dist/client/assets/{index-DtZLm-Fz.js → index-CqyqI90F.js} +1 -1
- package/dist/client/assets/{index-BaVHKLOw.js → index-De1iYnQy.js} +1 -1
- package/dist/client/assets/{index-De7oAufQ.js → index-NjMxPJgF.js} +3 -3
- package/dist/client/assets/{index-BkxamE0W.js → index-TV8hw8s3.js} +1 -1
- package/dist/client/assets/{index-CVayrapI.js → index-YL7q5tyF.js} +1 -1
- package/dist/client/assets/{index-BFJo8BQ3.js → index-YRudAQp7.js} +1 -1
- package/dist/client/assets/{index-J5pIXVfD.js → index-yiVP4brl.js} +1 -1
- package/dist/client/assets/{index-OdE2HBl6.js → index-zWpUeKAz.js} +1 -1
- package/dist/client/assets/{infiniteQueryObserver-C7xXp1jr.js → infiniteQueryObserver-JZ0YxCW-.js} +1 -1
- package/dist/client/assets/{input-_VKm0O_1.js → input-B89sozd8.js} +1 -1
- package/dist/client/assets/{integration-icon-BkY1vh6I.js → integration-icon-BPVDVJvP.js} +1 -1
- package/dist/client/assets/{label-BhDDQ3-n.js → label-DkiEYJcU.js} +1 -1
- package/dist/client/assets/{layout-BIFV7MZL.js → layout-Cqn-h1Jz.js} +1 -1
- package/dist/client/assets/{layout-CZKgiZuG.js → layout-DcmGLVHZ.js} +1 -1
- package/dist/client/assets/{login-uo65TNIo.js → login-qT_ItpIx.js} +1 -1
- package/dist/client/assets/{logo-upload-CXS8-AgL.js → logo-upload-CoGaedUC.js} +1 -1
- package/dist/client/assets/{mcp-app-renderer-BcsrfZJp.js → mcp-app-renderer-By1mQEU9.js} +1 -1
- package/dist/client/assets/{mcp-server-card-Bp6C5W6n.js → mcp-server-card-B3Nrrgyk.js} +1 -1
- package/dist/client/assets/{mcp-server-detail-Ctbkl5jL.js → mcp-server-detail-DMfy0V9h.js} +2 -2
- package/dist/client/assets/{members-DCfL7gNX.js → members-Q81LXZu1.js} +1 -1
- package/dist/client/assets/{monaco-editor-DPC7_J-G.js → monaco-editor-ZB27PMAe.js} +1 -1
- package/dist/client/assets/{monitoring-ByXLzXVV.js → monitoring-C31A03PZ.js} +1 -1
- package/dist/client/assets/{monitoring-dashboard-edit-YR1gT6FF.js → monitoring-dashboard-edit-Dfi8Jxeb.js} +1 -1
- package/dist/client/assets/{monitoring-dashboard-view-BbtnIBfa.js → monitoring-dashboard-view-CxjxBHLW.js} +1 -1
- package/dist/client/assets/{monitoring-stats-row-Df9ANyzv.js → monitoring-stats-row-CAn-8pVZ.js} +1 -1
- package/dist/client/assets/{oauth-callback-DAQSPrcu.js → oauth-callback-B8DRnSok.js} +1 -1
- package/dist/client/assets/{oauth-callback-ai-provider-BM5LYNPq.js → oauth-callback-ai-provider-CsTCxPAY.js} +1 -1
- package/dist/client/assets/{org-ai-providers-6KYO-veN.js → org-ai-providers-DaYyItUL.js} +1 -1
- package/dist/client/assets/{page-JhhtSWZh.js → page-BjLk0DX_.js} +1 -1
- package/dist/client/assets/{page-30eMAMiN.js → page-C2I5Nlmu.js} +1 -1
- package/dist/client/assets/{plugin-empty-state-Cl2I2geD.js → plugin-empty-state-K02oXRNN.js} +1 -1
- package/dist/client/assets/{plugin-empty-state-R2BzERoW.js → plugin-empty-state-l30u7dec.js} +1 -1
- package/dist/client/assets/{plugin-header-Bakz3z0e.js → plugin-header-B_wkRb4Y.js} +1 -1
- package/dist/client/assets/{plugin-header-aEsNVQjp.js → plugin-header-CE-BhILm.js} +1 -1
- package/dist/client/assets/plugins-6p4XZdw1.js +1 -0
- package/dist/client/assets/{popover-D_qGIJiq.js → popover-Br8QkMK3.js} +1 -1
- package/dist/client/assets/{project-app-view-BFgEphLV.js → project-app-view-CRe7LVZk.js} +1 -1
- package/dist/client/assets/{project-layout-C8oyOOGc.js → project-layout-Bg1hlIaM.js} +1 -1
- package/dist/client/assets/{project-plugins-BVt_WzcU.js → project-plugins-BHOZZsH7.js} +1 -1
- package/dist/client/assets/{projects-list-C02pKlJj.js → projects-list-i4ZvUqtI.js} +1 -1
- package/dist/client/assets/{registry-layout-C-yQnDXG.js → registry-layout-DQV7LhSo.js} +1 -1
- package/dist/client/assets/{registry-utils-Dqc_kCiP.js → registry-utils-cjX9P5J9.js} +1 -1
- package/dist/client/assets/{reset-password-Cqvt_aDI.js → reset-password-Cgcrl5ZG.js} +1 -1
- package/dist/client/assets/{resizable-CO0Uh73H.js → resizable-Nu1SqaJD.js} +1 -1
- package/dist/client/assets/{save-actions-ju1vjafj.js → save-actions-CVl6VtT2.js} +1 -1
- package/dist/client/assets/{scroll-area-DL2xzsPP.js → scroll-area-BTJQ86Ry.js} +1 -1
- package/dist/client/assets/{select-B4liIMVc.js → select-Dx3T3-4n.js} +1 -1
- package/dist/client/assets/{select-virtual-mcp-CuflMlTt.js → select-virtual-mcp-BS537pmy.js} +1 -1
- package/dist/client/assets/{sheet-Cjr3EcYH.js → sheet-C3HM0Uwr.js} +1 -1
- package/dist/client/assets/{shell-layout-DfTROeX_.js → shell-layout-Bco0BFOl.js} +2 -2
- package/dist/client/assets/{sidebar-settings-BljNzJVO.js → sidebar-settings-JhN4X_jg.js} +1 -1
- package/dist/client/assets/{skeleton-Bt7MRTvB.js → skeleton-Cjm8s7CT.js} +1 -1
- package/dist/client/assets/{spinner-Cse1gKnw.js → spinner-Dzx7B3Jl.js} +1 -1
- package/dist/client/assets/{store-invite-D8XeTZbu.js → store-invite-BPcFU0aw.js} +1 -1
- package/dist/client/assets/{switch-DHS6rwq-.js → switch-CA_oYDia.js} +1 -1
- package/dist/client/assets/{table-BPkNFl3F.js → table-C-1rP_rt.js} +1 -1
- package/dist/client/assets/{tabs-D9xzXdQn.js → tabs-BSOe8gLq.js} +1 -1
- package/dist/client/assets/{task-status-DPcRgg7n.js → task-status-DYx9R7EL.js} +24 -24
- package/dist/client/assets/tasks-D1X8oLa3.js +1 -0
- package/dist/client/assets/{tasks-panel-i3VUreUx.js → tasks-panel-BJ3TfA-_.js} +1 -1
- package/dist/client/assets/{textarea-C_pKpP9s.js → textarea-DIJzFUWn.js} +1 -1
- package/dist/client/assets/{time-range-picker-BuykPBni.js → time-range-picker-CGBh-D6p.js} +1 -1
- package/dist/client/assets/{toggle-group-VpRSF_Gl.js → toggle-group-DlZGDyPQ.js} +1 -1
- package/dist/client/assets/{tools-list-DDFWIxxm.js → tools-list-D-T64862.js} +1 -1
- package/dist/client/assets/{tooltip-C4rlkzSj.js → tooltip-BJMSu0c2.js} +1 -1
- package/dist/client/assets/{topbar-portal-CF1YRovU.js → topbar-portal-ChPXVsi1.js} +1 -1
- package/dist/client/assets/{types-DQbIwrMI.js → types-BHeMLyAV.js} +1 -1
- package/dist/client/assets/{use-automations-C1HgdvUZ.js → use-automations-Bmw3x7Dk.js} +1 -1
- package/dist/client/assets/{use-collections-CN-KZdhF.js → use-collections-C0cYiFfV.js} +1 -1
- package/dist/client/assets/{use-connection-C4RNTGYe.js → use-connection-CHFdKnsr.js} +1 -1
- package/dist/client/assets/{use-copy-Cyun7kVE.js → use-copy-xhdji_Bl.js} +1 -1
- package/dist/client/assets/{use-create-virtual-mcp-4JnIm_fY.js → use-create-virtual-mcp-B7odZ_c3.js} +1 -1
- package/dist/client/assets/{use-infinite-scroll-B1b4xMpn.js → use-infinite-scroll-CPhZNIw7.js} +1 -1
- package/dist/client/assets/{use-install-from-registry-CytyaLQX.js → use-install-from-registry-BzwuBLOx.js} +1 -1
- package/dist/client/assets/{use-list-state-CCkxYz8q.js → use-list-state-CbsN6RbJ.js} +1 -1
- package/dist/client/assets/{use-mcp-prompts-BGZnglwN.js → use-mcp-prompts-Bel4H4rh.js} +1 -1
- package/dist/client/assets/{use-mcp-resources-DSKOWSEO.js → use-mcp-resources-qGdymfRz.js} +1 -1
- package/dist/client/assets/{use-mcp-tools-C2aTDAuJ.js → use-mcp-tools-BCZI_Wqc.js} +1 -1
- package/dist/client/assets/{use-members-DjL_-1xN.js → use-members-B4ncWtMV.js} +1 -1
- package/dist/client/assets/{use-mobile-CMHMyYVi.js → use-mobile-DOUfTohp.js} +1 -1
- package/dist/client/assets/{use-project-DxPDjIre.js → use-project-b5C3lq5-.js} +1 -1
- package/dist/client/assets/{use-store-discovery-BBXrVOcG.js → use-store-discovery-B402mTHd.js} +1 -1
- package/dist/client/assets/{use-view-mode-CXln2RGt.js → use-view-mode-ss3eRodO.js} +1 -1
- package/dist/client/assets/{use-virtual-mcp-AdVimCkX.js → use-virtual-mcp-BP6aaUzw.js} +1 -1
- package/dist/client/assets/useInfiniteQuery-BXDrDvlH.js +1 -0
- package/dist/client/assets/{useMutation-BDzOMrvq.js → useMutation-68NxhXCf.js} +1 -1
- package/dist/client/assets/useQuery-BYBCFxgb.js +1 -0
- package/dist/client/assets/useSuspenseInfiniteQuery-X3jXt04i.js +1 -0
- package/dist/client/assets/{user-DSh4pFej.js → user-iDZRuimU.js} +1 -1
- package/dist/client/assets/{workflow-mIahQD3R.js → workflow-CrrTPehP.js} +1 -1
- package/dist/client/index.html +1 -1
- package/dist/server/cli.js +2 -2
- package/dist/server/migrate.js +1 -1
- package/dist/server/node_modules/pg-cloudflare/README.md +112 -0
- package/dist/server/node_modules/pg-cloudflare/dist/empty.d.ts +2 -0
- package/dist/server/node_modules/pg-cloudflare/dist/empty.js +6 -0
- package/dist/server/node_modules/pg-cloudflare/dist/empty.js.map +1 -0
- package/dist/server/node_modules/pg-cloudflare/dist/index.d.ts +31 -0
- package/dist/server/node_modules/pg-cloudflare/dist/index.js +152 -0
- package/dist/server/node_modules/pg-cloudflare/dist/index.js.map +1 -0
- package/dist/server/node_modules/pg-cloudflare/esm/index.mjs +3 -0
- package/dist/server/node_modules/pg-cloudflare/package.json +39 -0
- package/dist/server/node_modules/pg-cloudflare/src/empty.ts +3 -0
- package/dist/server/node_modules/pg-cloudflare/src/index.ts +166 -0
- package/dist/server/node_modules/pg-cloudflare/src/types.d.ts +25 -0
- package/dist/server/node_modules/pg-connection-string/LICENSE +21 -0
- package/dist/server/node_modules/pg-connection-string/README.md +105 -0
- package/dist/server/node_modules/pg-connection-string/esm/index.mjs +8 -0
- package/dist/server/node_modules/pg-connection-string/index.d.ts +36 -0
- package/dist/server/node_modules/pg-connection-string/index.js +231 -0
- package/dist/server/node_modules/pg-connection-string/package.json +52 -0
- package/dist/server/node_modules/pg-int8/LICENSE +13 -0
- package/dist/server/node_modules/pg-int8/README.md +16 -0
- package/dist/server/node_modules/pg-int8/index.js +100 -0
- package/dist/server/node_modules/pg-int8/package.json +24 -0
- package/dist/server/node_modules/pg-pool/LICENSE +21 -0
- package/dist/server/node_modules/pg-pool/README.md +357 -0
- package/dist/server/node_modules/pg-pool/esm/index.mjs +5 -0
- package/dist/server/node_modules/pg-pool/index.js +517 -0
- package/dist/server/node_modules/pg-pool/package.json +51 -0
- package/dist/server/node_modules/pg-protocol/LICENSE +21 -0
- package/dist/server/node_modules/pg-protocol/README.md +3 -0
- package/dist/server/node_modules/pg-protocol/dist/b.d.ts +1 -0
- package/dist/server/node_modules/pg-protocol/dist/b.js +23 -0
- package/dist/server/node_modules/pg-protocol/dist/b.js.map +1 -0
- package/dist/server/node_modules/pg-protocol/dist/buffer-reader.d.ts +15 -0
- package/dist/server/node_modules/pg-protocol/dist/buffer-reader.js +55 -0
- package/dist/server/node_modules/pg-protocol/dist/buffer-reader.js.map +1 -0
- package/dist/server/node_modules/pg-protocol/dist/buffer-writer.d.ts +16 -0
- package/dist/server/node_modules/pg-protocol/dist/buffer-writer.js +81 -0
- package/dist/server/node_modules/pg-protocol/dist/buffer-writer.js.map +1 -0
- package/dist/server/node_modules/pg-protocol/dist/inbound-parser.test.d.ts +1 -0
- package/dist/server/node_modules/pg-protocol/dist/inbound-parser.test.js +530 -0
- package/dist/server/node_modules/pg-protocol/dist/inbound-parser.test.js.map +1 -0
- package/dist/server/node_modules/pg-protocol/dist/index.d.ts +6 -0
- package/dist/server/node_modules/pg-protocol/dist/index.js +15 -0
- package/dist/server/node_modules/pg-protocol/dist/index.js.map +1 -0
- package/dist/server/node_modules/pg-protocol/dist/messages.d.ts +162 -0
- package/dist/server/node_modules/pg-protocol/dist/messages.js +160 -0
- package/dist/server/node_modules/pg-protocol/dist/messages.js.map +1 -0
- package/dist/server/node_modules/pg-protocol/dist/outbound-serializer.test.d.ts +1 -0
- package/dist/server/node_modules/pg-protocol/dist/outbound-serializer.test.js +252 -0
- package/dist/server/node_modules/pg-protocol/dist/outbound-serializer.test.js.map +1 -0
- package/dist/server/node_modules/pg-protocol/dist/parser.d.ts +24 -0
- package/dist/server/node_modules/pg-protocol/dist/parser.js +324 -0
- package/dist/server/node_modules/pg-protocol/dist/parser.js.map +1 -0
- package/dist/server/node_modules/pg-protocol/dist/serializer.d.ts +42 -0
- package/dist/server/node_modules/pg-protocol/dist/serializer.js +189 -0
- package/dist/server/node_modules/pg-protocol/dist/serializer.js.map +1 -0
- package/dist/server/node_modules/pg-protocol/esm/index.js +11 -0
- package/dist/server/node_modules/pg-protocol/package.json +45 -0
- package/dist/server/node_modules/pg-protocol/src/b.ts +25 -0
- package/dist/server/node_modules/pg-protocol/src/buffer-reader.ts +58 -0
- package/dist/server/node_modules/pg-protocol/src/buffer-writer.ts +85 -0
- package/dist/server/node_modules/pg-protocol/src/inbound-parser.test.ts +575 -0
- package/dist/server/node_modules/pg-protocol/src/index.ts +11 -0
- package/dist/server/node_modules/pg-protocol/src/messages.ts +262 -0
- package/dist/server/node_modules/pg-protocol/src/outbound-serializer.test.ts +276 -0
- package/dist/server/node_modules/pg-protocol/src/parser.ts +413 -0
- package/dist/server/node_modules/pg-protocol/src/serializer.ts +274 -0
- package/dist/server/node_modules/pg-protocol/src/testing/buffer-list.ts +67 -0
- package/dist/server/node_modules/pg-protocol/src/testing/test-buffers.ts +166 -0
- package/dist/server/node_modules/pg-protocol/src/types/chunky.d.ts +1 -0
- package/dist/server/node_modules/pg-types/.travis.yml +7 -0
- package/dist/server/node_modules/pg-types/Makefile +14 -0
- package/dist/server/node_modules/pg-types/README.md +75 -0
- package/dist/server/node_modules/pg-types/index.d.ts +137 -0
- package/dist/server/node_modules/pg-types/index.js +47 -0
- package/dist/server/node_modules/pg-types/index.test-d.ts +21 -0
- package/dist/server/node_modules/pg-types/lib/arrayParser.js +11 -0
- package/dist/server/node_modules/pg-types/lib/binaryParsers.js +257 -0
- package/dist/server/node_modules/pg-types/lib/builtins.js +73 -0
- package/dist/server/node_modules/pg-types/lib/textParsers.js +215 -0
- package/dist/server/node_modules/pg-types/package.json +42 -0
- package/dist/server/node_modules/pg-types/test/index.js +24 -0
- package/dist/server/node_modules/pg-types/test/types.js +597 -0
- package/dist/server/node_modules/pgpass/README.md +74 -0
- package/dist/server/node_modules/pgpass/lib/helper.js +233 -0
- package/dist/server/node_modules/pgpass/lib/index.js +23 -0
- package/dist/server/node_modules/pgpass/package.json +41 -0
- package/dist/server/node_modules/postgres-array/index.d.ts +4 -0
- package/dist/server/node_modules/postgres-array/index.js +97 -0
- package/dist/server/node_modules/postgres-array/license +21 -0
- package/dist/server/node_modules/postgres-array/package.json +35 -0
- package/dist/server/node_modules/postgres-array/readme.md +43 -0
- package/dist/server/node_modules/postgres-bytea/index.js +33 -0
- package/dist/server/node_modules/postgres-bytea/license +21 -0
- package/dist/server/node_modules/postgres-bytea/package.json +34 -0
- package/dist/server/node_modules/postgres-bytea/readme.md +34 -0
- package/dist/server/node_modules/postgres-date/index.js +116 -0
- package/dist/server/node_modules/postgres-date/license +21 -0
- package/dist/server/node_modules/postgres-date/package.json +33 -0
- package/dist/server/node_modules/postgres-date/readme.md +49 -0
- package/dist/server/node_modules/postgres-interval/index.d.ts +20 -0
- package/dist/server/node_modules/postgres-interval/index.js +125 -0
- package/dist/server/node_modules/postgres-interval/license +21 -0
- package/dist/server/node_modules/postgres-interval/package.json +36 -0
- package/dist/server/node_modules/postgres-interval/readme.md +48 -0
- package/dist/server/node_modules/split2/LICENSE +13 -0
- package/dist/server/node_modules/split2/README.md +85 -0
- package/dist/server/node_modules/split2/bench.js +27 -0
- package/dist/server/node_modules/split2/index.js +141 -0
- package/dist/server/node_modules/split2/package.json +39 -0
- package/dist/server/node_modules/split2/test.js +409 -0
- package/dist/server/server.js +2 -2
- package/package.json +1 -1
- package/dist/client/assets/plugins-CJOgdAgY.js +0 -1
- package/dist/client/assets/tasks-CAcIEtSF.js +0 -1
- package/dist/client/assets/useInfiniteQuery-Dw4aF3nd.js +0 -1
- package/dist/client/assets/useQuery-CTePvczf.js +0 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-All2JJwt.js +0 -1
- package/dist/server/node_modules/pg/README.md +0 -95
- package/dist/server/node_modules/pg/esm/index.mjs +0 -20
- package/dist/server/node_modules/pg/lib/client.js +0 -743
- package/dist/server/node_modules/pg/lib/connection-parameters.js +0 -171
- package/dist/server/node_modules/pg/lib/connection.js +0 -221
- package/dist/server/node_modules/pg/lib/crypto/cert-signatures.js +0 -122
- package/dist/server/node_modules/pg/lib/crypto/sasl.js +0 -212
- package/dist/server/node_modules/pg/lib/crypto/utils-legacy.js +0 -43
- package/dist/server/node_modules/pg/lib/crypto/utils-webcrypto.js +0 -89
- package/dist/server/node_modules/pg/lib/crypto/utils.js +0 -9
- package/dist/server/node_modules/pg/lib/defaults.js +0 -91
- package/dist/server/node_modules/pg/lib/index.js +0 -73
- package/dist/server/node_modules/pg/lib/native/client.js +0 -323
- package/dist/server/node_modules/pg/lib/native/index.js +0 -2
- package/dist/server/node_modules/pg/lib/native/query.js +0 -165
- package/dist/server/node_modules/pg/lib/query.js +0 -252
- package/dist/server/node_modules/pg/lib/result.js +0 -109
- package/dist/server/node_modules/pg/lib/stream.js +0 -83
- package/dist/server/node_modules/pg/lib/type-overrides.js +0 -35
- package/dist/server/node_modules/pg/lib/utils.js +0 -217
- package/dist/server/node_modules/pg/package.json +0 -76
- /package/dist/server/node_modules/{pg → pg-cloudflare}/LICENSE +0 -0
package/dist/server/migrate.js
CHANGED
|
@@ -1579,7 +1579,7 @@ ${Q}
|
|
|
1579
1579
|
`;break}case"tool":throw new hz({functionality:"tool messages"});default:break}return W+=`${G}:
|
|
1580
1580
|
`,{prompt:W}}function gr4(Y){if(Y.type==="url")return{type:"image_url",image_url:{url:Y.url}};return{type:"image_url",image_url:{url:JX6({data:Y.data,mediaType:Y.mediaType,defaultMediaType:xr4})}}}function ur4(Y){return Object.fromEntries(Object.entries(Y).filter(([,X])=>X!=null))}function mr4(Y){if(!Y)return{};if(Y instanceof Headers)return Object.fromEntries(Y.entries());if(Array.isArray(Y))return Object.fromEntries(Y);return Y}function lr4(Y,X){let J=X.toLowerCase();return Object.keys(Y).find((G)=>G.toLowerCase()===J)}function dr4(Y,...X){let J=mr4(Y),G=ur4(J),W=lr4(G,"user-agent"),K=W?G[W]:void 0,Z=(K==null?void 0:K.trim())?K:X.filter(Boolean).join(" "),Q=Object.fromEntries(Object.entries(G).filter(([H])=>H.toLowerCase()!=="user-agent"));return K9(t0({},Q),{"user-agent":Z})}function OS1(Y={}){var X,J,G;let W=(J=Vr4((X=Y.baseURL)!=null?X:Y.baseUrl))!=null?J:"https://openrouter.ai/api/v1",K=(G=Y.compatibility)!=null?G:"compatible",Z=()=>dr4(t0(t0({Authorization:`Bearer ${Ha4({apiKey:Y.apiKey,environmentVariableName:"OPENROUTER_API_KEY",description:"OpenRouter"})}`},Y.headers),Y.api_keys&&Object.keys(Y.api_keys).length>0&&{"X-Provider-API-Keys":JSON.stringify(Y.api_keys)}),`ai-sdk/openrouter/${cr4}`),Q=(q,B={})=>new Sr4(q,B,{provider:"openrouter.chat",url:({path:O})=>`${W}${O}`,headers:Z,compatibility:K,fetch:Y.fetch,extraBody:Y.extraBody}),H=(q,B={})=>new kr4(q,B,{provider:"openrouter.completion",url:({path:O})=>`${W}${O}`,headers:Z,compatibility:K,fetch:Y.fetch,extraBody:Y.extraBody}),$=(q,B={})=>new yr4(q,B,{provider:"openrouter.embedding",url:({path:O})=>`${W}${O}`,headers:Z,fetch:Y.fetch,extraBody:Y.extraBody}),V=(q,B={})=>new br4(q,B,{provider:"openrouter.image",url:({path:O})=>`${W}${O}`,headers:Z,fetch:Y.fetch,extraBody:Y.extraBody}),z=(q,B)=>{if(new.target)throw Error("The OpenRouter model function cannot be called with the new keyword.");if(q==="openai/gpt-3.5-turbo-instruct")return H(q,B);return Q(q,B)},U=(q,B)=>z(q,B);return U.languageModel=z,U.chat=Q,U.completion=H,U.textEmbeddingModel=$,U.embedding=$,U.imageModel=V,U}var Ii4,Si4,ji4,i61,VY6,zY6,UY6=(Y)=>{throw TypeError(Y)},C96=(Y,X,J)=>(X in Y)?Ii4(Y,X,{enumerable:!0,configurable:!0,writable:!0,value:J}):Y[X]=J,t0=(Y,X)=>{for(var J in X||(X={}))if(VY6.call(X,J))C96(Y,J,X[J]);if(i61){for(var J of i61(X))if(zY6.call(X,J))C96(Y,J,X[J])}return Y},K9=(Y,X)=>Si4(Y,ji4(X)),Ux=(Y,X)=>{var J={};for(var G in Y)if(VY6.call(Y,G)&&X.indexOf(G)<0)J[G]=Y[G];if(Y!=null&&i61){for(var G of i61(Y))if(X.indexOf(G)<0&&zY6.call(Y,G))J[G]=Y[G]}return J},ki4=(Y,X,J)=>X.has(Y)||UY6("Cannot "+J),I96=(Y,X,J)=>(ki4(Y,X,"read from private field"),J?J.call(Y):X.get(Y)),_i4=(Y,X,J)=>X.has(Y)?UY6("Cannot add the same private member more than once"):X instanceof WeakSet?X.add(Y):X.set(Y,J),qY6="vercel.ai.error",vi4,S96,j96,GY,DY6="AI_APICallError",BY6,fi4,k96,_96,iH,LY6="AI_EmptyResponseBodyError",OY6,yi4,v96,f96,hi4,wY6="AI_InvalidArgumentError",MY6,bi4,y96,h96,AY6,PY6="AI_InvalidPromptError",EY6,xi4,b96,x96,gi4,TY6="AI_InvalidResponseDataError",RY6,ui4,g96,u96,zx,CY6="AI_JSONParseError",IY6,mi4,m96,l96,a61,SY6="AI_LoadAPIKeyError",jY6,li4,d96,c96,d61,kY6="AI_LoadSettingError",_Y6,di4,p96,n96,lWY,vY6="AI_NoContentGeneratedError",fY6,ci4,i96,a96,VS1,yY6="AI_NoSuchModelError",hY6,pi4,r96,o96,dWY,bY6="AI_TooManyEmbeddingValuesForCallError",xY6,ni4,s96,t96,cWY,gY6="AI_TypeValidationError",uY6,ii4,e96,YY6,qx,mY6="AI_UnsupportedFunctionalityError",lY6,ai4,XY6,JY6,hz,GY6,si4,ti4,aWY,dY6="AI_DownloadError",cY6,Ya4,WY6,ZY6,rWY,Xa4=({prefix:Y,size:X=16,alphabet:J="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",separator:G="-"}={})=>{let W=()=>{let K=J.length,Z=Array(X);for(let Q=0;Q<X;Q++)Z[Q]=J[Math.random()*K|0];return Z.join("")};if(Y==null)return W;if(J.includes(G))throw new AY6({argument:"separator",message:`The separator "${G}" must not be part of the alphabet "${J}".`});return()=>`${Y}${G}${W()}`},nH,Ja4,Ka4="4.0.1",$a4,Fa4,za4,KY6,Ua4=(Y)=>typeof Y==="string"?K9(t0({},KY6),{name:Y}):t0(t0({},KY6),Y),La4=(Y,X)=>{return d9(Y.innerType._def,X)},Oa4=(Y)=>{let X={type:"integer",format:"unix-time"};for(let J of Y.checks)switch(J.kind){case"min":X.minimum=J.value;break;case"max":X.maximum=J.value;break}return X},Aa4=(Y)=>{if("type"in Y&&Y.type==="string")return!1;return"allOf"in Y},JS1=void 0,cH,Ta4,KS1,_a4=(Y,X)=>{let J=(Y.options instanceof Map?Array.from(Y.options.values()):Y.options).map((G,W)=>d9(G._def,K9(t0({},X),{currentPath:[...X.currentPath,"anyOf",`${W}`]}))).filter((G)=>!!G&&(!X.strictUnions||typeof G==="object"&&Object.keys(G).length>0));return J.length?{anyOf:J}:void 0},xa4=(Y,X)=>{var J;if(X.currentPath.toString()===((J=X.propertyPath)==null?void 0:J.toString()))return d9(Y.innerType._def,X);let G=d9(Y.innerType._def,K9(t0({},X),{currentPath:[...X.currentPath,"anyOf","1"]}));return G?{anyOf:[{not:lZ()},G]}:lZ()},ga4=(Y,X)=>{if(X.pipeStrategy==="input")return d9(Y.in._def,X);else if(X.pipeStrategy==="output")return d9(Y.out._def,X);let J=d9(Y.in._def,K9(t0({},X),{currentPath:[...X.currentPath,"allOf","0"]})),G=d9(Y.out._def,K9(t0({},X),{currentPath:[...X.currentPath,"allOf",J?"1":"0"]}));return{allOf:[J,G].filter((W)=>W!==void 0)}},pa4=(Y,X)=>{return d9(Y.innerType._def,X)},na4=(Y,X,J)=>{switch(X){case x1.ZodString:return iY6(Y,J);case x1.ZodNumber:return fa4(Y);case x1.ZodObject:return ya4(Y,J);case x1.ZodBigInt:return Da4(Y);case x1.ZodBoolean:return Ba4();case x1.ZodDate:return nY6(Y,J);case x1.ZodUndefined:return da4();case x1.ZodNull:return ja4();case x1.ZodArray:return qa4(Y,J);case x1.ZodUnion:case x1.ZodDiscriminatedUnion:return ka4(Y,J);case x1.ZodIntersection:return Pa4(Y,J);case x1.ZodTuple:return la4(Y,J);case x1.ZodRecord:return aY6(Y,J);case x1.ZodLiteral:return Ea4(Y);case x1.ZodEnum:return Ma4(Y);case x1.ZodNativeEnum:return Ia4(Y);case x1.ZodNullable:return va4(Y,J);case x1.ZodOptional:return xa4(Y,J);case x1.ZodMap:return Ca4(Y,J);case x1.ZodSet:return ma4(Y,J);case x1.ZodLazy:return()=>Y.getter()._def;case x1.ZodPromise:return ua4(Y,J);case x1.ZodNaN:case x1.ZodNever:return Sa4();case x1.ZodEffects:return wa4(Y,J);case x1.ZodAny:return lZ();case x1.ZodUnknown:return ca4();case x1.ZodDefault:return Na4(Y,J);case x1.ZodBranded:return pY6(Y,J);case x1.ZodReadonly:return pa4(Y,J);case x1.ZodCatch:return La4(Y,J);case x1.ZodPipeline:return ga4(Y,J);case x1.ZodFunction:case x1.ZodVoid:case x1.ZodSymbol:return;default:return((G)=>{return})(X)}},ia4=(Y,X)=>{let J=0;for(;J<Y.length&&J<X.length;J++)if(Y[J]!==X[J])break;return[(Y.length-J).toString(),...X.slice(J)].join("/")},aa4=(Y,X)=>{switch(X.$refStrategy){case"root":return{$ref:Y.path.join("/")};case"relative":return{$ref:ia4(X.currentPath,Y.path)};case"none":case"seen":{if(Y.path.length<X.currentPath.length&&Y.path.every((J,G)=>X.currentPath[G]===J))return console.warn(`Recursive reference detected at ${X.currentPath.join("/")}! Defaulting to any`),lZ();return X.$refStrategy==="seen"?lZ():void 0}}},ra4=(Y,X,J)=>{if(Y.description)J.description=Y.description;return J},oa4=(Y)=>{let X=Ua4(Y),J=X.name!==void 0?[...X.basePath,X.definitionPath,X.name]:X.basePath;return K9(t0({},X),{currentPath:J,propertyPath:void 0,seen:new Map(Object.entries(X.definitions).map(([G,W])=>[W._def,{def:W._def,path:[...X.basePath,X.definitionPath,G],jsonSchema:void 0}]))})},sa4=(Y,X)=>{var J;let G=oa4(X),W=typeof X==="object"&&X.definitions?Object.entries(X.definitions).reduce(($,[V,z])=>{var U;return K9(t0({},$),{[V]:(U=d9(z._def,K9(t0({},G),{currentPath:[...G.basePath,G.definitionPath,V]}),!0))!=null?U:lZ()})},{}):void 0,K=typeof X==="string"?X:(X==null?void 0:X.nameStrategy)==="title"?void 0:X==null?void 0:X.name,Z=(J=d9(Y._def,K===void 0?G:K9(t0({},G),{currentPath:[...G.basePath,G.definitionPath,K]}),!1))!=null?J:lZ(),Q=typeof X==="object"&&X.name!==void 0&&X.nameStrategy==="title"?X.name:void 0;if(Q!==void 0)Z.title=Q;let H=K===void 0?W?K9(t0({},Z),{[G.definitionPath]:W}):Z:{$ref:[...G.$refStrategy==="relative"?[]:G.basePath,G.definitionPath,K].join("/"),[G.definitionPath]:K9(t0({},W),{[K]:Z})};return H.$schema="http://json-schema.org/draft-07/schema#",H},HS1,Hr4=()=>globalThis.fetch,mR=async({url:Y,headers:X,body:J,failedResponseHandler:G,successfulResponseHandler:W,abortSignal:K,fetch:Z})=>$r4({url:Y,headers:t0({"Content-Type":"application/json"},X),body:{content:JSON.stringify(J),values:J},failedResponseHandler:G,successfulResponseHandler:W,abortSignal:K,fetch:Z}),$r4=async({url:Y,headers:X={},body:J,successfulResponseHandler:G,failedResponseHandler:W,abortSignal:K,fetch:Z=Hr4()})=>{try{let Q=await Z(Y,{method:"POST",headers:Qa4(X,`ai-sdk/provider-utils/${Ka4}`,Wa4()),body:J.content,signal:K}),H=t61(Q);if(!Q.ok){let $;try{$=await W({response:Q,url:Y,requestBodyValues:J.values})}catch(V){if(QS1(V)||iH.isInstance(V))throw V;throw new iH({message:"Failed to process error response",cause:V,statusCode:Q.status,url:Y,responseHeaders:H,requestBodyValues:J.values})}throw $.value}try{return await G({response:Q,url:Y,requestBodyValues:J.values})}catch($){if($ instanceof Error){if(QS1($)||iH.isInstance($))throw $}throw new iH({message:"Failed to process successful response",cause:$,statusCode:Q.status,url:Y,responseHeaders:H,requestBodyValues:J.values})}}catch(Q){throw Ga4({error:Q,url:Y,requestBodyValues:J.values})}},Fr4=({errorSchema:Y,errorToMessage:X,isRetryable:J})=>async({response:G,url:W,requestBodyValues:K})=>{let Z=await G.text(),Q=t61(G);if(Z.trim()==="")return{responseHeaders:Q,value:new iH({message:G.statusText,url:W,requestBodyValues:K,statusCode:G.status,responseHeaders:Q,responseBody:Z,isRetryable:J==null?void 0:J(G)})};try{let H=await Qr4({text:Z,schema:Y});return{responseHeaders:Q,value:new iH({message:X(H),url:W,requestBodyValues:K,statusCode:G.status,responseHeaders:Q,responseBody:Z,data:H,isRetryable:J==null?void 0:J(G,H)})}}catch(H){return{responseHeaders:Q,value:new iH({message:G.statusText,url:W,requestBodyValues:K,statusCode:G.status,responseHeaders:Q,responseBody:Z,isRetryable:J==null?void 0:J(G)})}}},sY6=(Y)=>async({response:X})=>{let J=t61(X);if(X.body==null)throw new hi4({});return{responseHeaders:J,value:Kr4({stream:X.body,schema:Y})}},Y41=(Y)=>async({response:X,url:J,requestBodyValues:G})=>{let W=await X.text(),K=await oY6({text:W,schema:Y}),Z=t61(X);if(!K.success)throw new iH({message:"Invalid JSON response",cause:K.error,statusCode:X.status,responseHeaders:Z,responseBody:W,url:J,requestBodyValues:G});return{responseHeaders:Z,value:K.value,rawValue:K.rawValue}},tY6,US1,zr4,Ur4,qr4,qS1,p61,DS1,sWY,X41,lR,eY6,BS1,YX6,n61,Lr4=class{constructor(){_i4(this,n61,new Set)}upsert(Y){let X=this.getCanonicalKey(Y);if(X===null)return!1;if(I96(this,n61).has(X))return!1;return I96(this,n61).add(X),!0}getCanonicalKey(Y){switch(Y.type){case"reasoning.summary":return Y.summary;case"reasoning.encrypted":if(Y.id)return Y.id;return Y.data;case"reasoning.text":{if(Y.text)return Y.text;if(Y.signature)return Y.signature;return null}default:return null}}},Or4,Nr4,XZY,Tr4,Rr4,GX6,WX6,Cr4,Ir4,Sr4=class{constructor(Y,X,J){this.specificationVersion="v3",this.provider="openrouter",this.defaultObjectGenerationMode="tool",this.supportsImageUrls=!0,this.supportedUrls={"image/*":[/^data:image\/[a-zA-Z]+;base64,/,/^https?:\/\/.+\.(jpg|jpeg|png|gif|webp)$/i],"application/*":[/^data:application\//,/^https?:\/\/.+$/]},this.modelId=Y,this.settings=X,this.config=J}getArgs({prompt:Y,maxOutputTokens:X,temperature:J,topP:G,frequencyPenalty:W,presencePenalty:K,seed:Z,stopSequences:Q,responseFormat:H,topK:$,tools:V,toolChoice:z}){var U;let q=t0(t0({model:this.modelId,models:this.settings.models,logit_bias:this.settings.logitBias,logprobs:this.settings.logprobs===!0||typeof this.settings.logprobs==="number"?!0:void 0,top_logprobs:typeof this.settings.logprobs==="number"?this.settings.logprobs:typeof this.settings.logprobs==="boolean"?this.settings.logprobs?0:void 0:void 0,user:this.settings.user,parallel_tool_calls:this.settings.parallelToolCalls,max_tokens:X,temperature:J,top_p:G,frequency_penalty:W,presence_penalty:K,seed:Z,stop:Q,response_format:(H==null?void 0:H.type)==="json"?H.schema!=null?{type:"json_schema",json_schema:t0({schema:H.schema,strict:!0,name:(U=H.name)!=null?U:"response"},H.description&&{description:H.description})}:{type:"json_object"}:void 0,top_k:$,messages:Mr4(Y),include_reasoning:this.settings.includeReasoning,reasoning:this.settings.reasoning,usage:this.settings.usage,plugins:this.settings.plugins,web_search_options:this.settings.web_search_options,provider:this.settings.provider,debug:this.settings.debug,cache_control:this.settings.cache_control},this.config.extraBody),this.settings.extraBody);if(V&&V.length>0){let B=V.filter((O)=>O.type==="function").map((O)=>({type:"function",function:{name:O.name,description:O.description,parameters:O.inputSchema}}));return K9(t0({},q),{tools:B,tool_choice:z?Er4(z):void 0})}return q}async doGenerate(Y){var X,J,G,W,K,Z,Q,H,$,V,z,U,q,B,O,M,P,C,k,T,E,S;let x=(Y.providerOptions||{}).openrouter||{},{cacheControl:d}=x,u=Ux(x,["cacheControl"]),e=t0(t0(t0({},this.getArgs(Y)),u),d!=null&&!("cache_control"in u)?{cache_control:d}:{}),{value:n,responseHeaders:m}=await mR({url:this.config.url({path:"/chat/completions",modelId:this.modelId}),headers:uR(this.config.headers(),Y.headers),body:e,failedResponseHandler:lR,successfulResponseHandler:Y41(Cr4),abortSignal:Y.abortSignal,fetch:this.config.fetch});if("error"in n){let Q1=n.error;throw new iH({message:Q1.message,url:this.config.url({path:"/chat/completions",modelId:this.modelId}),requestBodyValues:e,statusCode:200,responseHeaders:m,data:Q1})}let o=n,H1=o.choices[0];if(!H1)throw new VS1({message:"No choice in response"});let Z1=o.usage?r61(o.usage):XX6(),O1=(X=H1.message.reasoning_details)!=null?X:[],M1=O1.length>0?O1.map((Q1)=>{switch(Q1.type){case"reasoning.text":{if(Q1.text)return{type:"reasoning",text:Q1.text,providerMetadata:{openrouter:{reasoning_details:[Q1]}}};break}case"reasoning.summary":{if(Q1.summary)return{type:"reasoning",text:Q1.summary,providerMetadata:{openrouter:{reasoning_details:[Q1]}}};break}case"reasoning.encrypted":{if(Q1.data)return{type:"reasoning",text:"[REDACTED]",providerMetadata:{openrouter:{reasoning_details:[Q1]}}};break}default:}return null}).filter((Q1)=>Q1!==null):H1.message.reasoning?[{type:"reasoning",text:H1.message.reasoning}]:[],C1=[];if(C1.push(...M1),H1.message.content)C1.push({type:"text",text:H1.message.content});if(H1.message.tool_calls){let Q1=!1;for(let J0 of H1.message.tool_calls)C1.push({type:"tool-call",toolCallId:(J=J0.id)!=null?J:nH(),toolName:J0.function.name,input:(G=J0.function.arguments)!=null?G:"{}",providerMetadata:!Q1?{openrouter:{reasoning_details:O1}}:void 0}),Q1=!0}if(H1.message.images)for(let Q1 of H1.message.images)C1.push({type:"file",mediaType:$Y6(Q1.image_url.url,"image/jpeg"),data:s61(Q1.image_url.url)});if(H1.message.annotations){for(let Q1 of H1.message.annotations)if(Q1.type==="url_citation")C1.push({type:"source",sourceType:"url",id:Q1.url_citation.url,url:Q1.url_citation.url,title:(W=Q1.url_citation.title)!=null?W:"",providerMetadata:{openrouter:{content:(K=Q1.url_citation.content)!=null?K:"",startIndex:(Z=Q1.url_citation.start_index)!=null?Z:0,endIndex:(Q=Q1.url_citation.end_index)!=null?Q:0}}})}let f1=(H=H1.message.annotations)==null?void 0:H.filter((Q1)=>Q1.type==="file"),y1=H1.message.tool_calls&&H1.message.tool_calls.length>0,z0=O1.some((Q1)=>Q1.type==="reasoning.encrypted"&&Q1.data),v1=y1&&z0&&H1.finish_reason==="stop"?XB("tool-calls",($=H1.finish_reason)!=null?$:void 0):o61(H1.finish_reason);return{content:C1,finishReason:v1,usage:Z1,warnings:[],providerMetadata:{openrouter:BS1.parse({provider:(V=o.provider)!=null?V:"",reasoning_details:(z=H1.message.reasoning_details)!=null?z:[],annotations:f1&&f1.length>0?f1:void 0,usage:t0(t0(t0(t0({promptTokens:(U=Z1.inputTokens.total)!=null?U:0,completionTokens:(q=Z1.outputTokens.total)!=null?q:0,totalTokens:((B=Z1.inputTokens.total)!=null?B:0)+((O=Z1.outputTokens.total)!=null?O:0)},((M=o.usage)==null?void 0:M.cost)!=null?{cost:o.usage.cost}:{}),((C=(P=o.usage)==null?void 0:P.prompt_tokens_details)==null?void 0:C.cached_tokens)!=null?{promptTokensDetails:{cachedTokens:o.usage.prompt_tokens_details.cached_tokens}}:{}),((T=(k=o.usage)==null?void 0:k.completion_tokens_details)==null?void 0:T.reasoning_tokens)!=null?{completionTokensDetails:{reasoningTokens:o.usage.completion_tokens_details.reasoning_tokens}}:{}),((S=(E=o.usage)==null?void 0:E.cost_details)==null?void 0:S.upstream_inference_cost)!=null?{costDetails:{upstreamInferenceCost:o.usage.cost_details.upstream_inference_cost}}:{})})},request:{body:e},response:{id:o.id,modelId:o.model,headers:m}}}async doStream(Y){var X;let W=(Y.providerOptions||{}).openrouter||{},{cacheControl:K}=W,Z=Ux(W,["cacheControl"]),Q=t0(t0(t0({},this.getArgs(Y)),Z),K!=null&&!("cache_control"in Z)?{cache_control:K}:{}),{value:H,responseHeaders:$}=await mR({url:this.config.url({path:"/chat/completions",modelId:this.modelId}),headers:uR(this.config.headers(),Y.headers),body:K9(t0({},Q),{stream:!0,stream_options:this.config.compatibility==="strict"?t0({include_usage:!0},((X=this.settings.usage)==null?void 0:X.include)?{include_usage:!0}:{}):void 0}),failedResponseHandler:lR,successfulResponseHandler:sY6(Ir4),abortSignal:Y.abortSignal,fetch:this.config.fetch}),V=[],z=XB("other"),U={inputTokens:{total:void 0,noCache:void 0,cacheRead:void 0,cacheWrite:void 0},outputTokens:{total:void 0,text:void 0,reasoning:void 0},raw:void 0},q={},B,O=[],M=!1,P=[],C=!1,k=!1,T,E,S,h;return{stream:H.pipeThrough(new TransformStream({transform(_,x){var d,u,e,n,m,o,H1,Z1,O1,M1,C1,f1,y1,z0,p1,v1,Q1,J0,P0,S0,o1;if(Y.includeRawChunks)x.enqueue({type:"raw",rawValue:_.rawValue});if(!_.success){z=XB("error"),x.enqueue({type:"error",error:_.error});return}let E1=_.value;if("error"in E1){z=XB("error"),x.enqueue({type:"error",error:E1.error});return}if(E1.provider)h=E1.provider;if(E1.id)S=E1.id,x.enqueue({type:"response-metadata",id:E1.id});if(E1.model)x.enqueue({type:"response-metadata",modelId:E1.model});if(E1.usage!=null){let V1=r61(E1.usage);Object.assign(U.inputTokens,V1.inputTokens),Object.assign(U.outputTokens,V1.outputTokens),B=E1.usage;let a1=(d=E1.usage.prompt_tokens)!=null?d:0,l1=(u=E1.usage.completion_tokens)!=null?u:0;if(q.promptTokens=a1,E1.usage.prompt_tokens_details)q.promptTokensDetails={cachedTokens:(e=E1.usage.prompt_tokens_details.cached_tokens)!=null?e:0};if(q.completionTokens=l1,E1.usage.completion_tokens_details)q.completionTokensDetails={reasoningTokens:(n=E1.usage.completion_tokens_details.reasoning_tokens)!=null?n:0};if(E1.usage.cost!=null)q.cost=E1.usage.cost;q.totalTokens=E1.usage.total_tokens;let i1=(m=E1.usage.cost_details)==null?void 0:m.upstream_inference_cost;if(i1!=null)q.costDetails={upstreamInferenceCost:i1}}let D1=E1.choices[0];if((D1==null?void 0:D1.finish_reason)!=null)z=o61(D1.finish_reason);if((D1==null?void 0:D1.delta)==null)return;let K1=D1.delta,w1=(V1,a1)=>{if(!k)E=S||nH(),x.enqueue({providerMetadata:a1,type:"reasoning-start",id:E}),k=!0;x.enqueue({providerMetadata:a1,type:"reasoning-delta",delta:V1,id:E||nH()})};if(K1.reasoning_details&&K1.reasoning_details.length>0){for(let a1 of K1.reasoning_details)if(a1.type==="reasoning.text"){let l1=O[O.length-1];if((l1==null?void 0:l1.type)==="reasoning.text")l1.text=(l1.text||"")+(a1.text||""),l1.signature=l1.signature||a1.signature,l1.format=l1.format||a1.format;else O.push(t0({},a1))}else O.push(a1);let V1={openrouter:{reasoning_details:O.map((a1)=>t0({},a1))}};for(let a1 of K1.reasoning_details)switch(a1.type){case"reasoning.text":{w1(a1.text||"",V1);break}case"reasoning.encrypted":{if(a1.data)w1("[REDACTED]",V1);break}case"reasoning.summary":{if(a1.summary)w1(a1.summary,V1);break}default:break}}else if(K1.reasoning)w1(K1.reasoning);if(K1.content){if(k&&!C)x.enqueue({type:"reasoning-end",id:E||nH(),providerMetadata:O.length>0?{openrouter:{reasoning_details:O}}:void 0}),k=!1;if(!C)T=S||nH(),x.enqueue({type:"text-start",id:T}),C=!0;x.enqueue({type:"text-delta",delta:K1.content,id:T||nH()})}if(K1.annotations){for(let V1 of K1.annotations)if(V1.type==="url_citation")x.enqueue({type:"source",sourceType:"url",id:V1.url_citation.url,url:V1.url_citation.url,title:(o=V1.url_citation.title)!=null?o:"",providerMetadata:{openrouter:{content:(H1=V1.url_citation.content)!=null?H1:"",startIndex:(Z1=V1.url_citation.start_index)!=null?Z1:0,endIndex:(O1=V1.url_citation.end_index)!=null?O1:0}}});else if(V1.type==="file"){let a1=V1.file;if(a1&&typeof a1==="object"&&"hash"in a1&&"name"in a1)P.push(V1)}}if(K1.tool_calls!=null)for(let V1 of K1.tool_calls){let a1=(M1=V1.index)!=null?M1:V.length-1;if(V[a1]==null){if(V1.type!=="function")throw new zx({data:V1,message:"Expected 'function' type."});if(V1.id==null)throw new zx({data:V1,message:"Expected 'id' to be a string."});if(((C1=V1.function)==null?void 0:C1.name)==null)throw new zx({data:V1,message:"Expected 'function.name' to be a string."});V[a1]={id:V1.id,type:"function",function:{name:V1.function.name,arguments:(f1=V1.function.arguments)!=null?f1:""},inputStarted:!1,sent:!1};let i1=V[a1];if(i1==null)throw new zx({data:{index:a1,toolCallsLength:V.length},message:`Tool call at index ${a1} is missing after creation.`});if(((y1=i1.function)==null?void 0:y1.name)!=null&&((z0=i1.function)==null?void 0:z0.arguments)!=null&&WS1(i1.function.arguments))i1.inputStarted=!0,x.enqueue({type:"tool-input-start",id:i1.id,toolName:i1.function.name}),x.enqueue({type:"tool-input-delta",id:i1.id,delta:i1.function.arguments}),x.enqueue({type:"tool-input-end",id:i1.id}),x.enqueue({type:"tool-call",toolCallId:i1.id,toolName:i1.function.name,input:i1.function.arguments,providerMetadata:!M?{openrouter:{reasoning_details:O}}:void 0}),M=!0,i1.sent=!0;continue}let l1=V[a1];if(l1==null)throw new zx({data:{index:a1,toolCallsLength:V.length,toolCallDelta:V1},message:`Tool call at index ${a1} is missing during merge.`});if(!l1.inputStarted)l1.inputStarted=!0,x.enqueue({type:"tool-input-start",id:l1.id,toolName:l1.function.name});if(((p1=V1.function)==null?void 0:p1.arguments)!=null)l1.function.arguments+=(Q1=(v1=V1.function)==null?void 0:v1.arguments)!=null?Q1:"";if(x.enqueue({type:"tool-input-delta",id:l1.id,delta:(J0=V1.function.arguments)!=null?J0:""}),((P0=l1.function)==null?void 0:P0.name)!=null&&((S0=l1.function)==null?void 0:S0.arguments)!=null&&WS1(l1.function.arguments))x.enqueue({type:"tool-call",toolCallId:(o1=l1.id)!=null?o1:nH(),toolName:l1.function.name,input:l1.function.arguments,providerMetadata:!M?{openrouter:{reasoning_details:O}}:void 0}),M=!0,l1.sent=!0}if(K1.images!=null)for(let V1 of K1.images)x.enqueue({type:"file",mediaType:$Y6(V1.image_url.url,"image/jpeg"),data:s61(V1.image_url.url)})},flush(_){var x;let d=V.length>0,u=O.some((n)=>n.type==="reasoning.encrypted"&&n.data);if(d&&u&&z.unified==="stop")z=XB("tool-calls",z.raw);if(z.unified==="tool-calls"){for(let n of V)if(n&&!n.sent)_.enqueue({type:"tool-call",toolCallId:(x=n.id)!=null?x:nH(),toolName:n.function.name,input:WS1(n.function.arguments)?n.function.arguments:"{}",providerMetadata:!M?{openrouter:{reasoning_details:O}}:void 0}),M=!0,n.sent=!0}if(k)_.enqueue({type:"reasoning-end",id:E||nH(),providerMetadata:O.length>0?{openrouter:{reasoning_details:O}}:void 0});if(C)_.enqueue({type:"text-end",id:T||nH()});let e={usage:q};if(h!==void 0)e.provider=h;if(O.length>0)e.reasoning_details=O;if(P.length>0)e.annotations=P;U.raw=B,_.enqueue({type:"finish",finishReason:z,usage:U,providerMetadata:{openrouter:e}})}})),warnings:[],request:{body:Q},response:{headers:$}}}},FY6,kr4=class{constructor(Y,X,J){this.specificationVersion="v3",this.provider="openrouter",this.supportsImageUrls=!0,this.supportedUrls={"image/*":[/^data:image\/[a-zA-Z]+;base64,/,/^https?:\/\/.+\.(jpg|jpeg|png|gif|webp)$/i],"text/*":[/^data:text\//,/^https?:\/\/.+$/],"application/*":[/^data:application\//,/^https?:\/\/.+$/]},this.defaultObjectGenerationMode=void 0,this.modelId=Y,this.settings=X,this.config=J}getArgs({prompt:Y,maxOutputTokens:X,temperature:J,topP:G,frequencyPenalty:W,presencePenalty:K,seed:Z,responseFormat:Q,topK:H,stopSequences:$,tools:V,toolChoice:z}){let{prompt:U}=jr4({prompt:Y,inputFormat:"prompt"});if(V==null?void 0:V.length)throw new hz({functionality:"tools"});if(z)throw new hz({functionality:"toolChoice"});return t0(t0({model:this.modelId,models:this.settings.models,logit_bias:this.settings.logitBias,logprobs:typeof this.settings.logprobs==="number"?this.settings.logprobs:typeof this.settings.logprobs==="boolean"?this.settings.logprobs?0:void 0:void 0,suffix:this.settings.suffix,user:this.settings.user,max_tokens:X,temperature:J,top_p:G,frequency_penalty:W,presence_penalty:K,seed:Z,stop:$,response_format:Q,top_k:H,prompt:U,include_reasoning:this.settings.includeReasoning,reasoning:this.settings.reasoning},this.config.extraBody),this.settings.extraBody)}async doGenerate(Y){var X,J,G,W,K,Z,Q,H,$,V,z,U,q,B,O,M,P;let k=(Y.providerOptions||{}).openrouter||{},T=t0(t0({},this.getArgs(Y)),k),{value:E,responseHeaders:S}=await mR({url:this.config.url({path:"/completions",modelId:this.modelId}),headers:uR(this.config.headers(),Y.headers),body:T,failedResponseHandler:lR,successfulResponseHandler:Y41(FY6),abortSignal:Y.abortSignal,fetch:this.config.fetch});if("error"in E){let _=E.error;throw new iH({message:_.message,url:this.config.url({path:"/completions",modelId:this.modelId}),requestBodyValues:T,statusCode:200,responseHeaders:S,data:_})}let h=E.choices[0];if(!h)throw new VS1({message:"No choice in OpenRouter completion response"});return{content:[{type:"text",text:(X=h.text)!=null?X:""}],finishReason:o61(h.finish_reason),usage:E.usage?r61(E.usage):XX6(),warnings:[],providerMetadata:{openrouter:BS1.parse({provider:(J=E.provider)!=null?J:"",usage:t0(t0(t0(t0({promptTokens:(W=(G=E.usage)==null?void 0:G.prompt_tokens)!=null?W:0,completionTokens:(Z=(K=E.usage)==null?void 0:K.completion_tokens)!=null?Z:0,totalTokens:((H=(Q=E.usage)==null?void 0:Q.prompt_tokens)!=null?H:0)+((V=($=E.usage)==null?void 0:$.completion_tokens)!=null?V:0)},((z=E.usage)==null?void 0:z.cost)!=null?{cost:E.usage.cost}:{}),((q=(U=E.usage)==null?void 0:U.prompt_tokens_details)==null?void 0:q.cached_tokens)!=null?{promptTokensDetails:{cachedTokens:E.usage.prompt_tokens_details.cached_tokens}}:{}),((O=(B=E.usage)==null?void 0:B.completion_tokens_details)==null?void 0:O.reasoning_tokens)!=null?{completionTokensDetails:{reasoningTokens:E.usage.completion_tokens_details.reasoning_tokens}}:{}),((P=(M=E.usage)==null?void 0:M.cost_details)==null?void 0:P.upstream_inference_cost)!=null?{costDetails:{upstreamInferenceCost:E.usage.cost_details.upstream_inference_cost}}:{})})},response:{headers:S}}}async doStream(Y){let J=(Y.providerOptions||{}).openrouter||{},G=t0(t0({},this.getArgs(Y)),J),{value:W,responseHeaders:K}=await mR({url:this.config.url({path:"/completions",modelId:this.modelId}),headers:uR(this.config.headers(),Y.headers),body:K9(t0({},G),{stream:!0,stream_options:this.config.compatibility==="strict"?{include_usage:!0}:void 0}),failedResponseHandler:lR,successfulResponseHandler:sY6(FY6),abortSignal:Y.abortSignal,fetch:this.config.fetch}),Z=XB("other"),Q={inputTokens:{total:void 0,noCache:void 0,cacheRead:void 0,cacheWrite:void 0},outputTokens:{total:void 0,text:void 0,reasoning:void 0},raw:void 0},H={},$,V;return{stream:W.pipeThrough(new TransformStream({transform(z,U){var q,B,O,M,P;if(Y.includeRawChunks)U.enqueue({type:"raw",rawValue:z.rawValue});if(!z.success){Z=XB("error"),U.enqueue({type:"error",error:z.error});return}let C=z.value;if("error"in C){Z=XB("error"),U.enqueue({type:"error",error:C.error});return}if(C.provider)$=C.provider;if(C.usage!=null){let T=r61(C.usage);Object.assign(Q.inputTokens,T.inputTokens),Object.assign(Q.outputTokens,T.outputTokens),V=C.usage;let E=(q=C.usage.prompt_tokens)!=null?q:0,S=(B=C.usage.completion_tokens)!=null?B:0;if(H.promptTokens=E,C.usage.prompt_tokens_details)H.promptTokensDetails={cachedTokens:(O=C.usage.prompt_tokens_details.cached_tokens)!=null?O:0};if(H.completionTokens=S,C.usage.completion_tokens_details)H.completionTokensDetails={reasoningTokens:(M=C.usage.completion_tokens_details.reasoning_tokens)!=null?M:0};if(C.usage.cost!=null)H.cost=C.usage.cost;H.totalTokens=C.usage.total_tokens;let h=(P=C.usage.cost_details)==null?void 0:P.upstream_inference_cost;if(h!=null)H.costDetails={upstreamInferenceCost:h}}let k=C.choices[0];if((k==null?void 0:k.finish_reason)!=null)Z=o61(k.finish_reason);if((k==null?void 0:k.text)!=null)U.enqueue({type:"text-delta",delta:k.text,id:nH()})},flush(z){Q.raw=V;let U={usage:H};if($!==void 0)U.provider=$;z.enqueue({type:"finish",finishReason:Z,usage:Q,providerMetadata:{openrouter:U}})}})),response:{headers:K}}}},_r4,vr4,fr4,yr4=class{constructor(Y,X,J){this.specificationVersion="v3",this.provider="openrouter",this.maxEmbeddingsPerCall=void 0,this.supportsParallelCalls=!0,this.modelId=Y,this.settings=X,this.config=J}async doEmbed(Y){var X,J,G,W,K,Z;let{values:Q,abortSignal:H,headers:$}=Y,V=t0(t0({model:this.modelId,input:Q,user:this.settings.user,provider:this.settings.provider},this.config.extraBody),this.settings.extraBody),{value:z,responseHeaders:U}=await mR({url:this.config.url({path:"/embeddings",modelId:this.modelId}),headers:uR(this.config.headers(),$),body:V,failedResponseHandler:lR,successfulResponseHandler:Y41(fr4),abortSignal:H,fetch:this.config.fetch});return{embeddings:z.data.map((q)=>q.embedding),usage:z.usage?{tokens:z.usage.prompt_tokens}:void 0,providerMetadata:{openrouter:BS1.parse({provider:(X=z.provider)!=null?X:"",usage:t0({promptTokens:(G=(J=z.usage)==null?void 0:J.prompt_tokens)!=null?G:0,completionTokens:0,totalTokens:(K=(W=z.usage)==null?void 0:W.total_tokens)!=null?K:0},((Z=z.usage)==null?void 0:Z.cost)!=null?{cost:z.usage.cost}:{})})},response:{headers:U,body:z},warnings:[]}}},hr4,br4=class{constructor(Y,X,J){this.specificationVersion="v3",this.provider="openrouter",this.maxImagesPerCall=1,this.modelId=Y,this.settings=X,this.config=J}async doGenerate(Y){var X;let{prompt:J,n:G,size:W,aspectRatio:K,seed:Z,files:Q,mask:H,abortSignal:$,headers:V,providerOptions:z}=Y,U=(z==null?void 0:z.openrouter)||{},q=[];if(H!==void 0)throw new hz({functionality:"image inpainting (mask parameter)"});if(G>1)q.push({type:"unsupported",feature:"n > 1",details:`OpenRouter image generation returns 1 image per call. Requested ${G} images.`});if(W!==void 0)q.push({type:"unsupported",feature:"size",details:"Use aspectRatio instead. Size parameter is not supported by OpenRouter image generation."});let B=K!==void 0?{aspect_ratio:K}:void 0,M=Q!==void 0&&Q.length>0?[...Q.map((h)=>gr4(h)),{type:"text",text:J!=null?J:""}]:J!=null?J:"",P=t0(t0(t0(t0(t0(t0(t0({model:this.modelId,messages:[{role:"user",content:M}],modalities:["image","text"]},B!==void 0&&{image_config:B}),Z!==void 0&&{seed:Z}),this.settings.user!==void 0&&{user:this.settings.user}),this.settings.provider!==void 0&&{provider:this.settings.provider}),this.config.extraBody),this.settings.extraBody),U),{value:C,responseHeaders:k}=await mR({url:this.config.url({path:"/chat/completions",modelId:this.modelId}),headers:uR(this.config.headers(),V),body:P,failedResponseHandler:lR,successfulResponseHandler:Y41(hr4),abortSignal:$,fetch:this.config.fetch}),T=C.choices[0];if(!T)throw new VS1({message:"No choice in response"});let E=[];if((X=T.message)==null?void 0:X.images)for(let h of T.message.images){let _=h.image_url.url;E.push(s61(_))}let S=C.usage?{inputTokens:C.usage.prompt_tokens,outputTokens:C.usage.completion_tokens,totalTokens:C.usage.total_tokens}:void 0;return{images:E,warnings:q,response:{timestamp:new Date,modelId:C.model,headers:k},usage:S}}},xr4="image/png",cr4="2.3.1",KZY;var ZX6=A(()=>{J6();TK();TK();TK();J6();J6();J6();J6();J6();J6();J6();J6();J6();Ii4=Object.defineProperty,Si4=Object.defineProperties,ji4=Object.getOwnPropertyDescriptors,i61=Object.getOwnPropertySymbols,VY6=Object.prototype.hasOwnProperty,zY6=Object.prototype.propertyIsEnumerable,vi4=Symbol.for(qY6),GY=class Y extends(j96=Error,S96=vi4,j96){constructor({name:X,message:J,cause:G}){super(J);this[S96]=!0,this.name=X,this.cause=G}static isInstance(X){return Y.hasMarker(X,qY6)}static hasMarker(X,J){let G=Symbol.for(J);return X!=null&&typeof X==="object"&&G in X&&typeof X[G]==="boolean"&&X[G]===!0}},BY6=`vercel.ai.error.${DY6}`,fi4=Symbol.for(BY6),iH=class extends(_96=GY,k96=fi4,_96){constructor({message:Y,url:X,requestBodyValues:J,statusCode:G,responseHeaders:W,responseBody:K,cause:Z,isRetryable:Q=G!=null&&(G===408||G===409||G===429||G>=500),data:H}){super({name:DY6,message:Y,cause:Z});this[k96]=!0,this.url=X,this.requestBodyValues=J,this.statusCode=G,this.responseHeaders=W,this.responseBody=K,this.isRetryable=Q,this.data=H}static isInstance(Y){return GY.hasMarker(Y,BY6)}},OY6=`vercel.ai.error.${LY6}`,yi4=Symbol.for(OY6),hi4=class extends(f96=GY,v96=yi4,f96){constructor({message:Y="Empty response body"}={}){super({name:LY6,message:Y});this[v96]=!0}static isInstance(Y){return GY.hasMarker(Y,OY6)}};MY6=`vercel.ai.error.${wY6}`,bi4=Symbol.for(MY6),AY6=class extends(h96=GY,y96=bi4,h96){constructor({message:Y,cause:X,argument:J}){super({name:wY6,message:Y,cause:X});this[y96]=!0,this.argument=J}static isInstance(Y){return GY.hasMarker(Y,MY6)}},EY6=`vercel.ai.error.${PY6}`,xi4=Symbol.for(EY6),gi4=class extends(x96=GY,b96=xi4,x96){constructor({prompt:Y,message:X,cause:J}){super({name:PY6,message:`Invalid prompt: ${X}`,cause:J});this[b96]=!0,this.prompt=Y}static isInstance(Y){return GY.hasMarker(Y,EY6)}},RY6=`vercel.ai.error.${TY6}`,ui4=Symbol.for(RY6),zx=class extends(u96=GY,g96=ui4,u96){constructor({data:Y,message:X=`Invalid response data: ${JSON.stringify(Y)}.`}){super({name:TY6,message:X});this[g96]=!0,this.data=Y}static isInstance(Y){return GY.hasMarker(Y,RY6)}},IY6=`vercel.ai.error.${CY6}`,mi4=Symbol.for(IY6),a61=class extends(l96=GY,m96=mi4,l96){constructor({text:Y,cause:X}){super({name:CY6,message:`JSON parsing failed: Text: ${Y}.
|
|
1581
1581
|
Error message: ${NY6(X)}`,cause:X});this[m96]=!0,this.text=Y}static isInstance(Y){return GY.hasMarker(Y,IY6)}},jY6=`vercel.ai.error.${SY6}`,li4=Symbol.for(jY6),d61=class extends(c96=GY,d96=li4,c96){constructor({message:Y}){super({name:SY6,message:Y});this[d96]=!0}static isInstance(Y){return GY.hasMarker(Y,jY6)}},_Y6=`vercel.ai.error.${kY6}`,di4=Symbol.for(_Y6),lWY=class extends(n96=GY,p96=di4,n96){constructor({message:Y}){super({name:kY6,message:Y});this[p96]=!0}static isInstance(Y){return GY.hasMarker(Y,_Y6)}},fY6=`vercel.ai.error.${vY6}`,ci4=Symbol.for(fY6),VS1=class extends(a96=GY,i96=ci4,a96){constructor({message:Y="No content generated."}={}){super({name:vY6,message:Y});this[i96]=!0}static isInstance(Y){return GY.hasMarker(Y,fY6)}},hY6=`vercel.ai.error.${yY6}`,pi4=Symbol.for(hY6),dWY=class extends(o96=GY,r96=pi4,o96){constructor({errorName:Y=yY6,modelId:X,modelType:J,message:G=`No such ${J}: ${X}`}){super({name:Y,message:G});this[r96]=!0,this.modelId=X,this.modelType=J}static isInstance(Y){return GY.hasMarker(Y,hY6)}},xY6=`vercel.ai.error.${bY6}`,ni4=Symbol.for(xY6),cWY=class extends(t96=GY,s96=ni4,t96){constructor(Y){super({name:bY6,message:`Too many values for a single embedding call. The ${Y.provider} model "${Y.modelId}" can only embed up to ${Y.maxEmbeddingsPerCall} values per call, but ${Y.values.length} values were provided.`});this[s96]=!0,this.provider=Y.provider,this.modelId=Y.modelId,this.maxEmbeddingsPerCall=Y.maxEmbeddingsPerCall,this.values=Y.values}static isInstance(Y){return GY.hasMarker(Y,xY6)}},uY6=`vercel.ai.error.${gY6}`,ii4=Symbol.for(uY6),qx=class Y extends(YY6=GY,e96=ii4,YY6){constructor({value:X,cause:J}){super({name:gY6,message:`Type validation failed: Value: ${JSON.stringify(X)}.
|
|
1582
|
-
Error message: ${NY6(J)}`,cause:J});this[e96]=!0,this.value=X}static isInstance(X){return GY.hasMarker(X,uY6)}static wrap({value:X,cause:J}){return Y.isInstance(J)&&J.value===X?J:new Y({value:X,cause:J})}},lY6=`vercel.ai.error.${mY6}`,ai4=Symbol.for(lY6),hz=class extends(JY6=GY,XY6=ai4,JY6){constructor({functionality:Y,message:X=`'${Y}' functionality not supported.`}){super({name:mY6,message:X});this[XY6]=!0,this.functionality=Y}static isInstance(Y){return GY.hasMarker(Y,lY6)}},GY6=class extends Error{constructor(Y,X){super(Y),this.name="ParseError",this.type=X.type,this.field=X.field,this.value=X.value,this.line=X.line}};si4=class extends TransformStream{constructor({onError:Y,onRetry:X,onComment:J}={}){let G;super({start(W){G=ri4({onEvent:(K)=>{W.enqueue(K)},onError(K){Y==="terminate"?W.error(K):typeof Y=="function"&&Y(K)},onRetry:X,onComment:J})},transform(W){G.feed(W)}})}};({btoa:ti4,atob:aWY}=globalThis);cY6=`vercel.ai.error.${dY6}`,Ya4=Symbol.for(cY6),rWY=class extends(ZY6=GY,WY6=Ya4,ZY6){constructor({url:Y,statusCode:X,statusText:J,cause:G,message:W=G==null?`Failed to download ${Y}: ${X} ${J}`:`Failed to download ${Y}: ${G}`}){super({name:dY6,message:W,cause:G});this[WY6]=!0,this.url=Y,this.statusCode=X,this.statusText=J}static isInstance(Y){return GY.hasMarker(Y,cY6)}},nH=Xa4();Ja4=["fetch failed","failed to fetch"];$a4=/"__proto__"\s*:/,Fa4=/"constructor"\s*:/;za4=Symbol("Let zodToJsonSchema decide on which parser to use"),KY6={name:void 0,$refStrategy:"root",basePath:["#"],effectStrategy:"input",pipeStrategy:"all",dateStrategy:"format:date-time",mapStrategy:"entries",removeAdditionalStrategy:"passthrough",allowedAdditionalProperties:!0,rejectedAdditionalProperties:!1,definitionPath:"definitions",strictUnions:!1,definitions:{},errorMessages:!1,patternStrategy:"escape",applyRegexFlags:!1,emailStrategy:"format:email",base64Strategy:"contentEncoding:base64",nameStrategy:"ref"};cH={cuid:/^[cC][^\s-]{8,}$/,cuid2:/^[0-9a-z]+$/,ulid:/^[0-9A-HJKMNP-TV-Z]{26}$/,email:/^(?!\.)(?!.*\.\.)([a-zA-Z0-9_'+\-\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\-]*\.)+[a-zA-Z]{2,}$/,emoji:()=>{if(JS1===void 0)JS1=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u");return JS1},uuid:/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/,ipv4:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ipv4Cidr:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,ipv6:/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,ipv6Cidr:/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,base64:/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,base64url:/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,nanoid:/^[a-zA-Z0-9_-]{21}$/,jwt:/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/};Ta4=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");KS1={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};HS1=Symbol.for("vercel.ai.schema");tY6=((Y)=>{return Y.Unknown="unknown",Y.OpenAIResponsesV1="openai-responses-v1",Y.XAIResponsesV1="xai-responses-v1",Y.AnthropicClaudeV1="anthropic-claude-v1",Y.GoogleGeminiV1="google-gemini-v1",Y})(tY6||{}),US1=F.object({id:F.string().nullish(),format:F.enum(tY6).nullish(),index:F.number().optional()}).loose(),zr4=F.object({type:F.literal("reasoning.summary"),summary:F.string()}).extend(US1.shape),Ur4=F.object({type:F.literal("reasoning.encrypted"),data:F.string()}).extend(US1.shape),qr4=F.object({type:F.literal("reasoning.text"),text:F.string().nullish(),signature:F.string().nullish()}).extend(US1.shape),qS1=F.union([zr4,Ur4,qr4]),p61=F.union([qS1,F.unknown().transform(()=>null)]),DS1=F.array(p61).transform((Y)=>Y.filter((X)=>!!X)),sWY=F.union([F.object({delta:F.object({reasoning_details:F.array(p61)})}).transform((Y)=>Y.delta.reasoning_details.filter(ZS1)),F.object({message:F.object({reasoning_details:F.array(p61)})}).transform((Y)=>Y.message.reasoning_details.filter(ZS1)),F.object({text:F.string(),reasoning_details:F.array(p61)}).transform((Y)=>Y.reasoning_details.filter(ZS1))]),X41=F.object({error:F.object({code:F.union([F.string(),F.number()]).nullable().optional().default(null),message:F.string(),type:F.string().nullable().optional().default(null),param:F.any().nullable().optional().default(null)}).passthrough()}).passthrough();lR=Fr4({errorSchema:X41,errorToMessage:Dr4}),eY6=F.object({type:F.literal("file"),file:F.object({hash:F.string(),name:F.string(),content:F.array(F.object({type:F.string(),text:F.string().optional()}).catchall(F.any())).optional()}).catchall(F.any())}).catchall(F.any()),BS1=F.object({provider:F.string(),reasoning_details:F.array(qS1).optional(),annotations:F.array(eY6).optional(),usage:F.object({promptTokens:F.number(),promptTokensDetails:F.object({cachedTokens:F.number()}).catchall(F.any()).optional(),completionTokens:F.number(),completionTokensDetails:F.object({reasoningTokens:F.number()}).catchall(F.any()).optional(),totalTokens:F.number(),cost:F.number().optional(),costDetails:F.object({upstreamInferenceCost:F.number()}).catchall(F.any()).optional()}).catchall(F.any())}).catchall(F.any()),YX6=F.object({openrouter:F.object({reasoning_details:F.array(qS1).optional(),annotations:F.array(eY6).optional()}).optional()}).optional();n61=new WeakMap;Or4=["wav","mp3","aiff","aac","ogg","flac","m4a","pcm16","pcm24"];Nr4={mpeg:"mp3",mp3:"mp3","x-wav":"wav",wave:"wav",wav:"wav",ogg:"ogg",vorbis:"ogg",aac:"aac","x-aac":"aac",m4a:"m4a","x-m4a":"m4a",mp4:"m4a",aiff:"aiff","x-aiff":"aiff",flac:"flac","x-flac":"flac",pcm16:"pcm16",pcm24:"pcm24"};XZY=F.union([F.literal("auto"),F.literal("none"),F.literal("required"),F.object({type:F.literal("function"),function:F.object({name:F.string()})})]);Tr4=F.object({type:F.literal("image_url"),image_url:F.object({url:F.string()}).passthrough()}).passthrough(),Rr4=F.union([Tr4,F.unknown().transform(()=>null)]),GX6=F.array(Rr4).transform((Y)=>Y.filter((X)=>!!X)),WX6=F.object({id:F.string().optional(),model:F.string().optional(),provider:F.string().optional(),usage:F.object({prompt_tokens:F.number(),prompt_tokens_details:F.object({cached_tokens:F.number(),cache_write_tokens:F.number().nullish()}).passthrough().nullish(),completion_tokens:F.number(),completion_tokens_details:F.object({reasoning_tokens:F.number()}).passthrough().nullish(),total_tokens:F.number(),cost:F.number().optional(),cost_details:F.object({upstream_inference_cost:F.number().nullish()}).passthrough().nullish()}).passthrough().nullish()}).passthrough(),Cr4=F.union([WX6.extend({choices:F.array(F.object({message:F.object({role:F.literal("assistant"),content:F.string().nullable().optional(),reasoning:F.string().nullable().optional(),reasoning_details:DS1.nullish(),images:GX6.nullish(),tool_calls:F.array(F.object({id:F.string().optional().nullable(),type:F.literal("function"),function:F.object({name:F.string(),arguments:F.string().optional()}).passthrough()}).passthrough()).optional(),annotations:F.array(F.union([F.object({type:F.literal("url_citation"),url_citation:F.object({url:F.string(),title:F.string().optional(),start_index:F.number().optional(),end_index:F.number().optional(),content:F.string().optional()}).passthrough()}).passthrough(),F.object({type:F.literal("file_annotation"),file_annotation:F.object({file_id:F.string(),quote:F.string().optional()}).passthrough()}).passthrough(),F.object({type:F.literal("file"),file:F.object({hash:F.string(),name:F.string(),content:F.array(F.object({type:F.string(),text:F.string().optional()}).passthrough()).optional()}).passthrough()}).passthrough()])).nullish()}).passthrough(),index:F.number().nullish(),logprobs:F.object({content:F.array(F.object({token:F.string(),logprob:F.number(),top_logprobs:F.array(F.object({token:F.string(),logprob:F.number()}).passthrough())}).passthrough()).nullable()}).passthrough().nullable().optional(),finish_reason:F.string().optional().nullable()}).passthrough())}),X41.extend({user_id:F.string().optional()})]),Ir4=F.union([WX6.extend({choices:F.array(F.object({delta:F.object({role:F.enum(["assistant"]).optional(),content:F.string().nullish(),reasoning:F.string().nullish().optional(),reasoning_details:DS1.nullish(),images:GX6.nullish(),tool_calls:F.array(F.object({index:F.number().nullish(),id:F.string().nullish(),type:F.literal("function").optional(),function:F.object({name:F.string().nullish(),arguments:F.string().nullish()}).passthrough()}).passthrough()).nullish(),annotations:F.array(F.union([F.object({type:F.literal("url_citation"),url_citation:F.object({url:F.string(),title:F.string().optional(),start_index:F.number().optional(),end_index:F.number().optional(),content:F.string().optional()}).passthrough()}).passthrough(),F.object({type:F.literal("file_annotation"),file_annotation:F.object({file_id:F.string(),quote:F.string().optional()}).passthrough()}).passthrough(),F.object({type:F.literal("file"),file:F.object({hash:F.string(),name:F.string(),content:F.array(F.object({type:F.string(),text:F.string().optional()}).passthrough()).optional()}).passthrough()}).passthrough()])).nullish()}).passthrough().nullish(),logprobs:F.object({content:F.array(F.object({token:F.string(),logprob:F.number(),top_logprobs:F.array(F.object({token:F.string(),logprob:F.number()}).passthrough())}).passthrough()).nullable()}).passthrough().nullish(),finish_reason:F.string().nullable().optional(),index:F.number().nullish()}).passthrough())}),X41]);FY6=F.union([F.object({id:F.string().optional(),model:F.string().optional(),provider:F.string().optional(),choices:F.array(F.object({text:F.string(),reasoning:F.string().nullish().optional(),reasoning_details:DS1.nullish(),finish_reason:F.string().nullish(),index:F.number().nullish(),logprobs:F.object({tokens:F.array(F.string()),token_logprobs:F.array(F.number()),top_logprobs:F.array(F.record(F.string(),F.number())).nullable()}).passthrough().nullable().optional()}).passthrough()),usage:F.object({prompt_tokens:F.number(),prompt_tokens_details:F.object({cached_tokens:F.number(),cache_write_tokens:F.number().nullish()}).passthrough().nullish(),completion_tokens:F.number(),completion_tokens_details:F.object({reasoning_tokens:F.number()}).passthrough().nullish(),total_tokens:F.number(),cost:F.number().optional(),cost_details:F.object({upstream_inference_cost:F.number().nullish()}).passthrough().nullish()}).passthrough().nullish()}).passthrough(),X41]),_r4=F.object({prompt_tokens:F.number(),total_tokens:F.number(),cost:F.number().optional()}),vr4=F.object({object:F.literal("embedding"),embedding:F.array(F.number()),index:F.number().optional()}),fr4=F.object({id:F.string().optional(),object:F.literal("list"),data:F.array(vr4),model:F.string(),provider:F.string().optional(),usage:_r4.optional()}),hr4=F.object({id:F.string().optional(),object:F.string().optional(),created:F.number().optional(),model:F.string(),choices:F.array(F.object({index:F.number(),message:F.object({role:F.string(),content:F.string().nullable().optional(),images:F.array(F.object({type:F.literal("image_url"),image_url:F.object({url:F.string()})}).passthrough()).optional()}).passthrough(),finish_reason:F.string().nullable().optional()}).passthrough()),usage:F.object({prompt_tokens:F.number(),completion_tokens:F.number(),total_tokens:F.number()}).passthrough().optional()}).passthrough();KZY=OS1({compatibility:"strict"})});var pr4="https://assets.decocache.com/decocms/b2e2f64f-6025-45f7-9e8c-3b3ebdd073d8/openrouter_logojpg.jpg",J41;var NS1=A(()=>{ZX6();J41={info:{id:"openrouter",name:"OpenRouter",description:"Unified API for multiple AI providers",logo:pr4},supportedMethods:["oauth-pkce","api-key"],getOAuthUrl({callbackUrl:Y,codeChallenge:X,codeChallengeMethod:J}){return`https://openrouter.ai/auth?${new URLSearchParams({callback_url:Y,code_challenge:X,code_challenge_method:J})}`},async exchangeOAuthCode({code:Y,codeVerifier:X,codeChallengeMethod:J}){let G=await fetch("https://openrouter.ai/api/v1/auth/keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:Y,code_verifier:X,code_challenge_method:J}),signal:AbortSignal.timeout(30000)});if(!G.ok)throw Error(`OpenRouter OAuth exchange failed: ${G.status}`);let W=await G.json();return{apiKey:W.key,userId:W.user_id}},create(Y){let X=OS1({apiKey:Y}),J={Authorization:`Bearer ${Y}`};return{info:this.info,aiSdk:X,async listModels(){let G=(Q)=>{return{providerId:"openrouter",modelId:Q.id,title:Q.name,description:Q.description??null,logo:null,capabilities:[...new Set([...Q.architecture.input_modalities,...Q.architecture.output_modalities,...Q.supported_parameters?.includes("tools")?["tools"]:[],...Q.supported_parameters?.includes("reasoning")?["reasoning"]:[]])],limits:{contextWindow:Q.context_length??0,maxOutputTokens:Q.top_provider.max_completion_tokens||null},costs:{input:Q.pricing.prompt??0,output:Q.pricing.completion??0}}},W=await fetch("https://openrouter.ai/api/v1/models",{headers:J,signal:AbortSignal.timeout(30000)});if(!W.ok)throw Error(`OpenRouter listModels failed: ${W.status}`);let{data:K}=await W.json();return K.map(G)}}}}});var G41,QX6;var KX6=A(()=>{NS1();FW();G41=x4.DECO_AI_GATEWAY_URL??"https://ai-site.decocache.com",QX6={info:{id:"deco",name:"Deco AI Gateway",description:"Deco-managed keys with access to 100+ models",logo:"/logos/deco logo.svg"},supportedMethods:["oauth-pkce","api-key"],getOAuthUrl({callbackUrl:Y,codeChallenge:X,codeChallengeMethod:J,organizationId:G}){let W=new URLSearchParams({redirect_uri:Y,code_challenge:X,code_challenge_method:J,organization_id:G});return`${G41}/oauth/authorize?${W}`},async exchangeOAuthCode({code:Y,codeVerifier:X}){let J=await fetch(`${G41}/oauth/token`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:Y,code_verifier:X,grant_type:"authorization_code"}),signal:AbortSignal.timeout(30000)});if(!J.ok)throw Error(`Deco AI Gateway OAuth exchange failed: ${J.status}`);return{apiKey:(await J.json()).key}},async getTopUpUrl(Y,X,J="usd"){let G=await fetch(`${G41}/api/credits/topup`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${Y}`},body:JSON.stringify({amountCents:X,currency:J}),signal:AbortSignal.timeout(1e4)});if(!G.ok)throw Error(`Failed to create top-up checkout: ${G.status}`);return(await G.json()).url},async getCreditsBalance(Y,X){let J=await fetch(`${G41}/api/teams/${X}/balance`,{headers:{Authorization:`Bearer ${Y}`},signal:AbortSignal.timeout(1e4)});if(!J.ok)throw Error(`Failed to fetch credits balance: ${J.status}`);return{balanceCents:(await J.json()).balance_cents}},create(Y){return{...J41.create(Y),info:this.info}}}});var nr4,JK;var hw=A(()=>{V96();R96();NS1();KX6();FW();nr4=x4.DECO_AI_GATEWAY_ENABLED,JK={...nr4&&{deco:QX6},anthropic:F96,google:T96,openrouter:J41}});var wS1;var HX6=A(()=>{r1();p0();hw();wS1=h1({name:"AI_PROVIDERS_LIST",description:"List all available AI providers that can be connected with an API key",inputSchema:u0.object({}),outputSchema:u0.object({providers:u0.array(u0.object({id:u0.string(),name:u0.string(),description:u0.string(),logo:u0.string().optional(),supportedMethods:u0.array(u0.enum(["api-key","oauth-pkce"])),supportsTopUp:u0.boolean().optional(),supportsCredits:u0.boolean().optional()}))}),handler:async(Y,X)=>{return X0(X),U0(X),await X.access.check(),{providers:Object.values(JK).filter((G)=>!!G).map((G)=>({...G.info,supportedMethods:G.supportedMethods,supportsTopUp:!!G.getTopUpUrl,supportsCredits:!!G.getCreditsBalance}))}}})});var W41;var MS1=A(()=>{W41=["owner","admin"]});function ir4(Y){if(!Y)return;if(!("models"in Y))return;return Y.models??void 0}function $X6(Y,X){if(!Y)return!0;if(Y.includes("*:*"))return!0;return Y.some((J)=>J.startsWith(`${X}:`))}function FX6(Y,X,J){if(!Y)return!0;return Y.includes("*:*")||Y.includes(`${X}:*`)||Y.includes(`${X}:${J}`)}async function Z41(Y,X,J){if(!J||W41.includes(J))return;let G=await Y.selectFrom("organizationRole").select(["permission"]).where("organizationId","=",X).where("role","=",J).executeTakeFirst();if(!G?.permission)return;try{let W=JSON.parse(G.permission);return ir4(W)}catch{return console.error(`[model-permissions] Failed to parse permissions for role: ${J}`),[]}}var AS1=A(()=>{MS1()});var PS1;var VX6=A(()=>{r1();p0();AS1();PS1=h1({name:"AI_PROVIDERS_LIST_MODELS",description:"List models available from an AI provider using a specific API key",inputSchema:u0.object({keyId:u0.string().describe("The provider key ID to use")}),outputSchema:u0.object({models:u0.array(u0.object({providerId:u0.string(),modelId:u0.string(),title:u0.string(),description:u0.string().nullish(),logo:u0.string().nullish(),capabilities:u0.array(u0.string()),limits:u0.object({contextWindow:u0.coerce.number(),maxOutputTokens:u0.coerce.number().nullable()}).nullish(),costs:u0.object({input:u0.coerce.number(),output:u0.coerce.number()}).nullish()}))}),handler:async(Y,X)=>{X0(X);let J=U0(X);await X.access.check();let G=await Z41(X.db,J.id,X.auth.user?.role);return{models:(await X.aiProviders.listModels(Y.keyId,J.id)).filter((Z)=>FX6(G,Y.keyId,Z.modelId))}}})});var ES1;var zX6=A(()=>{r1();p0();hw();ES1=h1({name:"AI_PROVIDERS_ACTIVE",description:"List AI providers that have at least one API key configured",inputSchema:u0.object({}),outputSchema:u0.object({providers:u0.array(u0.object({id:u0.string(),name:u0.string(),description:u0.string(),logo:u0.string().optional(),keyCount:u0.number()}))}),handler:async(Y,X)=>{X0(X);let J=U0(X);await X.access.check();let G=await X.storage.aiProviderKeys.list({organizationId:J.id}),W=new Map;for(let Z of G)W.set(Z.providerId,(W.get(Z.providerId)??0)+1);return{providers:[...W.entries()].flatMap(([Z,Q])=>{let H=JK[Z];if(!H)return console.warn(`AI provider "${Z}" has stored keys but is not in the registry; skipping.`),[];return[{...H.info,keyCount:Q}]})}}})});var bw=A(()=>{wX()});var TS1,RS1;var CS1=A(()=>{r1();p0();bw();TS1=u0.object({id:u0.string(),providerId:u0.string(),label:u0.string(),createdAt:u0.string()}),RS1=h1({name:"AI_PROVIDER_KEY_CREATE",description:"Store an API key for an AI provider",inputSchema:u0.object({providerId:u0.enum(a7),label:u0.string().min(1).max(100),apiKey:u0.string().min(1)}),outputSchema:TS1,handler:async(Y,X)=>{X0(X);let J=U0(X);await X.access.check();let G=await X.storage.aiProviderKeys.create({providerId:Y.providerId,label:Y.label,apiKey:Y.apiKey,organizationId:J.id,createdBy:X.auth.user.id});return{id:G.id,providerId:G.providerId,label:G.label,createdAt:G.createdAt}}})});var IS1;var UX6=A(()=>{r1();p0();IS1=h1({name:"AI_PROVIDER_KEY_DELETE",description:"Delete a stored AI provider API key",inputSchema:u0.object({keyId:u0.string().describe("The provider key ID to delete")}),outputSchema:u0.object({success:u0.boolean()}),handler:async(Y,X)=>{X0(X);let J=U0(X);return await X.access.check(),await X.storage.aiProviderKeys.delete(Y.keyId,J.id),{success:!0}}})});var SS1;var qX6=A(()=>{r1();p0();bw();AS1();SS1=h1({name:"AI_PROVIDER_KEY_LIST",description:"List stored API keys for AI providers (metadata only, no secrets)",inputSchema:u0.object({providerId:u0.enum(a7).optional()}),outputSchema:u0.object({keys:u0.array(u0.object({id:u0.string(),providerId:u0.string(),label:u0.string(),createdBy:u0.string(),createdAt:u0.string()}))}),handler:async(Y,X)=>{X0(X);let J=U0(X);await X.access.check();let[G,W]=await Promise.all([X.storage.aiProviderKeys.list({organizationId:J.id,providerId:Y.providerId}),Z41(X.db,J.id,X.auth.user?.role)]);return{keys:G.filter((Z)=>$X6(W,Z.id)).map(({organizationId:Z,...Q})=>Q)}}})});import{createHash as ar4,randomBytes as rr4}from"crypto";function DX6(){return rr4(32).toString("base64url")}function BX6(Y){return ar4("sha256").update(Y).digest("base64url")}var LX6=()=>{};var jS1;var OX6=A(()=>{r1();p0();bw();hw();LX6();FW();jS1=h1({name:"AI_PROVIDER_OAUTH_URL",description:"Get the OAuth authorization URL for a provider that supports OAuth PKCE",inputSchema:u0.object({providerId:u0.enum(a7),callbackUrl:u0.string().url().refine((Y)=>{let X=x4.BASE_URL??`http://localhost:${x4.PORT}`;return new URL(Y).origin===new URL(X).origin},{message:"callbackUrl must be on the same origin as BASE_URL"})}),outputSchema:u0.object({url:u0.string(),stateToken:u0.string().describe("Opaque token \u2014 pass to AI_PROVIDER_OAUTH_EXCHANGE")}),handler:async(Y,X)=>{X0(X);let J=U0(X);await X.access.check();let G=JK[Y.providerId];if(!G)throw Error(`Unknown provider: ${Y.providerId}`);if(!G.supportedMethods.includes("oauth-pkce")||!G.getOAuthUrl)throw Error(`Provider ${Y.providerId} does not support OAuth PKCE`);let W=DX6(),K=BX6(W),Z=await X.storage.oauthPkceStates.create(W,J.id,X.auth.user.id),Q=new URL(Y.callbackUrl);Q.searchParams.set("state",Z);let H={callbackUrl:Q.toString(),codeChallenge:K,codeChallengeMethod:"S256",organizationId:J.id};return{url:G.getOAuthUrl(H),stateToken:Z}}})});var kS1;var NX6=A(()=>{r1();p0();bw();hw();CS1();kS1=h1({name:"AI_PROVIDER_OAUTH_EXCHANGE",description:"Exchange an OAuth authorization code for an API key and store it",inputSchema:u0.object({providerId:u0.enum(a7),code:u0.string(),stateToken:u0.string().describe("The stateToken returned by AI_PROVIDER_OAUTH_URL"),label:u0.string().min(1).max(100).default("Connected via OAuth")}),outputSchema:TS1,handler:async(Y,X)=>{X0(X);let J=U0(X);await X.access.check();let G=JK[Y.providerId];if(!G)throw Error(`Unknown provider: ${Y.providerId}`);if(!G.supportedMethods.includes("oauth-pkce")||!G.exchangeOAuthCode)throw Error(`Provider ${Y.providerId} does not support OAuth PKCE`);let W=Z9(X);if(!W)throw Error("Unable to determine user ID");let K=await X.storage.oauthPkceStates.consume(Y.stateToken,J.id,W),{apiKey:Z}=await G.exchangeOAuthCode({code:Y.code,codeVerifier:K,codeChallengeMethod:"S256"}),Q=await X.storage.aiProviderKeys.upsert({providerId:Y.providerId,label:Y.label,apiKey:Z,organizationId:J.id,createdBy:W});return{id:Q.id,providerId:Q.providerId,label:Q.label,createdAt:Q.createdAt}}})});var _S1;var wX6=A(()=>{r1();p0();bw();hw();_S1=h1({name:"AI_PROVIDER_TOPUP_URL",description:"Get a checkout URL to top up credits for a provider that supports it (e.g. Deco AI Gateway)",inputSchema:u0.object({providerId:u0.enum(a7),keyId:u0.string().describe("The ID of the stored provider key to top up"),amountCents:u0.number().int().positive().describe("Amount in cents (e.g. 1000 = $10.00)"),currency:u0.enum(["usd","brl"]).default("usd")}),outputSchema:u0.object({url:u0.string().describe("Checkout URL \u2014 open in browser to complete payment")}),handler:async(Y,X)=>{X0(X);let J=U0(X);await X.access.check();let G=JK[Y.providerId];if(!G)throw Error(`Unknown provider: ${Y.providerId}`);if(!G.getTopUpUrl)throw Error(`Provider ${Y.providerId} does not support credit top-ups`);let{apiKey:W}=await X.storage.aiProviderKeys.resolve(Y.keyId,J.id);return{url:await G.getTopUpUrl(W,Y.amountCents,Y.currency)}}})});var vS1;var MX6=A(()=>{r1();p0();bw();hw();EE1();vS1=h1({name:"AI_PROVIDER_CREDITS",description:"Get the current credit balance for a provider (providers that support it, e.g. Deco AI Gateway)",inputSchema:u0.object({providerId:u0.enum(a7)}),outputSchema:u0.object({balanceCents:u0.number().describe("Remaining balance in cents (e.g. 1000 = $10.00)")}),handler:async(Y,X)=>{X0(X);let J=U0(X);await X.access.check();let G=Z9(X);if(!G)throw Error("Unable to determine user ID");let W=JK[Y.providerId];if(!W)throw Error(`Unknown provider: ${Y.providerId}`);if(!W.getCreditsBalance)throw Error(`Provider ${Y.providerId} does not expose a credits balance`);let K=await po0(G);return W.getCreditsBalance(K,J.id)}})});var AX6=A(()=>{HX6();VX6();zX6();CS1();UX6();qX6();OX6();NX6();wX6();MX6()});var EX6={};M6(EX6,{managementMCP:()=>er4,ALL_TOOLS:()=>PX6});var sr4,tr4,PX6,er4=async(Y)=>{let X=null;if(Y.organization){let W=await Y.storage.organizationSettings.get(Y.organization.id),K=await Y.storage.projects.list(Y.organization.id),Z=new Set(W?.enabled_plugins??[]);for(let Q of K)if(Q.enabledPlugins)for(let H of Q.enabledPlugins)Z.add(H);X=Z.size>0?[...Z]:null}let J=JX0(PX6,X),G=new gA({name:"mcp-mesh-management",version:"1.0.0"},{capabilities:{tools:{}}});for(let W of J){let K=W.inputSchema&&typeof W.inputSchema==="object"&&"shape"in W.inputSchema?W.inputSchema:F.object({}),Z=W.outputSchema&&typeof W.outputSchema==="object"&&"shape"in W.outputSchema?W.outputSchema:void 0,Q=K.shape,H=Z?.shape;G.registerTool(W.name,{description:W.description??"",inputSchema:Q,outputSchema:H,annotations:W.annotations,_meta:W._meta},async($)=>{Y.access.setToolName(W.name);try{let V=await W.execute($,Y);return{content:[{type:"text",text:JSON.stringify(V)}],structuredContent:V}}catch(V){return{content:[{type:"text",text:`Error: ${V.message}`}],isError:!0}}})}return G};var TX6=A(()=>{Qa();xc();r1();Fo0();ko0();G66();K66();L66();E66();j66();v66();l66();Y46();U46();N46();k46();n46();a46();AX6();sr4=[WC1,ZC1,QC1,KC1,HC1,FC1,VC1,zC1,UC1,qC1,DC1,LE1,wE1,ME1,CR1,IR1,SR1,bR1,gR1,uR1,mR1,lR1,dR1,cR1,pR1,nR1,iR1,Q66,aR1,rR1,sR1,tR1,eR1,YC1,XC1,JC1,GC1,$E1,VE1,zE1,FE1,jR1,kR1,_R1,vR1,fR1,yR1,hR1,aC1,qE1,DE1,BE1,_C1,vC1,fC1,yC1,hC1,bC1,CC1,IC1,SC1,jC1,kC1,xC1,gC1,uC1,mC1,lC1,pC1,nC1,iC1,BC1,LC1,OC1,NC1,wC1,MC1,AC1,PC1,EC1,TC1,RC1,wS1,PS1,ES1,RS1,IS1,SS1,jS1,kS1,_S1,vS1],tr4=GX0(),PX6=[...sr4,...tr4]});function Yo4(Y){return[{permissions:{self:["*"]},getTools:async()=>{let{ALL_TOOLS:X}=await Promise.resolve().then(() => (TX6(),EX6));return X.map((J)=>{return{name:J.name,inputSchema:F.toJSONSchema(J.inputSchema,{unrepresentable:"any"}),outputSchema:J.outputSchema?F.toJSONSchema(J.outputSchema,{unrepresentable:"any"}):void 0,description:J.description}})},data:mZ1(LH(),Y)},{data:uZ1()},{data:gZ1(Y)}]}async function RX6(Y,X){try{let J=Ww(),G=new iP1(x4.ENCRYPTION_KEY),W=new aP1(J.db,G),K=new rP1(J.db),Z=Yo4(Y);try{await K.create({organizationId:Y,slug:PK,name:RM,description:"Organization administration and settings",enabledPlugins:null,ui:null})}catch(Q){console.warn("Could not create org-admin project (may already exist):",Q)}await Promise.all(Z.map(async(Q)=>{let H=null;if(Q.permissions)H=(await dR.api.createApiKey({body:{name:`${Q.data.app_name??crypto.randomUUID()}-mcp`,userId:X,permissions:Q.permissions,rateLimitEnabled:!1,metadata:{organization:{id:Y},purpose:"default-org-connections"}}}))?.key;let $=await oT({id:"pending",title:Q.data.title,connection_type:Q.data.connection_type,connection_url:Q.data.connection_url,connection_token:Q.data.connection_token,connection_headers:Q.data.connection_headers}).catch(()=>null),V=await Q.getTools?.()??$?.tools??null,z=$?.scopes?.length?$.scopes:null,U=Q.data.id?Q.data.id.startsWith(`${Y}_`)?Q.data.id:`${Y}_${Q.data.id}`:void 0;await W.create({...Q.data,id:U,tools:V,configuration_scopes:z,organization_id:Y,created_by:X,connection_token:Q.data.connection_token??H})}))}catch(J){console.error("Error creating default MCP connections:",J)}}var CX6=A(()=>{wX();kE();fh();Gr0();Wr0();Zr0();d11();r1();FW();t11()});async function Jo4(Y){let{user:X,token:J}=Y;if(!J?.idToken)return;let G;try{G=_9(J.idToken)}catch{return}let{preferred_username:W,upn:K}=G,Z=[W,K].filter(($)=>typeof $==="string"&&$.length>0&&$.toLowerCase()!==X.email.toLowerCase()).map(($)=>$.toLowerCase());if(Z.length===0)return;let{db:Q}=Ww(),H=await Q.selectFrom("user").selectAll().where("email","in",Z).where("id","!=",X.id).executeTakeFirst();if(!H)return;console.info(`[SSO] Merging duplicate user ${X.id} (${X.email}) into original ${H.id} (${H.email})`);try{await Q.transaction().execute(async($)=>{await S1`UPDATE "account" SET "userId" = ${H.id} WHERE "userId" = ${X.id}`.execute($),await S1`UPDATE "session" SET "userId" = ${H.id} WHERE "userId" = ${X.id}`.execute($),await S1`
|
|
1582
|
+
Error message: ${NY6(J)}`,cause:J});this[e96]=!0,this.value=X}static isInstance(X){return GY.hasMarker(X,uY6)}static wrap({value:X,cause:J}){return Y.isInstance(J)&&J.value===X?J:new Y({value:X,cause:J})}},lY6=`vercel.ai.error.${mY6}`,ai4=Symbol.for(lY6),hz=class extends(JY6=GY,XY6=ai4,JY6){constructor({functionality:Y,message:X=`'${Y}' functionality not supported.`}){super({name:mY6,message:X});this[XY6]=!0,this.functionality=Y}static isInstance(Y){return GY.hasMarker(Y,lY6)}},GY6=class extends Error{constructor(Y,X){super(Y),this.name="ParseError",this.type=X.type,this.field=X.field,this.value=X.value,this.line=X.line}};si4=class extends TransformStream{constructor({onError:Y,onRetry:X,onComment:J}={}){let G;super({start(W){G=ri4({onEvent:(K)=>{W.enqueue(K)},onError(K){Y==="terminate"?W.error(K):typeof Y=="function"&&Y(K)},onRetry:X,onComment:J})},transform(W){G.feed(W)}})}};({btoa:ti4,atob:aWY}=globalThis);cY6=`vercel.ai.error.${dY6}`,Ya4=Symbol.for(cY6),rWY=class extends(ZY6=GY,WY6=Ya4,ZY6){constructor({url:Y,statusCode:X,statusText:J,cause:G,message:W=G==null?`Failed to download ${Y}: ${X} ${J}`:`Failed to download ${Y}: ${G}`}){super({name:dY6,message:W,cause:G});this[WY6]=!0,this.url=Y,this.statusCode=X,this.statusText=J}static isInstance(Y){return GY.hasMarker(Y,cY6)}},nH=Xa4();Ja4=["fetch failed","failed to fetch"];$a4=/"__proto__"\s*:/,Fa4=/"constructor"\s*:/;za4=Symbol("Let zodToJsonSchema decide on which parser to use"),KY6={name:void 0,$refStrategy:"root",basePath:["#"],effectStrategy:"input",pipeStrategy:"all",dateStrategy:"format:date-time",mapStrategy:"entries",removeAdditionalStrategy:"passthrough",allowedAdditionalProperties:!0,rejectedAdditionalProperties:!1,definitionPath:"definitions",strictUnions:!1,definitions:{},errorMessages:!1,patternStrategy:"escape",applyRegexFlags:!1,emailStrategy:"format:email",base64Strategy:"contentEncoding:base64",nameStrategy:"ref"};cH={cuid:/^[cC][^\s-]{8,}$/,cuid2:/^[0-9a-z]+$/,ulid:/^[0-9A-HJKMNP-TV-Z]{26}$/,email:/^(?!\.)(?!.*\.\.)([a-zA-Z0-9_'+\-\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\-]*\.)+[a-zA-Z]{2,}$/,emoji:()=>{if(JS1===void 0)JS1=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u");return JS1},uuid:/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/,ipv4:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ipv4Cidr:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,ipv6:/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,ipv6Cidr:/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,base64:/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,base64url:/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,nanoid:/^[a-zA-Z0-9_-]{21}$/,jwt:/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/};Ta4=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");KS1={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};HS1=Symbol.for("vercel.ai.schema");tY6=((Y)=>{return Y.Unknown="unknown",Y.OpenAIResponsesV1="openai-responses-v1",Y.XAIResponsesV1="xai-responses-v1",Y.AnthropicClaudeV1="anthropic-claude-v1",Y.GoogleGeminiV1="google-gemini-v1",Y})(tY6||{}),US1=F.object({id:F.string().nullish(),format:F.enum(tY6).nullish(),index:F.number().optional()}).loose(),zr4=F.object({type:F.literal("reasoning.summary"),summary:F.string()}).extend(US1.shape),Ur4=F.object({type:F.literal("reasoning.encrypted"),data:F.string()}).extend(US1.shape),qr4=F.object({type:F.literal("reasoning.text"),text:F.string().nullish(),signature:F.string().nullish()}).extend(US1.shape),qS1=F.union([zr4,Ur4,qr4]),p61=F.union([qS1,F.unknown().transform(()=>null)]),DS1=F.array(p61).transform((Y)=>Y.filter((X)=>!!X)),sWY=F.union([F.object({delta:F.object({reasoning_details:F.array(p61)})}).transform((Y)=>Y.delta.reasoning_details.filter(ZS1)),F.object({message:F.object({reasoning_details:F.array(p61)})}).transform((Y)=>Y.message.reasoning_details.filter(ZS1)),F.object({text:F.string(),reasoning_details:F.array(p61)}).transform((Y)=>Y.reasoning_details.filter(ZS1))]),X41=F.object({error:F.object({code:F.union([F.string(),F.number()]).nullable().optional().default(null),message:F.string(),type:F.string().nullable().optional().default(null),param:F.any().nullable().optional().default(null)}).passthrough()}).passthrough();lR=Fr4({errorSchema:X41,errorToMessage:Dr4}),eY6=F.object({type:F.literal("file"),file:F.object({hash:F.string(),name:F.string(),content:F.array(F.object({type:F.string(),text:F.string().optional()}).catchall(F.any())).optional()}).catchall(F.any())}).catchall(F.any()),BS1=F.object({provider:F.string(),reasoning_details:F.array(qS1).optional(),annotations:F.array(eY6).optional(),usage:F.object({promptTokens:F.number(),promptTokensDetails:F.object({cachedTokens:F.number()}).catchall(F.any()).optional(),completionTokens:F.number(),completionTokensDetails:F.object({reasoningTokens:F.number()}).catchall(F.any()).optional(),totalTokens:F.number(),cost:F.number().optional(),costDetails:F.object({upstreamInferenceCost:F.number()}).catchall(F.any()).optional()}).catchall(F.any())}).catchall(F.any()),YX6=F.object({openrouter:F.object({reasoning_details:F.array(qS1).optional(),annotations:F.array(eY6).optional()}).optional()}).optional();n61=new WeakMap;Or4=["wav","mp3","aiff","aac","ogg","flac","m4a","pcm16","pcm24"];Nr4={mpeg:"mp3",mp3:"mp3","x-wav":"wav",wave:"wav",wav:"wav",ogg:"ogg",vorbis:"ogg",aac:"aac","x-aac":"aac",m4a:"m4a","x-m4a":"m4a",mp4:"m4a",aiff:"aiff","x-aiff":"aiff",flac:"flac","x-flac":"flac",pcm16:"pcm16",pcm24:"pcm24"};XZY=F.union([F.literal("auto"),F.literal("none"),F.literal("required"),F.object({type:F.literal("function"),function:F.object({name:F.string()})})]);Tr4=F.object({type:F.literal("image_url"),image_url:F.object({url:F.string()}).passthrough()}).passthrough(),Rr4=F.union([Tr4,F.unknown().transform(()=>null)]),GX6=F.array(Rr4).transform((Y)=>Y.filter((X)=>!!X)),WX6=F.object({id:F.string().optional(),model:F.string().optional(),provider:F.string().optional(),usage:F.object({prompt_tokens:F.number(),prompt_tokens_details:F.object({cached_tokens:F.number(),cache_write_tokens:F.number().nullish()}).passthrough().nullish(),completion_tokens:F.number(),completion_tokens_details:F.object({reasoning_tokens:F.number()}).passthrough().nullish(),total_tokens:F.number(),cost:F.number().optional(),cost_details:F.object({upstream_inference_cost:F.number().nullish()}).passthrough().nullish()}).passthrough().nullish()}).passthrough(),Cr4=F.union([WX6.extend({choices:F.array(F.object({message:F.object({role:F.literal("assistant"),content:F.string().nullable().optional(),reasoning:F.string().nullable().optional(),reasoning_details:DS1.nullish(),images:GX6.nullish(),tool_calls:F.array(F.object({id:F.string().optional().nullable(),type:F.literal("function"),function:F.object({name:F.string(),arguments:F.string().optional()}).passthrough()}).passthrough()).optional(),annotations:F.array(F.union([F.object({type:F.literal("url_citation"),url_citation:F.object({url:F.string(),title:F.string().optional(),start_index:F.number().optional(),end_index:F.number().optional(),content:F.string().optional()}).passthrough()}).passthrough(),F.object({type:F.literal("file_annotation"),file_annotation:F.object({file_id:F.string(),quote:F.string().optional()}).passthrough()}).passthrough(),F.object({type:F.literal("file"),file:F.object({hash:F.string(),name:F.string(),content:F.array(F.object({type:F.string(),text:F.string().optional()}).passthrough()).optional()}).passthrough()}).passthrough()])).nullish()}).passthrough(),index:F.number().nullish(),logprobs:F.object({content:F.array(F.object({token:F.string(),logprob:F.number(),top_logprobs:F.array(F.object({token:F.string(),logprob:F.number()}).passthrough())}).passthrough()).nullable()}).passthrough().nullable().optional(),finish_reason:F.string().optional().nullable()}).passthrough())}),X41.extend({user_id:F.string().optional()})]),Ir4=F.union([WX6.extend({choices:F.array(F.object({delta:F.object({role:F.enum(["assistant"]).optional(),content:F.string().nullish(),reasoning:F.string().nullish().optional(),reasoning_details:DS1.nullish(),images:GX6.nullish(),tool_calls:F.array(F.object({index:F.number().nullish(),id:F.string().nullish(),type:F.literal("function").optional(),function:F.object({name:F.string().nullish(),arguments:F.string().nullish()}).passthrough()}).passthrough()).nullish(),annotations:F.array(F.union([F.object({type:F.literal("url_citation"),url_citation:F.object({url:F.string(),title:F.string().optional(),start_index:F.number().optional(),end_index:F.number().optional(),content:F.string().optional()}).passthrough()}).passthrough(),F.object({type:F.literal("file_annotation"),file_annotation:F.object({file_id:F.string(),quote:F.string().optional()}).passthrough()}).passthrough(),F.object({type:F.literal("file"),file:F.object({hash:F.string(),name:F.string(),content:F.array(F.object({type:F.string(),text:F.string().optional()}).passthrough()).optional()}).passthrough()}).passthrough()])).nullish()}).passthrough().nullish(),logprobs:F.object({content:F.array(F.object({token:F.string(),logprob:F.number(),top_logprobs:F.array(F.object({token:F.string(),logprob:F.number()}).passthrough())}).passthrough()).nullable()}).passthrough().nullish(),finish_reason:F.string().nullable().optional(),index:F.number().nullish()}).passthrough())}),X41]);FY6=F.union([F.object({id:F.string().optional(),model:F.string().optional(),provider:F.string().optional(),choices:F.array(F.object({text:F.string(),reasoning:F.string().nullish().optional(),reasoning_details:DS1.nullish(),finish_reason:F.string().nullish(),index:F.number().nullish(),logprobs:F.object({tokens:F.array(F.string()),token_logprobs:F.array(F.number()),top_logprobs:F.array(F.record(F.string(),F.number())).nullable()}).passthrough().nullable().optional()}).passthrough()),usage:F.object({prompt_tokens:F.number(),prompt_tokens_details:F.object({cached_tokens:F.number(),cache_write_tokens:F.number().nullish()}).passthrough().nullish(),completion_tokens:F.number(),completion_tokens_details:F.object({reasoning_tokens:F.number()}).passthrough().nullish(),total_tokens:F.number(),cost:F.number().optional(),cost_details:F.object({upstream_inference_cost:F.number().nullish()}).passthrough().nullish()}).passthrough().nullish()}).passthrough(),X41]),_r4=F.object({prompt_tokens:F.number(),total_tokens:F.number(),cost:F.number().optional()}),vr4=F.object({object:F.literal("embedding"),embedding:F.array(F.number()),index:F.number().optional()}),fr4=F.object({id:F.string().optional(),object:F.literal("list"),data:F.array(vr4),model:F.string(),provider:F.string().optional(),usage:_r4.optional()}),hr4=F.object({id:F.string().optional(),object:F.string().optional(),created:F.number().optional(),model:F.string(),choices:F.array(F.object({index:F.number(),message:F.object({role:F.string(),content:F.string().nullable().optional(),images:F.array(F.object({type:F.literal("image_url"),image_url:F.object({url:F.string()})}).passthrough()).optional()}).passthrough(),finish_reason:F.string().nullable().optional()}).passthrough()),usage:F.object({prompt_tokens:F.number(),completion_tokens:F.number(),total_tokens:F.number()}).passthrough().optional()}).passthrough();KZY=OS1({compatibility:"strict"})});var pr4="https://assets.decocache.com/decocms/b2e2f64f-6025-45f7-9e8c-3b3ebdd073d8/openrouter_logojpg.jpg",J41;var NS1=A(()=>{ZX6();J41={info:{id:"openrouter",name:"OpenRouter",description:"Unified API for multiple AI providers",logo:pr4},supportedMethods:["oauth-pkce","api-key"],getOAuthUrl({callbackUrl:Y,codeChallenge:X,codeChallengeMethod:J}){return`https://openrouter.ai/auth?${new URLSearchParams({callback_url:Y,code_challenge:X,code_challenge_method:J})}`},async exchangeOAuthCode({code:Y,codeVerifier:X,codeChallengeMethod:J}){let G=await fetch("https://openrouter.ai/api/v1/auth/keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:Y,code_verifier:X,code_challenge_method:J}),signal:AbortSignal.timeout(30000)});if(!G.ok)throw Error(`OpenRouter OAuth exchange failed: ${G.status}`);let W=await G.json();return{apiKey:W.key,userId:W.user_id}},create(Y){let X=OS1({apiKey:Y}),J={Authorization:`Bearer ${Y}`};return{info:this.info,aiSdk:X,async listModels(){let G=(Q)=>{return{providerId:"openrouter",modelId:Q.id,title:Q.name,description:Q.description??null,logo:null,capabilities:[...new Set([...Q.architecture.input_modalities,...Q.architecture.output_modalities,...Q.supported_parameters?.includes("tools")?["tools"]:[],...Q.supported_parameters?.includes("reasoning")?["reasoning"]:[]])],limits:{contextWindow:Q.context_length??0,maxOutputTokens:Q.top_provider.max_completion_tokens||null},costs:{input:Number(Q.pricing.prompt)||0,output:Number(Q.pricing.completion)||0}}},W=await fetch("https://openrouter.ai/api/v1/models",{headers:J,signal:AbortSignal.timeout(30000)});if(!W.ok)throw Error(`OpenRouter listModels failed: ${W.status}`);let{data:K}=await W.json();return K.map(G)}}}}});var G41,QX6;var KX6=A(()=>{NS1();FW();G41=x4.DECO_AI_GATEWAY_URL??"https://ai-site.decocache.com",QX6={info:{id:"deco",name:"Deco AI Gateway",description:"Deco-managed keys with access to 100+ models",logo:"/logos/deco logo.svg"},supportedMethods:["oauth-pkce","api-key"],getOAuthUrl({callbackUrl:Y,codeChallenge:X,codeChallengeMethod:J,organizationId:G}){let W=new URLSearchParams({redirect_uri:Y,code_challenge:X,code_challenge_method:J,organization_id:G});return`${G41}/oauth/authorize?${W}`},async exchangeOAuthCode({code:Y,codeVerifier:X}){let J=await fetch(`${G41}/oauth/token`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:Y,code_verifier:X,grant_type:"authorization_code"}),signal:AbortSignal.timeout(30000)});if(!J.ok)throw Error(`Deco AI Gateway OAuth exchange failed: ${J.status}`);return{apiKey:(await J.json()).key}},async getTopUpUrl(Y,X,J="usd"){let G=await fetch(`${G41}/api/credits/topup`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${Y}`},body:JSON.stringify({amountCents:X,currency:J}),signal:AbortSignal.timeout(1e4)});if(!G.ok)throw Error(`Failed to create top-up checkout: ${G.status}`);return(await G.json()).url},async getCreditsBalance(Y,X){let J=await fetch(`${G41}/api/teams/${X}/balance`,{headers:{Authorization:`Bearer ${Y}`},signal:AbortSignal.timeout(1e4)});if(!J.ok)throw Error(`Failed to fetch credits balance: ${J.status}`);return{balanceCents:(await J.json()).balance_cents}},create(Y){return{...J41.create(Y),info:this.info}}}});var nr4,JK;var hw=A(()=>{V96();R96();NS1();KX6();FW();nr4=x4.DECO_AI_GATEWAY_ENABLED,JK={...nr4&&{deco:QX6},anthropic:F96,google:T96,openrouter:J41}});var wS1;var HX6=A(()=>{r1();p0();hw();wS1=h1({name:"AI_PROVIDERS_LIST",description:"List all available AI providers that can be connected with an API key",inputSchema:u0.object({}),outputSchema:u0.object({providers:u0.array(u0.object({id:u0.string(),name:u0.string(),description:u0.string(),logo:u0.string().optional(),supportedMethods:u0.array(u0.enum(["api-key","oauth-pkce"])),supportsTopUp:u0.boolean().optional(),supportsCredits:u0.boolean().optional()}))}),handler:async(Y,X)=>{return X0(X),U0(X),await X.access.check(),{providers:Object.values(JK).filter((G)=>!!G).map((G)=>({...G.info,supportedMethods:G.supportedMethods,supportsTopUp:!!G.getTopUpUrl,supportsCredits:!!G.getCreditsBalance}))}}})});var W41;var MS1=A(()=>{W41=["owner","admin"]});function ir4(Y){if(!Y)return;if(!("models"in Y))return;return Y.models??void 0}function $X6(Y,X){if(!Y)return!0;if(Y.includes("*:*"))return!0;return Y.some((J)=>J.startsWith(`${X}:`))}function FX6(Y,X,J){if(!Y)return!0;return Y.includes("*:*")||Y.includes(`${X}:*`)||Y.includes(`${X}:${J}`)}async function Z41(Y,X,J){if(!J||W41.includes(J))return;let G=await Y.selectFrom("organizationRole").select(["permission"]).where("organizationId","=",X).where("role","=",J).executeTakeFirst();if(!G?.permission)return;try{let W=JSON.parse(G.permission);return ir4(W)}catch{return console.error(`[model-permissions] Failed to parse permissions for role: ${J}`),[]}}var AS1=A(()=>{MS1()});var PS1;var VX6=A(()=>{r1();p0();AS1();PS1=h1({name:"AI_PROVIDERS_LIST_MODELS",description:"List models available from an AI provider using a specific API key",inputSchema:u0.object({keyId:u0.string().describe("The provider key ID to use")}),outputSchema:u0.object({models:u0.array(u0.object({providerId:u0.string(),modelId:u0.string(),title:u0.string(),description:u0.string().nullish(),logo:u0.string().nullish(),capabilities:u0.array(u0.string()),limits:u0.object({contextWindow:u0.coerce.number(),maxOutputTokens:u0.coerce.number().nullable()}).nullish(),costs:u0.object({input:u0.coerce.number(),output:u0.coerce.number()}).nullish()}))}),handler:async(Y,X)=>{X0(X);let J=U0(X);await X.access.check();let G=await Z41(X.db,J.id,X.auth.user?.role);return{models:(await X.aiProviders.listModels(Y.keyId,J.id)).filter((Z)=>FX6(G,Y.keyId,Z.modelId))}}})});var ES1;var zX6=A(()=>{r1();p0();hw();ES1=h1({name:"AI_PROVIDERS_ACTIVE",description:"List AI providers that have at least one API key configured",inputSchema:u0.object({}),outputSchema:u0.object({providers:u0.array(u0.object({id:u0.string(),name:u0.string(),description:u0.string(),logo:u0.string().optional(),keyCount:u0.number()}))}),handler:async(Y,X)=>{X0(X);let J=U0(X);await X.access.check();let G=await X.storage.aiProviderKeys.list({organizationId:J.id}),W=new Map;for(let Z of G)W.set(Z.providerId,(W.get(Z.providerId)??0)+1);return{providers:[...W.entries()].flatMap(([Z,Q])=>{let H=JK[Z];if(!H)return console.warn(`AI provider "${Z}" has stored keys but is not in the registry; skipping.`),[];return[{...H.info,keyCount:Q}]})}}})});var bw=A(()=>{wX()});var TS1,RS1;var CS1=A(()=>{r1();p0();bw();TS1=u0.object({id:u0.string(),providerId:u0.string(),label:u0.string(),createdAt:u0.string()}),RS1=h1({name:"AI_PROVIDER_KEY_CREATE",description:"Store an API key for an AI provider",inputSchema:u0.object({providerId:u0.enum(a7),label:u0.string().min(1).max(100),apiKey:u0.string().min(1)}),outputSchema:TS1,handler:async(Y,X)=>{X0(X);let J=U0(X);await X.access.check();let G=await X.storage.aiProviderKeys.create({providerId:Y.providerId,label:Y.label,apiKey:Y.apiKey,organizationId:J.id,createdBy:X.auth.user.id});return{id:G.id,providerId:G.providerId,label:G.label,createdAt:G.createdAt}}})});var IS1;var UX6=A(()=>{r1();p0();IS1=h1({name:"AI_PROVIDER_KEY_DELETE",description:"Delete a stored AI provider API key",inputSchema:u0.object({keyId:u0.string().describe("The provider key ID to delete")}),outputSchema:u0.object({success:u0.boolean()}),handler:async(Y,X)=>{X0(X);let J=U0(X);return await X.access.check(),await X.storage.aiProviderKeys.delete(Y.keyId,J.id),{success:!0}}})});var SS1;var qX6=A(()=>{r1();p0();bw();AS1();SS1=h1({name:"AI_PROVIDER_KEY_LIST",description:"List stored API keys for AI providers (metadata only, no secrets)",inputSchema:u0.object({providerId:u0.enum(a7).optional()}),outputSchema:u0.object({keys:u0.array(u0.object({id:u0.string(),providerId:u0.string(),label:u0.string(),createdBy:u0.string(),createdAt:u0.string()}))}),handler:async(Y,X)=>{X0(X);let J=U0(X);await X.access.check();let[G,W]=await Promise.all([X.storage.aiProviderKeys.list({organizationId:J.id,providerId:Y.providerId}),Z41(X.db,J.id,X.auth.user?.role)]);return{keys:G.filter((Z)=>$X6(W,Z.id)).map(({organizationId:Z,...Q})=>Q)}}})});import{createHash as ar4,randomBytes as rr4}from"crypto";function DX6(){return rr4(32).toString("base64url")}function BX6(Y){return ar4("sha256").update(Y).digest("base64url")}var LX6=()=>{};var jS1;var OX6=A(()=>{r1();p0();bw();hw();LX6();FW();jS1=h1({name:"AI_PROVIDER_OAUTH_URL",description:"Get the OAuth authorization URL for a provider that supports OAuth PKCE",inputSchema:u0.object({providerId:u0.enum(a7),callbackUrl:u0.string().url().refine((Y)=>{let X=x4.BASE_URL??`http://localhost:${x4.PORT}`;return new URL(Y).origin===new URL(X).origin},{message:"callbackUrl must be on the same origin as BASE_URL"})}),outputSchema:u0.object({url:u0.string(),stateToken:u0.string().describe("Opaque token \u2014 pass to AI_PROVIDER_OAUTH_EXCHANGE")}),handler:async(Y,X)=>{X0(X);let J=U0(X);await X.access.check();let G=JK[Y.providerId];if(!G)throw Error(`Unknown provider: ${Y.providerId}`);if(!G.supportedMethods.includes("oauth-pkce")||!G.getOAuthUrl)throw Error(`Provider ${Y.providerId} does not support OAuth PKCE`);let W=DX6(),K=BX6(W),Z=await X.storage.oauthPkceStates.create(W,J.id,X.auth.user.id),Q=new URL(Y.callbackUrl);Q.searchParams.set("state",Z);let H={callbackUrl:Q.toString(),codeChallenge:K,codeChallengeMethod:"S256",organizationId:J.id};return{url:G.getOAuthUrl(H),stateToken:Z}}})});var kS1;var NX6=A(()=>{r1();p0();bw();hw();CS1();kS1=h1({name:"AI_PROVIDER_OAUTH_EXCHANGE",description:"Exchange an OAuth authorization code for an API key and store it",inputSchema:u0.object({providerId:u0.enum(a7),code:u0.string(),stateToken:u0.string().describe("The stateToken returned by AI_PROVIDER_OAUTH_URL"),label:u0.string().min(1).max(100).default("Connected via OAuth")}),outputSchema:TS1,handler:async(Y,X)=>{X0(X);let J=U0(X);await X.access.check();let G=JK[Y.providerId];if(!G)throw Error(`Unknown provider: ${Y.providerId}`);if(!G.supportedMethods.includes("oauth-pkce")||!G.exchangeOAuthCode)throw Error(`Provider ${Y.providerId} does not support OAuth PKCE`);let W=Z9(X);if(!W)throw Error("Unable to determine user ID");let K=await X.storage.oauthPkceStates.consume(Y.stateToken,J.id,W),{apiKey:Z}=await G.exchangeOAuthCode({code:Y.code,codeVerifier:K,codeChallengeMethod:"S256"}),Q=await X.storage.aiProviderKeys.upsert({providerId:Y.providerId,label:Y.label,apiKey:Z,organizationId:J.id,createdBy:W});return{id:Q.id,providerId:Q.providerId,label:Q.label,createdAt:Q.createdAt}}})});var _S1;var wX6=A(()=>{r1();p0();bw();hw();_S1=h1({name:"AI_PROVIDER_TOPUP_URL",description:"Get a checkout URL to top up credits for a provider that supports it (e.g. Deco AI Gateway)",inputSchema:u0.object({providerId:u0.enum(a7),keyId:u0.string().describe("The ID of the stored provider key to top up"),amountCents:u0.number().int().positive().describe("Amount in cents (e.g. 1000 = $10.00)"),currency:u0.enum(["usd","brl"]).default("usd")}),outputSchema:u0.object({url:u0.string().describe("Checkout URL \u2014 open in browser to complete payment")}),handler:async(Y,X)=>{X0(X);let J=U0(X);await X.access.check();let G=JK[Y.providerId];if(!G)throw Error(`Unknown provider: ${Y.providerId}`);if(!G.getTopUpUrl)throw Error(`Provider ${Y.providerId} does not support credit top-ups`);let{apiKey:W}=await X.storage.aiProviderKeys.resolve(Y.keyId,J.id);return{url:await G.getTopUpUrl(W,Y.amountCents,Y.currency)}}})});var vS1;var MX6=A(()=>{r1();p0();bw();hw();EE1();vS1=h1({name:"AI_PROVIDER_CREDITS",description:"Get the current credit balance for a provider (providers that support it, e.g. Deco AI Gateway)",inputSchema:u0.object({providerId:u0.enum(a7)}),outputSchema:u0.object({balanceCents:u0.number().describe("Remaining balance in cents (e.g. 1000 = $10.00)")}),handler:async(Y,X)=>{X0(X);let J=U0(X);await X.access.check();let G=Z9(X);if(!G)throw Error("Unable to determine user ID");let W=JK[Y.providerId];if(!W)throw Error(`Unknown provider: ${Y.providerId}`);if(!W.getCreditsBalance)throw Error(`Provider ${Y.providerId} does not expose a credits balance`);let K=await po0(G);return W.getCreditsBalance(K,J.id)}})});var AX6=A(()=>{HX6();VX6();zX6();CS1();UX6();qX6();OX6();NX6();wX6();MX6()});var EX6={};M6(EX6,{managementMCP:()=>er4,ALL_TOOLS:()=>PX6});var sr4,tr4,PX6,er4=async(Y)=>{let X=null;if(Y.organization){let W=await Y.storage.organizationSettings.get(Y.organization.id),K=await Y.storage.projects.list(Y.organization.id),Z=new Set(W?.enabled_plugins??[]);for(let Q of K)if(Q.enabledPlugins)for(let H of Q.enabledPlugins)Z.add(H);X=Z.size>0?[...Z]:null}let J=JX0(PX6,X),G=new gA({name:"mcp-mesh-management",version:"1.0.0"},{capabilities:{tools:{}}});for(let W of J){let K=W.inputSchema&&typeof W.inputSchema==="object"&&"shape"in W.inputSchema?W.inputSchema:F.object({}),Z=W.outputSchema&&typeof W.outputSchema==="object"&&"shape"in W.outputSchema?W.outputSchema:void 0,Q=K.shape,H=Z?.shape;G.registerTool(W.name,{description:W.description??"",inputSchema:Q,outputSchema:H,annotations:W.annotations,_meta:W._meta},async($)=>{Y.access.setToolName(W.name);try{let V=await W.execute($,Y);return{content:[{type:"text",text:JSON.stringify(V)}],structuredContent:V}}catch(V){return{content:[{type:"text",text:`Error: ${V.message}`}],isError:!0}}})}return G};var TX6=A(()=>{Qa();xc();r1();Fo0();ko0();G66();K66();L66();E66();j66();v66();l66();Y46();U46();N46();k46();n46();a46();AX6();sr4=[WC1,ZC1,QC1,KC1,HC1,FC1,VC1,zC1,UC1,qC1,DC1,LE1,wE1,ME1,CR1,IR1,SR1,bR1,gR1,uR1,mR1,lR1,dR1,cR1,pR1,nR1,iR1,Q66,aR1,rR1,sR1,tR1,eR1,YC1,XC1,JC1,GC1,$E1,VE1,zE1,FE1,jR1,kR1,_R1,vR1,fR1,yR1,hR1,aC1,qE1,DE1,BE1,_C1,vC1,fC1,yC1,hC1,bC1,CC1,IC1,SC1,jC1,kC1,xC1,gC1,uC1,mC1,lC1,pC1,nC1,iC1,BC1,LC1,OC1,NC1,wC1,MC1,AC1,PC1,EC1,TC1,RC1,wS1,PS1,ES1,RS1,IS1,SS1,jS1,kS1,_S1,vS1],tr4=GX0(),PX6=[...sr4,...tr4]});function Yo4(Y){return[{permissions:{self:["*"]},getTools:async()=>{let{ALL_TOOLS:X}=await Promise.resolve().then(() => (TX6(),EX6));return X.map((J)=>{return{name:J.name,inputSchema:F.toJSONSchema(J.inputSchema,{unrepresentable:"any"}),outputSchema:J.outputSchema?F.toJSONSchema(J.outputSchema,{unrepresentable:"any"}):void 0,description:J.description}})},data:mZ1(LH(),Y)},{data:uZ1()},{data:gZ1(Y)}]}async function RX6(Y,X){try{let J=Ww(),G=new iP1(x4.ENCRYPTION_KEY),W=new aP1(J.db,G),K=new rP1(J.db),Z=Yo4(Y);try{await K.create({organizationId:Y,slug:PK,name:RM,description:"Organization administration and settings",enabledPlugins:null,ui:null})}catch(Q){console.warn("Could not create org-admin project (may already exist):",Q)}await Promise.all(Z.map(async(Q)=>{let H=null;if(Q.permissions)H=(await dR.api.createApiKey({body:{name:`${Q.data.app_name??crypto.randomUUID()}-mcp`,userId:X,permissions:Q.permissions,rateLimitEnabled:!1,metadata:{organization:{id:Y},purpose:"default-org-connections"}}}))?.key;let $=await oT({id:"pending",title:Q.data.title,connection_type:Q.data.connection_type,connection_url:Q.data.connection_url,connection_token:Q.data.connection_token,connection_headers:Q.data.connection_headers}).catch(()=>null),V=await Q.getTools?.()??$?.tools??null,z=$?.scopes?.length?$.scopes:null,U=Q.data.id?Q.data.id.startsWith(`${Y}_`)?Q.data.id:`${Y}_${Q.data.id}`:void 0;await W.create({...Q.data,id:U,tools:V,configuration_scopes:z,organization_id:Y,created_by:X,connection_token:Q.data.connection_token??H})}))}catch(J){console.error("Error creating default MCP connections:",J)}}var CX6=A(()=>{wX();kE();fh();Gr0();Wr0();Zr0();d11();r1();FW();t11()});async function Jo4(Y){let{user:X,token:J}=Y;if(!J?.idToken)return;let G;try{G=_9(J.idToken)}catch{return}let{preferred_username:W,upn:K}=G,Z=[W,K].filter(($)=>typeof $==="string"&&$.length>0&&$.toLowerCase()!==X.email.toLowerCase()).map(($)=>$.toLowerCase());if(Z.length===0)return;let{db:Q}=Ww(),H=await Q.selectFrom("user").selectAll().where("email","in",Z).where("id","!=",X.id).executeTakeFirst();if(!H)return;console.info(`[SSO] Merging duplicate user ${X.id} (${X.email}) into original ${H.id} (${H.email})`);try{await Q.transaction().execute(async($)=>{await S1`UPDATE "account" SET "userId" = ${H.id} WHERE "userId" = ${X.id}`.execute($),await S1`UPDATE "session" SET "userId" = ${H.id} WHERE "userId" = ${X.id}`.execute($),await S1`
|
|
1583
1583
|
UPDATE "member" SET "userId" = ${H.id}
|
|
1584
1584
|
WHERE "userId" = ${X.id}
|
|
1585
1585
|
AND "organizationId" NOT IN (
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
# pg-cloudflare
|
|
2
|
+
|
|
3
|
+
`pg-cloudflare` makes it easier to take an existing package that relies on `tls` and `net`, and make it work in environments where only `connect()` is supported, such as Cloudflare Workers.
|
|
4
|
+
|
|
5
|
+
`pg-cloudflare` wraps `connect()`, the [TCP Socket API](https://github.com/wintercg/proposal-sockets-api) proposed within WinterCG, and implemented in [Cloudflare Workers](https://developers.cloudflare.com/workers/runtime-apis/tcp-sockets/), and exposes an interface with methods similar to what the `net` and `tls` modules in Node.js expose. (ex: `net.connect(path[, options][, callback])`). This minimizes the number of changes needed in order to make an existing package work across JavaScript runtimes.
|
|
6
|
+
|
|
7
|
+
## Installation
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
npm i --save-dev pg-cloudflare
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
The package uses conditional exports to support bundlers that don't know about
|
|
14
|
+
`cloudflare:sockets`, so the consumer code by default imports an empty file. To
|
|
15
|
+
enable the package, resolve to the `cloudflare` condition in your bundler's
|
|
16
|
+
config. For example:
|
|
17
|
+
|
|
18
|
+
- `webpack.config.js`
|
|
19
|
+
```js
|
|
20
|
+
export default {
|
|
21
|
+
...,
|
|
22
|
+
resolve: { conditionNames: [..., "workerd"] },
|
|
23
|
+
plugins: [
|
|
24
|
+
// ignore cloudflare:sockets imports
|
|
25
|
+
new webpack.IgnorePlugin({
|
|
26
|
+
resourceRegExp: /^cloudflare:sockets$/,
|
|
27
|
+
}),
|
|
28
|
+
],
|
|
29
|
+
}
|
|
30
|
+
```
|
|
31
|
+
- `vite.config.js`
|
|
32
|
+
|
|
33
|
+
> [!NOTE]
|
|
34
|
+
> If you are using the [Cloudflare Vite plugin](https://www.npmjs.com/package/@cloudflare/vite-plugin) then the following configuration is not necessary.
|
|
35
|
+
|
|
36
|
+
```js
|
|
37
|
+
export default defineConfig({
|
|
38
|
+
...,
|
|
39
|
+
resolve: {
|
|
40
|
+
conditions: [..., "workerd"],
|
|
41
|
+
},
|
|
42
|
+
build: {
|
|
43
|
+
...,
|
|
44
|
+
// don't try to bundle cloudflare:sockets
|
|
45
|
+
rollupOptions: {
|
|
46
|
+
external: [..., 'cloudflare:sockets'],
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
})
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
- `rollup.config.js`
|
|
53
|
+
```js
|
|
54
|
+
export default defineConfig({
|
|
55
|
+
...,
|
|
56
|
+
plugins: [..., nodeResolve({ exportConditions: [..., 'workerd'] })],
|
|
57
|
+
// don't try to bundle cloudflare:sockets
|
|
58
|
+
external: [..., 'cloudflare:sockets'],
|
|
59
|
+
})
|
|
60
|
+
```
|
|
61
|
+
- `esbuild.config.js`
|
|
62
|
+
```js
|
|
63
|
+
await esbuild.build({
|
|
64
|
+
...,
|
|
65
|
+
conditions: [..., 'workerd'],
|
|
66
|
+
})
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
The concrete examples can be found in `packages/pg-bundler-test`.
|
|
70
|
+
|
|
71
|
+
## How to use conditionally, in non-Node.js environments
|
|
72
|
+
|
|
73
|
+
As implemented in `pg` [here](https://github.com/brianc/node-postgres/commit/07553428e9c0eacf761a5d4541a3300ff7859578#diff-34588ad868ebcb232660aba7ee6a99d1e02f4bc93f73497d2688c3f074e60533R5-R13), a typical use case might look as follows, where in a Node.js environment the `net` module is used, while in a non-Node.js environment, where `net` is unavailable, `pg-cloudflare` is used instead, providing an equivalent interface:
|
|
74
|
+
|
|
75
|
+
```js
|
|
76
|
+
module.exports.getStream = function getStream(ssl = false) {
|
|
77
|
+
const net = require('net')
|
|
78
|
+
if (typeof net.Socket === 'function') {
|
|
79
|
+
return net.Socket()
|
|
80
|
+
}
|
|
81
|
+
const { CloudflareSocket } = require('pg-cloudflare')
|
|
82
|
+
return new CloudflareSocket(ssl)
|
|
83
|
+
}
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## Node.js implementation of the Socket API proposal
|
|
87
|
+
|
|
88
|
+
If you're looking for a way to rely on `connect()` as the interface you use to interact with raw sockets, but need this interface to be available in a Node.js environment, [`@arrowood.dev/socket`](https://github.com/Ethan-Arrowood/socket) provides a Node.js implementation of the Socket API.
|
|
89
|
+
|
|
90
|
+
### license
|
|
91
|
+
|
|
92
|
+
The MIT License (MIT)
|
|
93
|
+
|
|
94
|
+
Copyright (c) 2023 Brian M. Carlson
|
|
95
|
+
|
|
96
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
97
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
98
|
+
in the Software without restriction, including without limitation the rights
|
|
99
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
100
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
101
|
+
furnished to do so, subject to the following conditions:
|
|
102
|
+
|
|
103
|
+
The above copyright notice and this permission notice shall be included in
|
|
104
|
+
all copies or substantial portions of the Software.
|
|
105
|
+
|
|
106
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
107
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
108
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
109
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
110
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
111
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
112
|
+
THE SOFTWARE.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"empty.js","sourceRoot":"","sources":["../src/empty.ts"],"names":[],"mappings":";;AAAA,kFAAkF;AAClF,0CAA0C;AAC1C,kBAAe,EAAE,CAAA"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
3
|
+
/// <reference types="node" />
|
|
4
|
+
import { TlsOptions } from 'cloudflare:sockets';
|
|
5
|
+
import { EventEmitter } from 'events';
|
|
6
|
+
/**
|
|
7
|
+
* Wrapper around the Cloudflare built-in socket that can be used by the `Connection`.
|
|
8
|
+
*/
|
|
9
|
+
export declare class CloudflareSocket extends EventEmitter {
|
|
10
|
+
readonly ssl: boolean;
|
|
11
|
+
writable: boolean;
|
|
12
|
+
destroyed: boolean;
|
|
13
|
+
private _upgrading;
|
|
14
|
+
private _upgraded;
|
|
15
|
+
private _cfSocket;
|
|
16
|
+
private _cfWriter;
|
|
17
|
+
private _cfReader;
|
|
18
|
+
constructor(ssl: boolean);
|
|
19
|
+
setNoDelay(): this;
|
|
20
|
+
setKeepAlive(): this;
|
|
21
|
+
ref(): this;
|
|
22
|
+
unref(): this;
|
|
23
|
+
connect(port: number, host: string, connectListener?: (...args: unknown[]) => void): Promise<this | undefined>;
|
|
24
|
+
_listen(): Promise<void>;
|
|
25
|
+
_listenOnce(): Promise<void>;
|
|
26
|
+
write(data: Uint8Array | string, encoding?: BufferEncoding, callback?: (...args: unknown[]) => void): true | void;
|
|
27
|
+
end(data?: Buffer, encoding?: BufferEncoding, callback?: (...args: unknown[]) => void): this;
|
|
28
|
+
destroy(reason: string): this;
|
|
29
|
+
startTls(options: TlsOptions): void;
|
|
30
|
+
_addClosedHandler(): void;
|
|
31
|
+
}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CloudflareSocket = void 0;
|
|
4
|
+
const events_1 = require("events");
|
|
5
|
+
/**
|
|
6
|
+
* Wrapper around the Cloudflare built-in socket that can be used by the `Connection`.
|
|
7
|
+
*/
|
|
8
|
+
class CloudflareSocket extends events_1.EventEmitter {
|
|
9
|
+
constructor(ssl) {
|
|
10
|
+
super();
|
|
11
|
+
this.ssl = ssl;
|
|
12
|
+
this.writable = false;
|
|
13
|
+
this.destroyed = false;
|
|
14
|
+
this._upgrading = false;
|
|
15
|
+
this._upgraded = false;
|
|
16
|
+
this._cfSocket = null;
|
|
17
|
+
this._cfWriter = null;
|
|
18
|
+
this._cfReader = null;
|
|
19
|
+
}
|
|
20
|
+
setNoDelay() {
|
|
21
|
+
return this;
|
|
22
|
+
}
|
|
23
|
+
setKeepAlive() {
|
|
24
|
+
return this;
|
|
25
|
+
}
|
|
26
|
+
ref() {
|
|
27
|
+
return this;
|
|
28
|
+
}
|
|
29
|
+
unref() {
|
|
30
|
+
return this;
|
|
31
|
+
}
|
|
32
|
+
async connect(port, host, connectListener) {
|
|
33
|
+
try {
|
|
34
|
+
log('connecting');
|
|
35
|
+
if (connectListener)
|
|
36
|
+
this.once('connect', connectListener);
|
|
37
|
+
const options = this.ssl ? { secureTransport: 'starttls' } : {};
|
|
38
|
+
const mod = await import('cloudflare:sockets');
|
|
39
|
+
const connect = mod.connect;
|
|
40
|
+
this._cfSocket = connect(`${host}:${port}`, options);
|
|
41
|
+
this._cfWriter = this._cfSocket.writable.getWriter();
|
|
42
|
+
this._addClosedHandler();
|
|
43
|
+
this._cfReader = this._cfSocket.readable.getReader();
|
|
44
|
+
if (this.ssl) {
|
|
45
|
+
this._listenOnce().catch((e) => this.emit('error', e));
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
this._listen().catch((e) => this.emit('error', e));
|
|
49
|
+
}
|
|
50
|
+
await this._cfWriter.ready;
|
|
51
|
+
log('socket ready');
|
|
52
|
+
this.writable = true;
|
|
53
|
+
this.emit('connect');
|
|
54
|
+
return this;
|
|
55
|
+
}
|
|
56
|
+
catch (e) {
|
|
57
|
+
this.emit('error', e);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
async _listen() {
|
|
61
|
+
// eslint-disable-next-line no-constant-condition
|
|
62
|
+
while (true) {
|
|
63
|
+
log('awaiting receive from CF socket');
|
|
64
|
+
const { done, value } = await this._cfReader.read();
|
|
65
|
+
log('CF socket received:', done, value);
|
|
66
|
+
if (done) {
|
|
67
|
+
log('done');
|
|
68
|
+
break;
|
|
69
|
+
}
|
|
70
|
+
this.emit('data', Buffer.from(value));
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
async _listenOnce() {
|
|
74
|
+
log('awaiting first receive from CF socket');
|
|
75
|
+
const { done, value } = await this._cfReader.read();
|
|
76
|
+
log('First CF socket received:', done, value);
|
|
77
|
+
this.emit('data', Buffer.from(value));
|
|
78
|
+
}
|
|
79
|
+
write(data, encoding = 'utf8', callback = () => { }) {
|
|
80
|
+
if (data.length === 0)
|
|
81
|
+
return callback();
|
|
82
|
+
if (typeof data === 'string')
|
|
83
|
+
data = Buffer.from(data, encoding);
|
|
84
|
+
log('sending data direct:', data);
|
|
85
|
+
this._cfWriter.write(data).then(() => {
|
|
86
|
+
log('data sent');
|
|
87
|
+
callback();
|
|
88
|
+
}, (err) => {
|
|
89
|
+
log('send error', err);
|
|
90
|
+
callback(err);
|
|
91
|
+
});
|
|
92
|
+
return true;
|
|
93
|
+
}
|
|
94
|
+
end(data = Buffer.alloc(0), encoding = 'utf8', callback = () => { }) {
|
|
95
|
+
log('ending CF socket');
|
|
96
|
+
this.write(data, encoding, (err) => {
|
|
97
|
+
this._cfSocket.close();
|
|
98
|
+
if (callback)
|
|
99
|
+
callback(err);
|
|
100
|
+
});
|
|
101
|
+
return this;
|
|
102
|
+
}
|
|
103
|
+
destroy(reason) {
|
|
104
|
+
log('destroying CF socket', reason);
|
|
105
|
+
this.destroyed = true;
|
|
106
|
+
return this.end();
|
|
107
|
+
}
|
|
108
|
+
startTls(options) {
|
|
109
|
+
if (this._upgraded) {
|
|
110
|
+
// Don't try to upgrade again.
|
|
111
|
+
this.emit('error', 'Cannot call `startTls()` more than once on a socket');
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
this._cfWriter.releaseLock();
|
|
115
|
+
this._cfReader.releaseLock();
|
|
116
|
+
this._upgrading = true;
|
|
117
|
+
this._cfSocket = this._cfSocket.startTls(options);
|
|
118
|
+
this._cfWriter = this._cfSocket.writable.getWriter();
|
|
119
|
+
this._cfReader = this._cfSocket.readable.getReader();
|
|
120
|
+
this._addClosedHandler();
|
|
121
|
+
this._listen().catch((e) => this.emit('error', e));
|
|
122
|
+
}
|
|
123
|
+
_addClosedHandler() {
|
|
124
|
+
this._cfSocket.closed.then(() => {
|
|
125
|
+
if (!this._upgrading) {
|
|
126
|
+
log('CF socket closed');
|
|
127
|
+
this._cfSocket = null;
|
|
128
|
+
this.emit('close');
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
this._upgrading = false;
|
|
132
|
+
this._upgraded = true;
|
|
133
|
+
}
|
|
134
|
+
}).catch((e) => this.emit('error', e));
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
exports.CloudflareSocket = CloudflareSocket;
|
|
138
|
+
const debug = false;
|
|
139
|
+
function dump(data) {
|
|
140
|
+
if (data instanceof Uint8Array || data instanceof ArrayBuffer) {
|
|
141
|
+
const hex = Buffer.from(data).toString('hex');
|
|
142
|
+
const str = new TextDecoder().decode(data);
|
|
143
|
+
return `\n>>> STR: "${str.replace(/\n/g, '\\n')}"\n>>> HEX: ${hex}\n`;
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
return data;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
function log(...args) {
|
|
150
|
+
debug && console.log(...args.map(dump));
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,mCAAqC;AAErC;;GAEG;AACH,MAAa,gBAAiB,SAAQ,qBAAY;IAUhD,YAAqB,GAAY;QAC/B,KAAK,EAAE,CAAA;QADY,QAAG,GAAH,GAAG,CAAS;QATjC,aAAQ,GAAG,KAAK,CAAA;QAChB,cAAS,GAAG,KAAK,CAAA;QAET,eAAU,GAAG,KAAK,CAAA;QAClB,cAAS,GAAG,KAAK,CAAA;QACjB,cAAS,GAAkB,IAAI,CAAA;QAC/B,cAAS,GAAuC,IAAI,CAAA;QACpD,cAAS,GAAuC,IAAI,CAAA;IAI5D,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAA;IACb,CAAC;IACD,YAAY;QACV,OAAO,IAAI,CAAA;IACb,CAAC;IACD,GAAG;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IACD,KAAK;QACH,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAY,EAAE,IAAY,EAAE,eAA8C;QACtF,IAAI;YACF,GAAG,CAAC,YAAY,CAAC,CAAA;YACjB,IAAI,eAAe;gBAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAA;YAE1D,MAAM,OAAO,GAAkB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;YAC9E,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAA;YAC9C,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAA;YAC3B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,OAAO,CAAC,CAAA;YACpD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAA;YACpD,IAAI,CAAC,iBAAiB,EAAE,CAAA;YAExB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAA;YACpD,IAAI,IAAI,CAAC,GAAG,EAAE;gBACZ,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAA;aACvD;iBAAM;gBACL,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAA;aACnD;YAED,MAAM,IAAI,CAAC,SAAU,CAAC,KAAK,CAAA;YAC3B,GAAG,CAAC,cAAc,CAAC,CAAA;YACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;YACpB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YAEpB,OAAO,IAAI,CAAA;SACZ;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;SACtB;IACH,CAAC;IAED,KAAK,CAAC,OAAO;QACX,iDAAiD;QACjD,OAAO,IAAI,EAAE;YACX,GAAG,CAAC,iCAAiC,CAAC,CAAA;YACtC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,SAAU,CAAC,IAAI,EAAE,CAAA;YACpD,GAAG,CAAC,qBAAqB,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;YACvC,IAAI,IAAI,EAAE;gBACR,GAAG,CAAC,MAAM,CAAC,CAAA;gBACX,MAAK;aACN;YACD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;SACtC;IACH,CAAC;IAED,KAAK,CAAC,WAAW;QACf,GAAG,CAAC,uCAAuC,CAAC,CAAA;QAC5C,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,SAAU,CAAC,IAAI,EAAE,CAAA;QACpD,GAAG,CAAC,2BAA2B,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;QAC7C,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IACvC,CAAC;IAED,KAAK,CACH,IAAyB,EACzB,WAA2B,MAAM,EACjC,WAAyC,GAAG,EAAE,GAAE,CAAC;QAEjD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,QAAQ,EAAE,CAAA;QACxC,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;QAEhE,GAAG,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAA;QACjC,IAAI,CAAC,SAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAC9B,GAAG,EAAE;YACH,GAAG,CAAC,WAAW,CAAC,CAAA;YAChB,QAAQ,EAAE,CAAA;QACZ,CAAC,EACD,CAAC,GAAG,EAAE,EAAE;YACN,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,CAAA;YACtB,QAAQ,CAAC,GAAG,CAAC,CAAA;QACf,CAAC,CACF,CAAA;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,WAA2B,MAAM,EAAE,WAAyC,GAAG,EAAE,GAAE,CAAC;QAC9G,GAAG,CAAC,kBAAkB,CAAC,CAAA;QACvB,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE;YACjC,IAAI,CAAC,SAAU,CAAC,KAAK,EAAE,CAAA;YACvB,IAAI,QAAQ;gBAAE,QAAQ,CAAC,GAAG,CAAC,CAAA;QAC7B,CAAC,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,CAAC,MAAc;QACpB,GAAG,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAA;QACnC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;QACrB,OAAO,IAAI,CAAC,GAAG,EAAE,CAAA;IACnB,CAAC;IAED,QAAQ,CAAC,OAAmB;QAC1B,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,8BAA8B;YAC9B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,qDAAqD,CAAC,CAAA;YACzE,OAAM;SACP;QACD,IAAI,CAAC,SAAU,CAAC,WAAW,EAAE,CAAA;QAC7B,IAAI,CAAC,SAAU,CAAC,WAAW,EAAE,CAAA;QAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;QACtB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;QAClD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAA;QACpD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAA;QACpD,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxB,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAA;IACpD,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,SAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;YAC/B,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;gBACpB,GAAG,CAAC,kBAAkB,CAAC,CAAA;gBACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;gBACrB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;aACnB;iBAAM;gBACL,IAAI,CAAC,UAAU,GAAG,KAAK,CAAA;gBACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;aACtB;QACH,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAA;IACxC,CAAC;CACF;AA/ID,4CA+IC;AAED,MAAM,KAAK,GAAG,KAAK,CAAA;AAEnB,SAAS,IAAI,CAAC,IAAa;IACzB,IAAI,IAAI,YAAY,UAAU,IAAI,IAAI,YAAY,WAAW,EAAE;QAC7D,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QAC7C,MAAM,GAAG,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAC1C,OAAO,eAAe,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,eAAe,GAAG,IAAI,CAAA;KACtE;SAAM;QACL,OAAO,IAAI,CAAA;KACZ;AACH,CAAC;AAED,SAAS,GAAG,CAAC,GAAG,IAAe;IAC7B,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;AACzC,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "pg-cloudflare",
|
|
3
|
+
"version": "1.3.0",
|
|
4
|
+
"description": "A socket implementation that can run on Cloudflare Workers using native TCP connections.",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"license": "MIT",
|
|
8
|
+
"devDependencies": {
|
|
9
|
+
"ts-node": "^8.5.4",
|
|
10
|
+
"typescript": "^4.0.3"
|
|
11
|
+
},
|
|
12
|
+
"exports": {
|
|
13
|
+
".": {
|
|
14
|
+
"workerd": {
|
|
15
|
+
"import": "./esm/index.mjs",
|
|
16
|
+
"require": "./dist/index.js"
|
|
17
|
+
},
|
|
18
|
+
"default": "./dist/empty.js"
|
|
19
|
+
},
|
|
20
|
+
"./package.json": "./package.json"
|
|
21
|
+
},
|
|
22
|
+
"scripts": {
|
|
23
|
+
"build": "tsc",
|
|
24
|
+
"build:watch": "tsc --watch",
|
|
25
|
+
"prepublish": "yarn build",
|
|
26
|
+
"test": "echo e2e test in pg package"
|
|
27
|
+
},
|
|
28
|
+
"repository": {
|
|
29
|
+
"type": "git",
|
|
30
|
+
"url": "git://github.com/brianc/node-postgres.git",
|
|
31
|
+
"directory": "packages/pg-cloudflare"
|
|
32
|
+
},
|
|
33
|
+
"files": [
|
|
34
|
+
"/dist/*{js,ts,map}",
|
|
35
|
+
"/src",
|
|
36
|
+
"/esm"
|
|
37
|
+
],
|
|
38
|
+
"gitHead": "d10e09c888f94abf77382aba6f353ca665a1cf09"
|
|
39
|
+
}
|